/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import '../polyfill.js';
import process from 'node:process';
import { createMcpServer, logDisclaimers } from '../index.js';
import { logger, saveLogsToFile } from '../logger.js';
import { computeFlagUsage } from '../telemetry/flagUtils.js';
import { StdioServerTransport } from '../third_party/index.js';
import { checkForUpdates } from '../utils/check-for-updates.js';
import { VERSION } from '../version.js';
import { cliOptions, parseArguments } from './chrome-devtools-mcp-cli-options.js';
await checkForUpdates('Run `npm install chrome-devtools-mcp@latest` to update.');
export const args = parseArguments(VERSION);
const logFile = args.logFile ? saveLogsToFile(args.logFile) : undefined;
if (process.env['CI'] ||
    process.env['CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS']) {
    console.error("turning off usage statistics. process.env['CI'] || process.env['CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS'] is set.");
    args.usageStatistics = false;
}
if (process.env['CHROME_DEVTOOLS_MCP_CRASH_ON_UNCAUGHT'] !== 'true') {
    process.on('unhandledRejection', (reason, promise) => {
        logger('Unhandled promise rejection', promise, reason);
    });
}
logger(`Starting Chrome DevTools MCP Server v${VERSION}`);
const { server, clearcutLogger } = await createMcpServer(args, {
    logFile,
});
const transport = new StdioServerTransport();
await server.connect(transport);
logger('Chrome DevTools MCP Server connected');
logDisclaimers(args);
void clearcutLogger?.logDailyActiveIfNeeded();
void clearcutLogger?.logServerStart(computeFlagUsage(args, cliOptions));
