chore: extract utils folder (#876)

This commit is contained in:
Pavel Feldman
2025-08-12 14:33:00 -07:00
committed by GitHub
parent dbd44110f1
commit c091a11d76
32 changed files with 51 additions and 87 deletions

View File

@@ -18,17 +18,18 @@ import { program, Option } from 'commander';
import * as mcpTransport from './mcp/transport.js';
import { commaSeparatedList, resolveCLIConfig, semicolonSeparatedList } from './config.js';
import { packageJSON } from './package.js';
import { createExtensionClientFactory, runWithExtension } from './extension/main.js';
import { packageJSON } from './utils/package.js';
import { Context } from './context.js';
import { contextFactory } from './browserContextFactory.js';
import { runLoopTools } from './loopTools/main.js';
import { ProxyBackend } from './mcp/proxyBackend.js';
import { InProcessClientFactory } from './inProcessClient.js';
import { BrowserServerBackend } from './browserServerBackend.js';
import { ExtensionContextFactory } from './extension/extensionContextFactory.js';
import type { ClientFactoryList } from './mcp/proxyBackend.js';
import type { ServerBackendFactory } from './mcp/server.js';
import type { FullConfig } from './config.js';
program
.version('Version ' + packageJSON.version)
@@ -73,7 +74,9 @@ program
const config = await resolveCLIConfig(options);
if (options.extension) {
await runWithExtension(config);
const contextFactory = createExtensionContextFactory(config);
const serverBackendFactory = () => new BrowserServerBackend(config, contextFactory);
await mcpTransport.start(serverBackendFactory, config.server);
return;
}
if (options.loopTools) {
@@ -86,7 +89,7 @@ program
if (options.connectTool) {
const factories: ClientFactoryList = [
new InProcessClientFactory(browserContextFactory, config),
createExtensionClientFactory(config)
new InProcessClientFactory(createExtensionContextFactory(config), config),
];
serverBackendFactory = () => new ProxyBackend(factories);
} else {
@@ -111,4 +114,8 @@ function setupExitWatchdog() {
process.on('SIGTERM', handleExit);
}
function createExtensionContextFactory(config: FullConfig) {
return new ExtensionContextFactory(config.browser.launchOptions.channel || 'chrome', config.browser.userDataDir);
}
void program.parseAsync(process.argv);