@evalops/maestro 0.10.47 → 0.10.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/audit/logger.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/update.d.ts +12 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +148 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +4 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.js +2 -2
- package/dist/cli-tui/commands/command-catalog.js.map +1 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +1 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +1 -1
- package/dist/cli-tui/footer.d.ts.map +1 -1
- package/dist/cli-tui/footer.js +1 -1
- package/dist/cli-tui/footer.js.map +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +5 -11
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +1 -1
- package/dist/cli-tui/tui-renderer.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer.js +1 -1
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/ui-state.js +1 -1
- package/dist/cli-tui/ui-state.js.map +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts.map +1 -1
- package/dist/cli-tui/utils/footer-utils.js.map +1 -1
- package/dist/cli.js +4072 -3450
- package/dist/cli.js.map +1 -1
- package/dist/codex/app-server-client.d.ts +8 -0
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +49 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -1
- package/dist/models/config-loader.d.ts +13 -13
- package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts +2 -0
- package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/scenario.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/platform/operating-plane-client.d.ts +3 -3
- package/dist/platform/operating-plane-client.d.ts.map +1 -1
- package/dist/platform/operating-plane-client.js.map +1 -1
- package/dist/platform/operating-plane-summary.js +3 -6
- package/dist/platform/operating-plane-summary.js.map +1 -1
- package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -1
- package/dist/server/agent-trajectory-scenarios.js +29 -6
- package/dist/server/agent-trajectory-scenarios.js.map +1 -1
- package/dist/server/handlers/ui.d.ts.map +1 -1
- package/dist/server/handlers/ui.js +5 -5
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js +8 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/update/check.d.ts +2 -0
- package/dist/update/check.d.ts.map +1 -1
- package/dist/update/check.js +100 -41
- package/dist/update/check.js.map +1 -1
- package/dist/update/startup-refresh.d.ts +56 -0
- package/dist/update/startup-refresh.d.ts.map +1 -0
- package/dist/update/startup-refresh.js +321 -0
- package/dist/update/startup-refresh.js.map +1 -0
- package/dist/version.json +2 -2
- package/package.json +297 -296
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Main Entry Point - Maestro CLI Application\n *\n * This module orchestrates the complete initialization sequence for the Maestro CLI,\n * including authentication, model resolution, session management, and runtime mode\n * selection. It serves as the single entry point that routes execution to the\n * appropriate mode (interactive TUI, single-shot, RPC, or exec).\n *\n * ## Initialization Sequence\n *\n * The startup process follows a specific order to ensure proper dependency resolution:\n *\n * ```\n * 1. Environment Loading\n * ├── Load .env files (via dotenv)\n * ├── Initialize OpenTelemetry for tracing\n * └── Load model registry (async, before UI)\n *\n * 2. Enterprise Context (optional)\n * ├── Initialize user/org tracking\n * └── Set up audit logging if enterprise features enabled\n *\n * 3. CLI Argument Parsing\n * ├── Parse command-line flags\n * └── Handle --help, config commands, and other early exits\n *\n * 4. Authentication Resolution\n * ├── Determine auth mode (auto or api-key)\n * ├── Resolve credentials for the selected provider\n * └── Build error messages for missing credentials\n *\n * 5. Safety & Sandboxing\n * ├── Configure safe mode\n * ├── Register background task shutdown hooks\n * ├── Bootstrap LSP\n * └── Initialize checkpointing for undo/redo\n *\n * 6. Model Resolution\n * ├── Resolve provider and model from CLI args or defaults\n * ├── Validate against policy restrictions\n * └── Require valid credentials for selected provider\n *\n * 7. Session Initialization\n * ├── Create or load session manager\n * ├── Handle --continue, --resume, and exec resume modes\n * └── Load previous messages if continuing session\n *\n * 8. Agent & Tool Setup\n * ├── Build system prompt with project context\n * ├── Configure approval service (prompt, auto, fail modes)\n * ├── Initialize sandbox if requested (docker, local, none)\n * ├── Create Agent with transport, tools, and context sources\n * └── Initialize MCP servers for additional tools\n *\n * 9. Runtime Mode Selection\n * ├── Interactive TUI: Full terminal interface with input/output\n * ├── Single-shot: Process messages and output result\n * ├── RPC: JSON-over-stdin/stdout for programmatic control\n * └── Exec: Non-interactive batch execution with structured output\n * ```\n *\n * ## Authentication Modes\n *\n * The CLI supports multiple authentication strategies:\n *\n * | Mode | Description |\n * |----------|--------------------------------------------------|\n * | auto | Try OAuth first, fall back to API key env vars |\n * | api-key | Require explicit API key (--api-key or env var) |\n *\n * ## Runtime Modes\n *\n * | Mode | Trigger | Behavior |\n * |-------------|-------------------------------|-----------------------------|\n * | Interactive | No messages, not RPC | Full TUI with readline |\n * | Single-shot | Messages provided, text/json | Process and exit |\n * | RPC | --mode=rpc | JSON protocol over stdio |\n * | Exec | maestro exec [prompt] | Batch with structured output|\n *\n * ## Error Handling\n *\n * Critical errors during initialization will print colored error messages\n * and exit with appropriate codes. The initialization is designed to fail\n * fast and provide actionable error messages.\n *\n * @module main\n */\n\nimport { createRequire } from \"node:module\";\nimport chalk from \"chalk\";\nimport type {\n\tActionApprovalService,\n\tApprovalMode,\n} from \"./agent/action-approval.js\";\nimport { createBackgroundTextAgent } from \"./agent/background-agent.js\";\nimport {\n\ttype Agent,\n\ttype Api,\n\ttype Model,\n\tisAssistantMessage,\n} from \"./agent/index.js\";\nimport { getAllModes, getModelForMode } from \"./agent/modes.js\";\nimport { loadScriptedScenarioFromSource } from \"./agent/providers/scripted.js\";\nimport { scenarioSourceLabel } from \"./agent/scenario-source.js\";\nimport { applySessionEndHooks } from \"./agent/session-lifecycle-hooks.js\";\nimport { type ToolRetryMode, ToolRetryService } from \"./agent/tool-retry.js\";\nimport {\n\tapplySessionStartHooks,\n\trunUserPromptWithRecovery,\n} from \"./agent/user-prompt-runtime.js\";\nimport { PlatformBackedActionApprovalService } from \"./approvals/platform-action-approval.js\";\nimport { createAuthSetup, validateCodexFlags } from \"./bootstrap/auth-setup.js\";\nimport {\n\tdisposeCheckpointService,\n\tinitCheckpointService,\n} from \"./checkpoints/index.js\";\nimport { TuiClientToolService } from \"./cli-tui/client-tools/local-client-tool-service.js\";\nimport { TuiRenderer } from \"./cli-tui/tui-renderer.js\";\nimport { sanitizeTerminalPreview } from \"./cli-tui/utils/text-formatting.js\";\nimport { type Mode, parseArgs } from \"./cli/args.js\";\nimport {\n\tEXEC_SESSION_SUMMARY_PREFIX,\n\trunExecCommand,\n} from \"./cli/commands/exec.js\";\nimport {\n\tisHeadlessModeRequested,\n\trecordHeadlessRuntimeSelection,\n\tselectHeadlessRuntime,\n\twillDispatchHeadlessRuntime,\n} from \"./cli/headless-runtime-selection.js\";\nimport { runHeadlessMode } from \"./cli/headless.js\";\nimport { printHelp } from \"./cli/help.js\";\nimport {\n\tJsonlEventWriter,\n\tcreateAgentJsonlAdapter,\n\temitThreadEnd,\n\temitThreadStart,\n\temitUserTurn as emitUserTurnEvent,\n} from \"./cli/jsonl-writer.js\";\nimport { selectSession } from \"./cli/session.js\";\nimport {\n\tdetectRuntimeConstraintContext,\n\tresolveExplicitSystemPromptSourcePaths,\n} from \"./cli/system-prompt.js\";\nimport { validateFrameworkPreference } from \"./config/framework.js\";\nimport { loadRuntimeConfig } from \"./config/runtime-config.js\";\nimport { loadUnifiedContextManifest } from \"./context/manifest.js\";\nimport { loadEnv } from \"./load-env.js\";\nimport { bootstrapLsp } from \"./lsp/bootstrap.js\";\nimport { withMcpPostKeepMessages } from \"./mcp/prompt-recovery.js\";\nimport {\n\tcreateAutomaticMemoryConsolidationCoordinator,\n\tgetMemoryConsolidationSystemPrompt,\n} from \"./memory/auto-consolidation.js\";\nimport {\n\tcreateAutomaticMemoryExtractionCoordinator,\n\tgetMemoryExtractionSystemPrompt,\n} from \"./memory/auto-extraction.js\";\nimport { ensureModelsLoaded } from \"./models/builtin.js\";\nimport type { RegisteredModel } from \"./models/registry.js\";\nimport { reloadModelConfig } from \"./models/registry.js\";\nimport { initOpenTelemetry } from \"./opentelemetry.js\";\nimport { resolveMaestroSystemPrompt } from \"./prompts/system-prompt.js\";\nimport type { AuthMode } from \"./providers/auth.js\";\nimport { AgentRuntimeController } from \"./runtime/agent-runtime.js\";\nimport { registerBackgroundTaskShutdownHooks } from \"./runtime/background-task-hooks.js\";\nimport { configureSafeMode } from \"./safety/safe-mode.js\";\nimport { LocalSandbox } from \"./sandbox/index.js\";\nimport { captureSentryException, flushSentry, initSentry } from \"./sentry.js\";\nimport { ServerRequestActionApprovalService } from \"./server/approval-service.js\";\nimport { clientToolService } from \"./server/client-tools-service.js\";\nimport { ServerRequestToolRetryService } from \"./server/tool-retry-service.js\";\nimport { SessionManager } from \"./session/manager.js\";\nimport { recordStagedRolloutSurfaceUsage } from \"./telemetry.js\";\nimport { beaconTimeoutMs } from \"./telemetry/beacon.js\";\nimport { askUserClientTool } from \"./tools/ask-user-client.js\";\nimport type { UpdateCheckResult } from \"./update/check.js\";\nimport { createStartupProfilerFromEnv } from \"./utils/checkpoint-profiler.js\";\nimport { isInsideGitRepository } from \"./utils/git.js\";\n/**\n * Load version from package.json at runtime.\n * Uses Node's createRequire for compatibility with ESM imports\n * (avoids experimental import assertions syntax).\n */\nconst packageJson = createRequire(import.meta.url)(\"../package.json\") as {\n\tversion?: string;\n};\nconst VERSION = packageJson.version ?? \"unknown\";\nconst STARTUP_TELEMETRY_EXIT_WAIT_GRACE_MS = 25;\n\nlet enterpriseCleanupRegistered = false;\nlet checkpointCleanupRegistered = false;\nlet sandboxCleanupRegistered = false;\n\nfunction printAllAgentModes(): void {\n\tconst lines = [\"Agent modes:\", \"\"];\n\tfor (const { mode, config } of getAllModes({ includeHidden: true })) {\n\t\tconst hiddenSuffix = config.visible === false ? \" [hidden]\" : \"\";\n\t\tlines.push(`${mode}${hiddenSuffix}`);\n\t\tlines.push(` ${config.description}`);\n\t\tlines.push(` model: ${getModelForMode(mode)}`);\n\t}\n\tconsole.log(lines.join(\"\\n\"));\n}\n\n/**\n * Configuration options passed to the interactive TUI renderer.\n * These options customize the startup experience shown to users.\n */\ninterface InteractiveOptions {\n\tclientToolService?: TuiClientToolService;\n\t/** Subset of models available for switching (from --models flag) */\n\tmodelScope?: RegisteredModel[];\n\t/** Changelog summary to display on startup (e.g., \"v1.2.0 — New features\") */\n\tstartupChangelogSummary?: string | null;\n\t/** Update notification if a newer version is available */\n\tupdateNotice?: UpdateCheckResult | null;\n}\n\n/**\n * Runs the full interactive Terminal UI (TUI) mode.\n *\n * This is the primary user-facing mode when composer is invoked without\n * command-line messages. It provides:\n * - Real-time streaming of model responses\n * - Interactive input with readline and autocomplete\n * - Tool execution with approval prompts\n * - Session persistence and recovery\n * - View switching (chat, tools, sessions, etc.)\n *\n * The function sets up the TUI renderer, subscribes to agent events,\n * and runs the main input loop until the user exits.\n *\n * @param agent - Configured Agent instance for LLM communication\n * @param sessionManager - Handles session persistence and recovery\n * @param version - Current CLI version for display\n * @param approvalService - Controls tool execution approval behavior\n * @param explicitApiKey - API key from --api-key flag (for display purposes)\n * @param options - Additional startup configuration (model scope, changelog, etc.)\n */\nasync function runInteractiveMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tversion: string,\n\tapprovalService: ActionApprovalService,\n\ttoolRetryService: ToolRetryService,\n\texplicitApiKey?: string,\n\toptions: InteractiveOptions = {},\n): Promise<void> {\n\t// Redirect logs to file to avoid polluting the TUI\n\tconst { redirectLoggerToFile } = await import(\"./utils/logger.js\");\n\tredirectLoggerToFile();\n\n\tlet sessionEndReason: \"user_exit\" | \"error\" = \"user_exit\";\n\ttry {\n\t\t// Initialize the TUI renderer which manages all terminal output\n\t\tconst renderer = new TuiRenderer(\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tversion,\n\t\t\tapprovalService,\n\t\t\ttoolRetryService,\n\t\t\texplicitApiKey,\n\t\t\toptions,\n\t\t);\n\t\tconst runtime = new AgentRuntimeController({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\trenderer,\n\t\t\tonError: (error) => {\n\t\t\t\tconst message =\n\t\t\t\t\terror instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\trenderer.showError(message);\n\t\t\t},\n\t\t});\n\n\t\t// Initialize TUI - sets up terminal raw mode, cursor handling, and rendering\n\t\tawait renderer.init();\n\n\t\t// Render any existing messages from a continued session (--continue mode)\n\t\t// This allows users to see their previous conversation context\n\t\trenderer.renderInitialMessages(agent.state);\n\n\t\t// Subscribe to agent events for real-time UI updates\n\t\t// The renderer handles streaming text, tool execution, errors, and completion\n\t\tagent.subscribe(async (event) => {\n\t\t\tawait renderer.handleEvent(event, agent.state);\n\t\t});\n\n\t\t// Run the main interactive loop - blocks until user exits\n\t\tawait runtime.runInteractiveLoop(renderer);\n\t} catch (error) {\n\t\tsessionEndReason = \"error\";\n\t\tthrow error;\n\t} finally {\n\t\tawait applySessionEndHooks({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tcwd: process.cwd(),\n\t\t\treason: sessionEndReason,\n\t\t});\n\t}\n}\n\nasync function waitForStartupTelemetryForImmediateExit(\n\tstartupTelemetry: Promise<void>,\n): Promise<void> {\n\tlet timeout: NodeJS.Timeout | undefined;\n\ttry {\n\t\tawait Promise.race([\n\t\t\tstartupTelemetry,\n\t\t\tnew Promise<void>((resolve) => {\n\t\t\t\ttimeout = setTimeout(\n\t\t\t\t\tresolve,\n\t\t\t\t\tbeaconTimeoutMs(process.env) + STARTUP_TELEMETRY_EXIT_WAIT_GRACE_MS,\n\t\t\t\t);\n\t\t\t}),\n\t\t]);\n\t} catch {\n\t\t// Startup telemetry is best effort and must not affect explicit exits.\n\t} finally {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t}\n}\n\n/**\n * Runs the CLI in single-shot (non-interactive) mode.\n *\n * Processes one or more messages from the command line and outputs\n * the result. Supports two output formats:\n *\n * - **text**: Outputs only the final assistant text response (human-readable)\n * - **json**: Outputs JSONL event stream for machine processing\n *\n * This mode is useful for scripting and automation:\n * ```bash\n * composer \"What time is it?\" --mode text\n * composer \"Generate code\" --mode json > output.jsonl\n * ```\n *\n * @param agent - Configured Agent instance\n * @param sessionManager - For session ID tracking\n * @param messages - Array of user messages to process sequentially\n * @param mode - Output format: \"text\" for human-readable, \"json\" for JSONL\n */\nasync function runSingleShotMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tmessages: string[],\n\tmode: Extract<Mode, \"text\" | \"json\">,\n): Promise<void> {\n\t// Use session ID as thread ID for JSONL output correlation\n\tconst threadId = sessionManager.getSessionId();\n\n\t// Set up JSONL writer for structured output in json mode\n\t// This enables machine-readable event streaming for integrations\n\tconst jsonlWriter =\n\t\tmode === \"json\" ? new JsonlEventWriter(true, process.stdout) : null;\n\n\t// Turn ID generator for correlating user messages with responses\n\tconst nextTurnId = (() => {\n\t\tlet counter = 0;\n\t\treturn () => `turn-${++counter}`;\n\t})();\n\n\t// Adapter translates agent events to JSONL format\n\tconst adapter =\n\t\tjsonlWriter && createAgentJsonlAdapter(jsonlWriter, nextTurnId);\n\n\t// In JSON mode, emit thread start and subscribe to all events\n\tif (jsonlWriter) {\n\t\temitThreadStart(jsonlWriter, threadId, { sessionId: threadId });\n\t\tagent.subscribe((event) => {\n\t\t\tadapter?.handle(event);\n\t\t});\n\t}\n\n\tlet sessionEndReason: \"complete\" | \"error\" = \"complete\";\n\ttry {\n\t\t// Process each message sequentially\n\t\t// This allows multi-message conversations in single-shot mode\n\t\tfor (const message of messages) {\n\t\t\tif (jsonlWriter) {\n\t\t\t\temitUserTurnEvent(jsonlWriter, nextTurnId, message);\n\t\t\t}\n\t\t\tawait runUserPromptWithRecovery({\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tprompt: message,\n\t\t\t\texecute: () => agent.prompt(message),\n\t\t\t\tgetPostKeepMessages: withMcpPostKeepMessages(),\n\t\t\t});\n\t\t}\n\n\t\t// In text mode, extract and output only the final text response\n\t\t// This provides clean output for shell pipelines and scripts\n\t\tif (mode === \"text\") {\n\t\t\tconst lastMessage = agent.state.messages[agent.state.messages.length - 1];\n\t\t\tif (isAssistantMessage(lastMessage)) {\n\t\t\t\tfor (const content of lastMessage.content) {\n\t\t\t\t\tif (content.type === \"text\") {\n\t\t\t\t\t\tconsole.log(content.text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (jsonlWriter) {\n\t\t\temitThreadEnd(jsonlWriter, threadId, \"ok\", threadId);\n\t\t}\n\t} catch (error) {\n\t\tsessionEndReason = \"error\";\n\t\t// Ensure error is recorded in JSONL output for machine processing\n\t\tif (jsonlWriter) {\n\t\t\temitThreadEnd(jsonlWriter, threadId, \"error\", threadId);\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\tawait applySessionEndHooks({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tcwd: process.cwd(),\n\t\t\treason: sessionEndReason,\n\t\t});\n\t}\n}\n\nfunction resolveSessionStartHookSource(params: {\n\tmode: Mode;\n\tcommand?: string;\n\tisInteractive: boolean;\n\theadless?: boolean;\n\tshouldRestoreSession?: boolean;\n}): string {\n\tif (params.shouldRestoreSession) {\n\t\treturn \"resume\";\n\t}\n\tif (params.command === \"exec\") {\n\t\treturn \"exec\";\n\t}\n\tif (params.mode === \"rpc\") {\n\t\treturn \"rpc\";\n\t}\n\tif (params.mode === \"headless\" || params.headless) {\n\t\treturn \"headless\";\n\t}\n\tif (params.isInteractive) {\n\t\treturn \"interactive\";\n\t}\n\treturn \"cli\";\n}\n\nasync function readReplayScenarioId(source: string): Promise<string> {\n\ttry {\n\t\treturn (await loadScriptedScenarioFromSource(source)).id;\n\t} catch {\n\t\t// The scripted provider surfaces schema and file errors during streaming.\n\t}\n\treturn scenarioSourceLabel(source);\n}\n\n/**\n * Main entry point for the Maestro CLI application.\n *\n * This function orchestrates the complete initialization sequence and routes\n * to the appropriate runtime mode. It performs all setup synchronously where\n * possible and handles errors with user-friendly messages.\n *\n * ## Execution Phases\n *\n * 1. **Early Initialization**: Environment, telemetry, model registry\n * 2. **Enterprise Setup**: Audit logging, user tracking (if applicable)\n * 3. **CLI Parsing**: Handle help, version, and subcommands (config, cost, models)\n * 4. **Authentication**: Resolve credentials for the selected provider\n * 5. **Session Setup**: Create or restore session state\n * 6. **Agent Creation**: Configure transport, tools, context sources\n * 7. **MCP Integration**: Connect to Model Context Protocol servers\n * 8. **Mode Dispatch**: Route to interactive, single-shot, RPC, or exec mode\n *\n * @param args - Command-line arguments (typically process.argv.slice(2))\n */\nexport async function main(args: string[]) {\n\tconst originalStderrWrite = process.stderr.write.bind(process.stderr) as (\n\t\tchunk: string,\n\t) => boolean;\n\tconst writeStartupErrorToStderr = (message: string): void => {\n\t\toriginalStderrWrite(message.endsWith(\"\\n\") ? message : `${message}\\n`);\n\t};\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 0: Early Exit Checks (before any async initialization)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Load environment variables from .env files (project and user level)\n\tloadEnv();\n\tconst startupProfiler = createStartupProfilerFromEnv();\n\tstartupProfiler.checkpoint(\"process:start\");\n\n\t// Parse arguments early to check for version/help flags before heavy initialization\n\tconst parsed = parseArgs(args);\n\tstartupProfiler.checkpoint(\"cli:parsed\");\n\tconst startupTelemetry = import(\"./telemetry/cli-startup.js\")\n\t\t.then(({ recordCliStartupTelemetry }) =>\n\t\t\trecordCliStartupTelemetry({\n\t\t\t\targs: parsed,\n\t\t\t\tclientVersion: VERSION,\n\t\t\t\tcommandCountLockTimeoutMs: 0,\n\t\t\t\trawArgs: args,\n\t\t\t}),\n\t\t)\n\t\t.catch(() => undefined);\n\n\t// Handle --version early exit (before any async operations)\n\tif (parsed.version) {\n\t\tconsole.log(`Maestro v${VERSION}`);\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\tprocess.exit(0);\n\t}\n\n\t// Handle --help early exit (before any logging redirection or heavy init)\n\tif (parsed.help) {\n\t\tconst hiddenFlagTelemetry = parsed.helpHidden\n\t\t\t? recordStagedRolloutSurfaceUsage(\"hidden_flag_used\", {\n\t\t\t\t\tsurfaceId: \"cli:--help-hidden\",\n\t\t\t\t\tsurfaceType: \"cli_flag\",\n\t\t\t\t\towner: \"platform-cli\",\n\t\t\t\t})\n\t\t\t: Promise.resolve();\n\t\tprintHelp(VERSION, { includeHidden: parsed.helpHidden });\n\t\tawait waitForStartupTelemetryForImmediateExit(\n\t\t\tPromise.all([startupTelemetry, hiddenFlagTelemetry]).then(\n\t\t\t\t() => undefined,\n\t\t\t),\n\t\t);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.listModesAll) {\n\t\tconst hiddenFlagTelemetry = recordStagedRolloutSurfaceUsage(\n\t\t\t\"hidden_flag_used\",\n\t\t\t{\n\t\t\t\tsurfaceId: \"cli:--list-modes-all\",\n\t\t\t\tsurfaceType: \"cli_flag\",\n\t\t\t\towner: \"agent-runtime\",\n\t\t\t},\n\t\t);\n\t\tprintAllAgentModes();\n\t\tawait waitForStartupTelemetryForImmediateExit(\n\t\t\tPromise.all([startupTelemetry, hiddenFlagTelemetry]).then(\n\t\t\t\t() => undefined,\n\t\t\t),\n\t\t);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.error) {\n\t\tconsole.error(chalk.red(parsed.error));\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\tprocess.exit(1);\n\t}\n\n\tif (parsed.command === \"modes\") {\n\t\tconst { handleModesCommand } = await import(\"./cli/commands/modes.js\");\n\t\tawait handleModesCommand(parsed.subcommand, parsed.messages, {\n\t\t\tprovider: parsed.provider,\n\t\t\tjson: parsed.execJson,\n\t\t});\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\treturn;\n\t}\n\n\tconst isHeadlessMode = isHeadlessModeRequested(parsed);\n\tconst willDispatchHeadlessMode = willDispatchHeadlessRuntime(parsed);\n\n\tconst exitWithEarlyStartupError = (error: unknown): never => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tif (isHeadlessMode) {\n\t\t\tprocess.stdout.write(\n\t\t\t\t`${JSON.stringify({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `Headless startup failed: ${message}`,\n\t\t\t\t\tfatal: true,\n\t\t\t\t\terror_type: \"fatal\",\n\t\t\t\t})}\\n`,\n\t\t\t);\n\t\t} else {\n\t\t\twriteStartupErrorToStderr(chalk.red(message));\n\t\t}\n\t\tprocess.exit(1);\n\t};\n\n\ttry {\n\t\tvalidateCodexFlags(args, parsed.help ? \"help\" : parsed.command);\n\t} catch (error) {\n\t\texitWithEarlyStartupError(error);\n\t}\n\n\tif (parsed.command === \"codex\") {\n\t\tconst { handleCodexCommand } = await import(\"./cli/commands/codex.js\");\n\t\tconst commandArgs = [...(parsed.commandArgs ?? [])];\n\t\tif (parsed.subcommand === \"login\" && parsed.force) {\n\t\t\tcommandArgs.push(\"--force\");\n\t\t}\n\t\tawait handleCodexCommand(parsed.subcommand, commandArgs);\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\treturn;\n\t}\n\n\tconst replayScenarioPath =\n\t\tparsed.replayScenarioPath ?? process.env.MAESTRO_SCENARIO_PATH;\n\tif (replayScenarioPath) {\n\t\tparsed.replayScenarioPath = replayScenarioPath;\n\t\tprocess.env.MAESTRO_SCENARIO_PATH = replayScenarioPath;\n\t\tprocess.env.MAESTRO_SCENARIO_ID =\n\t\t\tawait readReplayScenarioId(replayScenarioPath);\n\t\tprocess.env.MAESTRO_MODE = \"replay\";\n\t\tparsed.provider = \"scripted-replay\";\n\t\tparsed.model = \"maestro-replay-v1\";\n\t}\n\n\t// Handle `maestro hosted-runner` before importing web-server so hosted\n\t// defaults are visible to its module-level runtime profile.\n\tif (parsed.command === \"hosted-runner\") {\n\t\tconst { handleHostedRunnerCommand } = await import(\n\t\t\t\"./cli/commands/hosted-runner.js\"\n\t\t);\n\t\tawait handleHostedRunnerCommand(parsed.commandArgs ?? [], {\n\t\t\tdefaultPort: parsed.port,\n\t\t});\n\t\treturn;\n\t}\n\n\t// Handle `maestro web` early exit (start the bundled web server + UI).\n\tif (parsed.command === \"web\") {\n\t\tif (parsed.messages.length > 0) {\n\t\t\tconsole.error(\n\t\t\t\tchalk.red(\n\t\t\t\t\t\"`maestro web` does not accept prompt arguments. Use `maestro` (interactive) or `maestro exec` instead.\",\n\t\t\t\t),\n\t\t\t);\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\tconst { startWebServer } = await import(\"./web-server.js\");\n\t\tconst { migrate } = await import(\"./db/migrate.js\");\n\t\tconst port =\n\t\t\tparsed.port ?? (Number.parseInt(process.env.PORT || \"8080\", 10) || 8080);\n\t\tawait migrate();\n\t\tawait startWebServer(port, { skipStartupMigration: true });\n\t\treturn;\n\t}\n\n\t// Bootstrap/status commands need stdout to stay under their direct control.\n\t// In particular, `maestro init --json` must be parseable JSON with any\n\t// progress or diagnostic output on stderr, so route it before config loading\n\t// can emit normal CLI startup logs.\n\tif (parsed.command === \"init\") {\n\t\tconst { handleInitCommand } = await import(\"./cli/commands/init.js\");\n\t\tawait handleInitCommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"status\") {\n\t\tconst { handleStatusCommand } = await import(\"./cli/commands/status.js\");\n\t\tawait handleStatusCommand();\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"context\") {\n\t\tconst { handleContextCommand } = await import(\"./cli/commands/context.js\");\n\t\tawait handleContextCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t\tliveMcp: parsed.contextLiveMcp,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"scenario\") {\n\t\tconst { handleScenarioCommand } = await import(\n\t\t\t\"./cli/commands/scenario.js\"\n\t\t);\n\t\tawait handleScenarioCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t\tjunitPath: parsed.junitPath,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"skill\") {\n\t\tconst { handleSkillCommand } = await import(\"./cli/commands/skill.js\");\n\t\tawait handleSkillCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\t// If we're about to enter interactive TUI mode (no prompt messages and not RPC/exec),\n\t// or headless mode (stdout is JSON-only), redirect all logging/console output to a file.\n\t// This must run before config/model loading to catch any early warnings.\n\tconst isLikelyInteractiveTui =\n\t\t!parsed.messages.length &&\n\t\t(parsed.mode === \"text\" || parsed.mode === undefined) &&\n\t\tparsed.command === undefined;\n\tif (isLikelyInteractiveTui || willDispatchHeadlessMode) {\n\t\tconst {\n\t\t\tredirectLoggerToFile,\n\t\t\tredirectConsoleToLogger,\n\t\t\tredirectStderrToLogger,\n\t\t\tpipeProcessEventsToLogger,\n\t\t} = await import(\"./utils/logger.js\");\n\t\tredirectLoggerToFile();\n\t\tredirectConsoleToLogger({ preserveErrorStderr: willDispatchHeadlessMode });\n\t\tif (!willDispatchHeadlessMode) {\n\t\t\tredirectStderrToLogger();\n\t\t}\n\t\tpipeProcessEventsToLogger();\n\t}\n\n\tconst headlessRuntimeSelection = selectHeadlessRuntime(process.env, {\n\t\tallowLegacy: willDispatchHeadlessMode,\n\t});\n\trecordHeadlessRuntimeSelection(headlessRuntimeSelection);\n\n\tconst runtimeConfig = loadRuntimeConfig(parsed, process.cwd());\n\tstartupProfiler.checkpoint(\"config:loaded\");\n\tconst reasoningSummary =\n\t\truntimeConfig.config.model_supports_reasoning_summaries === false\n\t\t\t? undefined\n\t\t\t: runtimeConfig.config.model_reasoning_summary === \"none\"\n\t\t\t\t? null\n\t\t\t\t: runtimeConfig.config.model_reasoning_summary;\n\tconst exitWithStartupError = async (error: unknown): Promise<never> => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst stack = error instanceof Error ? error.stack : undefined;\n\t\tif (isHeadlessMode) {\n\t\t\tprocess.stdout.write(\n\t\t\t\t`${JSON.stringify({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `Headless startup failed: ${message}`,\n\t\t\t\t\tfatal: true,\n\t\t\t\t\terror_type: \"fatal\",\n\t\t\t\t})}\\n`,\n\t\t\t);\n\t\t\tprocess.stderr.write(`${stack ?? message}\\n`);\n\t\t} else {\n\t\t\twriteStartupErrorToStderr(chalk.red(message));\n\t\t}\n\t\tcaptureSentryException(error);\n\t\tawait flushSentry();\n\t\tprocess.exit(1);\n\t};\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 1: Environment and Telemetry Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Initialize OpenTelemetry tracing for observability\n\t// This is non-blocking (void) to avoid startup latency\n\tvoid initOpenTelemetry(\"composer-cli\");\n\tinitSentry(\"maestro-cli\");\n\n\tconst modelLoadPromise = (async () => {\n\t\tawait ensureModelsLoaded();\n\t\tstartupProfiler.checkpoint(\"models:loaded\");\n\t})();\n\tconst enterpriseContextPromise = (async () => {\n\t\tconst { enterpriseContext } = await import(\"./enterprise/context.js\");\n\t\tawait enterpriseContext.initialize();\n\t\tstartupProfiler.checkpoint(\"enterprise:initialized\");\n\t\treturn enterpriseContext;\n\t})();\n\n\t// Pre-load model registry and enterprise context in parallel. These are\n\t// independent startup costs, so overlapping them reduces cold-start latency.\n\tconst [enterpriseContext] = await Promise.all([\n\t\tenterpriseContextPromise,\n\t\tmodelLoadPromise,\n\t]);\n\tstartupProfiler.checkpoint(\"bootstrap:parallel\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 2: Enterprise Context Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Initialize audit integration if enterprise features are available\n\t// This logs all tool executions, model interactions, and session events\n\tif (enterpriseContext.isEnterprise()) {\n\t\tconst { initializeAuditIntegration } = await import(\n\t\t\t\"./enterprise/audit-integration.js\"\n\t\t);\n\t\tinitializeAuditIntegration();\n\n\t\t// Register cleanup handlers to properly end enterprise session on exit\n\t\t// This ensures audit logs capture session termination\n\t\tif (!enterpriseCleanupRegistered) {\n\t\t\tconst cleanup = () => {\n\t\t\t\tenterpriseContext.endSession();\n\t\t\t};\n\t\t\t// Don't register signal handlers in test mode - vitest manages process lifecycle\n\t\t\tconst isTestMode =\n\t\t\t\tprocess.env.VITEST === \"true\" || process.env.NODE_ENV === \"test\";\n\t\t\tif (!isTestMode) {\n\t\t\t\tprocess.once(\"beforeExit\", cleanup);\n\t\t\t\tprocess.once(\"SIGINT\", () => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t});\n\t\t\t\tprocess.once(\"SIGTERM\", () => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t});\n\t\t\t}\n\t\t\tenterpriseCleanupRegistered = true;\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 3: CLI Argument Parsing (already done earlier for early exits)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Arguments were already parsed earlier to check for --version flag\n\t// The parsed result is reused here\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 4: Authentication Setup\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Determine authentication mode:\n\t// - auto: Try OAuth first, fall back to API key environment variables\n\t// - api-key: Require explicit API key from --api-key or env var\n\tconst authMode: AuthMode = parsed.authMode ?? \"auto\";\n\n\tconst { requireCredential } = createAuthSetup({\n\t\tauthMode,\n\t\texplicitApiKey: parsed.apiKey,\n\t});\n\tstartupProfiler.checkpoint(\"auth:configured\");\n\n\tif (parsed.command === \"exec\") {\n\t\tif (parsed.execFullAuto && parsed.execReadOnly) {\n\t\t\tawait exitWithStartupError(\n\t\t\t\t\"Cannot combine --full-auto with --read-only in maestro exec.\",\n\t\t\t);\n\t\t}\n\t}\n\n\t// Validate sandbox mode (applies to both exec and interactive modes)\n\tconst validSandboxModes = [\n\t\t\"docker\",\n\t\t\"local\",\n\t\t\"native\",\n\t\t\"none\",\n\t\t\"read-only\",\n\t\t\"workspace-write\",\n\t\t\"danger-full-access\",\n\t];\n\tif (parsed.sandbox && !validSandboxModes.includes(parsed.sandbox)) {\n\t\tawait exitWithStartupError(\n\t\t\t`Unknown sandbox mode \"${parsed.sandbox}\". Supported: ${validSandboxModes.join(\", \")}`,\n\t\t);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 5: Safety, LSP, and Checkpointing\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Enable safe mode if requested (restricts dangerous operations)\n\tif (parsed.safeMode) {\n\t\tprocess.env.MAESTRO_SAFE_MODE = \"1\";\n\t}\n\n\t// Load custom models file if specified\n\t// This allows users to define additional models beyond the built-in ones\n\tif (parsed.modelsFile) {\n\t\tprocess.env.MAESTRO_MODELS_FILE = parsed.modelsFile;\n\t\treloadModelConfig();\n\t}\n\n\t// Configure safe mode settings (e.g., disabling certain tools in sandboxed environments)\n\tconfigureSafeMode(true);\n\n\t// Register shutdown hooks for background tasks to ensure clean cleanup\n\tregisterBackgroundTaskShutdownHooks();\n\n\t// Bootstrap Language Server Protocol for IDE integration\n\t// This enables features like go-to-definition, hover info, and diagnostics\n\tawait bootstrapLsp();\n\n\t// Initialize checkpointing service for undo/redo functionality\n\t// PreToolUse hooks capture file snapshots before tool execution\n\tinitCheckpointService(process.cwd());\n\tconst disposeCheckpoint = (): void => disposeCheckpointService();\n\tif (!checkpointCleanupRegistered) {\n\t\tprocess.once(\"beforeExit\", disposeCheckpoint);\n\t\tprocess.once(\"SIGINT\", disposeCheckpoint);\n\t\tprocess.once(\"SIGTERM\", disposeCheckpoint);\n\t\tcheckpointCleanupRegistered = true;\n\t}\n\tstartupProfiler.checkpoint(\"runtime:prepared\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// Early Exit: Help Command\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst frameworkWarning = validateFrameworkPreference();\n\tif (frameworkWarning) {\n\t\tconsole.warn(\n\t\t\tchalk.yellow(`Framework preference warning: ${frameworkWarning}`),\n\t\t);\n\t}\n\n\t// Handle config commands\n\tif (parsed.command === \"config\") {\n\t\tconst {\n\t\t\thandleConfigValidate,\n\t\t\thandleConfigShow,\n\t\t\thandleConfigInit,\n\t\t\thandleConfigLocal,\n\t\t} = await import(\"./cli/commands/config.js\");\n\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"validate\":\n\t\t\t\tawait handleConfigValidate();\n\t\t\t\treturn;\n\t\t\tcase \"show\":\n\t\t\t\tawait handleConfigShow();\n\t\t\t\treturn;\n\t\t\tcase \"init\":\n\t\t\t\tawait handleConfigInit();\n\t\t\t\treturn;\n\t\t\tcase \"local\":\n\t\t\t\tawait handleConfigLocal();\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\n\t\t\t\t\t\t`Unknown config subcommand: ${parsed.subcommand || \"(none)\"}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config validate - Validate configuration\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config show - Show configuration details\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config init - Initialize configuration\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config local - Manage local providers\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\tif (parsed.command === \"openai\") {\n\t\tconst { handleOpenAICommand } = await import(\"./cli/commands/openai.js\");\n\t\tawait handleOpenAICommand(parsed.subcommand, parsed.messages);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"evalops\") {\n\t\tconst { handleEvalOpsCommand } = await import(\"./cli/commands/evalops.js\");\n\t\tawait handleEvalOpsCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"hooks\") {\n\t\tconst { handleHooksCommand } = await import(\"./cli/commands/hooks.js\");\n\t\tawait handleHooksCommand(parsed.subcommand);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"run\") {\n\t\tconst { handleRunCommand } = await import(\"./cli/commands/run.js\");\n\t\tawait handleRunCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"export\") {\n\t\tconst { handleExportCommand } = await import(\n\t\t\t\"./cli/commands/session-transfer.js\"\n\t\t);\n\t\tawait handleExportCommand(\n\t\t\tparsed.messages[0],\n\t\t\tparsed.messages[1],\n\t\t\tparsed.exportFormat,\n\t\t\t{ redactSecrets: parsed.redactSecrets },\n\t\t);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"import\") {\n\t\tconst { handleImportCommand } = await import(\n\t\t\t\"./cli/commands/session-transfer.js\"\n\t\t);\n\t\tawait handleImportCommand(parsed.messages[0]);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"memory\") {\n\t\tconst { handleMemoryCommand } = await import(\"./cli/commands/memory.js\");\n\t\tawait handleMemoryCommand(parsed.subcommand, parsed.messages);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"remote\") {\n\t\tconst { handleRemoteCommand } = await import(\"./cli/commands/remote.js\");\n\t\tawait handleRemoteCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"a2a\") {\n\t\tconst { handleA2ACommand } = await import(\"./cli/commands/a2a.js\");\n\t\tawait handleA2ACommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"operating-plane\") {\n\t\tconst { handleOperatingPlaneCommand } = await import(\n\t\t\t\"./cli/commands/operating-plane.js\"\n\t\t);\n\t\tawait handleOperatingPlaneCommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"anthropic\") {\n\t\tconst { handleAnthropicCommand } = await import(\n\t\t\t\"./cli/commands/anthropic.js\"\n\t\t);\n\t\tawait handleAnthropicCommand();\n\t\treturn;\n\t}\n\n\t// Handle cost commands\n\tif (parsed.command === \"cost\") {\n\t\tconst { handleCostSummary, handleCostClear, handleCostBreakdown } =\n\t\t\tawait import(\"./cli/commands/cost.js\");\n\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"clear\":\n\t\t\t\tawait handleCostClear();\n\t\t\t\treturn;\n\t\t\tcase \"breakdown\":\n\t\t\t\tawait handleCostBreakdown();\n\t\t\t\treturn;\n\t\t\tcase \"today\":\n\t\t\tcase \"yesterday\":\n\t\t\tcase \"week\":\n\t\t\tcase \"month\":\n\t\t\tcase \"all\":\n\t\t\t\tawait handleCostSummary(parsed.subcommand);\n\t\t\t\treturn;\n\t\t\tcase undefined:\n\t\t\t\t// Default to today\n\t\t\t\tawait handleCostSummary(\"today\");\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`Unknown cost subcommand: ${parsed.subcommand}`),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t\" maestro cost [today] - Show today's costs (default)\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost yesterday - Show yesterday's costs\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro cost week - Show last 7 days\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost month - Show last 30 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost all - Show all time costs\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost breakdown - Detailed breakdown\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro cost clear - Clear usage data\"));\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\tif (parsed.command === \"stats\") {\n\t\tconst { handleStatsCommand } = await import(\"./cli/commands/stats.js\");\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase undefined:\n\t\t\tcase \"today\":\n\t\t\tcase \"yesterday\":\n\t\t\tcase \"week\":\n\t\t\tcase \"7d\":\n\t\t\tcase \"month\":\n\t\t\tcase \"30d\":\n\t\t\tcase \"all\":\n\t\t\t\tawait handleStatsCommand(parsed.subcommand, {\n\t\t\t\t\tsessionId: parsed.session,\n\t\t\t\t\tformat: parsed.exportFormat,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`Unknown stats subcommand: ${parsed.subcommand}`),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats - Show last 7 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats --session <id> - Show one session\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro stats today - Show today\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats month - Show last 30 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro stats all - Show all time\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats --format json|csv - Export usage data\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// Handle models commands\n\tif (parsed.command === \"models\") {\n\t\tconst { handleModelsList, handleModelsProviders } = await import(\n\t\t\t\"./cli/commands/models.js\"\n\t\t);\n\t\tconst providerFilter = parsed.provider;\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"providers\":\n\t\t\t\tawait handleModelsProviders(providerFilter);\n\t\t\t\treturn;\n\t\t\tcase undefined:\n\t\t\tcase \"list\":\n\t\t\t\tawait handleModelsList(providerFilter);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\n\t\t\t\t\t\t`Unknown models subcommand: ${parsed.subcommand || \"(none)\"}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t\" maestro models list - List registered models\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro models providers - Summarize providers\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 6: Special Command Handling (agents init)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Track agents init state for deferred execution\n\tlet agentsInitPrompt: string | null = null;\n\tlet agentsInitPath: string | null = null;\n\n\tconst quoteShellArg = (value: string): string => {\n\t\tif (/^[A-Za-z0-9_./:=@+-]+$/.test(value)) {\n\t\t\treturn value;\n\t\t}\n\t\tif (process.platform === \"win32\") {\n\t\t\tconst escaped = value\n\t\t\t\t.replace(\n\t\t\t\t\t/(\\\\*)\"/g,\n\t\t\t\t\t(_match, slashes: string) => `${slashes}${slashes}\\\\\"`,\n\t\t\t\t)\n\t\t\t\t.replace(/\\\\+$/g, (slashes) => `${slashes}${slashes}`);\n\t\t\treturn `\"${escaped}\"`;\n\t\t}\n\t\treturn `'${value.replaceAll(\"'\", \"'\\\\''\")}'`;\n\t};\n\tconst buildAgentsInitRerunCommand = (\n\t\ttargetArg: string | undefined,\n\t): string =>\n\t\ttargetArg\n\t\t\t? `maestro agents init ${quoteShellArg(targetArg)} --force`\n\t\t\t: \"maestro agents init --force\";\n\n\t// Handle \"maestro agents init\" command to generate AGENTS.md\n\tif (parsed.command === \"agents\") {\n\t\tconst { buildAgentsInitPrompt, handleAgentsInit } = await import(\n\t\t\t\"./cli/commands/agents.js\"\n\t\t);\n\t\tif (parsed.subcommand && parsed.subcommand !== \"init\") {\n\t\t\tconsole.error(\n\t\t\t\tchalk.red(\n\t\t\t\t\t`Unknown agents subcommand: ${parsed.subcommand}. Try \"maestro agents init\"`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tprocess.exit(1);\n\t\t}\n\t\ttry {\n\t\t\tconst targetArg = parsed.messages[0];\n\t\t\tconst result = handleAgentsInit(targetArg, { force: parsed.force });\n\t\t\tif (result.action === \"preview\") {\n\t\t\t\tconst rerunCommand = buildAgentsInitRerunCommand(targetArg);\n\t\t\t\tconsole.log(\n\t\t\t\t\t[\n\t\t\t\t\t\t`AGENTS instructions already exist at ${result.path}.`,\n\t\t\t\t\t\t`Preview the proposed update below, then re-run with \\`${rerunCommand}\\` to apply it.`,\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\tsanitizeTerminalPreview(result.diff ?? \"\"),\n\t\t\t\t\t].join(\"\\n\"),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (result.action === \"updated\") {\n\t\t\t\tconsole.log(`Updated AGENTS instructions at ${result.path}.`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tagentsInitPath = result.path;\n\t\t\tagentsInitPrompt = buildAgentsInitPrompt(result.path, result.sources);\n\t\t\tif (parsed.messages.length === 0) {\n\t\t\t\tparsed.messages = [agentsInitPrompt];\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message =\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: \"Failed to initialize AGENTS.md\";\n\t\t\tconsole.error(chalk.red(message));\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 7: Session Management\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Create session manager for conversation persistence\n\t// The session manager handles:\n\t// - Session file creation and storage (~/.maestro/agent/sessions/)\n\t// - Message persistence in JSONL format\n\t// - Session resume and continuation\n\t// - Model/thinking level tracking across restarts\n\tconst sessionManager = new SessionManager(\n\t\tparsed.continue && !parsed.resume, // continueSession: auto-load most recent\n\t\tparsed.session, // customSessionPath: explicit session file\n\t);\n\tlet scenarioRecorder:\n\t\t| import(\"./server/scenario-recorder.js\").ScriptedScenarioRecorder\n\t\t| undefined;\n\tif (parsed.recordScenarioPath) {\n\t\tconst { ScriptedScenarioRecorder } = await import(\n\t\t\t\"./server/scenario-recorder.js\"\n\t\t);\n\t\tscenarioRecorder = new ScriptedScenarioRecorder({\n\t\t\toutPath: parsed.recordScenarioPath,\n\t\t\trecordedFrom: () => sessionManager.getSessionId(),\n\t\t});\n\t}\n\tstartupProfiler.checkpoint(\"session:created\");\n\n\tlet execResumeApplied = false;\n\tif (parsed.command === \"exec\") {\n\t\tlet targetPath: string | null = null;\n\t\tif (parsed.execResumeId) {\n\t\t\ttargetPath = sessionManager.getSessionFileById(parsed.execResumeId);\n\t\t\tif (!targetPath) {\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`No session found with id ${parsed.execResumeId}.`),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t} else if (parsed.execUseLast) {\n\t\t\tconst sessions = sessionManager.loadAllSessions();\n\t\t\tconst lastExec = sessions.find((session) =>\n\t\t\t\tsession.summary?.startsWith(EXEC_SESSION_SUMMARY_PREFIX),\n\t\t\t);\n\t\t\tif (!lastExec) {\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\"No previous maestro exec sessions were found.\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t\ttargetPath = lastExec.path;\n\t\t}\n\t\tif (targetPath) {\n\t\t\tsessionManager.setSessionFile(targetPath);\n\t\t\texecResumeApplied = true;\n\t\t}\n\t}\n\n\t// Disable session saving if --no-session flag is set\n\tif (parsed.noSession) {\n\t\tsessionManager.disable();\n\t}\n\n\t// Handle --resume flag: show session selector\n\tif (parsed.resume) {\n\t\tconst selectedSession = await selectSession(sessionManager);\n\t\tif (!selectedSession) {\n\t\t\tconsole.log(chalk.dim(\"No session selected\"));\n\t\t\treturn;\n\t\t}\n\t\t// Set the selected session as the active session\n\t\tsessionManager.setSessionFile(selectedSession);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 8: Model Resolution\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tlet model!: Model<Api>;\n\ttry {\n\t\tconst { resolveModelFromArgs } = await import(\n\t\t\t\"./bootstrap/model-resolution-setup.js\"\n\t\t);\n\t\tconst resolved = await resolveModelFromArgs({\n\t\t\tparsedProvider: parsed.provider,\n\t\t\tparsedModel: parsed.model,\n\t\t\trequireCredential,\n\t\t});\n\t\tmodel = resolved.model;\n\t} catch (error) {\n\t\tawait exitWithStartupError(error);\n\t}\n\t// Determine approval mode for tool execution:\n\t// - \"prompt\": Ask user before each tool execution (default for interactive)\n\t// - \"auto\": Automatically approve all tools (default for non-interactive)\n\t// - \"fail\": Reject all tool executions (for read-only mode)\n\tconst isInteractiveTui =\n\t\tparsed.messages.length === 0 && (parsed.mode ?? \"text\") !== \"rpc\";\n\tconst defaultApprovalMode: ApprovalMode = isInteractiveTui\n\t\t? \"prompt\"\n\t\t: \"auto\";\n\n\t// Override approval mode based on exec flags\n\tconst approvalModeOverride = (() => {\n\t\tif (parsed.command === \"exec\") {\n\t\t\tif (parsed.execReadOnly) return \"fail\"; // Read-only: reject all writes\n\t\t\tif (parsed.execFullAuto) return \"auto\"; // Full-auto: approve everything\n\t\t}\n\t\treturn parsed.approvalMode ?? defaultApprovalMode;\n\t})();\n\n\t// Create approval service that controls tool execution authorization\n\tconst approvalService = isHeadlessMode\n\t\t? new ServerRequestActionApprovalService(\n\t\t\t\tapprovalModeOverride,\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: new PlatformBackedActionApprovalService(approvalModeOverride, {\n\t\t\t\tsessionIdProvider: () => sessionManager.getSessionId() ?? undefined,\n\t\t\t});\n\tconst headlessClientToolService = isHeadlessMode\n\t\t? clientToolService.forSession(\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: undefined;\n\tconst interactiveClientToolService =\n\t\tisInteractiveTui && !isHeadlessMode\n\t\t\t? new TuiClientToolService()\n\t\t\t: undefined;\n\tconst toolRetryMode: ToolRetryMode =\n\t\tisInteractiveTui && !isHeadlessMode ? \"prompt\" : \"skip\";\n\tconst toolRetryService = isHeadlessMode\n\t\t? new ServerRequestToolRetryService(\n\t\t\t\ttoolRetryMode,\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: new ToolRetryService(toolRetryMode);\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 10: Tool Registry and Sandbox Setup\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tlet toolsResult!: Awaited<\n\t\tReturnType<\n\t\t\ttypeof import(\"./bootstrap/tools-setup.js\").createToolsAndSandbox\n\t\t>\n\t>;\n\ttry {\n\t\tconst { createToolsAndSandbox } = await import(\n\t\t\t\"./bootstrap/tools-setup.js\"\n\t\t);\n\t\ttoolsResult = await createToolsAndSandbox({\n\t\t\tparsedTools: parsed.tools,\n\t\t\tparsedSandbox: parsed.sandbox,\n\t\t\tmodelApi: model.api,\n\t\t\tcwd: process.cwd(),\n\t\t});\n\t} catch (error) {\n\t\tawait exitWithStartupError(error);\n\t}\n\tconst { allTools, sandbox, sandboxMode } = toolsResult;\n\tstartupProfiler.checkpoint(\"tools:prepared\", { tools: allTools.length });\n\tconst useInteractiveClientTools = Boolean(interactiveClientToolService);\n\tconst replaceAskUserTool = <T extends typeof allTools>(tools: T): T =>\n\t\ttools.map((tool) =>\n\t\t\ttool.name === \"ask_user\" ? askUserClientTool : tool,\n\t\t) as T;\n\tconst configuredAllTools = useInteractiveClientTools\n\t\t? replaceAskUserTool(allTools)\n\t\t: allTools;\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 11: System Prompt Assembly\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Build the system prompt with project context after sandbox setup so runtime\n\t// constraint fragments reflect the resolved sandbox state, not just the\n\t// requested CLI mode.\n\tconst resolvedConstraintSandboxMode = sandbox\n\t\t? sandbox instanceof LocalSandbox\n\t\t\t? \"local\"\n\t\t\t: (sandboxMode ?? null)\n\t\t: \"none\";\n\tconst systemPromptToolNames =\n\t\tparsed.tools ??\n\t\t(model.api === \"openai-codex-app-server\"\n\t\t\t? toolsResult.baseTools.map((tool) => tool.name)\n\t\t\t: undefined);\n\tconst runtimeConstraints = detectRuntimeConstraintContext({\n\t\tcwd: process.cwd(),\n\t\tsandboxMode: resolvedConstraintSandboxMode,\n\t\tsandboxEnabled:\n\t\t\tBoolean(sandbox) && resolvedConstraintSandboxMode !== \"local\",\n\t\treadOnly: parsed.execReadOnly || parsed.readonly ? true : undefined,\n\t});\n\tconst { systemPrompt, promptMetadata, promptContextManifest } =\n\t\tawait resolveMaestroSystemPrompt({\n\t\t\tcustomPrompt: parsed.systemPrompt,\n\t\t\ttoolNames: systemPromptToolNames,\n\t\t\tappendPrompt: parsed.appendSystemPrompt,\n\t\t\truntimeConstraints,\n\t\t\tcwd: process.cwd(),\n\t\t});\n\tconst unifiedContextManifest = loadUnifiedContextManifest(process.cwd(), {\n\t\tprojectDocs: promptContextManifest,\n\t});\n\tstartupProfiler.checkpoint(\"prompt:assembled\", {\n\t\tsystem_bytes: systemPrompt.length,\n\t});\n\tconst systemPromptSourcePaths = resolveExplicitSystemPromptSourcePaths(\n\t\tparsed.systemPrompt,\n\t\tparsed.appendSystemPrompt,\n\t);\n\t// Register sandbox cleanup on exit (only if sandbox is active)\n\tif (sandbox && toolsResult.disposeSandbox) {\n\t\tconst cleanupSandbox = toolsResult.disposeSandbox;\n\t\tif (!sandboxCleanupRegistered) {\n\t\t\tprocess.once(\"beforeExit\", () => void cleanupSandbox());\n\t\t\tprocess.once(\"SIGINT\", () => {\n\t\t\t\tvoid cleanupSandbox();\n\t\t\t\tprocess.exit(0);\n\t\t\t});\n\t\t\tprocess.once(\"SIGTERM\", () => {\n\t\t\t\tvoid cleanupSandbox();\n\t\t\t\tprocess.exit(0);\n\t\t\t});\n\t\t\tsandboxCleanupRegistered = true;\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 12: Agent Creation\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { createAgentInstance } = await import(\n\t\t\"./bootstrap/agent-creation-setup.js\"\n\t);\n\tconst { setTaskBudgetTotal } = await import(\"./agent/task-budget-access.js\");\n\tconst enterpriseUser = (() => {\n\t\tconst u = enterpriseContext.getUser();\n\t\treturn u ? { id: u.userId, orgId: u.orgId } : undefined;\n\t})();\n\tconst { agent } = createAgentInstance({\n\t\tsystemPrompt,\n\t\tpromptMetadata,\n\t\tsystemPromptSourcePaths,\n\t\tpromptContextManifest,\n\t\tunifiedContextManifest,\n\t\tmodel,\n\t\treasoningSummary,\n\t\tallTools: configuredAllTools,\n\t\tsandbox,\n\t\tsandboxMode: sandboxMode ?? null,\n\t\tapprovalService,\n\t\ttoolRetryService,\n\t\tclientToolService:\n\t\t\theadlessClientToolService ?? interactiveClientToolService,\n\t\trequireCredential,\n\t\tenterpriseUser,\n\t\treadonly: parsed.readonly,\n\t\tcomposer: parsed.composer,\n\t\tcwd: process.cwd(),\n\t});\n\tsetTaskBudgetTotal(agent, parsed.taskBudget);\n\tstartupProfiler.checkpoint(\"agent:ready\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 11.5: TypeScript Hooks Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { initializeTypeScriptHooks } = await import(\n\t\t\"./bootstrap/hooks-setup.js\"\n\t);\n\tconst { tsHooks } = await initializeTypeScriptHooks({\n\t\tagent,\n\t\tsessionManager,\n\t\tcwd: process.cwd(),\n\t\tbaseTools: configuredAllTools,\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 12: MCP (Model Context Protocol) Integration\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { initializeMcpServers } = await import(\"./bootstrap/mcp-setup.js\");\n\tinitializeMcpServers({\n\t\tagent,\n\t\tbaseTools: configuredAllTools,\n\t\tcwd: process.cwd(),\n\t});\n\tstartupProfiler.checkpoint(\"mcp:bootstrap_queued\");\n\n\t// Determine mode early to know if we should print messages\n\tconst isInteractive = parsed.messages.length === 0;\n\tconst mode = parsed.mode || \"text\";\n\t// Don't print messages in headless mode - stdout is for JSON only\n\tconst shouldPrintMessages =\n\t\t(isInteractive || mode === \"text\") &&\n\t\tmode !== \"headless\" &&\n\t\t!parsed.headless;\n\n\tconst isGitRepository = isInsideGitRepository();\n\n\t// Log sandbox status\n\tif (sandbox && shouldPrintMessages) {\n\t\tconsole.log(chalk.dim(`Sandbox enabled (mode: ${sandboxMode})`));\n\t}\n\n\tif (\n\t\tapprovalModeOverride === \"auto\" &&\n\t\t!isGitRepository &&\n\t\tshouldPrintMessages\n\t) {\n\t\tconsole.log(\n\t\t\tchalk.yellow(\n\t\t\t\t\"Auto approval is enabled outside a git repository. Changes will not be version controlled.\",\n\t\t\t),\n\t\t);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 13: Session Restoration\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst shouldRestoreSession =\n\t\tparsed.continue || parsed.resume || execResumeApplied;\n\tconst isFreshInteractiveSession =\n\t\tisInteractive && !shouldRestoreSession && mode !== \"rpc\";\n\n\tconst { restoreSessionState } = await import(\n\t\t\"./bootstrap/session-restoration-setup.js\"\n\t);\n\tconst { startupChangelogSummary, updateNotice, scopedModels } =\n\t\tawait restoreSessionState({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tshouldRestoreSession,\n\t\t\tisContinueOrResume: Boolean(parsed.continue || parsed.resume),\n\t\t\tshouldPrintMessages,\n\t\t\tisFreshInteractiveSession,\n\t\t\tversion: VERSION,\n\t\t\tmodels: parsed.models,\n\t\t});\n\n\tawait applySessionStartHooks({\n\t\tagent,\n\t\tsessionManager,\n\t\tcwd: process.cwd(),\n\t\tsource: resolveSessionStartHookSource({\n\t\t\tmode,\n\t\t\tcommand: parsed.command,\n\t\t\tisInteractive,\n\t\t\theadless: parsed.headless,\n\t\t\tshouldRestoreSession,\n\t\t}),\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 14.5: Event Subscriptions\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { setupEventSubscriptions } = await import(\n\t\t\"./bootstrap/event-subscriptions-setup.js\"\n\t);\n\tconst automaticMemoryConsolidation =\n\t\tcreateAutomaticMemoryConsolidationCoordinator({\n\t\t\tcreateAgent: async () =>\n\t\t\t\tcreateBackgroundTextAgent({\n\t\t\t\t\tmodel: agent.state.model as Model<Api>,\n\t\t\t\t\tsystemPrompt: getMemoryConsolidationSystemPrompt(),\n\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\tgetAuthContext: (provider) => requireCredential(provider, false),\n\t\t\t\t}),\n\t\t\tgetModel: () => agent.state.model as Model<Api>,\n\t\t});\n\tconst automaticMemoryExtraction = createAutomaticMemoryExtractionCoordinator({\n\t\tcreateAgent: async () =>\n\t\t\tcreateBackgroundTextAgent({\n\t\t\t\tmodel: agent.state.model as Model<Api>,\n\t\t\t\tsystemPrompt: getMemoryExtractionSystemPrompt(),\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tgetAuthContext: (provider) => requireCredential(provider, false),\n\t\t\t}),\n\t\tgetModel: () => agent.state.model as Model<Api>,\n\t\tonProcessed: () => automaticMemoryConsolidation.schedule(),\n\t\tsessionManager,\n\t});\n\tsetupEventSubscriptions({\n\t\tagent,\n\t\tsessionManager,\n\t\tapprovalMode: (approvalModeOverride ?? \"prompt\") as\n\t\t\t| \"auto\"\n\t\t\t| \"prompt\"\n\t\t\t| \"fail\",\n\t\tsandboxMode,\n\t\ttsHookCount: tsHooks.length,\n\t\tcwd: process.cwd(),\n\t\tenterpriseContext,\n\t\tautomaticMemoryExtraction,\n\t\tscenarioReplay:\n\t\t\tparsed.replayScenarioPath && process.env.MAESTRO_SCENARIO_ID\n\t\t\t\t? {\n\t\t\t\t\t\tpath: scenarioSourceLabel(parsed.replayScenarioPath),\n\t\t\t\t\t\tscenarioId: process.env.MAESTRO_SCENARIO_ID,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\tscenarioRecorder,\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 14: Runtime Mode Dispatch\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Route to the appropriate runtime mode based on command and arguments:\n\t// 1. agents init: Generate AGENTS.md file\n\t// 2. RPC mode: JSON-over-stdio protocol for programmatic control\n\t// 3. Interactive TUI: Full terminal interface\n\t// 4. Exec mode: Non-interactive batch execution\n\t// 5. Single-shot: Process CLI messages and exit\n\ttry {\n\t\tif (agentsInitPrompt) {\n\t\t\tstartupProfiler.terminal(\"exec:ready\", { mode: \"agents\" });\n\t\t\tconst cwd = process.cwd();\n\t\t\tconst targetPath = agentsInitPath ?? \"AGENTS.md\";\n\t\t\tconst displayPath =\n\t\t\t\ttargetPath.startsWith(cwd) && targetPath !== cwd\n\t\t\t\t\t? `.${targetPath.slice(cwd.length)}`\n\t\t\t\t\t: targetPath;\n\t\t\tconst runMode: Extract<Mode, \"text\" | \"json\"> =\n\t\t\t\tmode === \"rpc\" || mode === \"headless\" ? \"text\" : mode;\n\t\t\tconsole.log(chalk.green(`Drafting AGENTS.md at ${displayPath}...`));\n\t\t\tawait runSingleShotMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\t[agentsInitPrompt],\n\t\t\t\trunMode,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(`AGENTS.md generated at ${displayPath}`));\n\t\t} else if (mode === \"headless\" || parsed.headless) {\n\t\t\t// Headless mode - for native TUI communication\n\t\t\tstartupProfiler.terminal(\"headless:ready\");\n\t\t\tawait runHeadlessMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tapprovalService,\n\t\t\t\ttoolRetryService,\n\t\t\t\t{ runtimeSelection: headlessRuntimeSelection },\n\t\t\t);\n\t\t} else if (mode === \"rpc\") {\n\t\t\t// RPC mode - headless operation\n\t\t\tstartupProfiler.terminal(\"rpc:ready\");\n\t\t\tconst { runRpcMode } = await import(\"./cli/rpc-mode.js\");\n\t\t\tawait runRpcMode(agent, sessionManager);\n\t\t} else if (isInteractive) {\n\t\t\t// No messages and not RPC - use TUI\n\t\t\tstartupProfiler.terminal(\"ui:ready\");\n\t\t\tawait runInteractiveMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tVERSION,\n\t\t\t\tapprovalService,\n\t\t\t\ttoolRetryService,\n\t\t\t\tparsed.apiKey,\n\t\t\t\t{\n\t\t\t\t\tclientToolService: interactiveClientToolService,\n\t\t\t\t\tmodelScope: scopedModels,\n\t\t\t\t\tstartupChangelogSummary,\n\t\t\t\t\tupdateNotice,\n\t\t\t\t},\n\t\t\t);\n\t\t} else if (parsed.command === \"exec\") {\n\t\t\tstartupProfiler.terminal(\"exec:ready\");\n\t\t\tawait runExecCommand({\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tprompts: parsed.messages,\n\t\t\t\tjsonl: Boolean(parsed.execJson),\n\t\t\t\tsandboxMode: sandboxMode,\n\t\t\t\toutputSchema: parsed.execOutputSchema,\n\t\t\t\toutputLastMessage: parsed.execOutputLast,\n\t\t\t});\n\t\t} else {\n\t\t\t// CLI mode with messages\n\t\t\tstartupProfiler.terminal(\"cli:ready\");\n\t\t\tawait runSingleShotMode(agent, sessionManager, parsed.messages, mode);\n\t\t}\n\t} finally {\n\t\tawait automaticMemoryExtraction.flush();\n\t\tawait automaticMemoryConsolidation.flush();\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Main Entry Point - Maestro CLI Application\n *\n * This module orchestrates the complete initialization sequence for the Maestro CLI,\n * including authentication, model resolution, session management, and runtime mode\n * selection. It serves as the single entry point that routes execution to the\n * appropriate mode (interactive TUI, single-shot, RPC, or exec).\n *\n * ## Initialization Sequence\n *\n * The startup process follows a specific order to ensure proper dependency resolution:\n *\n * ```\n * 1. Environment Loading\n * ├── Load .env files (via dotenv)\n * ├── Initialize OpenTelemetry for tracing\n * └── Load model registry (async, before UI)\n *\n * 2. Enterprise Context (optional)\n * ├── Initialize user/org tracking\n * └── Set up audit logging if enterprise features enabled\n *\n * 3. CLI Argument Parsing\n * ├── Parse command-line flags\n * └── Handle --help, config commands, and other early exits\n *\n * 4. Authentication Resolution\n * ├── Determine auth mode (auto or api-key)\n * ├── Resolve credentials for the selected provider\n * └── Build error messages for missing credentials\n *\n * 5. Safety & Sandboxing\n * ├── Configure safe mode\n * ├── Register background task shutdown hooks\n * ├── Bootstrap LSP\n * └── Initialize checkpointing for undo/redo\n *\n * 6. Model Resolution\n * ├── Resolve provider and model from CLI args or defaults\n * ├── Validate against policy restrictions\n * └── Require valid credentials for selected provider\n *\n * 7. Session Initialization\n * ├── Create or load session manager\n * ├── Handle --continue, --resume, and exec resume modes\n * └── Load previous messages if continuing session\n *\n * 8. Agent & Tool Setup\n * ├── Build system prompt with project context\n * ├── Configure approval service (prompt, auto, fail modes)\n * ├── Initialize sandbox if requested (docker, local, none)\n * ├── Create Agent with transport, tools, and context sources\n * └── Initialize MCP servers for additional tools\n *\n * 9. Runtime Mode Selection\n * ├── Interactive TUI: Full terminal interface with input/output\n * ├── Single-shot: Process messages and output result\n * ├── RPC: JSON-over-stdin/stdout for programmatic control\n * └── Exec: Non-interactive batch execution with structured output\n * ```\n *\n * ## Authentication Modes\n *\n * The CLI supports multiple authentication strategies:\n *\n * | Mode | Description |\n * |----------|--------------------------------------------------|\n * | auto | Try OAuth first, fall back to API key env vars |\n * | api-key | Require explicit API key (--api-key or env var) |\n *\n * ## Runtime Modes\n *\n * | Mode | Trigger | Behavior |\n * |-------------|-------------------------------|-----------------------------|\n * | Interactive | No messages, not RPC | Full TUI with readline |\n * | Single-shot | Messages provided, text/json | Process and exit |\n * | RPC | --mode=rpc | JSON protocol over stdio |\n * | Exec | maestro exec [prompt] | Batch with structured output|\n *\n * ## Error Handling\n *\n * Critical errors during initialization will print colored error messages\n * and exit with appropriate codes. The initialization is designed to fail\n * fast and provide actionable error messages.\n *\n * @module main\n */\n\nimport { createRequire } from \"node:module\";\nimport chalk from \"chalk\";\nimport type {\n\tActionApprovalService,\n\tApprovalMode,\n} from \"./agent/action-approval.js\";\nimport { createBackgroundTextAgent } from \"./agent/background-agent.js\";\nimport {\n\ttype Agent,\n\ttype Api,\n\ttype Model,\n\tisAssistantMessage,\n} from \"./agent/index.js\";\nimport { getAllModes, getModelForMode } from \"./agent/modes.js\";\nimport { loadScriptedScenarioFromSource } from \"./agent/providers/scripted.js\";\nimport { scenarioSourceLabel } from \"./agent/scenario-source.js\";\nimport { applySessionEndHooks } from \"./agent/session-lifecycle-hooks.js\";\nimport { type ToolRetryMode, ToolRetryService } from \"./agent/tool-retry.js\";\nimport {\n\tapplySessionStartHooks,\n\trunUserPromptWithRecovery,\n} from \"./agent/user-prompt-runtime.js\";\nimport { PlatformBackedActionApprovalService } from \"./approvals/platform-action-approval.js\";\nimport { createAuthSetup, validateCodexFlags } from \"./bootstrap/auth-setup.js\";\nimport {\n\tdisposeCheckpointService,\n\tinitCheckpointService,\n} from \"./checkpoints/index.js\";\nimport { TuiClientToolService } from \"./cli-tui/client-tools/local-client-tool-service.js\";\nimport { TuiRenderer } from \"./cli-tui/tui-renderer.js\";\nimport { sanitizeTerminalPreview } from \"./cli-tui/utils/text-formatting.js\";\nimport { type Mode, parseArgs } from \"./cli/args.js\";\nimport {\n\tEXEC_SESSION_SUMMARY_PREFIX,\n\trunExecCommand,\n} from \"./cli/commands/exec.js\";\nimport {\n\tisHeadlessModeRequested,\n\trecordHeadlessRuntimeSelection,\n\tselectHeadlessRuntime,\n\twillDispatchHeadlessRuntime,\n} from \"./cli/headless-runtime-selection.js\";\nimport { runHeadlessMode } from \"./cli/headless.js\";\nimport { printHelp } from \"./cli/help.js\";\nimport {\n\tJsonlEventWriter,\n\tcreateAgentJsonlAdapter,\n\temitThreadEnd,\n\temitThreadStart,\n\temitUserTurn as emitUserTurnEvent,\n} from \"./cli/jsonl-writer.js\";\nimport { selectSession } from \"./cli/session.js\";\nimport {\n\tdetectRuntimeConstraintContext,\n\tresolveExplicitSystemPromptSourcePaths,\n} from \"./cli/system-prompt.js\";\nimport { validateFrameworkPreference } from \"./config/framework.js\";\nimport { loadRuntimeConfig } from \"./config/runtime-config.js\";\nimport { loadUnifiedContextManifest } from \"./context/manifest.js\";\nimport { loadEnv } from \"./load-env.js\";\nimport { bootstrapLsp } from \"./lsp/bootstrap.js\";\nimport { withMcpPostKeepMessages } from \"./mcp/prompt-recovery.js\";\nimport {\n\tcreateAutomaticMemoryConsolidationCoordinator,\n\tgetMemoryConsolidationSystemPrompt,\n} from \"./memory/auto-consolidation.js\";\nimport {\n\tcreateAutomaticMemoryExtractionCoordinator,\n\tgetMemoryExtractionSystemPrompt,\n} from \"./memory/auto-extraction.js\";\nimport { ensureModelsLoaded } from \"./models/builtin.js\";\nimport type { RegisteredModel } from \"./models/registry.js\";\nimport { reloadModelConfig } from \"./models/registry.js\";\nimport { initOpenTelemetry } from \"./opentelemetry.js\";\nimport { resolveMaestroSystemPrompt } from \"./prompts/system-prompt.js\";\nimport type { AuthMode } from \"./providers/auth.js\";\nimport { AgentRuntimeController } from \"./runtime/agent-runtime.js\";\nimport { registerBackgroundTaskShutdownHooks } from \"./runtime/background-task-hooks.js\";\nimport { configureSafeMode } from \"./safety/safe-mode.js\";\nimport { LocalSandbox } from \"./sandbox/index.js\";\nimport { captureSentryException, flushSentry, initSentry } from \"./sentry.js\";\nimport { ServerRequestActionApprovalService } from \"./server/approval-service.js\";\nimport { clientToolService } from \"./server/client-tools-service.js\";\nimport { ServerRequestToolRetryService } from \"./server/tool-retry-service.js\";\nimport { SessionManager } from \"./session/manager.js\";\nimport { recordStagedRolloutSurfaceUsage } from \"./telemetry.js\";\nimport { beaconTimeoutMs } from \"./telemetry/beacon.js\";\nimport { askUserClientTool } from \"./tools/ask-user-client.js\";\nimport type { UpdateCheckResult } from \"./update/check.js\";\nimport { createStartupProfilerFromEnv } from \"./utils/checkpoint-profiler.js\";\nimport { isInsideGitRepository } from \"./utils/git.js\";\n/**\n * Load version from package.json at runtime.\n * Uses Node's createRequire for compatibility with ESM imports\n * (avoids experimental import assertions syntax).\n */\nconst packageJson = createRequire(import.meta.url)(\"../package.json\") as {\n\tversion?: string;\n};\nconst VERSION = packageJson.version ?? \"unknown\";\nconst STARTUP_TELEMETRY_EXIT_WAIT_GRACE_MS = 25;\n\nlet enterpriseCleanupRegistered = false;\nlet checkpointCleanupRegistered = false;\nlet sandboxCleanupRegistered = false;\n\nfunction printAllAgentModes(): void {\n\tconst lines = [\"Agent modes:\", \"\"];\n\tfor (const { mode, config } of getAllModes({ includeHidden: true })) {\n\t\tconst hiddenSuffix = config.visible === false ? \" [hidden]\" : \"\";\n\t\tlines.push(`${mode}${hiddenSuffix}`);\n\t\tlines.push(` ${config.description}`);\n\t\tlines.push(` model: ${getModelForMode(mode)}`);\n\t}\n\tconsole.log(lines.join(\"\\n\"));\n}\n\n/**\n * Configuration options passed to the interactive TUI renderer.\n * These options customize the startup experience shown to users.\n */\ninterface InteractiveOptions {\n\tclientToolService?: TuiClientToolService;\n\t/** Subset of models available for switching (from --models flag) */\n\tmodelScope?: RegisteredModel[];\n\t/** Changelog summary to display on startup (e.g., \"v1.2.0 — New features\") */\n\tstartupChangelogSummary?: string | null;\n\t/** Update notification if a newer version is available */\n\tupdateNotice?: UpdateCheckResult | null;\n}\n\n/**\n * Runs the full interactive Terminal UI (TUI) mode.\n *\n * This is the primary user-facing mode when composer is invoked without\n * command-line messages. It provides:\n * - Real-time streaming of model responses\n * - Interactive input with readline and autocomplete\n * - Tool execution with approval prompts\n * - Session persistence and recovery\n * - View switching (chat, tools, sessions, etc.)\n *\n * The function sets up the TUI renderer, subscribes to agent events,\n * and runs the main input loop until the user exits.\n *\n * @param agent - Configured Agent instance for LLM communication\n * @param sessionManager - Handles session persistence and recovery\n * @param version - Current CLI version for display\n * @param approvalService - Controls tool execution approval behavior\n * @param explicitApiKey - API key from --api-key flag (for display purposes)\n * @param options - Additional startup configuration (model scope, changelog, etc.)\n */\nasync function runInteractiveMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tversion: string,\n\tapprovalService: ActionApprovalService,\n\ttoolRetryService: ToolRetryService,\n\texplicitApiKey?: string,\n\toptions: InteractiveOptions = {},\n): Promise<void> {\n\t// Redirect logs to file to avoid polluting the TUI\n\tconst { redirectLoggerToFile } = await import(\"./utils/logger.js\");\n\tredirectLoggerToFile();\n\n\tlet sessionEndReason: \"user_exit\" | \"error\" = \"user_exit\";\n\ttry {\n\t\t// Initialize the TUI renderer which manages all terminal output\n\t\tconst renderer = new TuiRenderer(\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tversion,\n\t\t\tapprovalService,\n\t\t\ttoolRetryService,\n\t\t\texplicitApiKey,\n\t\t\toptions,\n\t\t);\n\t\tconst runtime = new AgentRuntimeController({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\trenderer,\n\t\t\tonError: (error) => {\n\t\t\t\tconst message =\n\t\t\t\t\terror instanceof Error ? error.message : \"Unknown error occurred\";\n\t\t\t\trenderer.showError(message);\n\t\t\t},\n\t\t});\n\n\t\t// Initialize TUI - sets up terminal raw mode, cursor handling, and rendering\n\t\tawait renderer.init();\n\n\t\t// Render any existing messages from a continued session (--continue mode)\n\t\t// This allows users to see their previous conversation context\n\t\trenderer.renderInitialMessages(agent.state);\n\n\t\t// Subscribe to agent events for real-time UI updates\n\t\t// The renderer handles streaming text, tool execution, errors, and completion\n\t\tagent.subscribe(async (event) => {\n\t\t\tawait renderer.handleEvent(event, agent.state);\n\t\t});\n\n\t\t// Run the main interactive loop - blocks until user exits\n\t\tawait runtime.runInteractiveLoop(renderer);\n\t} catch (error) {\n\t\tsessionEndReason = \"error\";\n\t\tthrow error;\n\t} finally {\n\t\tawait applySessionEndHooks({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tcwd: process.cwd(),\n\t\t\treason: sessionEndReason,\n\t\t});\n\t}\n}\n\nasync function waitForStartupTelemetryForImmediateExit(\n\tstartupTelemetry: Promise<void>,\n): Promise<void> {\n\tlet timeout: NodeJS.Timeout | undefined;\n\ttry {\n\t\tawait Promise.race([\n\t\t\tstartupTelemetry,\n\t\t\tnew Promise<void>((resolve) => {\n\t\t\t\ttimeout = setTimeout(\n\t\t\t\t\tresolve,\n\t\t\t\t\tbeaconTimeoutMs(process.env) + STARTUP_TELEMETRY_EXIT_WAIT_GRACE_MS,\n\t\t\t\t);\n\t\t\t}),\n\t\t]);\n\t} catch {\n\t\t// Startup telemetry is best effort and must not affect explicit exits.\n\t} finally {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t}\n}\n\n/**\n * Runs the CLI in single-shot (non-interactive) mode.\n *\n * Processes one or more messages from the command line and outputs\n * the result. Supports two output formats:\n *\n * - **text**: Outputs only the final assistant text response (human-readable)\n * - **json**: Outputs JSONL event stream for machine processing\n *\n * This mode is useful for scripting and automation:\n * ```bash\n * composer \"What time is it?\" --mode text\n * composer \"Generate code\" --mode json > output.jsonl\n * ```\n *\n * @param agent - Configured Agent instance\n * @param sessionManager - For session ID tracking\n * @param messages - Array of user messages to process sequentially\n * @param mode - Output format: \"text\" for human-readable, \"json\" for JSONL\n */\nasync function runSingleShotMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tmessages: string[],\n\tmode: Extract<Mode, \"text\" | \"json\">,\n): Promise<void> {\n\t// Use session ID as thread ID for JSONL output correlation\n\tconst threadId = sessionManager.getSessionId();\n\n\t// Set up JSONL writer for structured output in json mode\n\t// This enables machine-readable event streaming for integrations\n\tconst jsonlWriter =\n\t\tmode === \"json\" ? new JsonlEventWriter(true, process.stdout) : null;\n\n\t// Turn ID generator for correlating user messages with responses\n\tconst nextTurnId = (() => {\n\t\tlet counter = 0;\n\t\treturn () => `turn-${++counter}`;\n\t})();\n\n\t// Adapter translates agent events to JSONL format\n\tconst adapter =\n\t\tjsonlWriter && createAgentJsonlAdapter(jsonlWriter, nextTurnId);\n\n\t// In JSON mode, emit thread start and subscribe to all events\n\tif (jsonlWriter) {\n\t\temitThreadStart(jsonlWriter, threadId, { sessionId: threadId });\n\t\tagent.subscribe((event) => {\n\t\t\tadapter?.handle(event);\n\t\t});\n\t}\n\n\tlet sessionEndReason: \"complete\" | \"error\" = \"complete\";\n\ttry {\n\t\t// Process each message sequentially\n\t\t// This allows multi-message conversations in single-shot mode\n\t\tfor (const message of messages) {\n\t\t\tif (jsonlWriter) {\n\t\t\t\temitUserTurnEvent(jsonlWriter, nextTurnId, message);\n\t\t\t}\n\t\t\tawait runUserPromptWithRecovery({\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tprompt: message,\n\t\t\t\texecute: () => agent.prompt(message),\n\t\t\t\tgetPostKeepMessages: withMcpPostKeepMessages(),\n\t\t\t});\n\t\t}\n\n\t\t// In text mode, extract and output only the final text response\n\t\t// This provides clean output for shell pipelines and scripts\n\t\tif (mode === \"text\") {\n\t\t\tconst lastMessage = agent.state.messages[agent.state.messages.length - 1];\n\t\t\tif (isAssistantMessage(lastMessage)) {\n\t\t\t\tfor (const content of lastMessage.content) {\n\t\t\t\t\tif (content.type === \"text\") {\n\t\t\t\t\t\tconsole.log(content.text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (jsonlWriter) {\n\t\t\temitThreadEnd(jsonlWriter, threadId, \"ok\", threadId);\n\t\t}\n\t} catch (error) {\n\t\tsessionEndReason = \"error\";\n\t\t// Ensure error is recorded in JSONL output for machine processing\n\t\tif (jsonlWriter) {\n\t\t\temitThreadEnd(jsonlWriter, threadId, \"error\", threadId);\n\t\t}\n\t\tthrow error;\n\t} finally {\n\t\tawait applySessionEndHooks({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tcwd: process.cwd(),\n\t\t\treason: sessionEndReason,\n\t\t});\n\t}\n}\n\nfunction resolveSessionStartHookSource(params: {\n\tmode: Mode;\n\tcommand?: string;\n\tisInteractive: boolean;\n\theadless?: boolean;\n\tshouldRestoreSession?: boolean;\n}): string {\n\tif (params.shouldRestoreSession) {\n\t\treturn \"resume\";\n\t}\n\tif (params.command === \"exec\") {\n\t\treturn \"exec\";\n\t}\n\tif (params.mode === \"rpc\") {\n\t\treturn \"rpc\";\n\t}\n\tif (params.mode === \"headless\" || params.headless) {\n\t\treturn \"headless\";\n\t}\n\tif (params.isInteractive) {\n\t\treturn \"interactive\";\n\t}\n\treturn \"cli\";\n}\n\nasync function readReplayScenarioId(source: string): Promise<string> {\n\ttry {\n\t\treturn (await loadScriptedScenarioFromSource(source)).id;\n\t} catch {\n\t\t// The scripted provider surfaces schema and file errors during streaming.\n\t}\n\treturn scenarioSourceLabel(source);\n}\n\n/**\n * Main entry point for the Maestro CLI application.\n *\n * This function orchestrates the complete initialization sequence and routes\n * to the appropriate runtime mode. It performs all setup synchronously where\n * possible and handles errors with user-friendly messages.\n *\n * ## Execution Phases\n *\n * 1. **Early Initialization**: Environment, telemetry, model registry\n * 2. **Enterprise Setup**: Audit logging, user tracking (if applicable)\n * 3. **CLI Parsing**: Handle help, version, and subcommands (config, cost, models)\n * 4. **Authentication**: Resolve credentials for the selected provider\n * 5. **Session Setup**: Create or restore session state\n * 6. **Agent Creation**: Configure transport, tools, context sources\n * 7. **MCP Integration**: Connect to Model Context Protocol servers\n * 8. **Mode Dispatch**: Route to interactive, single-shot, RPC, or exec mode\n *\n * @param args - Command-line arguments (typically process.argv.slice(2))\n */\nexport async function main(args: string[]) {\n\tconst originalStderrWrite = process.stderr.write.bind(process.stderr) as (\n\t\tchunk: string,\n\t) => boolean;\n\tconst writeStartupErrorToStderr = (message: string): void => {\n\t\toriginalStderrWrite(message.endsWith(\"\\n\") ? message : `${message}\\n`);\n\t};\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 0: Early Exit Checks (before any async initialization)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Load environment variables from .env files (project and user level)\n\tloadEnv();\n\tconst startupProfiler = createStartupProfilerFromEnv();\n\tstartupProfiler.checkpoint(\"process:start\");\n\n\t// Parse arguments early to check for version/help flags before heavy initialization\n\tconst parsed = parseArgs(args);\n\tstartupProfiler.checkpoint(\"cli:parsed\");\n\tconst startupTelemetry = import(\"./telemetry/cli-startup.js\")\n\t\t.then(({ recordCliStartupTelemetry }) =>\n\t\t\trecordCliStartupTelemetry({\n\t\t\t\targs: parsed,\n\t\t\t\tclientVersion: VERSION,\n\t\t\t\tcommandCountLockTimeoutMs: 0,\n\t\t\t\trawArgs: args,\n\t\t\t}),\n\t\t)\n\t\t.catch(() => undefined);\n\n\t// Handle --version early exit (before any async operations)\n\tif (parsed.version) {\n\t\tconsole.log(`Maestro v${VERSION}`);\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\tprocess.exit(0);\n\t}\n\n\t// Handle --help early exit (before any logging redirection or heavy init)\n\tif (parsed.help) {\n\t\tconst hiddenFlagTelemetry = parsed.helpHidden\n\t\t\t? recordStagedRolloutSurfaceUsage(\"hidden_flag_used\", {\n\t\t\t\t\tsurfaceId: \"cli:--help-hidden\",\n\t\t\t\t\tsurfaceType: \"cli_flag\",\n\t\t\t\t\towner: \"platform-cli\",\n\t\t\t\t})\n\t\t\t: Promise.resolve();\n\t\tprintHelp(VERSION, { includeHidden: parsed.helpHidden });\n\t\tawait waitForStartupTelemetryForImmediateExit(\n\t\t\tPromise.all([startupTelemetry, hiddenFlagTelemetry]).then(\n\t\t\t\t() => undefined,\n\t\t\t),\n\t\t);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.listModesAll) {\n\t\tconst hiddenFlagTelemetry = recordStagedRolloutSurfaceUsage(\n\t\t\t\"hidden_flag_used\",\n\t\t\t{\n\t\t\t\tsurfaceId: \"cli:--list-modes-all\",\n\t\t\t\tsurfaceType: \"cli_flag\",\n\t\t\t\towner: \"agent-runtime\",\n\t\t\t},\n\t\t);\n\t\tprintAllAgentModes();\n\t\tawait waitForStartupTelemetryForImmediateExit(\n\t\t\tPromise.all([startupTelemetry, hiddenFlagTelemetry]).then(\n\t\t\t\t() => undefined,\n\t\t\t),\n\t\t);\n\t\tprocess.exit(0);\n\t}\n\n\tif (parsed.error) {\n\t\tconsole.error(chalk.red(parsed.error));\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\tprocess.exit(1);\n\t}\n\n\tif (parsed.command === \"modes\") {\n\t\tconst { handleModesCommand } = await import(\"./cli/commands/modes.js\");\n\t\tawait handleModesCommand(parsed.subcommand, parsed.messages, {\n\t\t\tprovider: parsed.provider,\n\t\t\tjson: parsed.execJson,\n\t\t});\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\treturn;\n\t}\n\n\tconst isHeadlessMode = isHeadlessModeRequested(parsed);\n\tconst willDispatchHeadlessMode = willDispatchHeadlessRuntime(parsed);\n\n\tconst exitWithEarlyStartupError = (error: unknown): never => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tif (isHeadlessMode) {\n\t\t\tprocess.stdout.write(\n\t\t\t\t`${JSON.stringify({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `Headless startup failed: ${message}`,\n\t\t\t\t\tfatal: true,\n\t\t\t\t\terror_type: \"fatal\",\n\t\t\t\t})}\\n`,\n\t\t\t);\n\t\t} else {\n\t\t\twriteStartupErrorToStderr(chalk.red(message));\n\t\t}\n\t\tprocess.exit(1);\n\t};\n\n\ttry {\n\t\tvalidateCodexFlags(args, parsed.help ? \"help\" : parsed.command);\n\t} catch (error) {\n\t\texitWithEarlyStartupError(error);\n\t}\n\n\tif (parsed.command === \"codex\") {\n\t\tconst { handleCodexCommand } = await import(\"./cli/commands/codex.js\");\n\t\tconst commandArgs = [...(parsed.commandArgs ?? [])];\n\t\tif (parsed.subcommand === \"login\" && parsed.force) {\n\t\t\tcommandArgs.push(\"--force\");\n\t\t}\n\t\tawait handleCodexCommand(parsed.subcommand, commandArgs);\n\t\tawait waitForStartupTelemetryForImmediateExit(startupTelemetry);\n\t\treturn;\n\t}\n\n\tconst replayScenarioPath =\n\t\tparsed.replayScenarioPath ?? process.env.MAESTRO_SCENARIO_PATH;\n\tif (replayScenarioPath) {\n\t\tparsed.replayScenarioPath = replayScenarioPath;\n\t\tprocess.env.MAESTRO_SCENARIO_PATH = replayScenarioPath;\n\t\tprocess.env.MAESTRO_SCENARIO_ID =\n\t\t\tawait readReplayScenarioId(replayScenarioPath);\n\t\tprocess.env.MAESTRO_MODE = \"replay\";\n\t\tparsed.provider = \"scripted-replay\";\n\t\tparsed.model = \"maestro-replay-v1\";\n\t}\n\n\t// Handle `maestro hosted-runner` before importing web-server so hosted\n\t// defaults are visible to its module-level runtime profile.\n\tif (parsed.command === \"hosted-runner\") {\n\t\tconst { handleHostedRunnerCommand } = await import(\n\t\t\t\"./cli/commands/hosted-runner.js\"\n\t\t);\n\t\tawait handleHostedRunnerCommand(parsed.commandArgs ?? [], {\n\t\t\tdefaultPort: parsed.port,\n\t\t});\n\t\treturn;\n\t}\n\n\t// Handle `maestro web` early exit (start the bundled web server + UI).\n\tif (parsed.command === \"web\") {\n\t\tif (parsed.messages.length > 0) {\n\t\t\tconsole.error(\n\t\t\t\tchalk.red(\n\t\t\t\t\t\"`maestro web` does not accept prompt arguments. Use `maestro` (interactive) or `maestro exec` instead.\",\n\t\t\t\t),\n\t\t\t);\n\t\t\tprocess.exit(1);\n\t\t}\n\n\t\tconst { startWebServer } = await import(\"./web-server.js\");\n\t\tconst { migrate } = await import(\"./db/migrate.js\");\n\t\tconst port =\n\t\t\tparsed.port ?? (Number.parseInt(process.env.PORT || \"8080\", 10) || 8080);\n\t\tawait migrate();\n\t\tawait startWebServer(port, { skipStartupMigration: true });\n\t\treturn;\n\t}\n\n\t// Bootstrap/status commands need stdout to stay under their direct control.\n\t// In particular, `maestro init --json` must be parseable JSON with any\n\t// progress or diagnostic output on stderr, so route it before config loading\n\t// can emit normal CLI startup logs.\n\tif (parsed.command === \"init\") {\n\t\tconst { handleInitCommand } = await import(\"./cli/commands/init.js\");\n\t\tawait handleInitCommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"status\") {\n\t\tconst { handleStatusCommand } = await import(\"./cli/commands/status.js\");\n\t\tawait handleStatusCommand();\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"update\") {\n\t\tconst { handleUpdateCommand } = await import(\"./cli/commands/update.js\");\n\t\tawait handleUpdateCommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"context\") {\n\t\tconst { handleContextCommand } = await import(\"./cli/commands/context.js\");\n\t\tawait handleContextCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t\tliveMcp: parsed.contextLiveMcp,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"scenario\") {\n\t\tconst { handleScenarioCommand } = await import(\n\t\t\t\"./cli/commands/scenario.js\"\n\t\t);\n\t\tawait handleScenarioCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t\tjunitPath: parsed.junitPath,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"skill\") {\n\t\tconst { handleSkillCommand } = await import(\"./cli/commands/skill.js\");\n\t\tawait handleSkillCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\t// If we're about to enter interactive TUI mode (no prompt messages and not RPC/exec),\n\t// or headless mode (stdout is JSON-only), redirect all logging/console output to a file.\n\t// This must run before config/model loading to catch any early warnings.\n\tconst isLikelyInteractiveTui =\n\t\t!parsed.messages.length &&\n\t\t(parsed.mode === \"text\" || parsed.mode === undefined) &&\n\t\tparsed.command === undefined;\n\tif (isLikelyInteractiveTui || willDispatchHeadlessMode) {\n\t\tconst {\n\t\t\tredirectLoggerToFile,\n\t\t\tredirectConsoleToLogger,\n\t\t\tredirectStderrToLogger,\n\t\t\tpipeProcessEventsToLogger,\n\t\t} = await import(\"./utils/logger.js\");\n\t\tredirectLoggerToFile();\n\t\tredirectConsoleToLogger({ preserveErrorStderr: willDispatchHeadlessMode });\n\t\tif (!willDispatchHeadlessMode) {\n\t\t\tredirectStderrToLogger();\n\t\t}\n\t\tpipeProcessEventsToLogger();\n\t}\n\n\tconst headlessRuntimeSelection = selectHeadlessRuntime(process.env, {\n\t\tallowLegacy: willDispatchHeadlessMode,\n\t});\n\trecordHeadlessRuntimeSelection(headlessRuntimeSelection);\n\n\tconst runtimeConfig = loadRuntimeConfig(parsed, process.cwd());\n\tstartupProfiler.checkpoint(\"config:loaded\");\n\tconst reasoningSummary =\n\t\truntimeConfig.config.model_supports_reasoning_summaries === false\n\t\t\t? undefined\n\t\t\t: runtimeConfig.config.model_reasoning_summary === \"none\"\n\t\t\t\t? null\n\t\t\t\t: runtimeConfig.config.model_reasoning_summary;\n\tconst exitWithStartupError = async (error: unknown): Promise<never> => {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst stack = error instanceof Error ? error.stack : undefined;\n\t\tif (isHeadlessMode) {\n\t\t\tprocess.stdout.write(\n\t\t\t\t`${JSON.stringify({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `Headless startup failed: ${message}`,\n\t\t\t\t\tfatal: true,\n\t\t\t\t\terror_type: \"fatal\",\n\t\t\t\t})}\\n`,\n\t\t\t);\n\t\t\tprocess.stderr.write(`${stack ?? message}\\n`);\n\t\t} else {\n\t\t\twriteStartupErrorToStderr(chalk.red(message));\n\t\t}\n\t\tcaptureSentryException(error);\n\t\tawait flushSentry();\n\t\tprocess.exit(1);\n\t};\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 1: Environment and Telemetry Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Initialize OpenTelemetry tracing for observability\n\t// This is non-blocking (void) to avoid startup latency\n\tvoid initOpenTelemetry(\"composer-cli\");\n\tinitSentry(\"maestro-cli\");\n\n\tconst modelLoadPromise = (async () => {\n\t\tawait ensureModelsLoaded();\n\t\tstartupProfiler.checkpoint(\"models:loaded\");\n\t})();\n\tconst enterpriseContextPromise = (async () => {\n\t\tconst { enterpriseContext } = await import(\"./enterprise/context.js\");\n\t\tawait enterpriseContext.initialize();\n\t\tstartupProfiler.checkpoint(\"enterprise:initialized\");\n\t\treturn enterpriseContext;\n\t})();\n\n\t// Pre-load model registry and enterprise context in parallel. These are\n\t// independent startup costs, so overlapping them reduces cold-start latency.\n\tconst [enterpriseContext] = await Promise.all([\n\t\tenterpriseContextPromise,\n\t\tmodelLoadPromise,\n\t]);\n\tstartupProfiler.checkpoint(\"bootstrap:parallel\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 2: Enterprise Context Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Initialize audit integration if enterprise features are available\n\t// This logs all tool executions, model interactions, and session events\n\tif (enterpriseContext.isEnterprise()) {\n\t\tconst { initializeAuditIntegration } = await import(\n\t\t\t\"./enterprise/audit-integration.js\"\n\t\t);\n\t\tinitializeAuditIntegration();\n\n\t\t// Register cleanup handlers to properly end enterprise session on exit\n\t\t// This ensures audit logs capture session termination\n\t\tif (!enterpriseCleanupRegistered) {\n\t\t\tconst cleanup = () => {\n\t\t\t\tenterpriseContext.endSession();\n\t\t\t};\n\t\t\t// Don't register signal handlers in test mode - vitest manages process lifecycle\n\t\t\tconst isTestMode =\n\t\t\t\tprocess.env.VITEST === \"true\" || process.env.NODE_ENV === \"test\";\n\t\t\tif (!isTestMode) {\n\t\t\t\tprocess.once(\"beforeExit\", cleanup);\n\t\t\t\tprocess.once(\"SIGINT\", () => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t});\n\t\t\t\tprocess.once(\"SIGTERM\", () => {\n\t\t\t\t\tcleanup();\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t});\n\t\t\t}\n\t\t\tenterpriseCleanupRegistered = true;\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 3: CLI Argument Parsing (already done earlier for early exits)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Arguments were already parsed earlier to check for --version flag\n\t// The parsed result is reused here\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 4: Authentication Setup\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Determine authentication mode:\n\t// - auto: Try OAuth first, fall back to API key environment variables\n\t// - api-key: Require explicit API key from --api-key or env var\n\tconst authMode: AuthMode = parsed.authMode ?? \"auto\";\n\n\tconst { requireCredential } = createAuthSetup({\n\t\tauthMode,\n\t\texplicitApiKey: parsed.apiKey,\n\t});\n\tstartupProfiler.checkpoint(\"auth:configured\");\n\n\tif (parsed.command === \"exec\") {\n\t\tif (parsed.execFullAuto && parsed.execReadOnly) {\n\t\t\tawait exitWithStartupError(\n\t\t\t\t\"Cannot combine --full-auto with --read-only in maestro exec.\",\n\t\t\t);\n\t\t}\n\t}\n\n\t// Validate sandbox mode (applies to both exec and interactive modes)\n\tconst validSandboxModes = [\n\t\t\"docker\",\n\t\t\"local\",\n\t\t\"native\",\n\t\t\"none\",\n\t\t\"read-only\",\n\t\t\"workspace-write\",\n\t\t\"danger-full-access\",\n\t];\n\tif (parsed.sandbox && !validSandboxModes.includes(parsed.sandbox)) {\n\t\tawait exitWithStartupError(\n\t\t\t`Unknown sandbox mode \"${parsed.sandbox}\". Supported: ${validSandboxModes.join(\", \")}`,\n\t\t);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 5: Safety, LSP, and Checkpointing\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Enable safe mode if requested (restricts dangerous operations)\n\tif (parsed.safeMode) {\n\t\tprocess.env.MAESTRO_SAFE_MODE = \"1\";\n\t}\n\n\t// Load custom models file if specified\n\t// This allows users to define additional models beyond the built-in ones\n\tif (parsed.modelsFile) {\n\t\tprocess.env.MAESTRO_MODELS_FILE = parsed.modelsFile;\n\t\treloadModelConfig();\n\t}\n\n\t// Configure safe mode settings (e.g., disabling certain tools in sandboxed environments)\n\tconfigureSafeMode(true);\n\n\t// Register shutdown hooks for background tasks to ensure clean cleanup\n\tregisterBackgroundTaskShutdownHooks();\n\n\t// Bootstrap Language Server Protocol for IDE integration\n\t// This enables features like go-to-definition, hover info, and diagnostics\n\tawait bootstrapLsp();\n\n\t// Initialize checkpointing service for undo/redo functionality\n\t// PreToolUse hooks capture file snapshots before tool execution\n\tinitCheckpointService(process.cwd());\n\tconst disposeCheckpoint = (): void => disposeCheckpointService();\n\tif (!checkpointCleanupRegistered) {\n\t\tprocess.once(\"beforeExit\", disposeCheckpoint);\n\t\tprocess.once(\"SIGINT\", disposeCheckpoint);\n\t\tprocess.once(\"SIGTERM\", disposeCheckpoint);\n\t\tcheckpointCleanupRegistered = true;\n\t}\n\tstartupProfiler.checkpoint(\"runtime:prepared\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// Early Exit: Help Command\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst frameworkWarning = validateFrameworkPreference();\n\tif (frameworkWarning) {\n\t\tconsole.warn(\n\t\t\tchalk.yellow(`Framework preference warning: ${frameworkWarning}`),\n\t\t);\n\t}\n\n\t// Handle config commands\n\tif (parsed.command === \"config\") {\n\t\tconst {\n\t\t\thandleConfigValidate,\n\t\t\thandleConfigShow,\n\t\t\thandleConfigInit,\n\t\t\thandleConfigLocal,\n\t\t} = await import(\"./cli/commands/config.js\");\n\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"validate\":\n\t\t\t\tawait handleConfigValidate();\n\t\t\t\treturn;\n\t\t\tcase \"show\":\n\t\t\t\tawait handleConfigShow();\n\t\t\t\treturn;\n\t\t\tcase \"init\":\n\t\t\t\tawait handleConfigInit();\n\t\t\t\treturn;\n\t\t\tcase \"local\":\n\t\t\t\tawait handleConfigLocal();\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\n\t\t\t\t\t\t`Unknown config subcommand: ${parsed.subcommand || \"(none)\"}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config validate - Validate configuration\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config show - Show configuration details\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config init - Initialize configuration\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro config local - Manage local providers\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\tif (parsed.command === \"openai\") {\n\t\tconst { handleOpenAICommand } = await import(\"./cli/commands/openai.js\");\n\t\tawait handleOpenAICommand(parsed.subcommand, parsed.messages);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"evalops\") {\n\t\tconst { handleEvalOpsCommand } = await import(\"./cli/commands/evalops.js\");\n\t\tawait handleEvalOpsCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"hooks\") {\n\t\tconst { handleHooksCommand } = await import(\"./cli/commands/hooks.js\");\n\t\tawait handleHooksCommand(parsed.subcommand);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"run\") {\n\t\tconst { handleRunCommand } = await import(\"./cli/commands/run.js\");\n\t\tawait handleRunCommand(parsed.subcommand, parsed.messages, {\n\t\t\tjson: parsed.execJson,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"export\") {\n\t\tconst { handleExportCommand } = await import(\n\t\t\t\"./cli/commands/session-transfer.js\"\n\t\t);\n\t\tawait handleExportCommand(\n\t\t\tparsed.messages[0],\n\t\t\tparsed.messages[1],\n\t\t\tparsed.exportFormat,\n\t\t\t{ redactSecrets: parsed.redactSecrets },\n\t\t);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"import\") {\n\t\tconst { handleImportCommand } = await import(\n\t\t\t\"./cli/commands/session-transfer.js\"\n\t\t);\n\t\tawait handleImportCommand(parsed.messages[0]);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"memory\") {\n\t\tconst { handleMemoryCommand } = await import(\"./cli/commands/memory.js\");\n\t\tawait handleMemoryCommand(parsed.subcommand, parsed.messages);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"remote\") {\n\t\tconst { handleRemoteCommand } = await import(\"./cli/commands/remote.js\");\n\t\tawait handleRemoteCommand(parsed.subcommand, parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"a2a\") {\n\t\tconst { handleA2ACommand } = await import(\"./cli/commands/a2a.js\");\n\t\tawait handleA2ACommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"operating-plane\") {\n\t\tconst { handleOperatingPlaneCommand } = await import(\n\t\t\t\"./cli/commands/operating-plane.js\"\n\t\t);\n\t\tawait handleOperatingPlaneCommand(parsed.commandArgs ?? []);\n\t\treturn;\n\t}\n\n\tif (parsed.command === \"anthropic\") {\n\t\tconst { handleAnthropicCommand } = await import(\n\t\t\t\"./cli/commands/anthropic.js\"\n\t\t);\n\t\tawait handleAnthropicCommand();\n\t\treturn;\n\t}\n\n\t// Handle cost commands\n\tif (parsed.command === \"cost\") {\n\t\tconst { handleCostSummary, handleCostClear, handleCostBreakdown } =\n\t\t\tawait import(\"./cli/commands/cost.js\");\n\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"clear\":\n\t\t\t\tawait handleCostClear();\n\t\t\t\treturn;\n\t\t\tcase \"breakdown\":\n\t\t\t\tawait handleCostBreakdown();\n\t\t\t\treturn;\n\t\t\tcase \"today\":\n\t\t\tcase \"yesterday\":\n\t\t\tcase \"week\":\n\t\t\tcase \"month\":\n\t\t\tcase \"all\":\n\t\t\t\tawait handleCostSummary(parsed.subcommand);\n\t\t\t\treturn;\n\t\t\tcase undefined:\n\t\t\t\t// Default to today\n\t\t\t\tawait handleCostSummary(\"today\");\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`Unknown cost subcommand: ${parsed.subcommand}`),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t\" maestro cost [today] - Show today's costs (default)\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost yesterday - Show yesterday's costs\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro cost week - Show last 7 days\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost month - Show last 30 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost all - Show all time costs\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro cost breakdown - Detailed breakdown\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro cost clear - Clear usage data\"));\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\tif (parsed.command === \"stats\") {\n\t\tconst { handleStatsCommand } = await import(\"./cli/commands/stats.js\");\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase undefined:\n\t\t\tcase \"today\":\n\t\t\tcase \"yesterday\":\n\t\t\tcase \"week\":\n\t\t\tcase \"7d\":\n\t\t\tcase \"month\":\n\t\t\tcase \"30d\":\n\t\t\tcase \"all\":\n\t\t\t\tawait handleStatsCommand(parsed.subcommand, {\n\t\t\t\t\tsessionId: parsed.session,\n\t\t\t\t\tformat: parsed.exportFormat,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`Unknown stats subcommand: ${parsed.subcommand}`),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats - Show last 7 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats --session <id> - Show one session\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro stats today - Show today\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats month - Show last 30 days\"),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\" maestro stats all - Show all time\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro stats --format json|csv - Export usage data\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// Handle models commands\n\tif (parsed.command === \"models\") {\n\t\tconst { handleModelsList, handleModelsProviders } = await import(\n\t\t\t\"./cli/commands/models.js\"\n\t\t);\n\t\tconst providerFilter = parsed.provider;\n\t\tswitch (parsed.subcommand) {\n\t\t\tcase \"providers\":\n\t\t\t\tawait handleModelsProviders(providerFilter);\n\t\t\t\treturn;\n\t\t\tcase undefined:\n\t\t\tcase \"list\":\n\t\t\t\tawait handleModelsList(providerFilter);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\n\t\t\t\t\t\t`Unknown models subcommand: ${parsed.subcommand || \"(none)\"}`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(chalk.dim(\"\\nAvailable commands:\"));\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\n\t\t\t\t\t\t\" maestro models list - List registered models\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.dim(\" maestro models providers - Summarize providers\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 6: Special Command Handling (agents init)\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Track agents init state for deferred execution\n\tlet agentsInitPrompt: string | null = null;\n\tlet agentsInitPath: string | null = null;\n\n\tconst quoteShellArg = (value: string): string => {\n\t\tif (/^[A-Za-z0-9_./:=@+-]+$/.test(value)) {\n\t\t\treturn value;\n\t\t}\n\t\tif (process.platform === \"win32\") {\n\t\t\tconst escaped = value\n\t\t\t\t.replace(\n\t\t\t\t\t/(\\\\*)\"/g,\n\t\t\t\t\t(_match, slashes: string) => `${slashes}${slashes}\\\\\"`,\n\t\t\t\t)\n\t\t\t\t.replace(/\\\\+$/g, (slashes) => `${slashes}${slashes}`);\n\t\t\treturn `\"${escaped}\"`;\n\t\t}\n\t\treturn `'${value.replaceAll(\"'\", \"'\\\\''\")}'`;\n\t};\n\tconst buildAgentsInitRerunCommand = (\n\t\ttargetArg: string | undefined,\n\t): string =>\n\t\ttargetArg\n\t\t\t? `maestro agents init ${quoteShellArg(targetArg)} --force`\n\t\t\t: \"maestro agents init --force\";\n\n\t// Handle \"maestro agents init\" command to generate AGENTS.md\n\tif (parsed.command === \"agents\") {\n\t\tconst { buildAgentsInitPrompt, handleAgentsInit } = await import(\n\t\t\t\"./cli/commands/agents.js\"\n\t\t);\n\t\tif (parsed.subcommand && parsed.subcommand !== \"init\") {\n\t\t\tconsole.error(\n\t\t\t\tchalk.red(\n\t\t\t\t\t`Unknown agents subcommand: ${parsed.subcommand}. Try \"maestro agents init\"`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tprocess.exit(1);\n\t\t}\n\t\ttry {\n\t\t\tconst targetArg = parsed.messages[0];\n\t\t\tconst result = handleAgentsInit(targetArg, { force: parsed.force });\n\t\t\tif (result.action === \"preview\") {\n\t\t\t\tconst rerunCommand = buildAgentsInitRerunCommand(targetArg);\n\t\t\t\tconsole.log(\n\t\t\t\t\t[\n\t\t\t\t\t\t`AGENTS instructions already exist at ${result.path}.`,\n\t\t\t\t\t\t`Preview the proposed update below, then re-run with \\`${rerunCommand}\\` to apply it.`,\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\tsanitizeTerminalPreview(result.diff ?? \"\"),\n\t\t\t\t\t].join(\"\\n\"),\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (result.action === \"updated\") {\n\t\t\t\tconsole.log(`Updated AGENTS instructions at ${result.path}.`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tagentsInitPath = result.path;\n\t\t\tagentsInitPrompt = buildAgentsInitPrompt(result.path, result.sources);\n\t\t\tif (parsed.messages.length === 0) {\n\t\t\t\tparsed.messages = [agentsInitPrompt];\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message =\n\t\t\t\terror instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: \"Failed to initialize AGENTS.md\";\n\t\t\tconsole.error(chalk.red(message));\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 7: Session Management\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Create session manager for conversation persistence\n\t// The session manager handles:\n\t// - Session file creation and storage (~/.maestro/agent/sessions/)\n\t// - Message persistence in JSONL format\n\t// - Session resume and continuation\n\t// - Model/thinking level tracking across restarts\n\tconst sessionManager = new SessionManager(\n\t\tparsed.continue && !parsed.resume, // continueSession: auto-load most recent\n\t\tparsed.session, // customSessionPath: explicit session file\n\t);\n\tlet scenarioRecorder:\n\t\t| import(\"./server/scenario-recorder.js\").ScriptedScenarioRecorder\n\t\t| undefined;\n\tif (parsed.recordScenarioPath) {\n\t\tconst { ScriptedScenarioRecorder } = await import(\n\t\t\t\"./server/scenario-recorder.js\"\n\t\t);\n\t\tscenarioRecorder = new ScriptedScenarioRecorder({\n\t\t\toutPath: parsed.recordScenarioPath,\n\t\t\trecordedFrom: () => sessionManager.getSessionId(),\n\t\t});\n\t}\n\tstartupProfiler.checkpoint(\"session:created\");\n\n\tlet execResumeApplied = false;\n\tif (parsed.command === \"exec\") {\n\t\tlet targetPath: string | null = null;\n\t\tif (parsed.execResumeId) {\n\t\t\ttargetPath = sessionManager.getSessionFileById(parsed.execResumeId);\n\t\t\tif (!targetPath) {\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(`No session found with id ${parsed.execResumeId}.`),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t} else if (parsed.execUseLast) {\n\t\t\tconst sessions = sessionManager.loadAllSessions();\n\t\t\tconst lastExec = sessions.find((session) =>\n\t\t\t\tsession.summary?.startsWith(EXEC_SESSION_SUMMARY_PREFIX),\n\t\t\t);\n\t\t\tif (!lastExec) {\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.red(\"No previous maestro exec sessions were found.\"),\n\t\t\t\t);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t\ttargetPath = lastExec.path;\n\t\t}\n\t\tif (targetPath) {\n\t\t\tsessionManager.setSessionFile(targetPath);\n\t\t\texecResumeApplied = true;\n\t\t}\n\t}\n\n\t// Disable session saving if --no-session flag is set\n\tif (parsed.noSession) {\n\t\tsessionManager.disable();\n\t}\n\n\t// Handle --resume flag: show session selector\n\tif (parsed.resume) {\n\t\tconst selectedSession = await selectSession(sessionManager);\n\t\tif (!selectedSession) {\n\t\t\tconsole.log(chalk.dim(\"No session selected\"));\n\t\t\treturn;\n\t\t}\n\t\t// Set the selected session as the active session\n\t\tsessionManager.setSessionFile(selectedSession);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 8: Model Resolution\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tlet model!: Model<Api>;\n\ttry {\n\t\tconst { resolveModelFromArgs } = await import(\n\t\t\t\"./bootstrap/model-resolution-setup.js\"\n\t\t);\n\t\tconst resolved = await resolveModelFromArgs({\n\t\t\tparsedProvider: parsed.provider,\n\t\t\tparsedModel: parsed.model,\n\t\t\trequireCredential,\n\t\t});\n\t\tmodel = resolved.model;\n\t} catch (error) {\n\t\tawait exitWithStartupError(error);\n\t}\n\t// Determine approval mode for tool execution:\n\t// - \"prompt\": Ask user before each tool execution (default for interactive)\n\t// - \"auto\": Automatically approve all tools (default for non-interactive)\n\t// - \"fail\": Reject all tool executions (for read-only mode)\n\tconst isInteractiveTui =\n\t\tparsed.messages.length === 0 && (parsed.mode ?? \"text\") !== \"rpc\";\n\tconst defaultApprovalMode: ApprovalMode = isInteractiveTui\n\t\t? \"prompt\"\n\t\t: \"auto\";\n\n\t// Override approval mode based on exec flags\n\tconst approvalModeOverride = (() => {\n\t\tif (parsed.command === \"exec\") {\n\t\t\tif (parsed.execReadOnly) return \"fail\"; // Read-only: reject all writes\n\t\t\tif (parsed.execFullAuto) return \"auto\"; // Full-auto: approve everything\n\t\t}\n\t\treturn parsed.approvalMode ?? defaultApprovalMode;\n\t})();\n\n\t// Create approval service that controls tool execution authorization\n\tconst approvalService = isHeadlessMode\n\t\t? new ServerRequestActionApprovalService(\n\t\t\t\tapprovalModeOverride,\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: new PlatformBackedActionApprovalService(approvalModeOverride, {\n\t\t\t\tsessionIdProvider: () => sessionManager.getSessionId() ?? undefined,\n\t\t\t});\n\tconst headlessClientToolService = isHeadlessMode\n\t\t? clientToolService.forSession(\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: undefined;\n\tconst interactiveClientToolService =\n\t\tisInteractiveTui && !isHeadlessMode\n\t\t\t? new TuiClientToolService()\n\t\t\t: undefined;\n\tconst toolRetryMode: ToolRetryMode =\n\t\tisInteractiveTui && !isHeadlessMode ? \"prompt\" : \"skip\";\n\tconst toolRetryService = isHeadlessMode\n\t\t? new ServerRequestToolRetryService(\n\t\t\t\ttoolRetryMode,\n\t\t\t\t() => sessionManager.getSessionId() ?? undefined,\n\t\t\t)\n\t\t: new ToolRetryService(toolRetryMode);\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 10: Tool Registry and Sandbox Setup\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tlet toolsResult!: Awaited<\n\t\tReturnType<\n\t\t\ttypeof import(\"./bootstrap/tools-setup.js\").createToolsAndSandbox\n\t\t>\n\t>;\n\ttry {\n\t\tconst { createToolsAndSandbox } = await import(\n\t\t\t\"./bootstrap/tools-setup.js\"\n\t\t);\n\t\ttoolsResult = await createToolsAndSandbox({\n\t\t\tparsedTools: parsed.tools,\n\t\t\tparsedSandbox: parsed.sandbox,\n\t\t\tmodelApi: model.api,\n\t\t\tcwd: process.cwd(),\n\t\t});\n\t} catch (error) {\n\t\tawait exitWithStartupError(error);\n\t}\n\tconst { allTools, sandbox, sandboxMode } = toolsResult;\n\tstartupProfiler.checkpoint(\"tools:prepared\", { tools: allTools.length });\n\tconst useInteractiveClientTools = Boolean(interactiveClientToolService);\n\tconst replaceAskUserTool = <T extends typeof allTools>(tools: T): T =>\n\t\ttools.map((tool) =>\n\t\t\ttool.name === \"ask_user\" ? askUserClientTool : tool,\n\t\t) as T;\n\tconst configuredAllTools = useInteractiveClientTools\n\t\t? replaceAskUserTool(allTools)\n\t\t: allTools;\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 11: System Prompt Assembly\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Build the system prompt with project context after sandbox setup so runtime\n\t// constraint fragments reflect the resolved sandbox state, not just the\n\t// requested CLI mode.\n\tconst resolvedConstraintSandboxMode = sandbox\n\t\t? sandbox instanceof LocalSandbox\n\t\t\t? \"local\"\n\t\t\t: (sandboxMode ?? null)\n\t\t: \"none\";\n\tconst systemPromptToolNames =\n\t\tparsed.tools ??\n\t\t(model.api === \"openai-codex-app-server\"\n\t\t\t? toolsResult.baseTools.map((tool) => tool.name)\n\t\t\t: undefined);\n\tconst runtimeConstraints = detectRuntimeConstraintContext({\n\t\tcwd: process.cwd(),\n\t\tsandboxMode: resolvedConstraintSandboxMode,\n\t\tsandboxEnabled:\n\t\t\tBoolean(sandbox) && resolvedConstraintSandboxMode !== \"local\",\n\t\treadOnly: parsed.execReadOnly || parsed.readonly ? true : undefined,\n\t});\n\tconst { systemPrompt, promptMetadata, promptContextManifest } =\n\t\tawait resolveMaestroSystemPrompt({\n\t\t\tcustomPrompt: parsed.systemPrompt,\n\t\t\ttoolNames: systemPromptToolNames,\n\t\t\tappendPrompt: parsed.appendSystemPrompt,\n\t\t\truntimeConstraints,\n\t\t\tcwd: process.cwd(),\n\t\t});\n\tconst unifiedContextManifest = loadUnifiedContextManifest(process.cwd(), {\n\t\tprojectDocs: promptContextManifest,\n\t});\n\tstartupProfiler.checkpoint(\"prompt:assembled\", {\n\t\tsystem_bytes: systemPrompt.length,\n\t});\n\tconst systemPromptSourcePaths = resolveExplicitSystemPromptSourcePaths(\n\t\tparsed.systemPrompt,\n\t\tparsed.appendSystemPrompt,\n\t);\n\t// Register sandbox cleanup on exit (only if sandbox is active)\n\tif (sandbox && toolsResult.disposeSandbox) {\n\t\tconst cleanupSandbox = toolsResult.disposeSandbox;\n\t\tif (!sandboxCleanupRegistered) {\n\t\t\tprocess.once(\"beforeExit\", () => void cleanupSandbox());\n\t\t\tprocess.once(\"SIGINT\", () => {\n\t\t\t\tvoid cleanupSandbox();\n\t\t\t\tprocess.exit(0);\n\t\t\t});\n\t\t\tprocess.once(\"SIGTERM\", () => {\n\t\t\t\tvoid cleanupSandbox();\n\t\t\t\tprocess.exit(0);\n\t\t\t});\n\t\t\tsandboxCleanupRegistered = true;\n\t\t}\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 12: Agent Creation\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { createAgentInstance } = await import(\n\t\t\"./bootstrap/agent-creation-setup.js\"\n\t);\n\tconst { setTaskBudgetTotal } = await import(\"./agent/task-budget-access.js\");\n\tconst enterpriseUser = (() => {\n\t\tconst u = enterpriseContext.getUser();\n\t\treturn u ? { id: u.userId, orgId: u.orgId } : undefined;\n\t})();\n\tconst { agent } = createAgentInstance({\n\t\tsystemPrompt,\n\t\tpromptMetadata,\n\t\tsystemPromptSourcePaths,\n\t\tpromptContextManifest,\n\t\tunifiedContextManifest,\n\t\tmodel,\n\t\treasoningSummary,\n\t\tallTools: configuredAllTools,\n\t\tsandbox,\n\t\tsandboxMode: sandboxMode ?? null,\n\t\tapprovalService,\n\t\ttoolRetryService,\n\t\tclientToolService:\n\t\t\theadlessClientToolService ?? interactiveClientToolService,\n\t\trequireCredential,\n\t\tenterpriseUser,\n\t\treadonly: parsed.readonly,\n\t\tcomposer: parsed.composer,\n\t\tcwd: process.cwd(),\n\t});\n\tsetTaskBudgetTotal(agent, parsed.taskBudget);\n\tstartupProfiler.checkpoint(\"agent:ready\");\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 11.5: TypeScript Hooks Initialization\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { initializeTypeScriptHooks } = await import(\n\t\t\"./bootstrap/hooks-setup.js\"\n\t);\n\tconst { tsHooks } = await initializeTypeScriptHooks({\n\t\tagent,\n\t\tsessionManager,\n\t\tcwd: process.cwd(),\n\t\tbaseTools: configuredAllTools,\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 12: MCP (Model Context Protocol) Integration\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { initializeMcpServers } = await import(\"./bootstrap/mcp-setup.js\");\n\tinitializeMcpServers({\n\t\tagent,\n\t\tbaseTools: configuredAllTools,\n\t\tcwd: process.cwd(),\n\t});\n\tstartupProfiler.checkpoint(\"mcp:bootstrap_queued\");\n\n\t// Determine mode early to know if we should print messages\n\tconst isInteractive = parsed.messages.length === 0;\n\tconst mode = parsed.mode || \"text\";\n\t// Don't print messages in headless mode - stdout is for JSON only\n\tconst shouldPrintMessages =\n\t\t(isInteractive || mode === \"text\") &&\n\t\tmode !== \"headless\" &&\n\t\t!parsed.headless;\n\n\tconst isGitRepository = isInsideGitRepository();\n\n\t// Log sandbox status\n\tif (sandbox && shouldPrintMessages) {\n\t\tconsole.log(chalk.dim(`Sandbox enabled (mode: ${sandboxMode})`));\n\t}\n\n\tif (\n\t\tapprovalModeOverride === \"auto\" &&\n\t\t!isGitRepository &&\n\t\tshouldPrintMessages\n\t) {\n\t\tconsole.log(\n\t\t\tchalk.yellow(\n\t\t\t\t\"Auto approval is enabled outside a git repository. Changes will not be version controlled.\",\n\t\t\t),\n\t\t);\n\t}\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 13: Session Restoration\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst shouldRestoreSession =\n\t\tparsed.continue || parsed.resume || execResumeApplied;\n\tconst isFreshInteractiveSession =\n\t\tisInteractive && !shouldRestoreSession && mode !== \"rpc\";\n\n\tconst { restoreSessionState } = await import(\n\t\t\"./bootstrap/session-restoration-setup.js\"\n\t);\n\tconst { startupChangelogSummary, updateNotice, scopedModels } =\n\t\tawait restoreSessionState({\n\t\t\tagent,\n\t\t\tsessionManager,\n\t\t\tshouldRestoreSession,\n\t\t\tisContinueOrResume: Boolean(parsed.continue || parsed.resume),\n\t\t\tshouldPrintMessages,\n\t\t\tisFreshInteractiveSession,\n\t\t\tversion: VERSION,\n\t\t\tmodels: parsed.models,\n\t\t});\n\n\tawait applySessionStartHooks({\n\t\tagent,\n\t\tsessionManager,\n\t\tcwd: process.cwd(),\n\t\tsource: resolveSessionStartHookSource({\n\t\t\tmode,\n\t\t\tcommand: parsed.command,\n\t\t\tisInteractive,\n\t\t\theadless: parsed.headless,\n\t\t\tshouldRestoreSession,\n\t\t}),\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 14.5: Event Subscriptions\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\tconst { setupEventSubscriptions } = await import(\n\t\t\"./bootstrap/event-subscriptions-setup.js\"\n\t);\n\tconst automaticMemoryConsolidation =\n\t\tcreateAutomaticMemoryConsolidationCoordinator({\n\t\t\tcreateAgent: async () =>\n\t\t\t\tcreateBackgroundTextAgent({\n\t\t\t\t\tmodel: agent.state.model as Model<Api>,\n\t\t\t\t\tsystemPrompt: getMemoryConsolidationSystemPrompt(),\n\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\tgetAuthContext: (provider) => requireCredential(provider, false),\n\t\t\t\t}),\n\t\t\tgetModel: () => agent.state.model as Model<Api>,\n\t\t});\n\tconst automaticMemoryExtraction = createAutomaticMemoryExtractionCoordinator({\n\t\tcreateAgent: async () =>\n\t\t\tcreateBackgroundTextAgent({\n\t\t\t\tmodel: agent.state.model as Model<Api>,\n\t\t\t\tsystemPrompt: getMemoryExtractionSystemPrompt(),\n\t\t\t\tcwd: process.cwd(),\n\t\t\t\tgetAuthContext: (provider) => requireCredential(provider, false),\n\t\t\t}),\n\t\tgetModel: () => agent.state.model as Model<Api>,\n\t\tonProcessed: () => automaticMemoryConsolidation.schedule(),\n\t\tsessionManager,\n\t});\n\tsetupEventSubscriptions({\n\t\tagent,\n\t\tsessionManager,\n\t\tapprovalMode: (approvalModeOverride ?? \"prompt\") as\n\t\t\t| \"auto\"\n\t\t\t| \"prompt\"\n\t\t\t| \"fail\",\n\t\tsandboxMode,\n\t\ttsHookCount: tsHooks.length,\n\t\tcwd: process.cwd(),\n\t\tenterpriseContext,\n\t\tautomaticMemoryExtraction,\n\t\tscenarioReplay:\n\t\t\tparsed.replayScenarioPath && process.env.MAESTRO_SCENARIO_ID\n\t\t\t\t? {\n\t\t\t\t\t\tpath: scenarioSourceLabel(parsed.replayScenarioPath),\n\t\t\t\t\t\tscenarioId: process.env.MAESTRO_SCENARIO_ID,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\tscenarioRecorder,\n\t});\n\n\t// ─────────────────────────────────────────────────────────────────────────────\n\t// PHASE 14: Runtime Mode Dispatch\n\t// ─────────────────────────────────────────────────────────────────────────────\n\n\t// Route to the appropriate runtime mode based on command and arguments:\n\t// 1. agents init: Generate AGENTS.md file\n\t// 2. RPC mode: JSON-over-stdio protocol for programmatic control\n\t// 3. Interactive TUI: Full terminal interface\n\t// 4. Exec mode: Non-interactive batch execution\n\t// 5. Single-shot: Process CLI messages and exit\n\ttry {\n\t\tif (agentsInitPrompt) {\n\t\t\tstartupProfiler.terminal(\"exec:ready\", { mode: \"agents\" });\n\t\t\tconst cwd = process.cwd();\n\t\t\tconst targetPath = agentsInitPath ?? \"AGENTS.md\";\n\t\t\tconst displayPath =\n\t\t\t\ttargetPath.startsWith(cwd) && targetPath !== cwd\n\t\t\t\t\t? `.${targetPath.slice(cwd.length)}`\n\t\t\t\t\t: targetPath;\n\t\t\tconst runMode: Extract<Mode, \"text\" | \"json\"> =\n\t\t\t\tmode === \"rpc\" || mode === \"headless\" ? \"text\" : mode;\n\t\t\tconsole.log(chalk.green(`Drafting AGENTS.md at ${displayPath}...`));\n\t\t\tawait runSingleShotMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\t[agentsInitPrompt],\n\t\t\t\trunMode,\n\t\t\t);\n\t\t\tconsole.log(chalk.dim(`AGENTS.md generated at ${displayPath}`));\n\t\t} else if (mode === \"headless\" || parsed.headless) {\n\t\t\t// Headless mode - for native TUI communication\n\t\t\tstartupProfiler.terminal(\"headless:ready\");\n\t\t\tawait runHeadlessMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tapprovalService,\n\t\t\t\ttoolRetryService,\n\t\t\t\t{ runtimeSelection: headlessRuntimeSelection },\n\t\t\t);\n\t\t} else if (mode === \"rpc\") {\n\t\t\t// RPC mode - headless operation\n\t\t\tstartupProfiler.terminal(\"rpc:ready\");\n\t\t\tconst { runRpcMode } = await import(\"./cli/rpc-mode.js\");\n\t\t\tawait runRpcMode(agent, sessionManager);\n\t\t} else if (isInteractive) {\n\t\t\t// No messages and not RPC - use TUI\n\t\t\tstartupProfiler.terminal(\"ui:ready\");\n\t\t\tawait runInteractiveMode(\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tVERSION,\n\t\t\t\tapprovalService,\n\t\t\t\ttoolRetryService,\n\t\t\t\tparsed.apiKey,\n\t\t\t\t{\n\t\t\t\t\tclientToolService: interactiveClientToolService,\n\t\t\t\t\tmodelScope: scopedModels,\n\t\t\t\t\tstartupChangelogSummary,\n\t\t\t\t\tupdateNotice,\n\t\t\t\t},\n\t\t\t);\n\t\t} else if (parsed.command === \"exec\") {\n\t\t\tstartupProfiler.terminal(\"exec:ready\");\n\t\t\tawait runExecCommand({\n\t\t\t\tagent,\n\t\t\t\tsessionManager,\n\t\t\t\tprompts: parsed.messages,\n\t\t\t\tjsonl: Boolean(parsed.execJson),\n\t\t\t\tsandboxMode: sandboxMode,\n\t\t\t\toutputSchema: parsed.execOutputSchema,\n\t\t\t\toutputLastMessage: parsed.execOutputLast,\n\t\t\t});\n\t\t} else {\n\t\t\t// CLI mode with messages\n\t\t\tstartupProfiler.terminal(\"cli:ready\");\n\t\t\tawait runSingleShotMode(agent, sessionManager, parsed.messages, mode);\n\t\t}\n\t} finally {\n\t\tawait automaticMemoryExtraction.flush();\n\t\tawait automaticMemoryConsolidation.flush();\n\t}\n}\n"]}
|
|
@@ -124,12 +124,13 @@ export declare const configValidator: import("ajv/dist/core.js").AnyValidateFunc
|
|
|
124
124
|
} | undefined;
|
|
125
125
|
providers: {
|
|
126
126
|
enabled?: boolean | undefined;
|
|
127
|
-
apiKey?: string | undefined;
|
|
128
|
-
headers?: {
|
|
129
|
-
[x: string]: string;
|
|
130
|
-
} | undefined;
|
|
131
|
-
baseUrl?: string | undefined;
|
|
132
127
|
models?: {
|
|
128
|
+
cost?: {
|
|
129
|
+
output: number;
|
|
130
|
+
input: number;
|
|
131
|
+
cacheRead: number;
|
|
132
|
+
cacheWrite: number;
|
|
133
|
+
} | undefined;
|
|
133
134
|
input?: ("text" | "image")[] | undefined;
|
|
134
135
|
headers?: {
|
|
135
136
|
[x: string]: string;
|
|
@@ -137,12 +138,6 @@ export declare const configValidator: import("ajv/dist/core.js").AnyValidateFunc
|
|
|
137
138
|
baseUrl?: string | undefined;
|
|
138
139
|
api?: "openai-completions" | "openai-responses" | "openai-codex-responses" | "openai-codex-app-server" | "anthropic-messages" | "google-generative-ai" | "google-gemini-cli" | "bedrock-converse" | "vertex-ai" | "scripted-replay" | undefined;
|
|
139
140
|
reasoning?: boolean | undefined;
|
|
140
|
-
cost?: {
|
|
141
|
-
input: number;
|
|
142
|
-
output: number;
|
|
143
|
-
cacheRead: number;
|
|
144
|
-
cacheWrite: number;
|
|
145
|
-
} | undefined;
|
|
146
141
|
compat?: {
|
|
147
142
|
supportsStore?: boolean | undefined;
|
|
148
143
|
supportsDeveloperRole?: boolean | undefined;
|
|
@@ -154,18 +149,23 @@ export declare const configValidator: import("ajv/dist/core.js").AnyValidateFunc
|
|
|
154
149
|
requiresThinkingAsText?: boolean | undefined;
|
|
155
150
|
requiresMistralToolIds?: boolean | undefined;
|
|
156
151
|
} | undefined;
|
|
157
|
-
id: string;
|
|
158
152
|
name: string;
|
|
153
|
+
id: string;
|
|
159
154
|
maxTokens: number;
|
|
160
155
|
contextWindow: number;
|
|
161
156
|
}[] | undefined;
|
|
157
|
+
apiKey?: string | undefined;
|
|
158
|
+
headers?: {
|
|
159
|
+
[x: string]: string;
|
|
160
|
+
} | undefined;
|
|
161
|
+
baseUrl?: string | undefined;
|
|
162
162
|
api?: "openai-completions" | "openai-responses" | "openai-codex-responses" | "openai-codex-app-server" | "anthropic-messages" | "google-generative-ai" | "google-gemini-cli" | "bedrock-converse" | "vertex-ai" | "scripted-replay" | undefined;
|
|
163
163
|
apiKeyEnv?: string | undefined;
|
|
164
164
|
options?: {
|
|
165
165
|
[x: string]: unknown;
|
|
166
166
|
} | undefined;
|
|
167
|
-
id: string;
|
|
168
167
|
name: string;
|
|
168
|
+
id: string;
|
|
169
169
|
}[];
|
|
170
170
|
}>;
|
|
171
171
|
export type CustomModelConfig = Static<typeof configSchema>;
|
|
@@ -35,7 +35,9 @@ export interface MaestroScenarioPlatformLink {
|
|
|
35
35
|
rationale?: string;
|
|
36
36
|
}
|
|
37
37
|
export interface MaestroScenarioExternalRefs {
|
|
38
|
+
/** @deprecated Preserved only for archived evalops.maestro.scenario.v1 artifacts. */
|
|
38
39
|
ensembleTranscriptIds?: string[];
|
|
40
|
+
platformSlackEventIds?: string[];
|
|
39
41
|
platformTraceIds?: string[];
|
|
40
42
|
platformWorkEnvelopeIds?: string[];
|
|
41
43
|
slackThreadRefs?: string[];
|