mirror of
https://github.com/browseros-ai/BrowserOS.git
synced 2026-05-16 18:22:35 +00:00
feat: refactor better structure for apps/server (#213)
This commit is contained in:
@@ -15,14 +15,14 @@ import {
|
||||
type ToolCallRequestInfo,
|
||||
} from '@google/gemini-cli-core'
|
||||
import type { Content, Part } from '@google/genai'
|
||||
import { logger } from '../../common/logger'
|
||||
import { Sentry } from '../../common/sentry/instrument'
|
||||
import type { BrowserContext } from '../../http/types'
|
||||
import { AgentExecutionError } from '../errors'
|
||||
import { buildSystemPrompt } from './gemini-agent.prompt'
|
||||
import { VercelAIContentGenerator } from './gemini-vercel-sdk-adapter/index'
|
||||
import type { HonoSSEStream } from './gemini-vercel-sdk-adapter/types'
|
||||
import { UIMessageStreamWriter } from './gemini-vercel-sdk-adapter/ui-message-stream'
|
||||
import type { BrowserContext } from '../api/types'
|
||||
import { logger } from '../lib/logger'
|
||||
import { Sentry } from '../lib/sentry'
|
||||
import { AgentExecutionError } from './errors'
|
||||
import { buildSystemPrompt } from './prompt'
|
||||
import { VercelAIContentGenerator } from './provider-adapter/index'
|
||||
import type { HonoSSEStream } from './provider-adapter/types'
|
||||
import { UIMessageStreamWriter } from './provider-adapter/ui-message-stream'
|
||||
import type { ResolvedAgentConfig } from './types'
|
||||
|
||||
interface ToolExecutionResult {
|
||||
@@ -26,7 +26,7 @@ import type {
|
||||
} from '@google/genai'
|
||||
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
|
||||
import { generateText, streamText } from 'ai'
|
||||
import { logger } from '../../../common/logger'
|
||||
import { logger } from '../../lib/logger'
|
||||
import type { ProviderAdapter } from './adapters/base'
|
||||
import { createProviderAdapter } from './adapters/factory'
|
||||
import { MessageConversionStrategy } from './strategies/message'
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
type GenerateContentResponse,
|
||||
type Part,
|
||||
} from '@google/genai'
|
||||
import { Sentry } from '../../../../common/sentry/instrument'
|
||||
import { Sentry } from '../../../lib/sentry'
|
||||
|
||||
import type { ProviderAdapter } from '../adapters/base'
|
||||
import type { ProviderMetadata } from '../adapters/types'
|
||||
@@ -4,10 +4,10 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import type { MCPServerConfig } from '@google/gemini-cli-core'
|
||||
import { logger } from '../../common/logger'
|
||||
import { logger } from '../lib/logger'
|
||||
|
||||
import { GeminiAgent } from '../agent/gemini-agent'
|
||||
import type { ResolvedAgentConfig } from '../agent/types'
|
||||
import { GeminiAgent } from './gemini-agent'
|
||||
import type { ResolvedAgentConfig } from './types'
|
||||
|
||||
export class SessionManager {
|
||||
private sessions = new Map<string, GeminiAgent>()
|
||||
@@ -6,9 +6,9 @@
|
||||
import type { LLMProvider } from '@browseros/shared/schemas/llm'
|
||||
import { z } from 'zod'
|
||||
|
||||
import { CustomMcpServerSchema } from '../../http/types'
|
||||
import { CustomMcpServerSchema } from '../api/types'
|
||||
|
||||
import { VercelAIConfigSchema } from './gemini-vercel-sdk-adapter/types'
|
||||
import { VercelAIConfigSchema } from './provider-adapter/types'
|
||||
|
||||
export interface ProviderConfig {
|
||||
provider: LLMProvider
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
import { LLM_PROVIDERS } from '@browseros/shared/schemas/llm'
|
||||
import { createMiddleware } from 'hono/factory'
|
||||
import type { RateLimiter } from '../../agent/rate-limiter/rate-limiter'
|
||||
import type { RateLimiter } from '../../lib/rate-limiter/rate-limiter'
|
||||
import type { ChatRequest } from '../types'
|
||||
|
||||
interface RateLimitMiddlewareDeps {
|
||||
@@ -8,13 +8,13 @@ import { PATHS } from '@browseros/shared/constants/paths'
|
||||
import { zValidator } from '@hono/zod-validator'
|
||||
import { Hono } from 'hono'
|
||||
import { stream } from 'hono/streaming'
|
||||
import { KlavisClient } from '../../agent/klavis/klavis-client'
|
||||
import type { RateLimiter } from '../../agent/rate-limiter/rate-limiter'
|
||||
import { SessionManager } from '../../agent/session/session-manager'
|
||||
import { logger } from '../../common/logger'
|
||||
import { metrics } from '../../common/metrics'
|
||||
import { Sentry } from '../../common/sentry/instrument'
|
||||
import { createBrowserosRateLimitMiddleware } from '../middleware/browseros-rate-limit'
|
||||
import { SessionManager } from '../../agent/session'
|
||||
import { KlavisClient } from '../../lib/clients/klavis/klavis-client'
|
||||
import { logger } from '../../lib/logger'
|
||||
import { metrics } from '../../lib/metrics'
|
||||
import type { RateLimiter } from '../../lib/rate-limiter/rate-limiter'
|
||||
import { Sentry } from '../../lib/sentry'
|
||||
import { createBrowserosRateLimitMiddleware } from '../middleware/rate-limit'
|
||||
import { ChatService } from '../services/chat-service'
|
||||
import { ChatRequestSchema } from '../types'
|
||||
import { ConversationIdParamSchema } from '../utils/validation'
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
import { Hono } from 'hono'
|
||||
import type { ControllerContext } from '../../controller-server/controller-context'
|
||||
import type { ControllerContext } from '../../browser/extension/context'
|
||||
|
||||
interface ExtensionStatusDeps {
|
||||
controllerContext: ControllerContext
|
||||
@@ -13,8 +13,8 @@ import {
|
||||
formatUIMessageStreamDone,
|
||||
formatUIMessageStreamEvent,
|
||||
UIMessageStreamWriter,
|
||||
} from '../../agent/agent/gemini-vercel-sdk-adapter/ui-message-stream'
|
||||
import { logger } from '../../common/logger'
|
||||
} from '../../agent/provider-adapter/ui-message-stream'
|
||||
import { logger } from '../../lib/logger'
|
||||
import { GraphService } from '../services/graph-service'
|
||||
import {
|
||||
CreateGraphRequestSchema,
|
||||
@@ -7,9 +7,9 @@
|
||||
import { zValidator } from '@hono/zod-validator'
|
||||
import { Hono } from 'hono'
|
||||
import { z } from 'zod'
|
||||
import { KlavisClient } from '../../agent/klavis/klavis-client'
|
||||
import { OAUTH_MCP_SERVERS } from '../../agent/klavis/oauth-mcp-servers'
|
||||
import { logger } from '../../common/logger'
|
||||
import { KlavisClient } from '../../lib/clients/klavis/klavis-client'
|
||||
import { OAUTH_MCP_SERVERS } from '../../lib/clients/klavis/oauth-mcp-servers'
|
||||
import { logger } from '../../lib/logger'
|
||||
|
||||
const ServerNameSchema = z.object({
|
||||
serverName: z.string().min(1),
|
||||
@@ -10,12 +10,12 @@ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'
|
||||
import { SetLevelRequestSchema } from '@modelcontextprotocol/sdk/types.js'
|
||||
import { Hono } from 'hono'
|
||||
import type { z } from 'zod'
|
||||
import { logger } from '../../common/logger'
|
||||
import type { McpContext } from '../../common/mcp-context'
|
||||
import { metrics } from '../../common/metrics'
|
||||
import type { Mutex } from '../../common/mutex'
|
||||
import { Sentry } from '../../common/sentry/instrument'
|
||||
import type { ControllerContext } from '../../controller-server/controller-context'
|
||||
import type { McpContext } from '../../browser/cdp/context'
|
||||
import type { ControllerContext } from '../../browser/extension/context'
|
||||
import { logger } from '../../lib/logger'
|
||||
import { metrics } from '../../lib/metrics'
|
||||
import type { Mutex } from '../../lib/mutex'
|
||||
import { Sentry } from '../../lib/sentry'
|
||||
import { McpResponse } from '../../tools/response/mcp-response'
|
||||
import type { ToolDefinition } from '../../tools/types/tool-definition'
|
||||
import type { Env } from '../types'
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
import { zValidator } from '@hono/zod-validator'
|
||||
import { Hono } from 'hono'
|
||||
import { testProviderConnection } from '../../agent/agent/gemini-vercel-sdk-adapter/test-provider'
|
||||
import { VercelAIConfigSchema } from '../../agent/agent/gemini-vercel-sdk-adapter/types'
|
||||
import { logger } from '../../common/logger'
|
||||
import { testProviderConnection } from '../../agent/provider-adapter/test-provider'
|
||||
import { VercelAIConfigSchema } from '../../agent/provider-adapter/types'
|
||||
import { logger } from '../../lib/logger'
|
||||
|
||||
export function createProviderRoutes() {
|
||||
return new Hono().post(
|
||||
@@ -14,8 +14,8 @@ import {
|
||||
formatUIMessageStreamDone,
|
||||
formatUIMessageStreamEvent,
|
||||
UIMessageStreamWriter,
|
||||
} from '../../agent/agent/gemini-vercel-sdk-adapter/ui-message-stream'
|
||||
import { logger } from '../../common/logger'
|
||||
} from '../../agent/provider-adapter/ui-message-stream'
|
||||
import { logger } from '../../lib/logger'
|
||||
import { BrowserService } from '../services/sdk/browser'
|
||||
import { ChatService } from '../services/sdk/chat'
|
||||
import { ExtractService } from '../services/sdk/extract'
|
||||
@@ -14,8 +14,8 @@ import { Hono } from 'hono'
|
||||
import { cors } from 'hono/cors'
|
||||
import type { ContentfulStatusCode } from 'hono/utils/http-status'
|
||||
import { HttpAgentError } from '../agent/errors'
|
||||
import { logger } from '../common/logger'
|
||||
import { bindPortWithRetry } from '../common/port-binding'
|
||||
import { logger } from '../lib/logger'
|
||||
import { bindPortWithRetry } from '../lib/port-binding'
|
||||
import { createChatRoutes } from './routes/chat'
|
||||
import { createExtensionStatusRoute } from './routes/extension-status'
|
||||
import { createGraphRoutes } from './routes/graph'
|
||||
@@ -6,18 +6,15 @@
|
||||
|
||||
import { LLM_PROVIDERS } from '@browseros/shared/schemas/llm'
|
||||
import { MCPServerConfig } from '@google/gemini-cli-core'
|
||||
import type { HonoSSEStream } from '../../agent/agent/gemini-vercel-sdk-adapter/types'
|
||||
import type {
|
||||
ProviderConfig,
|
||||
ResolvedAgentConfig,
|
||||
} from '../../agent/agent/types'
|
||||
import type { KlavisClient } from '../../agent/klavis/klavis-client'
|
||||
import type { SessionManager } from '../../agent/session/session-manager'
|
||||
import type { HonoSSEStream } from '../../agent/provider-adapter/types'
|
||||
import type { SessionManager } from '../../agent/session'
|
||||
import type { ProviderConfig, ResolvedAgentConfig } from '../../agent/types'
|
||||
import {
|
||||
fetchBrowserOSConfig,
|
||||
getLLMConfigFromProvider,
|
||||
} from '../../common/gateway'
|
||||
import { logger } from '../../common/logger'
|
||||
} from '../../lib/clients/gateway'
|
||||
import type { KlavisClient } from '../../lib/clients/klavis/klavis-client'
|
||||
import { logger } from '../../lib/logger'
|
||||
import type { BrowserContext, ChatRequest } from '../types'
|
||||
|
||||
interface McpHttpServerOptions {
|
||||
@@ -6,8 +6,8 @@
|
||||
|
||||
import type { LLMConfig, UIMessageStreamEvent } from '@browseros-ai/agent-sdk'
|
||||
import { createParser, type EventSourceMessage } from 'eventsource-parser'
|
||||
import { logger } from '../../common/logger'
|
||||
import { cleanupExecution, executeGraph } from '../../graph/executor'
|
||||
import { logger } from '../../lib/logger'
|
||||
import {
|
||||
CodegenGetResponseSchema,
|
||||
type CodegenSSEEvent,
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import type { LLMConfig } from '@browseros/shared/schemas/llm'
|
||||
import { createParser, type EventSourceMessage } from 'eventsource-parser'
|
||||
import type { UIMessageStreamEvent } from '../../../agent/agent/gemini-vercel-sdk-adapter/ui-message-stream'
|
||||
import type { UIMessageStreamEvent } from '../../../agent/provider-adapter/ui-message-stream'
|
||||
import { SdkError } from './types'
|
||||
|
||||
export interface ExecuteActionOptions {
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import type { LLMConfig } from '@browseros/shared/schemas/llm'
|
||||
import type { ModelMessage } from 'ai'
|
||||
import { LLMClient } from '../../../agent/llm/client'
|
||||
import { LLMClient } from '../../../lib/clients/llm/client'
|
||||
import type { Screenshot } from './types'
|
||||
|
||||
export interface VerifyOptions {
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
import { LLM_PROVIDERS } from '@browseros/shared/schemas/llm'
|
||||
import { z } from 'zod'
|
||||
import { VercelAIConfigSchema } from '../agent/agent/gemini-vercel-sdk-adapter/types'
|
||||
import type { RateLimiter } from '../agent/rate-limiter/rate-limiter'
|
||||
import type { McpContext } from '../common/mcp-context'
|
||||
import type { Mutex } from '../common/mutex'
|
||||
import type { ControllerContext } from '../controller-server/controller-context'
|
||||
import { VercelAIConfigSchema } from '../agent/provider-adapter/types'
|
||||
import type { McpContext } from '../browser/cdp/context'
|
||||
import type { ControllerContext } from '../browser/extension/context'
|
||||
import type { Mutex } from '../lib/mutex'
|
||||
import type { RateLimiter } from '../lib/rate-limiter/rate-limiter'
|
||||
import type { ToolDefinition } from '../tools/types/tool-definition'
|
||||
|
||||
// Chat request schemas (moved from agent/http/types.ts)
|
||||
@@ -17,11 +17,11 @@ import type {
|
||||
SerializedAXNode,
|
||||
} from 'puppeteer-core'
|
||||
|
||||
import type { Logger } from './logger'
|
||||
import type { Logger } from '../../lib/logger'
|
||||
import { WaitForHelper } from '../../lib/wait-for-helper'
|
||||
import { NetworkCollector, PageCollector } from './page-collector'
|
||||
// These will be injected from tools package
|
||||
import type { TraceResult } from './types'
|
||||
import { WaitForHelper } from './wait-for-helper'
|
||||
|
||||
export interface TextSnapshotNode extends SerializedAXNode {
|
||||
id: string
|
||||
@@ -6,7 +6,7 @@
|
||||
import { TIMEOUTS } from '@browseros/shared/constants/timeouts'
|
||||
import type { WebSocket } from 'ws'
|
||||
import { WebSocketServer } from 'ws'
|
||||
import type { Logger } from '../common/logger'
|
||||
import type { Logger } from '../../lib/logger'
|
||||
|
||||
interface ControllerRequest {
|
||||
id: string
|
||||
@@ -4,9 +4,9 @@
|
||||
*/
|
||||
import { TIMEOUTS } from '@browseros/shared/constants/timeouts'
|
||||
|
||||
import type { Context } from '../tools/controller-based/types/context'
|
||||
import type { Context } from '../../tools/controller-based/types/context'
|
||||
|
||||
import type { ControllerBridge } from './controller-bridge'
|
||||
import type { ControllerBridge } from './bridge'
|
||||
|
||||
export class ControllerContext implements Context {
|
||||
constructor(private controllerBridge: ControllerBridge) {}
|
||||
@@ -8,7 +8,7 @@ import { mkdir, rm } from 'node:fs/promises'
|
||||
import path from 'node:path'
|
||||
import type { LLMConfig, UIMessageStreamEvent } from '@browseros-ai/agent-sdk'
|
||||
import { Agent } from '@browseros-ai/agent-sdk'
|
||||
import { logger } from '../common/logger'
|
||||
import { logger } from '../lib/logger'
|
||||
|
||||
export interface ExecutorOptions {
|
||||
serverUrl: string
|
||||
|
||||
@@ -16,10 +16,10 @@ if (typeof Bun === 'undefined') {
|
||||
}
|
||||
|
||||
// Import polyfills first
|
||||
import './common/polyfill'
|
||||
import './lib/polyfill'
|
||||
import { CommanderError } from 'commander'
|
||||
import { Sentry } from './common/sentry/instrument'
|
||||
import { loadServerConfig } from './config'
|
||||
import { Sentry } from './lib/sentry'
|
||||
import { Application } from './main'
|
||||
|
||||
const configResult = loadServerConfig()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright 2025 BrowserOS
|
||||
*/
|
||||
|
||||
import { logger } from './logger'
|
||||
import { logger } from '../logger'
|
||||
|
||||
export interface Provider {
|
||||
name: string
|
||||
@@ -7,11 +7,8 @@
|
||||
*/
|
||||
|
||||
import { LLM_PROVIDERS, type LLMConfig } from '@browseros/shared/schemas/llm'
|
||||
import {
|
||||
fetchBrowserOSConfig,
|
||||
getLLMConfigFromProvider,
|
||||
} from '../../common/gateway'
|
||||
import { logger } from '../../common/logger'
|
||||
import { logger } from '../../logger'
|
||||
import { fetchBrowserOSConfig, getLLMConfigFromProvider } from '../gateway'
|
||||
import type { ResolvedLLMConfig } from './types'
|
||||
|
||||
export async function resolveLLMConfig(
|
||||
@@ -15,8 +15,8 @@ import { createOpenAICompatible } from '@ai-sdk/openai-compatible'
|
||||
import { LLM_PROVIDERS } from '@browseros/shared/schemas/llm'
|
||||
import { createOpenRouter } from '@openrouter/ai-sdk-provider'
|
||||
import type { LanguageModel } from 'ai'
|
||||
import { logger } from '../../common/logger'
|
||||
import { createOpenRouterCompatibleFetch } from '../agent/gemini-vercel-sdk-adapter/utils/fetch'
|
||||
import { createOpenRouterCompatibleFetch } from '../../../agent/provider-adapter/utils/fetch'
|
||||
import { logger } from '../../logger'
|
||||
import type { ResolvedLLMConfig } from './types'
|
||||
|
||||
type ProviderFactory = (config: ResolvedLLMConfig) => LanguageModel
|
||||
@@ -3,7 +3,7 @@
|
||||
* Copyright 2025 BrowserOS
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import { HttpAgentError } from '../errors'
|
||||
import { HttpAgentError } from '../../agent/errors'
|
||||
|
||||
export class RateLimitError extends HttpAgentError {
|
||||
constructor(
|
||||
@@ -8,8 +8,8 @@
|
||||
|
||||
import { RATE_LIMITS } from '@browseros/shared/constants/limits'
|
||||
|
||||
import { fetchBrowserOSConfig } from '../../common/gateway'
|
||||
import { logger } from '../../common/logger'
|
||||
import { fetchBrowserOSConfig } from '../clients/gateway'
|
||||
import { logger } from '../logger'
|
||||
|
||||
export async function fetchDailyRateLimit(
|
||||
browserosId: string,
|
||||
@@ -7,8 +7,8 @@
|
||||
import type { Database } from 'bun:sqlite'
|
||||
import { RATE_LIMITS } from '@browseros/shared/constants/limits'
|
||||
|
||||
import { logger } from '../../common/logger'
|
||||
import { metrics } from '../../common/metrics'
|
||||
import { logger } from '../logger'
|
||||
import { metrics } from '../metrics'
|
||||
|
||||
import { RateLimitError } from './errors'
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
import * as Sentry from '@sentry/bun'
|
||||
|
||||
import { VERSION } from '../../version'
|
||||
import { VERSION } from '../version'
|
||||
|
||||
const SENTRY_ENVIRONMENT = process.env.NODE_ENV || 'development'
|
||||
|
||||
@@ -12,21 +12,21 @@ import type { Database } from 'bun:sqlite'
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import { EXIT_CODES } from '@browseros/shared/constants/exit-codes'
|
||||
import { fetchDailyRateLimit } from './agent/rate-limiter/fetch-config'
|
||||
import { RateLimiter } from './agent/rate-limiter/rate-limiter'
|
||||
import { ensureBrowserConnected } from './common/browser'
|
||||
import { initializeDb } from './common/db'
|
||||
import { identity } from './common/identity'
|
||||
import { logger } from './common/logger'
|
||||
import { McpContext } from './common/mcp-context'
|
||||
import { metrics } from './common/metrics'
|
||||
import { Mutex } from './common/mutex'
|
||||
import { bindPortWithRetry, PortBindError } from './common/port-binding'
|
||||
import { Sentry } from './common/sentry/instrument'
|
||||
import { createHttpServer } from './api/server'
|
||||
import { ensureBrowserConnected } from './browser/cdp/connection'
|
||||
import { McpContext } from './browser/cdp/context'
|
||||
import { ControllerBridge } from './browser/extension/bridge'
|
||||
import { ControllerContext } from './browser/extension/context'
|
||||
import type { ServerConfig } from './config'
|
||||
import { ControllerBridge } from './controller-server/controller-bridge'
|
||||
import { ControllerContext } from './controller-server/controller-context'
|
||||
import { createHttpServer } from './http/server'
|
||||
import { initializeDb } from './lib/db'
|
||||
import { identity } from './lib/identity'
|
||||
import { logger } from './lib/logger'
|
||||
import { metrics } from './lib/metrics'
|
||||
import { Mutex } from './lib/mutex'
|
||||
import { bindPortWithRetry, PortBindError } from './lib/port-binding'
|
||||
import { fetchDailyRateLimit } from './lib/rate-limiter/fetch-config'
|
||||
import { RateLimiter } from './lib/rate-limiter/rate-limiter'
|
||||
import { Sentry } from './lib/sentry'
|
||||
import { createToolRegistry } from './tools/registry'
|
||||
import { VERSION } from './version'
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*/
|
||||
|
||||
import z from 'zod'
|
||||
import { logger } from '../../common/logger'
|
||||
import { logger } from '../../lib/logger'
|
||||
|
||||
import { ToolCategories } from '../types/tool-categories'
|
||||
import { commonSchemas, defineTool, ERRORS } from '../types/tool-definition'
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
import type { Page } from 'puppeteer-core'
|
||||
import z from 'zod'
|
||||
import { logger } from '../../common/logger'
|
||||
import type { McpContext } from '../../common/mcp-context'
|
||||
import type { McpContext } from '../../browser/cdp/context'
|
||||
import { logger } from '../../lib/logger'
|
||||
|
||||
import type { InsightName } from '../trace-processing/parse'
|
||||
import {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @license
|
||||
* Copyright 2025 BrowserOS
|
||||
*/
|
||||
import type { TextSnapshotNode } from '../../common/mcp-context'
|
||||
import type { TextSnapshotNode } from '../../browser/cdp/context'
|
||||
|
||||
export function formatA11ySnapshot(
|
||||
serializedAXNodeRoot: TextSnapshotNode,
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
* Tool Registry - Combines CDP and controller tools into a unified registry.
|
||||
*/
|
||||
|
||||
import { logger } from '../common/logger'
|
||||
import type { McpContext } from '../common/mcp-context'
|
||||
import type { ControllerContext } from '../controller-server/controller-context'
|
||||
import type { McpContext } from '../browser/cdp/context'
|
||||
import type { ControllerContext } from '../browser/extension/context'
|
||||
import { logger } from '../lib/logger'
|
||||
|
||||
import { allCdpTools } from './cdp-based/registry'
|
||||
import { allControllerTools } from './controller-based/registry'
|
||||
|
||||
@@ -8,7 +8,7 @@ import type {
|
||||
TextContent,
|
||||
} from '@modelcontextprotocol/sdk/types.js'
|
||||
import type { ResourceType } from 'puppeteer-core'
|
||||
import type { McpContext } from '../../common/mcp-context'
|
||||
import type { McpContext } from '../../browser/cdp/context'
|
||||
|
||||
import { formatConsoleEvent } from '../formatters/console-formatter'
|
||||
import {
|
||||
|
||||
@@ -12,9 +12,8 @@ import { Mutex } from 'async-mutex'
|
||||
import type { Browser } from 'puppeteer'
|
||||
import puppeteer from 'puppeteer'
|
||||
import type { HTTPRequest, HTTPResponse } from 'puppeteer-core'
|
||||
|
||||
import { logger } from '../../src/common/logger'
|
||||
import { McpContext } from '../../src/common/mcp-context'
|
||||
import { McpContext } from '../../src/browser/cdp/context'
|
||||
import { logger } from '../../src/lib/logger'
|
||||
import { McpResponse } from '../../src/tools/response/mcp-response'
|
||||
|
||||
import { ensureBrowserOS } from './setup'
|
||||
|
||||
@@ -7,7 +7,7 @@ import { describe, it } from 'bun:test'
|
||||
import assert from 'node:assert'
|
||||
import sinon from 'sinon'
|
||||
|
||||
import type { TraceResult } from '../../src/common/types'
|
||||
import type { TraceResult } from '../../src/browser/cdp/types'
|
||||
|
||||
import { withBrowser } from '../__helpers__/utils'
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { describe, it } from 'bun:test'
|
||||
import assert from 'node:assert'
|
||||
import type { Browser, Frame, Page, Target } from 'puppeteer-core'
|
||||
|
||||
import { PageCollector } from '../../src/common/page-collector'
|
||||
import { PageCollector } from '../../src/browser/cdp/page-collector'
|
||||
|
||||
import { getMockRequest } from '../__helpers__/utils'
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import { describe, it } from 'bun:test'
|
||||
import assert from 'node:assert'
|
||||
import type { ElementHandle } from 'puppeteer-core'
|
||||
|
||||
import type { TextSnapshotNode } from '../../../src/common/mcp-context'
|
||||
import type { TextSnapshotNode } from '../../../src/browser/cdp/context'
|
||||
import { formatA11ySnapshot } from '../../../src/tools/formatters/snapshot-formatter'
|
||||
|
||||
describe('snapshotFormatter', () => {
|
||||
|
||||
Reference in New Issue
Block a user