@evalops/maestro 0.10.8 → 0.10.10
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 +3 -1
- package/dist/agent/action-approval.d.ts +6 -0
- package/dist/agent/action-approval.d.ts.map +1 -1
- package/dist/agent/action-approval.js.map +1 -1
- package/dist/agent/agent.d.ts +13 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +368 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/auto-compaction.d.ts +4 -4
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/compaction-cleanup.d.ts +2 -0
- package/dist/agent/compaction-cleanup.d.ts.map +1 -1
- package/dist/agent/compaction-cleanup.js +17 -2
- package/dist/agent/compaction-cleanup.js.map +1 -1
- package/dist/agent/compaction.d.ts +3 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +10 -2
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-manager.d.ts +4 -0
- package/dist/agent/context-manager.d.ts.map +1 -1
- package/dist/agent/context-manager.js +8 -0
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/context-providers.d.ts +2 -0
- package/dist/agent/context-providers.d.ts.map +1 -1
- package/dist/agent/context-providers.js +3 -2
- package/dist/agent/context-providers.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +17 -5
- package/dist/agent/providers/google.js +174 -144
- package/dist/agent/providers/openai-codex-responses.d.ts +4 -0
- package/dist/agent/providers/openai-codex-responses.d.ts.map +1 -0
- package/dist/agent/providers/openai-codex-responses.js +637 -0
- package/dist/agent/providers/openai-codex-responses.js.map +1 -0
- package/dist/agent/providers/openai-codex-session.d.ts +18 -0
- package/dist/agent/providers/openai-codex-session.d.ts.map +1 -0
- package/dist/agent/providers/openai-codex-session.js +53 -0
- package/dist/agent/providers/openai-codex-session.js.map +1 -0
- package/dist/agent/providers/openai-responses-sdk.d.ts.map +1 -1
- package/dist/agent/providers/openai-responses-sdk.js +16 -6
- package/dist/agent/providers/openai-responses-sdk.js.map +1 -1
- package/dist/agent/providers/openai-shared.d.ts +12 -5
- package/dist/agent/providers/openai-shared.d.ts.map +1 -1
- package/dist/agent/providers/openai-shared.js +291 -2
- package/dist/agent/providers/openai-shared.js.map +1 -1
- package/dist/agent/providers/openai.d.ts +1 -1
- package/dist/agent/providers/openai.d.ts.map +1 -1
- package/dist/agent/providers/openai.js +48 -20
- package/dist/agent/providers/openai.js.map +1 -1
- package/dist/agent/providers/vertex.js +7 -0
- package/dist/agent/tracing.d.ts +16 -5
- package/dist/agent/tracing.d.ts.map +1 -1
- package/dist/agent/tracing.js +44 -2
- package/dist/agent/tracing.js.map +1 -1
- package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
- package/dist/agent/transport/create-provider-stream.js +9 -0
- package/dist/agent/transport/create-provider-stream.js.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.d.ts +86 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.js +665 -0
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -0
- package/dist/agent/transport/tool-execution.d.ts +3 -0
- package/dist/agent/transport/tool-execution.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution.js +16 -1
- package/dist/agent/transport/tool-execution.js.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts +7 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.js +207 -40
- package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
- package/dist/agent/transport/tool-update-queue.d.ts +2 -0
- package/dist/agent/transport/tool-update-queue.d.ts.map +1 -1
- package/dist/agent/transport/tool-update-queue.js.map +1 -1
- package/dist/agent/transport.d.ts +3 -0
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +96 -16
- package/dist/agent/transport.js.map +1 -1
- package/dist/agent/types.d.ts +50 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/approvals/platform-action-approval.d.ts +32 -0
- package/dist/approvals/platform-action-approval.d.ts.map +1 -0
- package/dist/approvals/platform-action-approval.js +210 -0
- package/dist/approvals/platform-action-approval.js.map +1 -0
- package/dist/approvals/service-client.d.ts +56 -0
- package/dist/approvals/service-client.d.ts.map +1 -0
- package/dist/approvals/service-client.js +316 -0
- package/dist/approvals/service-client.js.map +1 -0
- package/dist/audit/logger.d.ts +4 -4
- package/dist/bootstrap/auth-setup.d.ts +2 -2
- package/dist/bootstrap/auth-setup.d.ts.map +1 -1
- package/dist/bootstrap/auth-setup.js +4 -7
- package/dist/bootstrap/auth-setup.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +28 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/codex.d.ts +2 -0
- package/dist/cli/commands/codex.d.ts.map +1 -0
- package/dist/cli/commands/codex.js +65 -0
- package/dist/cli/commands/codex.js.map +1 -0
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/evalops.d.ts +2 -0
- package/dist/cli/commands/evalops.d.ts.map +1 -0
- package/dist/cli/commands/evalops.js +69 -0
- package/dist/cli/commands/evalops.js.map +1 -0
- package/dist/cli/commands/hosted-runner.d.ts +23 -0
- package/dist/cli/commands/hosted-runner.d.ts.map +1 -0
- package/dist/cli/commands/hosted-runner.js +241 -0
- package/dist/cli/commands/hosted-runner.js.map +1 -0
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +23 -30
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/remote.d.ts +3 -0
- package/dist/cli/commands/remote.d.ts.map +1 -0
- package/dist/cli/commands/remote.js +631 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +7 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +167 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts +16 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +60 -4
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +1 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +36 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/jsonl-writer.d.ts.map +1 -1
- package/dist/cli/jsonl-writer.js +19 -6
- package/dist/cli/jsonl-writer.js.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +17 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
- package/dist/cli-tui/commands/access-command.js +1 -1
- package/dist/cli-tui/commands/access-command.js.map +1 -1
- package/dist/cli-tui/commands/audit-command.js +1 -1
- package/dist/cli-tui/commands/audit-command.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +29 -0
- package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-catalog.js +645 -0
- package/dist/cli-tui/commands/command-catalog.js.map +1 -0
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +12 -0
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-registry-adapter.js +120 -0
- package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -0
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +14 -0
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-suite-catalog.js +147 -0
- package/dist/cli-tui/commands/command-suite-catalog.js.map +1 -0
- package/dist/cli-tui/commands/{grouped-command-handlers.d.ts → command-suite-handlers.d.ts} +27 -26
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-suite-handlers.js +110 -0
- package/dist/cli-tui/commands/command-suite-handlers.js.map +1 -0
- package/dist/cli-tui/commands/hotkeys-command.d.ts +1 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +1 -1
- package/dist/cli-tui/commands/hotkeys-command.js +2 -2
- package/dist/cli-tui/commands/hotkeys-command.js.map +1 -1
- package/dist/cli-tui/commands/limits-command.js +1 -1
- package/dist/cli-tui/commands/limits-command.js.map +1 -1
- package/dist/cli-tui/commands/pii-command.js +1 -1
- package/dist/cli-tui/commands/pii-command.js.map +1 -1
- package/dist/cli-tui/commands/registry.d.ts +1 -1
- package/dist/cli-tui/commands/registry.d.ts.map +1 -1
- package/dist/cli-tui/commands/registry.js +29 -921
- package/dist/cli-tui/commands/registry.js.map +1 -1
- package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.d.ts +2 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.js +22 -6
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.js +5 -7
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.d.ts +0 -2
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/index.d.ts +2 -2
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/index.js +2 -2
- package/dist/cli-tui/commands/subcommands/index.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.js +12 -12
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.js +3 -3
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.js +5 -5
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.js +6 -6
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +1 -0
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/utils.d.ts +15 -15
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/utils.js +13 -8
- package/dist/cli-tui/commands/subcommands/utils.js.map +1 -0
- package/dist/cli-tui/commands/types.d.ts +3 -3
- package/dist/cli-tui/commands/types.d.ts.map +1 -1
- package/dist/cli-tui/commands/types.js.map +1 -1
- package/dist/cli-tui/editor-view.d.ts +1 -1
- package/dist/cli-tui/editor-view.d.ts.map +1 -1
- package/dist/cli-tui/editor-view.js +1 -1
- package/dist/cli-tui/editor-view.js.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +4 -0
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +76 -5
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
- package/dist/cli-tui/run/run-controller.d.ts +2 -2
- package/dist/cli-tui/run/run-controller.d.ts.map +1 -1
- package/dist/cli-tui/run/run-controller.js +3 -2
- package/dist/cli-tui/run/run-controller.js.map +1 -1
- package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/run-shell-command.js +11 -3
- package/dist/cli-tui/run/run-shell-command.js.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.js +11 -3
- package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
- package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/model-selector.js +1 -0
- package/dist/cli-tui/selectors/model-selector.js.map +1 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +8 -0
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +23 -2
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +3 -3
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +12 -2
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +32 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +1 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +108 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +1 -0
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +2 -2
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +2 -2
- package/dist/cli-tui/tui-renderer/input-controller.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.js +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +1 -1
- package/dist/cli-tui/tui-renderer.d.ts +1 -3
- package/dist/cli-tui/tui-renderer.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer.js +37 -83
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +8 -0
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.js +58 -0
- package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
- package/dist/cli.js +41771 -22892
- package/dist/cli.js.map +1 -1
- package/dist/config/env-vars.d.ts +4 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +4 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/config/feature-flags.d.ts +44 -0
- package/dist/config/feature-flags.d.ts.map +1 -1
- package/dist/config/feature-flags.js +214 -0
- package/dist/config/feature-flags.js.map +1 -1
- package/dist/connectors/service-client.d.ts +98 -0
- package/dist/connectors/service-client.d.ts.map +1 -0
- package/dist/connectors/service-client.js +459 -0
- package/dist/connectors/service-client.js.map +1 -0
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +53 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/db/health.d.ts +8 -0
- package/dist/db/health.d.ts.map +1 -0
- package/dist/db/health.js +64 -0
- package/dist/db/health.js.map +1 -0
- package/dist/db/migrate.d.ts +301 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +186 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/migrations/0000_initial.sql +308 -0
- package/dist/db/migrations/0001_shared_sessions.sql +18 -0
- package/dist/db/migrations/0002_usage_metrics.sql +28 -0
- package/dist/db/migrations/0003_execution_traces.sql +18 -0
- package/dist/db/migrations/0004_workspace_config.sql +11 -0
- package/dist/db/migrations/0005_revenue_attribution.sql +31 -0
- package/dist/db/migrations/0006_hosted_session_storage.sql +51 -0
- package/dist/db/migrations/0007_reconcile_legacy_audit_hash_cache.sql +24 -0
- package/dist/db/migrations/0008_reconcile_legacy_webhook_deliveries.sql +290 -0
- package/dist/db/migrations/meta/0000_snapshot.json +2438 -0
- package/dist/db/migrations/meta/_journal.json +69 -0
- package/dist/db/schema.d.ts +2232 -844
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +187 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/export-html.d.ts.map +1 -1
- package/dist/export-html.js +7 -4
- package/dist/export-html.js.map +1 -1
- package/dist/headless/utility-command-manager.d.ts +2 -1
- package/dist/headless/utility-command-manager.d.ts.map +1 -1
- package/dist/headless/utility-command-manager.js +12 -6
- package/dist/headless/utility-command-manager.js.map +1 -1
- package/dist/headless/utility-file-read.d.ts +1 -0
- package/dist/headless/utility-file-read.d.ts.map +1 -1
- package/dist/headless/utility-file-read.js +5 -1
- package/dist/headless/utility-file-read.js.map +1 -1
- package/dist/headless/utility-file-search.d.ts +1 -0
- package/dist/headless/utility-file-search.d.ts.map +1 -1
- package/dist/headless/utility-file-search.js +4 -1
- package/dist/headless/utility-file-search.js.map +1 -1
- package/dist/headless/utility-file-watch-manager.d.ts +2 -1
- package/dist/headless/utility-file-watch-manager.d.ts.map +1 -1
- package/dist/headless/utility-file-watch-manager.js +6 -2
- package/dist/headless/utility-file-watch-manager.js.map +1 -1
- package/dist/headless/workspace-root.d.ts +8 -0
- package/dist/headless/workspace-root.d.ts.map +1 -0
- package/dist/headless/workspace-root.js +74 -0
- package/dist/headless/workspace-root.js.map +1 -0
- package/dist/hooks/notification-hooks.d.ts +5 -0
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js +4 -0
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/lsp/diagnostic-deltas.d.ts +20 -0
- package/dist/lsp/diagnostic-deltas.d.ts.map +1 -0
- package/dist/lsp/diagnostic-deltas.js +92 -0
- package/dist/lsp/diagnostic-deltas.js.map +1 -0
- package/dist/lsp/diagnostic-repair.d.ts +48 -0
- package/dist/lsp/diagnostic-repair.d.ts.map +1 -0
- package/dist/lsp/diagnostic-repair.js +143 -0
- package/dist/lsp/diagnostic-repair.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +122 -37
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts +4 -2
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +58 -14
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/manager.d.ts +1 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +1 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/platform-plugin.d.ts +3 -0
- package/dist/mcp/platform-plugin.d.ts.map +1 -0
- package/dist/mcp/platform-plugin.js +83 -0
- package/dist/mcp/platform-plugin.js.map +1 -0
- package/dist/mcp/tool-bridge.d.ts +15 -0
- package/dist/mcp/tool-bridge.d.ts.map +1 -1
- package/dist/mcp/tool-bridge.js +194 -6
- package/dist/mcp/tool-bridge.js.map +1 -1
- package/dist/memory/platform-memory-client.d.ts +130 -0
- package/dist/memory/platform-memory-client.d.ts.map +1 -0
- package/dist/memory/platform-memory-client.js +330 -0
- package/dist/memory/platform-memory-client.js.map +1 -0
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -2
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/builtin.d.ts.map +1 -1
- package/dist/models/builtin.js +137 -0
- package/dist/models/builtin.js.map +1 -1
- package/dist/models/config-loader.d.ts +10 -10
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -0
- package/dist/models/config-loader.js.map +1 -1
- package/dist/models/registry.d.ts +1 -0
- package/dist/models/registry.d.ts.map +1 -1
- package/dist/models/registry.js +1 -0
- package/dist/models/registry.js.map +1 -1
- package/dist/oauth/connectors.d.ts +25 -0
- package/dist/oauth/connectors.d.ts.map +1 -0
- package/dist/oauth/connectors.js +253 -0
- package/dist/oauth/connectors.js.map +1 -0
- package/dist/oauth/device-identity.d.ts +18 -0
- package/dist/oauth/device-identity.d.ts.map +1 -0
- package/dist/oauth/device-identity.js +193 -0
- package/dist/oauth/device-identity.js.map +1 -0
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +73 -14
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -1
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +31 -1
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/openai-codex.d.ts +16 -0
- package/dist/oauth/openai-codex.d.ts.map +1 -0
- package/dist/oauth/openai-codex.js +300 -0
- package/dist/oauth/openai-codex.js.map +1 -0
- package/dist/opentelemetry.d.ts.map +1 -1
- package/dist/opentelemetry.js +9 -2
- package/dist/opentelemetry.js.map +1 -1
- package/dist/platform/agent-runtime-client.d.ts +279 -0
- package/dist/platform/agent-runtime-client.d.ts.map +1 -0
- package/dist/platform/agent-runtime-client.js +515 -0
- package/dist/platform/agent-runtime-client.js.map +1 -0
- package/dist/platform/cerebro-facts-client.d.ts +56 -0
- package/dist/platform/cerebro-facts-client.d.ts.map +1 -0
- package/dist/platform/cerebro-facts-client.js +297 -0
- package/dist/platform/cerebro-facts-client.js.map +1 -0
- package/dist/platform/client.d.ts +2 -1
- package/dist/platform/client.d.ts.map +1 -1
- package/dist/platform/client.js +9 -26
- package/dist/platform/client.js.map +1 -1
- package/dist/platform/core-services.d.ts +128 -0
- package/dist/platform/core-services.d.ts.map +1 -1
- package/dist/platform/core-services.js +128 -0
- package/dist/platform/core-services.js.map +1 -1
- package/dist/platform/maestro-timeline-client.d.ts +22 -0
- package/dist/platform/maestro-timeline-client.d.ts.map +1 -0
- package/dist/platform/maestro-timeline-client.js +373 -0
- package/dist/platform/maestro-timeline-client.js.map +1 -0
- package/dist/platform/tool-execution-client.d.ts +104 -0
- package/dist/platform/tool-execution-client.d.ts.map +1 -0
- package/dist/platform/tool-execution-client.js +284 -0
- package/dist/platform/tool-execution-client.js.map +1 -0
- package/dist/prompts/service-client.d.ts.map +1 -1
- package/dist/prompts/service-client.js +5 -2
- package/dist/prompts/service-client.js.map +1 -1
- package/dist/providers/anthropic-auth.d.ts.map +1 -1
- package/dist/providers/anthropic-auth.js +8 -6
- package/dist/providers/anthropic-auth.js.map +1 -1
- package/dist/providers/api-keys.d.ts +1 -0
- package/dist/providers/api-keys.d.ts.map +1 -1
- package/dist/providers/api-keys.js +5 -0
- package/dist/providers/api-keys.js.map +1 -1
- package/dist/providers/auth.d.ts +2 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +26 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/remote-runner/attach-client.d.ts +41 -0
- package/dist/remote-runner/attach-client.d.ts.map +1 -0
- package/dist/remote-runner/attach-client.js +692 -0
- package/dist/remote-runner/attach-client.js.map +1 -0
- package/dist/remote-runner/client.d.ts +205 -0
- package/dist/remote-runner/client.d.ts.map +1 -0
- package/dist/remote-runner/client.js +633 -0
- package/dist/remote-runner/client.js.map +1 -0
- package/dist/safety/action-firewall.d.ts +6 -1
- package/dist/safety/action-firewall.d.ts.map +1 -1
- package/dist/safety/action-firewall.js +62 -26
- package/dist/safety/action-firewall.js.map +1 -1
- package/dist/safety/governance-service-client.d.ts +36 -0
- package/dist/safety/governance-service-client.d.ts.map +1 -0
- package/dist/safety/governance-service-client.js +279 -0
- package/dist/safety/governance-service-client.js.map +1 -0
- package/dist/safety/policy.d.ts +13 -2
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +474 -52
- package/dist/safety/policy.js.map +1 -1
- package/dist/sdk-tools.d.ts +21 -0
- package/dist/sdk-tools.d.ts.map +1 -1
- package/dist/sdk-tools.js +16 -0
- package/dist/sdk-tools.js.map +1 -1
- package/dist/server/app-context.d.ts +25 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/approval-service.d.ts +7 -8
- package/dist/server/approval-service.d.ts.map +1 -1
- package/dist/server/approval-service.js +12 -24
- package/dist/server/approval-service.js.map +1 -1
- package/dist/server/authz.d.ts +23 -2
- package/dist/server/authz.d.ts.map +1 -1
- package/dist/server/authz.js +153 -17
- package/dist/server/authz.js.map +1 -1
- package/dist/server/handlers/approvals.d.ts.map +1 -1
- package/dist/server/handlers/approvals.js +3 -10
- package/dist/server/handlers/approvals.js.map +1 -1
- package/dist/server/handlers/branch.d.ts.map +1 -1
- package/dist/server/handlers/branch.js +29 -20
- package/dist/server/handlers/branch.js.map +1 -1
- package/dist/server/handlers/bridge.d.ts.map +1 -1
- package/dist/server/handlers/bridge.js +3 -2
- package/dist/server/handlers/bridge.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +23 -31
- package/dist/server/handlers/chat-ws.js.map +1 -1
- package/dist/server/handlers/chat.d.ts.map +1 -1
- package/dist/server/handlers/chat.js +105 -46
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/compliance.d.ts +3 -0
- package/dist/server/handlers/compliance.d.ts.map +1 -0
- package/dist/server/handlers/compliance.js +53 -0
- package/dist/server/handlers/compliance.js.map +1 -0
- package/dist/server/handlers/context.d.ts.map +1 -1
- package/dist/server/handlers/context.js +3 -8
- package/dist/server/handlers/context.js.map +1 -1
- package/dist/server/handlers/fleet.d.ts +4 -0
- package/dist/server/handlers/fleet.d.ts.map +1 -0
- package/dist/server/handlers/fleet.js +9 -0
- package/dist/server/handlers/fleet.js.map +1 -0
- package/dist/server/handlers/headless-sessions.d.ts +4 -0
- package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
- package/dist/server/handlers/headless-sessions.js +168 -3
- package/dist/server/handlers/headless-sessions.js.map +1 -1
- package/dist/server/handlers/health.d.ts +31 -2
- package/dist/server/handlers/health.d.ts.map +1 -1
- package/dist/server/handlers/health.js +82 -8
- package/dist/server/handlers/health.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts +128 -0
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -0
- package/dist/server/handlers/hosted-runner-drain.js +373 -0
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -0
- package/dist/server/handlers/hosted-runner-identity.d.ts +17 -0
- package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -0
- package/dist/server/handlers/hosted-runner-identity.js +39 -0
- package/dist/server/handlers/hosted-runner-identity.js.map +1 -0
- package/dist/server/handlers/intelligent-router.d.ts +3 -0
- package/dist/server/handlers/intelligent-router.d.ts.map +1 -0
- package/dist/server/handlers/intelligent-router.js +141 -0
- package/dist/server/handlers/intelligent-router.js.map +1 -0
- package/dist/server/handlers/models.d.ts.map +1 -1
- package/dist/server/handlers/models.js +14 -0
- package/dist/server/handlers/models.js.map +1 -1
- package/dist/server/handlers/pending-requests.d.ts +8 -0
- package/dist/server/handlers/pending-requests.d.ts.map +1 -0
- package/dist/server/handlers/pending-requests.js +149 -0
- package/dist/server/handlers/pending-requests.js.map +1 -0
- package/dist/server/handlers/revenue-attribution.d.ts +3 -0
- package/dist/server/handlers/revenue-attribution.d.ts.map +1 -0
- package/dist/server/handlers/revenue-attribution.js +45 -0
- package/dist/server/handlers/revenue-attribution.js.map +1 -0
- package/dist/server/handlers/runtime-app-server-ws.d.ts +10 -0
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -0
- package/dist/server/handlers/runtime-app-server-ws.js +206 -0
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -0
- package/dist/server/handlers/session-artifacts.js +2 -2
- package/dist/server/handlers/session-artifacts.js.map +1 -1
- package/dist/server/handlers/session-attachments.js +3 -3
- package/dist/server/handlers/session-attachments.js.map +1 -1
- package/dist/server/handlers/session-timeline.d.ts +11 -0
- package/dist/server/handlers/session-timeline.d.ts.map +1 -0
- package/dist/server/handlers/session-timeline.js +77 -0
- package/dist/server/handlers/session-timeline.js.map +1 -0
- package/dist/server/handlers/sessions.d.ts +11 -0
- package/dist/server/handlers/sessions.d.ts.map +1 -1
- package/dist/server/handlers/sessions.js +68 -100
- package/dist/server/handlers/sessions.js.map +1 -1
- package/dist/server/handlers/traces.d.ts +3 -0
- package/dist/server/handlers/traces.d.ts.map +1 -0
- package/dist/server/handlers/traces.js +60 -0
- package/dist/server/handlers/traces.js.map +1 -0
- package/dist/server/handlers/usage-analytics.d.ts +3 -0
- package/dist/server/handlers/usage-analytics.d.ts.map +1 -0
- package/dist/server/handlers/usage-analytics.js +40 -0
- package/dist/server/handlers/usage-analytics.js.map +1 -0
- package/dist/server/handlers/workspace-config.d.ts +3 -0
- package/dist/server/handlers/workspace-config.d.ts.map +1 -0
- package/dist/server/handlers/workspace-config.js +62 -0
- package/dist/server/handlers/workspace-config.js.map +1 -0
- package/dist/server/headless-in-process-host.d.ts +8 -1
- package/dist/server/headless-in-process-host.d.ts.map +1 -1
- package/dist/server/headless-in-process-host.js +6 -0
- package/dist/server/headless-in-process-host.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +99 -1
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +286 -23
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +103 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -0
- package/dist/server/hosted-session-manager.js +629 -0
- package/dist/server/hosted-session-manager.js.map +1 -0
- package/dist/server/pending-request-payload.d.ts +4 -0
- package/dist/server/pending-request-payload.d.ts.map +1 -0
- package/dist/server/pending-request-payload.js +107 -0
- package/dist/server/pending-request-payload.js.map +1 -0
- package/dist/server/request-context.d.ts +4 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +9 -0
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +149 -1
- package/dist/server/routes.js.map +1 -1
- package/dist/server/runtime-ws-access.d.ts +16 -0
- package/dist/server/runtime-ws-access.d.ts.map +1 -0
- package/dist/server/runtime-ws-access.js +21 -0
- package/dist/server/runtime-ws-access.js.map +1 -0
- package/dist/server/server-middlewares.d.ts +1 -1
- package/dist/server/server-middlewares.d.ts.map +1 -1
- package/dist/server/server-middlewares.js +35 -27
- package/dist/server/server-middlewares.js.map +1 -1
- package/dist/server/server-request-manager.d.ts +8 -27
- package/dist/server/server-request-manager.d.ts.map +1 -1
- package/dist/server/server-request-manager.js +7 -0
- package/dist/server/server-request-manager.js.map +1 -1
- package/dist/server/server-utils.d.ts +2 -1
- package/dist/server/server-utils.d.ts.map +1 -1
- package/dist/server/server-utils.js +11 -1
- package/dist/server/server-utils.js.map +1 -1
- package/dist/server/session-event-env.d.ts +2 -0
- package/dist/server/session-event-env.d.ts.map +1 -0
- package/dist/server/session-event-env.js +8 -0
- package/dist/server/session-event-env.js.map +1 -0
- package/dist/server/session-initialization.d.ts +25 -4
- package/dist/server/session-initialization.d.ts.map +1 -1
- package/dist/server/session-initialization.js +22 -5
- package/dist/server/session-initialization.js.map +1 -1
- package/dist/server/session-scope.d.ts +4 -0
- package/dist/server/session-scope.d.ts.map +1 -1
- package/dist/server/session-scope.js +44 -4
- package/dist/server/session-scope.js.map +1 -1
- package/dist/server/session-timeline.d.ts +13 -0
- package/dist/server/session-timeline.d.ts.map +1 -0
- package/dist/server/session-timeline.js +566 -0
- package/dist/server/session-timeline.js.map +1 -0
- package/dist/services/compliance/controls.d.ts +6 -0
- package/dist/services/compliance/controls.d.ts.map +1 -0
- package/dist/services/compliance/controls.js +113 -0
- package/dist/services/compliance/controls.js.map +1 -0
- package/dist/services/compliance/index.d.ts +6 -0
- package/dist/services/compliance/index.d.ts.map +1 -0
- package/dist/services/compliance/index.js +5 -0
- package/dist/services/compliance/index.js.map +1 -0
- package/dist/services/compliance/normalize.d.ts +23 -0
- package/dist/services/compliance/normalize.d.ts.map +1 -0
- package/dist/services/compliance/normalize.js +226 -0
- package/dist/services/compliance/normalize.js.map +1 -0
- package/dist/services/compliance/recorder.d.ts +22 -0
- package/dist/services/compliance/recorder.d.ts.map +1 -0
- package/dist/services/compliance/recorder.js +89 -0
- package/dist/services/compliance/recorder.js.map +1 -0
- package/dist/services/compliance/service.d.ts +24 -0
- package/dist/services/compliance/service.d.ts.map +1 -0
- package/dist/services/compliance/service.js +426 -0
- package/dist/services/compliance/service.js.map +1 -0
- package/dist/services/compliance/types.d.ts +185 -0
- package/dist/services/compliance/types.d.ts.map +1 -0
- package/dist/services/compliance/types.js +2 -0
- package/dist/services/compliance/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +5 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -0
- package/dist/services/intelligent-router/index.js +5 -0
- package/dist/services/intelligent-router/index.js.map +1 -0
- package/dist/services/intelligent-router/normalize.d.ts +9 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -0
- package/dist/services/intelligent-router/normalize.js +169 -0
- package/dist/services/intelligent-router/normalize.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +24 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -0
- package/dist/services/intelligent-router/recorder.js +98 -0
- package/dist/services/intelligent-router/recorder.js.map +1 -0
- package/dist/services/intelligent-router/service.d.ts +22 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -0
- package/dist/services/intelligent-router/service.js +328 -0
- package/dist/services/intelligent-router/service.js.map +1 -0
- package/dist/services/intelligent-router/types.d.ts +98 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -0
- package/dist/services/intelligent-router/types.js +7 -0
- package/dist/services/intelligent-router/types.js.map +1 -0
- package/dist/services/revenue-attribution/index.d.ts +4 -0
- package/dist/services/revenue-attribution/index.d.ts.map +1 -0
- package/dist/services/revenue-attribution/index.js +4 -0
- package/dist/services/revenue-attribution/index.js.map +1 -0
- package/dist/services/revenue-attribution/normalize.d.ts +13 -0
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -0
- package/dist/services/revenue-attribution/normalize.js +155 -0
- package/dist/services/revenue-attribution/normalize.js.map +1 -0
- package/dist/services/revenue-attribution/service.d.ts +21 -0
- package/dist/services/revenue-attribution/service.d.ts.map +1 -0
- package/dist/services/revenue-attribution/service.js +248 -0
- package/dist/services/revenue-attribution/service.js.map +1 -0
- package/dist/services/revenue-attribution/types.d.ts +96 -0
- package/dist/services/revenue-attribution/types.d.ts.map +1 -0
- package/dist/services/revenue-attribution/types.js +7 -0
- package/dist/services/revenue-attribution/types.js.map +1 -0
- package/dist/services/traces/index.d.ts +5 -0
- package/dist/services/traces/index.d.ts.map +1 -0
- package/dist/services/traces/index.js +4 -0
- package/dist/services/traces/index.js.map +1 -0
- package/dist/services/traces/normalize.d.ts +20 -0
- package/dist/services/traces/normalize.d.ts.map +1 -0
- package/dist/services/traces/normalize.js +261 -0
- package/dist/services/traces/normalize.js.map +1 -0
- package/dist/services/traces/otel.d.ts +3 -0
- package/dist/services/traces/otel.d.ts.map +1 -0
- package/dist/services/traces/otel.js +173 -0
- package/dist/services/traces/otel.js.map +1 -0
- package/dist/services/traces/service.d.ts +17 -0
- package/dist/services/traces/service.d.ts.map +1 -0
- package/dist/services/traces/service.js +197 -0
- package/dist/services/traces/service.js.map +1 -0
- package/dist/services/traces/types.d.ts +130 -0
- package/dist/services/traces/types.d.ts.map +1 -0
- package/dist/services/traces/types.js +8 -0
- package/dist/services/traces/types.js.map +1 -0
- package/dist/services/usage-analytics/aggregation.d.ts +18 -0
- package/dist/services/usage-analytics/aggregation.d.ts.map +1 -0
- package/dist/services/usage-analytics/aggregation.js +130 -0
- package/dist/services/usage-analytics/aggregation.js.map +1 -0
- package/dist/services/usage-analytics/index.d.ts +5 -0
- package/dist/services/usage-analytics/index.d.ts.map +1 -0
- package/dist/services/usage-analytics/index.js +4 -0
- package/dist/services/usage-analytics/index.js.map +1 -0
- package/dist/services/usage-analytics/recorder.d.ts +16 -0
- package/dist/services/usage-analytics/recorder.d.ts.map +1 -0
- package/dist/services/usage-analytics/recorder.js +128 -0
- package/dist/services/usage-analytics/recorder.js.map +1 -0
- package/dist/services/usage-analytics/service.d.ts +15 -0
- package/dist/services/usage-analytics/service.d.ts.map +1 -0
- package/dist/services/usage-analytics/service.js +210 -0
- package/dist/services/usage-analytics/service.js.map +1 -0
- package/dist/services/usage-analytics/types.d.ts +80 -0
- package/dist/services/usage-analytics/types.d.ts.map +1 -0
- package/dist/services/usage-analytics/types.js +2 -0
- package/dist/services/usage-analytics/types.js.map +1 -0
- package/dist/services/workspace-config/index.d.ts +6 -0
- package/dist/services/workspace-config/index.d.ts.map +1 -0
- package/dist/services/workspace-config/index.js +5 -0
- package/dist/services/workspace-config/index.js.map +1 -0
- package/dist/services/workspace-config/middleware.d.ts +5 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -0
- package/dist/services/workspace-config/middleware.js +98 -0
- package/dist/services/workspace-config/middleware.js.map +1 -0
- package/dist/services/workspace-config/normalize.d.ts +17 -0
- package/dist/services/workspace-config/normalize.d.ts.map +1 -0
- package/dist/services/workspace-config/normalize.js +148 -0
- package/dist/services/workspace-config/normalize.js.map +1 -0
- package/dist/services/workspace-config/policy.d.ts +16 -0
- package/dist/services/workspace-config/policy.d.ts.map +1 -0
- package/dist/services/workspace-config/policy.js +77 -0
- package/dist/services/workspace-config/policy.js.map +1 -0
- package/dist/services/workspace-config/service.d.ts +20 -0
- package/dist/services/workspace-config/service.d.ts.map +1 -0
- package/dist/services/workspace-config/service.js +162 -0
- package/dist/services/workspace-config/service.js.map +1 -0
- package/dist/services/workspace-config/types.d.ts +71 -0
- package/dist/services/workspace-config/types.d.ts.map +1 -0
- package/dist/services/workspace-config/types.js +2 -0
- package/dist/services/workspace-config/types.js.map +1 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +10 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/migration.d.ts.map +1 -1
- package/dist/session/migration.js +2 -1
- package/dist/session/migration.js.map +1 -1
- package/dist/session/session-memory.d.ts.map +1 -1
- package/dist/session/session-memory.js +7 -1
- package/dist/session/session-memory.js.map +1 -1
- package/dist/session/types.d.ts +1 -2
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +1 -22
- package/dist/session/types.js.map +1 -1
- package/dist/session/wire-format.d.ts +7 -0
- package/dist/session/wire-format.d.ts.map +1 -0
- package/dist/session/wire-format.generated.d.ts +95 -0
- package/dist/session/wire-format.generated.d.ts.map +1 -0
- package/dist/session/wire-format.generated.js +111 -0
- package/dist/session/wire-format.generated.js.map +1 -0
- package/dist/session/wire-format.js +145 -0
- package/dist/session/wire-format.js.map +1 -0
- package/dist/shared-memory/client.d.ts.map +1 -1
- package/dist/shared-memory/client.js +22 -22
- package/dist/shared-memory/client.js.map +1 -1
- package/dist/skills/artifact-metadata.d.ts +16 -0
- package/dist/skills/artifact-metadata.d.ts.map +1 -0
- package/dist/skills/artifact-metadata.js +86 -0
- package/dist/skills/artifact-metadata.js.map +1 -0
- package/dist/skills/loader.d.ts +2 -2
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +1 -0
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/service-client.d.ts +42 -0
- package/dist/skills/service-client.d.ts.map +1 -0
- package/dist/skills/service-client.js +258 -0
- package/dist/skills/service-client.js.map +1 -0
- package/dist/skills/tool.d.ts +3 -0
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +67 -5
- package/dist/skills/tool.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +440 -0
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -0
- package/dist/telemetry/maestro-event-bus.js +784 -0
- package/dist/telemetry/maestro-event-bus.js.map +1 -0
- package/dist/telemetry/maestro-event-catalog.d.ts +48 -0
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -0
- package/dist/telemetry/maestro-event-catalog.js +69 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -0
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts +24 -0
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -0
- package/dist/telemetry/maestro-platform-replay-fixture.js +400 -0
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +29 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.js +240 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -0
- package/dist/telemetry/meter-service-client.d.ts +0 -33
- package/dist/telemetry/meter-service-client.d.ts.map +1 -1
- package/dist/telemetry/meter-service-client.js +22 -50
- package/dist/telemetry/meter-service-client.js.map +1 -1
- package/dist/telemetry/turn-tracker.d.ts.map +1 -1
- package/dist/telemetry/turn-tracker.js +5 -5
- package/dist/telemetry/turn-tracker.js.map +1 -1
- package/dist/telemetry/wide-events.d.ts +8 -0
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js +28 -0
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +14 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/timeline/redaction.d.ts +5 -0
- package/dist/timeline/redaction.d.ts.map +1 -0
- package/dist/timeline/redaction.js +119 -0
- package/dist/timeline/redaction.js.map +1 -0
- package/dist/tools/ask-user.d.ts +26 -0
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +33 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/tools/edit.d.ts +2 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +27 -7
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/pipeline.d.ts.map +1 -1
- package/dist/tools/pipeline.js +16 -7
- package/dist/tools/pipeline.js.map +1 -1
- package/dist/tools/write.d.ts +2 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +24 -6
- package/dist/tools/write.js.map +1 -1
- package/dist/tracking/cost-tracker.d.ts +15 -12
- package/dist/tracking/cost-tracker.d.ts.map +1 -1
- package/dist/tracking/cost-tracker.js +29 -40
- package/dist/tracking/cost-tracker.js.map +1 -1
- package/dist/utils/checkpoint-profiler.d.ts +29 -0
- package/dist/utils/checkpoint-profiler.d.ts.map +1 -0
- package/dist/utils/checkpoint-profiler.js +118 -0
- package/dist/utils/checkpoint-profiler.js.map +1 -0
- package/dist/utils/downstream-http.d.ts +21 -0
- package/dist/utils/downstream-http.d.ts.map +1 -0
- package/dist/utils/downstream-http.js +151 -0
- package/dist/utils/downstream-http.js.map +1 -0
- package/dist/utils/downstream.d.ts +18 -0
- package/dist/utils/downstream.d.ts.map +1 -0
- package/dist/utils/downstream.js +47 -0
- package/dist/utils/downstream.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/oauth-http.d.ts +8 -0
- package/dist/utils/oauth-http.d.ts.map +1 -0
- package/dist/utils/oauth-http.js +41 -0
- package/dist/utils/oauth-http.js.map +1 -0
- package/dist/utils/path-utils.d.ts +2 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +12 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/utils/path-validation.d.ts +1 -1
- package/dist/utils/path-validation.d.ts.map +1 -1
- package/dist/utils/path-validation.js +3 -3
- package/dist/utils/path-validation.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts +7 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +117 -15
- package/dist/web-server.js.map +1 -1
- package/dist/webhooks/delivery.d.ts.map +1 -1
- package/dist/webhooks/delivery.js +9 -12
- package/dist/webhooks/delivery.js.map +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/descriptors.d.ts +12 -5
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js +7 -7
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/path.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/registry.js +24 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.js +9 -10
- package/node_modules/@bufbuild/protobuf/dist/cjs/types.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.d.ts +9 -7
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js +18 -8
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.d.ts +4 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js +8 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.js +38 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +12 -5
- package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +7 -7
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +2 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +24 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +10 -11
- package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +9 -7
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +18 -8
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +4 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +8 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +37 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +23 -0
- package/node_modules/@bufbuild/protobuf/package.json +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +305 -2
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +34 -4
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.d.ts +88 -0
- package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.js +2 -0
- package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +77 -77
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +182 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.js +83 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +133 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js +68 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/schemas.d.ts +178 -0
- package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/schemas.js +165 -0
- package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts +2 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.js +5 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/validators.d.ts +4 -1
- package/node_modules/@evalops/contracts/dist/validators.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/validators.js +4 -1
- package/node_modules/@evalops/contracts/dist/validators.js.map +1 -1
- package/node_modules/@evalops/contracts/package.json +1 -1
- package/node_modules/@evalops/tui/package.json +1 -1
- package/node_modules/string-width/index.js +93 -9
- package/node_modules/string-width/package.json +1 -1
- package/package.json +32 -25
- package/dist/cli-tui/commands/grouped/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/index.js.map +0 -1
- package/dist/cli-tui/commands/grouped/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/utils.js.map +0 -1
- package/dist/cli-tui/commands/grouped-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped-command-handlers.js +0 -135
- package/dist/cli-tui/commands/grouped-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts +0 -78
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js +0 -129
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js.map +0 -1
- package/node_modules/@evalops/memory/dist/client.d.ts +0 -94
- package/node_modules/@evalops/memory/dist/client.js +0 -503
- package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.d.ts +0 -608
- package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.js +0 -187
- package/node_modules/@evalops/memory/package.json +0 -26
- /package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.d.ts +0 -0
package/dist/cli/headless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Headless Agent Mode for Native TUI Communication\n *\n * This module wires stdin/stdout to the shared headless protocol helpers.\n * The protocol itself lives in `headless-protocol.ts` so local stdio and\n * remote runtimes stay aligned.\n */\n\nimport { basename } from \"node:path\";\nimport {\n\tassertHeadlessFromAgentMessage,\n\tassertHeadlessToAgentMessage,\n} from \"@evalops/contracts\";\nimport type { ActionApprovalService } from \"../agent/action-approval.js\";\nimport type { Agent } from \"../agent/index.js\";\nimport { buildCompactionEvent } from \"../agent/prompt-recovery.js\";\nimport type { ToolRetryService } from \"../agent/tool-retry.js\";\nimport { runUserPromptWithRecovery } from \"../agent/user-prompt-runtime.js\";\nimport { withHeadlessPostKeepMessages } from \"../headless/prompt-recovery.js\";\nimport { HeadlessUtilityCommandManager } from \"../headless/utility-command-manager.js\";\nimport { readWorkspaceFile } from \"../headless/utility-file-read.js\";\nimport { searchWorkspaceFiles } from \"../headless/utility-file-search.js\";\nimport { HeadlessUtilityFileWatchManager } from \"../headless/utility-file-watch-manager.js\";\nimport { clientToolService } from \"../server/client-tools-service.js\";\nimport { serverRequestManager } from \"../server/server-request-manager.js\";\nimport type { SessionManager } from \"../session/manager.js\";\nimport {\n\tHEADLESS_PROTOCOL_VERSION,\n\ttype HeadlessFromAgentMessage,\n\tHeadlessProtocolTranslator,\n\ttype HeadlessToAgentMessage,\n\tapplyIncomingHeadlessMessage,\n\tapplyInitMessage,\n\tapplyOutgoingHeadlessMessage,\n\tbuildHeadlessCompactionMessage,\n\tbuildHeadlessRawAgentEventMessage,\n\tbuildHeadlessToolsSummary,\n\tbuildHeadlessUsage,\n\tclassifyHeadlessError,\n\tcreateHeadlessRuntimeState,\n\theadlessHelloChangesConnectionRole,\n\theadlessViewerCanSend,\n\theadlessViewerDisallowedCapability,\n\tloadPromptAttachments,\n} from \"./headless-protocol.js\";\n\nexport {\n\tHEADLESS_PROTOCOL_VERSION,\n\tbuildHeadlessCompactionMessage,\n\tbuildHeadlessToolsSummary,\n\tbuildHeadlessUsage,\n\tclassifyHeadlessError,\n};\n\nconst LOCAL_HEADLESS_CONNECTION_ID = \"local\";\n\nfunction send(msg: HeadlessFromAgentMessage): void {\n\ttry {\n\t\tassertHeadlessFromAgentMessage(msg, \"headless stdout message\");\n\t\tprocess.stdout.write(`${JSON.stringify(msg)}\\n`);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\ttry {\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: `Failed to emit headless message: ${message}`,\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t} satisfies HeadlessFromAgentMessage)}\\n`,\n\t\t\t);\n\t\t} catch {\n\t\t\t// Ignore fallback write failures; there is no safer recovery path on stdout.\n\t\t}\n\t}\n}\n\nfunction sendError(\n\tmessage: string,\n\tfatal: boolean,\n\toptions?: { request_id?: string },\n): void {\n\tsend({\n\t\ttype: \"error\",\n\t\trequest_id: options?.request_id,\n\t\tmessage,\n\t\tfatal,\n\t\terror_type: classifyHeadlessError(message, fatal),\n\t});\n}\n\nexport async function runHeadlessMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tapprovalService?: ActionApprovalService,\n\ttoolRetryService?: ToolRetryService,\n): Promise<void> {\n\tconst translator = new HeadlessProtocolTranslator();\n\tconst state = createHeadlessRuntimeState();\n\n\tconst shouldFilterOutgoingMessage = (\n\t\tmsg: HeadlessFromAgentMessage,\n\t\tforce = false,\n\t): boolean => {\n\t\tif (force || !state.opt_out_notifications?.length) {\n\t\t\treturn false;\n\t\t}\n\t\tswitch (msg.type) {\n\t\t\tcase \"status\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"status\");\n\t\t\tcase \"compaction\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"compaction\");\n\t\t\tcase \"connection_info\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"connection_info\");\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst sendMessage = (\n\t\tmsg: HeadlessFromAgentMessage,\n\t\toptions?: { force?: boolean },\n\t): void => {\n\t\tapplyIncomingHeadlessMessage(state, msg);\n\t\tif (shouldFilterOutgoingMessage(msg, options?.force)) {\n\t\t\treturn;\n\t\t}\n\t\tsend(msg);\n\t};\n\tconst shouldHandleServerRequestEvent = (\n\t\tsessionId: string | undefined,\n\t): boolean => {\n\t\tconst currentSessionId = sessionManager.getSessionId() ?? undefined;\n\t\tif (!currentSessionId) {\n\t\t\treturn sessionId === undefined;\n\t\t}\n\t\treturn sessionId === currentSessionId;\n\t};\n\n\tconst cancelPendingServerRequests = (reason: string): void => {\n\t\tconst sessionId = sessionManager.getSessionId() ?? undefined;\n\t\tif (sessionId) {\n\t\t\tserverRequestManager.cancelBySession(sessionId, reason, \"runtime\");\n\t\t}\n\t\tfor (const request of [\n\t\t\t...state.pending_approvals,\n\t\t\t...state.pending_client_tools,\n\t\t\t...state.pending_user_inputs,\n\t\t\t...state.pending_tool_retries,\n\t\t]) {\n\t\t\tserverRequestManager.cancel(\n\t\t\t\trequest.request_id ?? request.call_id,\n\t\t\t\treason,\n\t\t\t\t\"runtime\",\n\t\t\t);\n\t\t}\n\t};\n\tconst utilityCommands = new HeadlessUtilityCommandManager((event) => {\n\t\tswitch (event.type) {\n\t\t\tcase \"started\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_started\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tcommand: event.command,\n\t\t\t\t\tshell_mode: event.shell_mode,\n\t\t\t\t\tterminal_mode: event.terminal_mode,\n\t\t\t\t\t...(event.cwd ? { cwd: event.cwd } : {}),\n\t\t\t\t\t...(event.pid !== undefined ? { pid: event.pid } : {}),\n\t\t\t\t\t...(event.columns !== undefined ? { columns: event.columns } : {}),\n\t\t\t\t\t...(event.rows !== undefined ? { rows: event.rows } : {}),\n\t\t\t\t\t...(event.owner_connection_id\n\t\t\t\t\t\t? { owner_connection_id: event.owner_connection_id }\n\t\t\t\t\t\t: {}),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"resized\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_resized\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tcolumns: event.columns,\n\t\t\t\t\trows: event.rows,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"output\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_output\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tstream: event.stream,\n\t\t\t\t\tcontent: event.content,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"exited\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_exited\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tsuccess: event.success,\n\t\t\t\t\texit_code: event.exit_code,\n\t\t\t\t\tsignal: event.signal,\n\t\t\t\t\treason: event.reason,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t}\n\t});\n\tconst fileWatches = new HeadlessUtilityFileWatchManager((event) => {\n\t\tswitch (event.type) {\n\t\t\tcase \"started\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_started\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\troot_dir: event.root_dir,\n\t\t\t\t\tinclude_patterns: event.include_patterns,\n\t\t\t\t\texclude_patterns: event.exclude_patterns,\n\t\t\t\t\tdebounce_ms: event.debounce_ms,\n\t\t\t\t\towner_connection_id: event.owner_connection_id,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"event\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_event\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\tchange_type: event.change_type,\n\t\t\t\t\tpath: event.path,\n\t\t\t\t\trelative_path: event.relative_path,\n\t\t\t\t\ttimestamp: event.timestamp,\n\t\t\t\t\tis_directory: event.is_directory,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"stopped\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_stopped\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\treason: event.reason,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t}\n\t});\n\n\tconst unsubscribeServerRequests = serverRequestManager.subscribe((event) => {\n\t\tif (!shouldHandleServerRequestEvent(event.request.sessionId)) {\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"registered\") {\n\t\t\tsendMessage({\n\t\t\t\ttype: \"server_request\",\n\t\t\t\trequest_id: event.request.id,\n\t\t\t\trequest_type: event.request.kind,\n\t\t\t\tcall_id: event.request.callId,\n\t\t\t\ttool: event.request.toolName,\n\t\t\t\t...(event.request.displayName\n\t\t\t\t\t? { display_name: event.request.displayName }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.request.summaryLabel\n\t\t\t\t\t? { summary_label: event.request.summaryLabel }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.request.actionDescription\n\t\t\t\t\t? { action_description: event.request.actionDescription }\n\t\t\t\t\t: {}),\n\t\t\t\targs: event.request.args,\n\t\t\t\treason: event.request.reason,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tsendMessage({\n\t\t\ttype: \"server_request_resolved\",\n\t\t\trequest_id: event.request.id,\n\t\t\trequest_type: event.request.kind,\n\t\t\tcall_id: event.request.callId,\n\t\t\tresolution: event.resolution,\n\t\t\treason: event.reason,\n\t\t\tresolved_by: event.resolvedBy,\n\t\t});\n\t});\n\n\tagent.subscribe((event) => {\n\t\tif (state.capabilities?.raw_agent_events) {\n\t\t\tsendMessage(buildHeadlessRawAgentEventMessage(event));\n\t\t}\n\t\tif (\n\t\t\tevent.type === \"action_approval_required\" &&\n\t\t\t!approvalService?.requiresUserInteraction()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst pendingApprovalRegistration =\n\t\t\tevent.type === \"action_approval_required\" &&\n\t\t\tapprovalService?.requiresUserInteraction() &&\n\t\t\t!serverRequestManager.get(event.request.id)\n\t\t\t\t? {\n\t\t\t\t\t\tsessionId: sessionManager.getSessionId() ?? undefined,\n\t\t\t\t\t\trequest: event.request,\n\t\t\t\t\t\tservice: approvalService,\n\t\t\t\t\t}\n\t\t\t\t: null;\n\t\tfor (const message of translator.handleAgentEvent(event)) {\n\t\t\tif (\n\t\t\t\tmessage.type === \"server_request\" ||\n\t\t\t\tmessage.type === \"server_request_resolved\"\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsendMessage(message);\n\t\t}\n\t\tif (pendingApprovalRegistration) {\n\t\t\tserverRequestManager.registerApproval(pendingApprovalRegistration);\n\t\t}\n\t});\n\n\tsendMessage(translator.buildReadyMessage(agent, sessionManager));\n\tsendMessage(translator.buildSessionInfoMessage(sessionManager));\n\n\tconst readline = await import(\"node:readline\");\n\tconst rl = readline.createInterface({\n\t\tinput: process.stdin,\n\t\toutput: process.stdout,\n\t\tterminal: false,\n\t});\n\n\trl.on(\"line\", async (line: string) => {\n\t\tlet msg: HeadlessToAgentMessage;\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(line) as unknown;\n\t\t\tassertHeadlessToAgentMessage(parsed, \"headless command\");\n\t\t\tmsg = parsed;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tsendError(`Failed to parse command: ${message}`, false);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tif (headlessHelloChangesConnectionRole(msg, state.connection_role)) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"headless connection role cannot change after hello\",\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst disallowedViewerCapability = headlessViewerDisallowedCapability(\n\t\t\t\tmsg,\n\t\t\t\tstate.connection_role,\n\t\t\t);\n\t\t\tif (disallowedViewerCapability !== undefined) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `viewer headless connections cannot negotiate ${disallowedViewerCapability} requests`,\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (state.connection_role === \"viewer\" && !headlessViewerCanSend(msg)) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"Viewer headless connections cannot send messages\",\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch (msg.type) {\n\t\t\t\tcase \"init\": {\n\t\t\t\t\tconst applied = applyInitMessage(agent, msg, approvalService);\n\t\t\t\t\tsendMessage({\n\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\tapplied.length > 0\n\t\t\t\t\t\t\t\t? `Initialized: ${applied.join(\", \")}`\n\t\t\t\t\t\t\t\t: \"Init received with no changes\",\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"hello\": {\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tconst effectiveRole = state.connection_role ?? \"controller\";\n\t\t\t\t\ttoolRetryService?.setMode(\n\t\t\t\t\t\tmsg.capabilities?.server_requests?.includes(\"tool_retry\")\n\t\t\t\t\t\t\t? \"prompt\"\n\t\t\t\t\t\t\t: \"skip\",\n\t\t\t\t\t);\n\t\t\t\t\tsendMessage(\n\t\t\t\t\t\ttranslator.buildHelloOkMessage({\n\t\t\t\t\t\t\tconnection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t\t\tprotocol_version: HEADLESS_PROTOCOL_VERSION,\n\t\t\t\t\t\t\tclient_protocol_version: msg.protocol_version,\n\t\t\t\t\t\t\tclient_info: msg.client_info,\n\t\t\t\t\t\t\tcapabilities: msg.capabilities,\n\t\t\t\t\t\t\topt_out_notifications: msg.opt_out_notifications,\n\t\t\t\t\t\t\trole: effectiveRole,\n\t\t\t\t\t\t\tcontroller_connection_id:\n\t\t\t\t\t\t\t\teffectiveRole === \"controller\"\n\t\t\t\t\t\t\t\t\t? LOCAL_HEADLESS_CONNECTION_ID\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tlease_expires_at: null,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t);\n\t\t\t\t\tsendMessage(\n\t\t\t\t\t\ttranslator.buildConnectionInfoMessage({\n\t\t\t\t\t\t\tconnection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t\t\tprotocol_version: msg.protocol_version,\n\t\t\t\t\t\t\tclient_info: msg.client_info,\n\t\t\t\t\t\t\tcapabilities: msg.capabilities,\n\t\t\t\t\t\t\topt_out_notifications: msg.opt_out_notifications,\n\t\t\t\t\t\t\trole: effectiveRole,\n\t\t\t\t\t\t\tconnection_count: 1,\n\t\t\t\t\t\t\tcontroller_connection_id:\n\t\t\t\t\t\t\t\teffectiveRole === \"controller\"\n\t\t\t\t\t\t\t\t\t? LOCAL_HEADLESS_CONNECTION_ID\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tlease_expires_at: null,\n\t\t\t\t\t\t\tconnections: state.connections,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tmsg.protocol_version &&\n\t\t\t\t\t\tmsg.protocol_version !== HEADLESS_PROTOCOL_VERSION\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\tmessage: `Client protocol ${msg.protocol_version} attached to server ${HEADLESS_PROTOCOL_VERSION}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"prompt\":\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait runUserPromptWithRecovery({\n\t\t\t\t\t\tagent,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\t\tprompt: msg.content,\n\t\t\t\t\t\tattachmentCount: msg.attachments?.length ?? 0,\n\t\t\t\t\t\tattachmentNames: msg.attachments?.map((path) => basename(path)),\n\t\t\t\t\t\tgetPostKeepMessages: withHeadlessPostKeepMessages(() => state),\n\t\t\t\t\t\texecute: async () => {\n\t\t\t\t\t\t\tif (msg.attachments && msg.attachments.length > 0) {\n\t\t\t\t\t\t\t\tconst loaded = await loadPromptAttachments(\n\t\t\t\t\t\t\t\t\tmsg.attachments,\n\t\t\t\t\t\t\t\t\tsendError,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (loaded.length > 0) {\n\t\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\t\tmessage: `Loaded ${loaded.length} attachment(s)`,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tawait agent.prompt(msg.content, loaded);\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait agent.prompt(msg.content);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\t\tonCompacting: () => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\t\"Prompt exceeded the context window. Compacting history and continuing automatically...\",\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonCompacted: (result) => {\n\t\t\t\t\t\t\t\tsendMessage(\n\t\t\t\t\t\t\t\t\tbuildHeadlessCompactionMessage(\n\t\t\t\t\t\t\t\t\t\tbuildCompactionEvent(result, { auto: true }),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputContinue: (attempt, maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\tattempt === 1\n\t\t\t\t\t\t\t\t\t\t\t? \"Response hit the output limit. Continuing automatically...\"\n\t\t\t\t\t\t\t\t\t\t\t: `Response still hit the output limit. Continuing automatically (${attempt}/${maxContinuations})...`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputExhausted: (maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage: `Stopped after ${maxContinuations} automatic continuations because the response kept hitting the output limit.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputStoppedEarly: (attempt, maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage: `Stopped automatic continuation early after ${attempt}/${maxContinuations} retries because recent responses made minimal progress.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"interrupt\":\n\t\t\t\tcase \"cancel\":\n\t\t\t\t\tcancelPendingServerRequests(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted before request completed\"\n\t\t\t\t\t\t\t: \"Cancelled before request completed\",\n\t\t\t\t\t);\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait utilityCommands.dispose(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted while utility command was still running\"\n\t\t\t\t\t\t\t: \"Cancelled while utility command was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tfileWatches.dispose(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted while file watch was still running\"\n\t\t\t\t\t\t\t: \"Cancelled while file watch was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tagent.abort();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"tool_response\":\n\t\t\t\t\tif (approvalService?.requiresUserInteraction()) {\n\t\t\t\t\t\tconst reason = msg.approved\n\t\t\t\t\t\t\t? (msg.result?.output ?? \"Approved\")\n\t\t\t\t\t\t\t: (msg.result?.error ?? \"Denied by user\");\n\t\t\t\t\t\tconst resolved = serverRequestManager.resolveApproval(msg.call_id, {\n\t\t\t\t\t\t\tapproved: msg.approved,\n\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending approval found for call_id: ${msg.call_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\tmessage: \"Tool response ignored (auto-approval mode)\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"client_tool_result\": {\n\t\t\t\t\tconst resolved = clientToolService.resolve(\n\t\t\t\t\t\tmsg.call_id,\n\t\t\t\t\t\tmsg.content,\n\t\t\t\t\t\tmsg.is_error,\n\t\t\t\t\t);\n\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t`No pending client tool request found for call_id: ${msg.call_id}`,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"server_request_response\":\n\t\t\t\t\tif (msg.request_type === \"approval\") {\n\t\t\t\t\t\tif (approvalService?.requiresUserInteraction()) {\n\t\t\t\t\t\t\tconst reason = msg.approved\n\t\t\t\t\t\t\t\t? (msg.result?.output ?? \"Approved\")\n\t\t\t\t\t\t\t\t: (msg.result?.error ?? \"Denied by user\");\n\t\t\t\t\t\t\tconst resolved = serverRequestManager.resolveApproval(\n\t\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tapproved: msg.approved ?? false,\n\t\t\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t\t`No pending approval found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\tmessage: \"Tool response ignored (auto-approval mode)\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (msg.request_type === \"tool_retry\") {\n\t\t\t\t\t\tconst resolved = serverRequestManager.resolveToolRetry(\n\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction: msg.decision_action ?? \"abort\",\n\t\t\t\t\t\t\t\treason: msg.reason,\n\t\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending tool retry request found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst resolved = clientToolService.resolve(\n\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\tmsg.content ?? [],\n\t\t\t\t\t\t\tmsg.is_error ?? false,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending client tool request found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_start\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_start requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.start({\n\t\t\t\t\t\tcommand_id: msg.command_id,\n\t\t\t\t\t\tcommand: msg.command,\n\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\tenv: msg.env,\n\t\t\t\t\t\tshell_mode: msg.shell_mode,\n\t\t\t\t\t\tterminal_mode: msg.terminal_mode,\n\t\t\t\t\t\tallow_stdin: msg.allow_stdin,\n\t\t\t\t\t\tcolumns: msg.columns,\n\t\t\t\t\t\trows: msg.rows,\n\t\t\t\t\t\towner_connection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_terminate\":\n\t\t\t\t\tawait utilityCommands.terminate(msg.command_id, msg.force);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_stdin\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_stdin requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.writeStdin(\n\t\t\t\t\t\tmsg.command_id,\n\t\t\t\t\t\tmsg.content,\n\t\t\t\t\t\tmsg.eof,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_resize\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_resize requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.resize(msg.command_id, msg.columns, msg.rows);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_search\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"file_search\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_file_search requires file_search capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst result = searchWorkspaceFiles({\n\t\t\t\t\t\t\tquery: msg.query,\n\t\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\t\tlimit: msg.limit,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"utility_file_search_results\",\n\t\t\t\t\t\t\tsearch_id: msg.search_id,\n\t\t\t\t\t\t\tquery: result.query,\n\t\t\t\t\t\t\tcwd: result.cwd,\n\t\t\t\t\t\t\tresults: result.results,\n\t\t\t\t\t\t\ttruncated: result.truncated,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_read\":\n\t\t\t\t\tif (!state.capabilities?.utility_operations?.includes(\"file_read\")) {\n\t\t\t\t\t\tsendError(\"utility_file_read requires file_read capability\", false);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tlet result: Awaited<ReturnType<typeof readWorkspaceFile>>;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresult = await readWorkspaceFile({\n\t\t\t\t\t\t\t\tpath: msg.path,\n\t\t\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\t\t\toffset: msg.offset,\n\t\t\t\t\t\t\t\tlimit: msg.limit,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t\t\t\tsendError(message, false, { request_id: msg.read_id });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"utility_file_read_result\",\n\t\t\t\t\t\t\tread_id: msg.read_id,\n\t\t\t\t\t\t\tpath: result.path,\n\t\t\t\t\t\t\trelative_path: result.relative_path,\n\t\t\t\t\t\t\tcwd: result.cwd,\n\t\t\t\t\t\t\tcontent: result.content,\n\t\t\t\t\t\t\tstart_line: result.start_line,\n\t\t\t\t\t\t\tend_line: result.end_line,\n\t\t\t\t\t\t\ttotal_lines: result.total_lines,\n\t\t\t\t\t\t\ttruncated: result.truncated,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_watch_start\":\n\t\t\t\t\tif (!state.capabilities?.utility_operations?.includes(\"file_watch\")) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_file_watch_start requires file_watch capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait fileWatches.start({\n\t\t\t\t\t\twatch_id: msg.watch_id,\n\t\t\t\t\t\troot_dir: msg.root_dir,\n\t\t\t\t\t\tinclude_patterns: msg.include_patterns,\n\t\t\t\t\t\texclude_patterns: msg.exclude_patterns,\n\t\t\t\t\t\tdebounce_ms: msg.debounce_ms,\n\t\t\t\t\t\towner_connection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_watch_stop\":\n\t\t\t\t\tfileWatches.stop(msg.watch_id, \"Stopped by controller\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"shutdown\":\n\t\t\t\t\tcancelPendingServerRequests(\"Shutdown before request completed\");\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait utilityCommands.dispose(\n\t\t\t\t\t\t\"Headless runtime shutdown while utility command was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tfileWatches.dispose(\n\t\t\t\t\t\t\"Headless runtime shutdown while file watch was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tsendError(message, false);\n\t\t}\n\t});\n\n\treturn new Promise<void>((resolve) => {\n\t\trl.on(\"close\", () => {\n\t\t\tunsubscribeServerRequests();\n\t\t\tresolve();\n\t\t});\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EACN,8BAA8B,EAC9B,4BAA4B,GAC5B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EACN,yBAAyB,EAEzB,0BAA0B,EAE1B,4BAA4B,EAC5B,gBAAgB,EAChB,4BAA4B,EAC5B,8BAA8B,EAC9B,iCAAiC,EACjC,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,kCAAkC,EAClC,qBAAqB,EACrB,kCAAkC,EAClC,qBAAqB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,GACrB,CAAC;AAEF,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAE7C,SAAS,IAAI,CAAC,GAA6B;IAC1C,IAAI,CAAC;QACJ,8BAA8B,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC;YACJ,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,GAAG,IAAI,CAAC,SAAS,CAAC;gBACjB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,oCAAoC,OAAO,EAAE;gBACtD,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,UAAU;aACa,CAAC,IAAI,CACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,6EAA6E;QAC9E,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CACjB,OAAe,EACf,KAAc,EACd,OAAiC;IAEjC,IAAI,CAAC;QACJ,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO;QACP,KAAK;QACL,UAAU,EAAE,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC;KACjD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,KAAY,EACZ,cAA8B,EAC9B,eAAuC,EACvC,gBAAmC;IAEnC,MAAM,UAAU,GAAG,IAAI,0BAA0B,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,0BAA0B,EAAE,CAAC;IAE3C,MAAM,2BAA2B,GAAG,CACnC,GAA6B,EAC7B,KAAK,GAAG,KAAK,EACH,EAAE;QACZ,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACd,CAAC;QACD,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACZ,OAAO,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvD,KAAK,YAAY;gBAChB,OAAO,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC3D,KAAK,iBAAiB;gBACrB,OAAO,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChE;gBACC,OAAO,KAAK,CAAC;QACf,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CACnB,GAA6B,EAC7B,OAA6B,EACtB,EAAE;QACT,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;IACX,CAAC,CAAC;IACF,MAAM,8BAA8B,GAAG,CACtC,SAA6B,EACnB,EAAE;QACZ,MAAM,gBAAgB,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;QACpE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO,SAAS,KAAK,SAAS,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,KAAK,gBAAgB,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAQ,EAAE;QAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,IAAI,SAAS,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACf,oBAAoB,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,OAAO,IAAI;YACrB,GAAG,KAAK,CAAC,iBAAiB;YAC1B,GAAG,KAAK,CAAC,oBAAoB;YAC7B,GAAG,KAAK,CAAC,wBAAwB;YACjC,GAAG,KAAK,CAAC,mBAAmB;YAC5B,GAAG,KAAK,CAAC,oBAAoB;SAC7B,EAAE,CAAC;YACH,oBAAoB,CAAC,MAAM,CAC1B,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,EACrC,MAAM,EACN,SAAS,CACT,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,6BAA6B,CAAC,CAAC,KAAK,EAAE,EAAE;QACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS;gBACb,WAAW,CAAC;oBACX,IAAI,EAAE,yBAAyB;oBAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,KAAK,CAAC,mBAAmB;wBAC5B,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE;wBACpD,CAAC,CAAC,EAAE,CAAC;iBACN,CAAC,CAAC;gBACH,OAAO;YACR,KAAK,SAAS;gBACb,WAAW,CAAC;oBACX,IAAI,EAAE,yBAAyB;oBAC/B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;iBAChB,CAAC,CAAC;gBACH,OAAO;YACR,KAAK,QAAQ;gBACZ,WAAW,CAAC;oBACX,IAAI,EAAE,wBAAwB;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACtB,CAAC,CAAC;gBACH,OAAO;YACR,KAAK,QAAQ;gBACZ,WAAW,CAAC;oBACX,IAAI,EAAE,wBAAwB;oBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACpB,CAAC,CAAC;gBACH,OAAO;QACT,CAAC;IACF,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,+BAA+B,CAAC,CAAC,KAAK,EAAE,EAAE;QACjE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,SAAS;gBACb,WAAW,CAAC;oBACX,IAAI,EAAE,4BAA4B;oBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;iBAC9C,CAAC,CAAC;gBACH,OAAO;YACR,KAAK,OAAO;gBACX,WAAW,CAAC;oBACX,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO;YACR,KAAK,SAAS;gBACb,WAAW,CAAC;oBACX,IAAI,EAAE,4BAA4B;oBAClC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACpB,CAAC,CAAC;gBACH,OAAO;QACT,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1E,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9D,OAAO;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,WAAW,CAAC;gBACX,IAAI,EAAE,gBAAgB;gBACtB,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;gBAC5B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;gBAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;gBAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW;oBAC5B,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC7C,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY;oBAC7B,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB;oBAClC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE;oBACzD,CAAC,CAAC,EAAE,CAAC;gBACN,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gBACxB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,WAAW,CAAC;YACX,IAAI,EAAE,yBAAyB;YAC/B,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;YAC5B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;YAChC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC7B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,IAAI,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC;YAC1C,WAAW,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,IACC,KAAK,CAAC,IAAI,KAAK,0BAA0B;YACzC,CAAC,eAAe,EAAE,uBAAuB,EAAE,EAC1C,CAAC;YACF,OAAO;QACR,CAAC;QACD,MAAM,2BAA2B,GAChC,KAAK,CAAC,IAAI,KAAK,0BAA0B;YACzC,eAAe,EAAE,uBAAuB,EAAE;YAC1C,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,CAAC,CAAC;gBACA,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,IAAI,SAAS;gBACrD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,eAAe;aACxB;YACF,CAAC,CAAC,IAAI,CAAC;QACT,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,IACC,OAAO,CAAC,IAAI,KAAK,gBAAgB;gBACjC,OAAO,CAAC,IAAI,KAAK,yBAAyB,EACzC,CAAC;gBACF,SAAS;YACV,CAAC;YACD,WAAW,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,2BAA2B,EAAE,CAAC;YACjC,oBAAoB,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC;QACpE,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;QACpC,IAAI,GAA2B,CAAC;QAChC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC3C,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACzD,GAAG,GAAG,MAAM,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,SAAS,CAAC,4BAA4B,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,kCAAkC,CAAC,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,oDAAoD;oBAC7D,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,UAAU;iBACtB,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,MAAM,0BAA0B,GAAG,kCAAkC,CACpE,GAAG,EACH,KAAK,CAAC,eAAe,CACrB,CAAC;YACF,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,gDAAgD,0BAA0B,WAAW;oBAC9F,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,UAAU;iBACtB,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,IAAI,KAAK,CAAC,eAAe,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC;oBACJ,IAAI,EAAE,OAAO;oBACb,OAAO,EAAE,kDAAkD;oBAC3D,KAAK,EAAE,KAAK;oBACZ,UAAU,EAAE,UAAU;iBACtB,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YAED,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;oBAC9D,WAAW,CAAC;wBACX,IAAI,EAAE,QAAQ;wBACd,OAAO,EACN,OAAO,CAAC,MAAM,GAAG,CAAC;4BACjB,CAAC,CAAC,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;4BACtC,CAAC,CAAC,+BAA+B;qBACnC,CAAC,CAAC;oBACH,MAAM;gBACP,CAAC;gBAED,KAAK,OAAO,CAAC,CAAC,CAAC;oBACd,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM,aAAa,GAAG,KAAK,CAAC,eAAe,IAAI,YAAY,CAAC;oBAC5D,gBAAgB,EAAE,OAAO,CACxB,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,YAAY,CAAC;wBACxD,CAAC,CAAC,QAAQ;wBACV,CAAC,CAAC,MAAM,CACT,CAAC;oBACF,WAAW,CACV,UAAU,CAAC,mBAAmB,CAAC;wBAC9B,aAAa,EAAE,4BAA4B;wBAC3C,gBAAgB,EAAE,yBAAyB;wBAC3C,uBAAuB,EAAE,GAAG,CAAC,gBAAgB;wBAC7C,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;wBAChD,IAAI,EAAE,aAAa;wBACnB,wBAAwB,EACvB,aAAa,KAAK,YAAY;4BAC7B,CAAC,CAAC,4BAA4B;4BAC9B,CAAC,CAAC,IAAI;wBACR,gBAAgB,EAAE,IAAI;qBACtB,CAAC,EACF,EAAE,KAAK,EAAE,IAAI,EAAE,CACf,CAAC;oBACF,WAAW,CACV,UAAU,CAAC,0BAA0B,CAAC;wBACrC,aAAa,EAAE,4BAA4B;wBAC3C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;wBAC9B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;wBAChD,IAAI,EAAE,aAAa;wBACnB,gBAAgB,EAAE,CAAC;wBACnB,wBAAwB,EACvB,aAAa,KAAK,YAAY;4BAC7B,CAAC,CAAC,4BAA4B;4BAC9B,CAAC,CAAC,IAAI;wBACR,gBAAgB,EAAE,IAAI;wBACtB,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC9B,CAAC,CACF,CAAC;oBACF,IACC,GAAG,CAAC,gBAAgB;wBACpB,GAAG,CAAC,gBAAgB,KAAK,yBAAyB,EACjD,CAAC;wBACF,WAAW,CAAC;4BACX,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,mBAAmB,GAAG,CAAC,gBAAgB,uBAAuB,yBAAyB,EAAE;yBAClG,CAAC,CAAC;oBACJ,CAAC;oBACD,MAAM;gBACP,CAAC;gBAED,KAAK,QAAQ;oBACZ,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM,yBAAyB,CAAC;wBAC/B,KAAK;wBACL,cAAc;wBACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;wBAClB,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;wBAC7C,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC/D,mBAAmB,EAAE,4BAA4B,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;wBAC9D,OAAO,EAAE,KAAK,IAAI,EAAE;4BACnB,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACnD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CACzC,GAAG,CAAC,WAAW,EACf,SAAS,CACT,CAAC;gCACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACvB,WAAW,CAAC;wCACX,IAAI,EAAE,QAAQ;wCACd,OAAO,EAAE,UAAU,MAAM,CAAC,MAAM,gBAAgB;qCAChD,CAAC,CAAC;oCACH,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oCACxC,OAAO;gCACR,CAAC;4BACF,CAAC;4BACD,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACjC,CAAC;wBACD,SAAS,EAAE;4BACV,YAAY,EAAE,GAAG,EAAE;gCAClB,WAAW,CAAC;oCACX,IAAI,EAAE,QAAQ;oCACd,OAAO,EACN,wFAAwF;iCACzF,CAAC,CAAC;4BACJ,CAAC;4BACD,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;gCACvB,WAAW,CACV,8BAA8B,CAC7B,oBAAoB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAC5C,CACD,CAAC;4BACH,CAAC;4BACD,mBAAmB,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE;gCAClD,WAAW,CAAC;oCACX,IAAI,EAAE,QAAQ;oCACd,OAAO,EACN,OAAO,KAAK,CAAC;wCACZ,CAAC,CAAC,4DAA4D;wCAC9D,CAAC,CAAC,kEAAkE,OAAO,IAAI,gBAAgB,MAAM;iCACvG,CAAC,CAAC;4BACJ,CAAC;4BACD,oBAAoB,EAAE,CAAC,gBAAgB,EAAE,EAAE;gCAC1C,WAAW,CAAC;oCACX,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,iBAAiB,gBAAgB,8EAA8E;iCACxH,CAAC,CAAC;4BACJ,CAAC;4BACD,uBAAuB,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE;gCACtD,WAAW,CAAC;oCACX,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,8CAA8C,OAAO,IAAI,gBAAgB,0DAA0D;iCAC5I,CAAC,CAAC;4BACJ,CAAC;yBACD;qBACD,CAAC,CAAC;oBACH,MAAM;gBAEP,KAAK,WAAW,CAAC;gBACjB,KAAK,QAAQ;oBACZ,2BAA2B,CAC1B,GAAG,CAAC,IAAI,KAAK,WAAW;wBACvB,CAAC,CAAC,sCAAsC;wBACxC,CAAC,CAAC,oCAAoC,CACvC,CAAC;oBACF,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM,eAAe,CAAC,OAAO,CAC5B,GAAG,CAAC,IAAI,KAAK,WAAW;wBACvB,CAAC,CAAC,qDAAqD;wBACvD,CAAC,CAAC,mDAAmD,CACtD,CAAC;oBACF,WAAW,CAAC,OAAO,CAClB,GAAG,CAAC,IAAI,KAAK,WAAW;wBACvB,CAAC,CAAC,gDAAgD;wBAClD,CAAC,CAAC,8CAA8C,CACjD,CAAC;oBACF,KAAK,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM;gBAEP,KAAK,eAAe;oBACnB,IAAI,eAAe,EAAE,uBAAuB,EAAE,EAAE,CAAC;wBAChD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ;4BAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC;4BACpC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,gBAAgB,CAAC,CAAC;wBAC3C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE;4BAClE,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,MAAM;4BACN,UAAU,EAAE,MAAM;yBAClB,CAAC,CAAC;wBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACf,SAAS,CACR,0CAA0C,GAAG,CAAC,OAAO,EAAE,EACvD,KAAK,CACL,CAAC;wBACH,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,WAAW,CAAC;4BACX,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,4CAA4C;yBACrD,CAAC,CAAC;oBACJ,CAAC;oBACD,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM;gBAEP,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CACzC,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,QAAQ,CACZ,CAAC;oBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACf,SAAS,CACR,qDAAqD,GAAG,CAAC,OAAO,EAAE,EAClE,KAAK,CACL,CAAC;oBACH,CAAC;oBACD,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM;gBACP,CAAC;gBAED,KAAK,yBAAyB;oBAC7B,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;wBACrC,IAAI,eAAe,EAAE,uBAAuB,EAAE,EAAE,CAAC;4BAChD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ;gCAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,UAAU,CAAC;gCACpC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,gBAAgB,CAAC,CAAC;4BAC3C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,eAAe,CACpD,GAAG,CAAC,UAAU,EACd;gCACC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,KAAK;gCAC/B,MAAM;gCACN,UAAU,EAAE,MAAM;6BAClB,CACD,CAAC;4BACF,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACf,SAAS,CACR,6CAA6C,GAAG,CAAC,UAAU,EAAE,EAC7D,KAAK,CACL,CAAC;4BACH,CAAC;wBACF,CAAC;6BAAM,CAAC;4BACP,WAAW,CAAC;gCACX,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,4CAA4C;6BACrD,CAAC,CAAC;wBACJ,CAAC;oBACF,CAAC;yBAAM,IAAI,GAAG,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;wBAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,gBAAgB,CACrD,GAAG,CAAC,UAAU,EACd;4BACC,MAAM,EAAE,GAAG,CAAC,eAAe,IAAI,OAAO;4BACtC,MAAM,EAAE,GAAG,CAAC,MAAM;4BAClB,UAAU,EAAE,MAAM;yBAClB,CACD,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACf,SAAS,CACR,uDAAuD,GAAG,CAAC,UAAU,EAAE,EACvE,KAAK,CACL,CAAC;wBACH,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CACzC,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,OAAO,IAAI,EAAE,EACjB,GAAG,CAAC,QAAQ,IAAI,KAAK,CACrB,CAAC;wBACF,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACf,SAAS,CACR,wDAAwD,GAAG,CAAC,UAAU,EAAE,EACxE,KAAK,CACL,CAAC;wBACH,CAAC;oBACF,CAAC;oBACD,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM;gBAEP,KAAK,uBAAuB;oBAC3B,IACC,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChE,CAAC;wBACF,SAAS,CACR,wDAAwD,EACxD,KAAK,CACL,CAAC;wBACF,MAAM;oBACP,CAAC;oBACD,MAAM,eAAe,CAAC,KAAK,CAAC;wBAC3B,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;wBACZ,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;wBAChC,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;wBACpB,IAAI,EAAE,GAAG,CAAC,IAAI;wBACd,mBAAmB,EAAE,4BAA4B;qBACjD,CAAC,CAAC;oBACH,MAAM;gBAEP,KAAK,2BAA2B;oBAC/B,MAAM,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC3D,MAAM;gBAEP,KAAK,uBAAuB;oBAC3B,IACC,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChE,CAAC;wBACF,SAAS,CACR,wDAAwD,EACxD,KAAK,CACL,CAAC;wBACF,MAAM;oBACP,CAAC;oBACD,MAAM,eAAe,CAAC,UAAU,CAC/B,GAAG,CAAC,UAAU,EACd,GAAG,CAAC,OAAO,EACX,GAAG,CAAC,GAAG,CACP,CAAC;oBACF,MAAM;gBAEP,KAAK,wBAAwB;oBAC5B,IACC,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,cAAc,CAAC,EAChE,CAAC;wBACF,SAAS,CACR,yDAAyD,EACzD,KAAK,CACL,CAAC;wBACF,MAAM;oBACP,CAAC;oBACD,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;oBACpE,MAAM;gBAEP,KAAK,qBAAqB;oBACzB,IACC,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC/D,CAAC;wBACF,SAAS,CACR,qDAAqD,EACrD,KAAK,CACL,CAAC;wBACF,MAAM;oBACP,CAAC;oBACD,CAAC;wBACA,MAAM,MAAM,GAAG,oBAAoB,CAAC;4BACnC,KAAK,EAAE,GAAG,CAAC,KAAK;4BAChB,GAAG,EAAE,GAAG,CAAC,GAAG;4BACZ,KAAK,EAAE,GAAG,CAAC,KAAK;yBAChB,CAAC,CAAC;wBACH,WAAW,CAAC;4BACX,IAAI,EAAE,6BAA6B;4BACnC,SAAS,EAAE,GAAG,CAAC,SAAS;4BACxB,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC3B,CAAC,CAAC;oBACJ,CAAC;oBACD,MAAM;gBAEP,KAAK,mBAAmB;oBACvB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACpE,SAAS,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;wBACpE,MAAM;oBACP,CAAC;oBACD,CAAC;wBACA,IAAI,MAAqD,CAAC;wBAC1D,IAAI,CAAC;4BACJ,MAAM,GAAG,MAAM,iBAAiB,CAAC;gCAChC,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,GAAG,EAAE,GAAG,CAAC,GAAG;gCACZ,MAAM,EAAE,GAAG,CAAC,MAAM;gCAClB,KAAK,EAAE,GAAG,CAAC,KAAK;6BAChB,CAAC,CAAC;wBACJ,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BAChB,MAAM,OAAO,GACZ,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxD,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;4BACvD,MAAM;wBACP,CAAC;wBACD,WAAW,CAAC;4BACX,IAAI,EAAE,0BAA0B;4BAChC,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,aAAa,EAAE,MAAM,CAAC,aAAa;4BACnC,GAAG,EAAE,MAAM,CAAC,GAAG;4BACf,OAAO,EAAE,MAAM,CAAC,OAAO;4BACvB,UAAU,EAAE,MAAM,CAAC,UAAU;4BAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;yBAC3B,CAAC,CAAC;oBACJ,CAAC;oBACD,MAAM;gBAEP,KAAK,0BAA0B;oBAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBACrE,SAAS,CACR,yDAAyD,EACzD,KAAK,CACL,CAAC;wBACF,MAAM;oBACP,CAAC;oBACD,MAAM,WAAW,CAAC,KAAK,CAAC;wBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;wBACtC,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,mBAAmB,EAAE,4BAA4B;qBACjD,CAAC,CAAC;oBACH,MAAM;gBAEP,KAAK,yBAAyB;oBAC7B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;oBACxD,MAAM;gBAEP,KAAK,UAAU;oBACd,2BAA2B,CAAC,mCAAmC,CAAC,CAAC;oBACjE,4BAA4B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM,eAAe,CAAC,OAAO,CAC5B,mEAAmE,CACnE,CAAC;oBACF,WAAW,CAAC,OAAO,CAClB,8DAA8D,CAC9D,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,MAAM;YACR,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACpC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACnB,yBAAyB,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Headless Agent Mode for Native TUI Communication\n *\n * This module wires stdin/stdout to the shared headless protocol helpers.\n * The protocol itself lives in `headless-protocol.ts` so local stdio and\n * remote runtimes stay aligned.\n */\n\nimport { basename } from \"node:path\";\nimport {\n\tassertHeadlessFromAgentMessage,\n\tassertHeadlessToAgentMessage,\n} from \"@evalops/contracts\";\nimport type { ActionApprovalService } from \"../agent/action-approval.js\";\nimport type { Agent } from \"../agent/index.js\";\nimport { buildCompactionEvent } from \"../agent/prompt-recovery.js\";\nimport type { ToolRetryService } from \"../agent/tool-retry.js\";\nimport { runUserPromptWithRecovery } from \"../agent/user-prompt-runtime.js\";\nimport { withHeadlessPostKeepMessages } from \"../headless/prompt-recovery.js\";\nimport { HeadlessUtilityCommandManager } from \"../headless/utility-command-manager.js\";\nimport { readWorkspaceFile } from \"../headless/utility-file-read.js\";\nimport { searchWorkspaceFiles } from \"../headless/utility-file-search.js\";\nimport { HeadlessUtilityFileWatchManager } from \"../headless/utility-file-watch-manager.js\";\nimport { clientToolService } from \"../server/client-tools-service.js\";\nimport { serverRequestManager } from \"../server/server-request-manager.js\";\nimport type { SessionManager } from \"../session/manager.js\";\nimport {\n\tHEADLESS_PROTOCOL_VERSION,\n\ttype HeadlessFromAgentMessage,\n\tHeadlessProtocolTranslator,\n\ttype HeadlessToAgentMessage,\n\tapplyIncomingHeadlessMessage,\n\tapplyInitMessage,\n\tapplyOutgoingHeadlessMessage,\n\tbuildHeadlessCompactionMessage,\n\tbuildHeadlessRawAgentEventMessage,\n\tbuildHeadlessToolsSummary,\n\tbuildHeadlessUsage,\n\tclassifyHeadlessError,\n\tcreateHeadlessRuntimeState,\n\theadlessHelloChangesConnectionRole,\n\theadlessViewerCanSend,\n\theadlessViewerDisallowedCapability,\n\tloadPromptAttachments,\n} from \"./headless-protocol.js\";\n\nexport {\n\tHEADLESS_PROTOCOL_VERSION,\n\tbuildHeadlessCompactionMessage,\n\tbuildHeadlessToolsSummary,\n\tbuildHeadlessUsage,\n\tclassifyHeadlessError,\n};\n\nconst LOCAL_HEADLESS_CONNECTION_ID = \"local\";\n\nfunction send(msg: HeadlessFromAgentMessage): void {\n\ttry {\n\t\tassertHeadlessFromAgentMessage(msg, \"headless stdout message\");\n\t\tprocess.stdout.write(`${JSON.stringify(msg)}\\n`);\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\ttry {\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: `Failed to emit headless message: ${message}`,\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t} satisfies HeadlessFromAgentMessage)}\\n`,\n\t\t\t);\n\t\t} catch {\n\t\t\t// Ignore fallback write failures; there is no safer recovery path on stdout.\n\t\t}\n\t}\n}\n\nfunction sendError(\n\tmessage: string,\n\tfatal: boolean,\n\toptions?: { request_id?: string },\n): void {\n\tsend({\n\t\ttype: \"error\",\n\t\trequest_id: options?.request_id,\n\t\tmessage,\n\t\tfatal,\n\t\terror_type: classifyHeadlessError(message, fatal),\n\t});\n}\n\nexport async function runHeadlessMode(\n\tagent: Agent,\n\tsessionManager: SessionManager,\n\tapprovalService?: ActionApprovalService,\n\ttoolRetryService?: ToolRetryService,\n): Promise<void> {\n\tconst translator = new HeadlessProtocolTranslator();\n\tconst state = createHeadlessRuntimeState();\n\n\tconst shouldFilterOutgoingMessage = (\n\t\tmsg: HeadlessFromAgentMessage,\n\t\tforce = false,\n\t): boolean => {\n\t\tif (force || !state.opt_out_notifications?.length) {\n\t\t\treturn false;\n\t\t}\n\t\tswitch (msg.type) {\n\t\t\tcase \"status\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"status\");\n\t\t\tcase \"compaction\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"compaction\");\n\t\t\tcase \"connection_info\":\n\t\t\t\treturn state.opt_out_notifications.includes(\"connection_info\");\n\t\t\tdefault:\n\t\t\t\treturn false;\n\t\t}\n\t};\n\n\tconst sendMessage = (\n\t\tmsg: HeadlessFromAgentMessage,\n\t\toptions?: { force?: boolean },\n\t): void => {\n\t\tapplyIncomingHeadlessMessage(state, msg);\n\t\tif (shouldFilterOutgoingMessage(msg, options?.force)) {\n\t\t\treturn;\n\t\t}\n\t\tsend(msg);\n\t};\n\tconst shouldHandleServerRequestEvent = (\n\t\tsessionId: string | undefined,\n\t): boolean => {\n\t\tconst currentSessionId = sessionManager.getSessionId() ?? undefined;\n\t\tif (!currentSessionId) {\n\t\t\treturn sessionId === undefined;\n\t\t}\n\t\treturn sessionId === currentSessionId;\n\t};\n\n\tconst cancelPendingServerRequests = (reason: string): void => {\n\t\tconst sessionId = sessionManager.getSessionId() ?? undefined;\n\t\tif (sessionId) {\n\t\t\tserverRequestManager.cancelBySession(sessionId, reason, \"runtime\");\n\t\t}\n\t\tfor (const request of [\n\t\t\t...state.pending_approvals,\n\t\t\t...state.pending_client_tools,\n\t\t\t...state.pending_mcp_elicitations,\n\t\t\t...state.pending_user_inputs,\n\t\t\t...state.pending_tool_retries,\n\t\t]) {\n\t\t\tserverRequestManager.cancel(\n\t\t\t\trequest.request_id ?? request.call_id,\n\t\t\t\treason,\n\t\t\t\t\"runtime\",\n\t\t\t);\n\t\t}\n\t};\n\tconst utilityCommands = new HeadlessUtilityCommandManager((event) => {\n\t\tswitch (event.type) {\n\t\t\tcase \"started\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_started\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tcommand: event.command,\n\t\t\t\t\tshell_mode: event.shell_mode,\n\t\t\t\t\tterminal_mode: event.terminal_mode,\n\t\t\t\t\t...(event.cwd ? { cwd: event.cwd } : {}),\n\t\t\t\t\t...(event.pid !== undefined ? { pid: event.pid } : {}),\n\t\t\t\t\t...(event.columns !== undefined ? { columns: event.columns } : {}),\n\t\t\t\t\t...(event.rows !== undefined ? { rows: event.rows } : {}),\n\t\t\t\t\t...(event.owner_connection_id\n\t\t\t\t\t\t? { owner_connection_id: event.owner_connection_id }\n\t\t\t\t\t\t: {}),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"resized\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_resized\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tcolumns: event.columns,\n\t\t\t\t\trows: event.rows,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"output\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_output\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tstream: event.stream,\n\t\t\t\t\tcontent: event.content,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"exited\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_command_exited\",\n\t\t\t\t\tcommand_id: event.command_id,\n\t\t\t\t\tsuccess: event.success,\n\t\t\t\t\texit_code: event.exit_code,\n\t\t\t\t\tsignal: event.signal,\n\t\t\t\t\treason: event.reason,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t}\n\t});\n\tconst fileWatches = new HeadlessUtilityFileWatchManager((event) => {\n\t\tswitch (event.type) {\n\t\t\tcase \"started\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_started\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\troot_dir: event.root_dir,\n\t\t\t\t\tinclude_patterns: event.include_patterns,\n\t\t\t\t\texclude_patterns: event.exclude_patterns,\n\t\t\t\t\tdebounce_ms: event.debounce_ms,\n\t\t\t\t\towner_connection_id: event.owner_connection_id,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"event\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_event\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\tchange_type: event.change_type,\n\t\t\t\t\tpath: event.path,\n\t\t\t\t\trelative_path: event.relative_path,\n\t\t\t\t\ttimestamp: event.timestamp,\n\t\t\t\t\tis_directory: event.is_directory,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"stopped\":\n\t\t\t\tsendMessage({\n\t\t\t\t\ttype: \"utility_file_watch_stopped\",\n\t\t\t\t\twatch_id: event.watch_id,\n\t\t\t\t\treason: event.reason,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t}\n\t});\n\n\tconst unsubscribeServerRequests = serverRequestManager.subscribe((event) => {\n\t\tif (!shouldHandleServerRequestEvent(event.request.sessionId)) {\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"registered\") {\n\t\t\tsendMessage({\n\t\t\t\ttype: \"server_request\",\n\t\t\t\trequest_id: event.request.id,\n\t\t\t\trequest_type: event.request.kind,\n\t\t\t\tcall_id: event.request.callId,\n\t\t\t\ttool: event.request.toolName,\n\t\t\t\t...(event.request.displayName\n\t\t\t\t\t? { display_name: event.request.displayName }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.request.summaryLabel\n\t\t\t\t\t? { summary_label: event.request.summaryLabel }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.request.actionDescription\n\t\t\t\t\t? { action_description: event.request.actionDescription }\n\t\t\t\t\t: {}),\n\t\t\t\targs: event.request.args,\n\t\t\t\treason: event.request.reason,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tsendMessage({\n\t\t\ttype: \"server_request_resolved\",\n\t\t\trequest_id: event.request.id,\n\t\t\trequest_type: event.request.kind,\n\t\t\tcall_id: event.request.callId,\n\t\t\tresolution: event.resolution,\n\t\t\treason: event.reason,\n\t\t\tresolved_by: event.resolvedBy,\n\t\t});\n\t});\n\n\tagent.subscribe((event) => {\n\t\tif (state.capabilities?.raw_agent_events) {\n\t\t\tsendMessage(buildHeadlessRawAgentEventMessage(event));\n\t\t}\n\t\tif (\n\t\t\tevent.type === \"action_approval_required\" &&\n\t\t\t!approvalService?.requiresUserInteraction()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tconst pendingApprovalRegistration =\n\t\t\tevent.type === \"action_approval_required\" &&\n\t\t\tapprovalService?.requiresUserInteraction() &&\n\t\t\t!serverRequestManager.get(event.request.id)\n\t\t\t\t? {\n\t\t\t\t\t\tsessionId: sessionManager.getSessionId() ?? undefined,\n\t\t\t\t\t\trequest: event.request,\n\t\t\t\t\t\tservice: approvalService,\n\t\t\t\t\t}\n\t\t\t\t: null;\n\t\tfor (const message of translator.handleAgentEvent(event)) {\n\t\t\tif (\n\t\t\t\tmessage.type === \"server_request\" ||\n\t\t\t\tmessage.type === \"server_request_resolved\"\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tsendMessage(message);\n\t\t}\n\t\tif (pendingApprovalRegistration) {\n\t\t\tserverRequestManager.registerApproval(pendingApprovalRegistration);\n\t\t}\n\t});\n\n\tsendMessage(translator.buildReadyMessage(agent, sessionManager));\n\tsendMessage(translator.buildSessionInfoMessage(sessionManager));\n\n\tconst readline = await import(\"node:readline\");\n\tconst rl = readline.createInterface({\n\t\tinput: process.stdin,\n\t\toutput: process.stdout,\n\t\tterminal: false,\n\t});\n\n\trl.on(\"line\", async (line: string) => {\n\t\tlet msg: HeadlessToAgentMessage;\n\t\ttry {\n\t\t\tconst parsed = JSON.parse(line) as unknown;\n\t\t\tassertHeadlessToAgentMessage(parsed, \"headless command\");\n\t\t\tmsg = parsed;\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tsendError(`Failed to parse command: ${message}`, false);\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tif (headlessHelloChangesConnectionRole(msg, state.connection_role)) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"headless connection role cannot change after hello\",\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst disallowedViewerCapability = headlessViewerDisallowedCapability(\n\t\t\t\tmsg,\n\t\t\t\tstate.connection_role,\n\t\t\t);\n\t\t\tif (disallowedViewerCapability !== undefined) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: `viewer headless connections cannot negotiate ${disallowedViewerCapability} requests`,\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (state.connection_role === \"viewer\" && !headlessViewerCanSend(msg)) {\n\t\t\t\tsend({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tmessage: \"Viewer headless connections cannot send messages\",\n\t\t\t\t\tfatal: false,\n\t\t\t\t\terror_type: \"protocol\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch (msg.type) {\n\t\t\t\tcase \"init\": {\n\t\t\t\t\tconst applied = applyInitMessage(agent, msg, approvalService);\n\t\t\t\t\tsendMessage({\n\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\tapplied.length > 0\n\t\t\t\t\t\t\t\t? `Initialized: ${applied.join(\", \")}`\n\t\t\t\t\t\t\t\t: \"Init received with no changes\",\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"hello\": {\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tconst effectiveRole = state.connection_role ?? \"controller\";\n\t\t\t\t\ttoolRetryService?.setMode(\n\t\t\t\t\t\tmsg.capabilities?.server_requests?.includes(\"tool_retry\")\n\t\t\t\t\t\t\t? \"prompt\"\n\t\t\t\t\t\t\t: \"skip\",\n\t\t\t\t\t);\n\t\t\t\t\tsendMessage(\n\t\t\t\t\t\ttranslator.buildHelloOkMessage({\n\t\t\t\t\t\t\tconnection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t\t\tprotocol_version: HEADLESS_PROTOCOL_VERSION,\n\t\t\t\t\t\t\tclient_protocol_version: msg.protocol_version,\n\t\t\t\t\t\t\tclient_info: msg.client_info,\n\t\t\t\t\t\t\tcapabilities: msg.capabilities,\n\t\t\t\t\t\t\topt_out_notifications: msg.opt_out_notifications,\n\t\t\t\t\t\t\trole: effectiveRole,\n\t\t\t\t\t\t\tcontroller_connection_id:\n\t\t\t\t\t\t\t\teffectiveRole === \"controller\"\n\t\t\t\t\t\t\t\t\t? LOCAL_HEADLESS_CONNECTION_ID\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tlease_expires_at: null,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t);\n\t\t\t\t\tsendMessage(\n\t\t\t\t\t\ttranslator.buildConnectionInfoMessage({\n\t\t\t\t\t\t\tconnection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t\t\tprotocol_version: msg.protocol_version,\n\t\t\t\t\t\t\tclient_info: msg.client_info,\n\t\t\t\t\t\t\tcapabilities: msg.capabilities,\n\t\t\t\t\t\t\topt_out_notifications: msg.opt_out_notifications,\n\t\t\t\t\t\t\trole: effectiveRole,\n\t\t\t\t\t\t\tconnection_count: 1,\n\t\t\t\t\t\t\tcontroller_connection_id:\n\t\t\t\t\t\t\t\teffectiveRole === \"controller\"\n\t\t\t\t\t\t\t\t\t? LOCAL_HEADLESS_CONNECTION_ID\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tlease_expires_at: null,\n\t\t\t\t\t\t\tconnections: state.connections,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tmsg.protocol_version &&\n\t\t\t\t\t\tmsg.protocol_version !== HEADLESS_PROTOCOL_VERSION\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\tmessage: `Client protocol ${msg.protocol_version} attached to server ${HEADLESS_PROTOCOL_VERSION}`,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"prompt\":\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait runUserPromptWithRecovery({\n\t\t\t\t\t\tagent,\n\t\t\t\t\t\tsessionManager,\n\t\t\t\t\t\tcwd: process.cwd(),\n\t\t\t\t\t\tprompt: msg.content,\n\t\t\t\t\t\tattachmentCount: msg.attachments?.length ?? 0,\n\t\t\t\t\t\tattachmentNames: msg.attachments?.map((path) => basename(path)),\n\t\t\t\t\t\tgetPostKeepMessages: withHeadlessPostKeepMessages(() => state),\n\t\t\t\t\t\texecute: async () => {\n\t\t\t\t\t\t\tif (msg.attachments && msg.attachments.length > 0) {\n\t\t\t\t\t\t\t\tconst loaded = await loadPromptAttachments(\n\t\t\t\t\t\t\t\t\tmsg.attachments,\n\t\t\t\t\t\t\t\t\tsendError,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (loaded.length > 0) {\n\t\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\t\tmessage: `Loaded ${loaded.length} attachment(s)`,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tawait agent.prompt(msg.content, loaded);\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait agent.prompt(msg.content);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\t\tonCompacting: () => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\t\"Prompt exceeded the context window. Compacting history and continuing automatically...\",\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonCompacted: (result) => {\n\t\t\t\t\t\t\t\tsendMessage(\n\t\t\t\t\t\t\t\t\tbuildHeadlessCompactionMessage(\n\t\t\t\t\t\t\t\t\t\tbuildCompactionEvent(result, { auto: true }),\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputContinue: (attempt, maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\tattempt === 1\n\t\t\t\t\t\t\t\t\t\t\t? \"Response hit the output limit. Continuing automatically...\"\n\t\t\t\t\t\t\t\t\t\t\t: `Response still hit the output limit. Continuing automatically (${attempt}/${maxContinuations})...`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputExhausted: (maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage: `Stopped after ${maxContinuations} automatic continuations because the response kept hitting the output limit.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tonMaxOutputStoppedEarly: (attempt, maxContinuations) => {\n\t\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\t\tmessage: `Stopped automatic continuation early after ${attempt}/${maxContinuations} retries because recent responses made minimal progress.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"interrupt\":\n\t\t\t\tcase \"cancel\":\n\t\t\t\t\tcancelPendingServerRequests(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted before request completed\"\n\t\t\t\t\t\t\t: \"Cancelled before request completed\",\n\t\t\t\t\t);\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait utilityCommands.dispose(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted while utility command was still running\"\n\t\t\t\t\t\t\t: \"Cancelled while utility command was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tfileWatches.dispose(\n\t\t\t\t\t\tmsg.type === \"interrupt\"\n\t\t\t\t\t\t\t? \"Interrupted while file watch was still running\"\n\t\t\t\t\t\t\t: \"Cancelled while file watch was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tagent.abort();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"tool_response\":\n\t\t\t\t\tif (approvalService?.requiresUserInteraction()) {\n\t\t\t\t\t\tconst reason = msg.approved\n\t\t\t\t\t\t\t? (msg.result?.output ?? \"Approved\")\n\t\t\t\t\t\t\t: (msg.result?.error ?? \"Denied by user\");\n\t\t\t\t\t\tconst resolved = serverRequestManager.resolveApproval(msg.call_id, {\n\t\t\t\t\t\t\tapproved: msg.approved,\n\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending approval found for call_id: ${msg.call_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\tmessage: \"Tool response ignored (auto-approval mode)\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"client_tool_result\": {\n\t\t\t\t\tconst resolved = clientToolService.resolve(\n\t\t\t\t\t\tmsg.call_id,\n\t\t\t\t\t\tmsg.content,\n\t\t\t\t\t\tmsg.is_error,\n\t\t\t\t\t);\n\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t`No pending client tool request found for call_id: ${msg.call_id}`,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase \"server_request_response\":\n\t\t\t\t\tif (msg.request_type === \"approval\") {\n\t\t\t\t\t\tif (approvalService?.requiresUserInteraction()) {\n\t\t\t\t\t\t\tconst reason = msg.approved\n\t\t\t\t\t\t\t\t? (msg.result?.output ?? \"Approved\")\n\t\t\t\t\t\t\t\t: (msg.result?.error ?? \"Denied by user\");\n\t\t\t\t\t\t\tconst resolved = serverRequestManager.resolveApproval(\n\t\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tapproved: msg.approved ?? false,\n\t\t\t\t\t\t\t\t\treason,\n\t\t\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t\t`No pending approval found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\t\ttype: \"status\",\n\t\t\t\t\t\t\t\tmessage: \"Tool response ignored (auto-approval mode)\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (msg.request_type === \"tool_retry\") {\n\t\t\t\t\t\tconst resolved = serverRequestManager.resolveToolRetry(\n\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\taction: msg.decision_action ?? \"abort\",\n\t\t\t\t\t\t\t\treason: msg.reason,\n\t\t\t\t\t\t\t\tresolvedBy: \"user\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending tool retry request found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst resolved = clientToolService.resolve(\n\t\t\t\t\t\t\tmsg.request_id,\n\t\t\t\t\t\t\tmsg.content ?? [],\n\t\t\t\t\t\t\tmsg.is_error ?? false,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!resolved) {\n\t\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\t`No pending client tool request found for request_id: ${msg.request_id}`,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_start\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_start requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.start({\n\t\t\t\t\t\tcommand_id: msg.command_id,\n\t\t\t\t\t\tcommand: msg.command,\n\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\tenv: msg.env,\n\t\t\t\t\t\tshell_mode: msg.shell_mode,\n\t\t\t\t\t\tterminal_mode: msg.terminal_mode,\n\t\t\t\t\t\tallow_stdin: msg.allow_stdin,\n\t\t\t\t\t\tcolumns: msg.columns,\n\t\t\t\t\t\trows: msg.rows,\n\t\t\t\t\t\towner_connection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_terminate\":\n\t\t\t\t\tawait utilityCommands.terminate(msg.command_id, msg.force);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_stdin\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_stdin requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.writeStdin(\n\t\t\t\t\t\tmsg.command_id,\n\t\t\t\t\t\tmsg.content,\n\t\t\t\t\t\tmsg.eof,\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_command_resize\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"command_exec\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_command_resize requires command_exec capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait utilityCommands.resize(msg.command_id, msg.columns, msg.rows);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_search\":\n\t\t\t\t\tif (\n\t\t\t\t\t\t!state.capabilities?.utility_operations?.includes(\"file_search\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_file_search requires file_search capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tconst result = searchWorkspaceFiles({\n\t\t\t\t\t\t\tquery: msg.query,\n\t\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\t\tlimit: msg.limit,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"utility_file_search_results\",\n\t\t\t\t\t\t\tsearch_id: msg.search_id,\n\t\t\t\t\t\t\tquery: result.query,\n\t\t\t\t\t\t\tcwd: result.cwd,\n\t\t\t\t\t\t\tresults: result.results,\n\t\t\t\t\t\t\ttruncated: result.truncated,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_read\":\n\t\t\t\t\tif (!state.capabilities?.utility_operations?.includes(\"file_read\")) {\n\t\t\t\t\t\tsendError(\"utility_file_read requires file_read capability\", false);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t{\n\t\t\t\t\t\tlet result: Awaited<ReturnType<typeof readWorkspaceFile>>;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresult = await readWorkspaceFile({\n\t\t\t\t\t\t\t\tpath: msg.path,\n\t\t\t\t\t\t\t\tcwd: msg.cwd,\n\t\t\t\t\t\t\t\toffset: msg.offset,\n\t\t\t\t\t\t\t\tlimit: msg.limit,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\t\terror instanceof Error ? error.message : String(error);\n\t\t\t\t\t\t\tsendError(message, false, { request_id: msg.read_id });\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsendMessage({\n\t\t\t\t\t\t\ttype: \"utility_file_read_result\",\n\t\t\t\t\t\t\tread_id: msg.read_id,\n\t\t\t\t\t\t\tpath: result.path,\n\t\t\t\t\t\t\trelative_path: result.relative_path,\n\t\t\t\t\t\t\tcwd: result.cwd,\n\t\t\t\t\t\t\tcontent: result.content,\n\t\t\t\t\t\t\tstart_line: result.start_line,\n\t\t\t\t\t\t\tend_line: result.end_line,\n\t\t\t\t\t\t\ttotal_lines: result.total_lines,\n\t\t\t\t\t\t\ttruncated: result.truncated,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_watch_start\":\n\t\t\t\t\tif (!state.capabilities?.utility_operations?.includes(\"file_watch\")) {\n\t\t\t\t\t\tsendError(\n\t\t\t\t\t\t\t\"utility_file_watch_start requires file_watch capability\",\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tawait fileWatches.start({\n\t\t\t\t\t\twatch_id: msg.watch_id,\n\t\t\t\t\t\troot_dir: msg.root_dir,\n\t\t\t\t\t\tinclude_patterns: msg.include_patterns,\n\t\t\t\t\t\texclude_patterns: msg.exclude_patterns,\n\t\t\t\t\t\tdebounce_ms: msg.debounce_ms,\n\t\t\t\t\t\towner_connection_id: LOCAL_HEADLESS_CONNECTION_ID,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"utility_file_watch_stop\":\n\t\t\t\t\tfileWatches.stop(msg.watch_id, \"Stopped by controller\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"shutdown\":\n\t\t\t\t\tcancelPendingServerRequests(\"Shutdown before request completed\");\n\t\t\t\t\tapplyOutgoingHeadlessMessage(state, msg);\n\t\t\t\t\tawait utilityCommands.dispose(\n\t\t\t\t\t\t\"Headless runtime shutdown while utility command was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tfileWatches.dispose(\n\t\t\t\t\t\t\"Headless runtime shutdown while file watch was still running\",\n\t\t\t\t\t);\n\t\t\t\t\tprocess.exit(0);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tsendError(message, false);\n\t\t}\n\t});\n\n\treturn new Promise<void>((resolve) => {\n\t\trl.on(\"close\", () => {\n\t\t\tunsubscribeServerRequests();\n\t\t\tresolve();\n\t\t});\n\t});\n}\n"]}
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,QA4MxC"}
|
package/dist/cli/help.js
CHANGED
|
@@ -83,6 +83,12 @@ export function printHelp(version) {
|
|
|
83
83
|
# Use different model
|
|
84
84
|
maestro --provider openai --model gpt-4o-mini "Help me refactor this code"
|
|
85
85
|
|
|
86
|
+
# Use Codex subscription models after \`maestro codex login\`
|
|
87
|
+
maestro --provider openai-codex --model gpt-5.5 "Plan this migration"
|
|
88
|
+
|
|
89
|
+
# Use EvalOps managed gateway models after \`maestro evalops login\`
|
|
90
|
+
maestro --provider evalops --model gpt-4o-mini "Say hello in one sentence"
|
|
91
|
+
|
|
86
92
|
# Export a portable session log
|
|
87
93
|
maestro export <session-id> ./session.jsonl --format jsonl
|
|
88
94
|
|
|
@@ -90,9 +96,23 @@ export function printHelp(version) {
|
|
|
90
96
|
maestro export <session-id> ./session.json --format json --redact-secrets
|
|
91
97
|
|
|
92
98
|
# Import a portable session log into this workspace
|
|
93
|
-
maestro import ./session.json
|
|
99
|
+
maestro import ./session.json
|
|
100
|
+
|
|
101
|
+
# Start a hosted EvalOps runner session and wait for attach readiness
|
|
102
|
+
maestro remote start --workspace ws_123 --repo evalops/foo --branch main --ttl 90m --wait --verify
|
|
103
|
+
|
|
104
|
+
# Run a single-session hosted runtime pod entrypoint
|
|
105
|
+
maestro hosted-runner --runner-session-id mrs_abc --workspace-root /workspace --listen 0.0.0.0:8080
|
|
106
|
+
|
|
107
|
+
# Show usage analytics for the last 7 days
|
|
108
|
+
maestro stats
|
|
109
|
+
|
|
110
|
+
# Show usage analytics for one session
|
|
111
|
+
maestro stats --session <session-id>`)}`;
|
|
94
112
|
const env = `${sectionHeading("Environment Variables:")}${muted(` GEMINI_API_KEY - Google Gemini API key
|
|
95
113
|
OPENAI_API_KEY - OpenAI API key
|
|
114
|
+
OPENAI_CODEX_TOKEN - OpenAI Codex ChatGPT access token
|
|
115
|
+
OPENAI_CODEX_ACCOUNT_ID - ChatGPT account id when using a raw Codex token
|
|
96
116
|
ANTHROPIC_API_KEY - Anthropic API key
|
|
97
117
|
CLAUDE_CODE_TOKEN - Claude Code access token for --auth claude
|
|
98
118
|
ANTHROPIC_OAUTH_TOKEN - Alternate env for Claude Code bearer tokens
|
|
@@ -107,6 +127,10 @@ export function printHelp(version) {
|
|
|
107
127
|
MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service
|
|
108
128
|
MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)
|
|
109
129
|
MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service
|
|
130
|
+
MAESTRO_REMOTE_RUNNER_URL - Hosted runner control-plane URL (default: https://runner.evalops.dev)
|
|
131
|
+
MAESTRO_REMOTE_RUNNER_TOKEN - Hosted runner bearer token override
|
|
132
|
+
MAESTRO_REMOTE_RUNNER_ORG_ID - EvalOps organization id for hosted runner sessions
|
|
133
|
+
MAESTRO_REMOTE_RUNNER_WORKSPACE_ID - EvalOps workspace id for hosted runner sessions
|
|
110
134
|
CODING_AGENT_DIR - Legacy session directory override (fallback)`)}`;
|
|
111
135
|
const execSection = `${sectionHeading("maestro exec")}${muted(` maestro exec "Summarize recent changes" --json
|
|
112
136
|
|
|
@@ -136,6 +160,15 @@ export function printHelp(version) {
|
|
|
136
160
|
maestro memory audit <id> [n] Show recent sync audit entries
|
|
137
161
|
maestro memory export <id> Export metrics log as JSONL
|
|
138
162
|
maestro memory watch [id] [ms] Poll status/metrics continuously`)}`;
|
|
163
|
+
const remoteSection = `${sectionHeading("maestro remote")}${muted(` maestro remote start --workspace <id> --repo <repo> --branch <branch> [--ttl 90m] [--wait] [--verify]
|
|
164
|
+
maestro remote list --workspace <id> [--state running]
|
|
165
|
+
maestro remote attach <session-id> [--verify] [--print-env]
|
|
166
|
+
maestro remote extend <session-id> --ttl 2h
|
|
167
|
+
maestro remote stop <session-id> [--reason <text>]`)}`;
|
|
168
|
+
const hostedRunnerSection = `${sectionHeading("maestro hosted-runner")}${muted(` maestro hosted-runner --runner-session-id <id> --workspace-root <path> [--listen 0.0.0.0:8080]
|
|
169
|
+
|
|
170
|
+
Env mode:
|
|
171
|
+
MAESTRO_RUNNER_SESSION_ID=mrs_abc MAESTRO_WORKSPACE_ROOT=/workspace maestro hosted-runner`)}`;
|
|
139
172
|
const sessionsSection = `${sectionHeading("Session Metadata")}${muted(` /session favorite|unfavorite Toggle favorite for current session
|
|
140
173
|
/session summary "<text>" Save a manual summary for current session
|
|
141
174
|
/sessions summarize <id> Auto-summarize a saved session`)}`;
|
|
@@ -169,6 +202,8 @@ export function printHelp(version) {
|
|
|
169
202
|
webSection,
|
|
170
203
|
portabilitySection,
|
|
171
204
|
memorySection,
|
|
205
|
+
remoteSection,
|
|
206
|
+
hostedRunnerSection,
|
|
172
207
|
sessionsSection,
|
|
173
208
|
sessionsDiscovery,
|
|
174
209
|
`${sectionHeading("Tips")}${badge("Need models?", "maestro models list", "info")}`,
|
package/dist/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACxC,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAC5C,IAAI,OAAO,gGAAgG,CAC3G,EAAE,CAAC;IACJ,MAAM,KAAK,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAC/C,iCAAiC,CACjC,EAAE,CAAC;IACJ,MAAM,OAAO,GAAG,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG;QAC9C,4DAA4D;QAC5D,+DAA+D;QAC/D,iEAAiE;QACjE,2EAA2E;QAC3E,4FAA4F;QAC5F,wDAAwD;QACxD,0EAA0E;QAC1E,yEAAyE;QACzE,mEAAmE;QACnE,0EAA0E;QAC1E,+EAA+E;QAC/E,gFAAgF;QAChF,+EAA+E;QAC/E,mDAAmD;QACnD,oDAAoD;QACpD,mDAAmD;QACnD,wDAAwD;QACxD,0DAA0D;QAC1D,wCAAwC;KACxC;SACC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACf,MAAM,QAAQ,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CACrD;;;;;;;;;;;;;;;;;;;;;;gCAsB8B,CAC9B,EAAE,CAAC;IACJ,MAAM,GAAG,GAAG,GAAG,cAAc,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAC9D;;;;;;;;;;;;;;;;yEAgBuE,CACvE,EAAE,CAAC;IACJ,MAAM,WAAW,GAAG,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,CAC5D;;;;;;;;;oEASkE,CAClE,EAAE,CAAC;IACJ,MAAM,UAAU,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAC1D;;;;0BAIwB,CACxB,EAAE,CAAC;IACJ,MAAM,kBAAkB,GAAG,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAC1E;;;;;;;+EAO6E,CAC7E,EAAE,CAAC;IACJ,MAAM,aAAa,GAAG,GAAG,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAChE;;;;mEAIiE,CACjE,EAAE,CAAC;IACJ,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CACpE;;mEAEiE,CACjE,EAAE,CAAC;IACJ,MAAM,iBAAiB,GAAG,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,KAAK,CACtE;;2CAEyC,CACzC,EAAE,CAAC;IACJ,MAAM,KAAK,GAAG,GAAG,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,CACzD;;;;;;;;;;;;2FAYyF,CACzF,EAAE,CAAC;IAEJ,MAAM,gBAAgB,GAAG,GAAG,cAAc,CAAC,sBAAsB,CAAC,GAAG,KAAK,CACzE;;;mGAGiG,CACjG,EAAE,CAAC;IAEJ,OAAO,CAAC,GAAG,CACV;QACC,MAAM;QACN,KAAK;QACL,OAAO;QACP,QAAQ;QACR,GAAG;QACH,WAAW;QACX,UAAU;QACV,kBAAkB;QAClB,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAChC,cAAc,EACd,qBAAqB,EACrB,MAAM,CACN,EAAE;QACH,gBAAgB;QAChB,KAAK;KACL,CAAC,IAAI,CAAC,MAAM,CAAC,CACd,CAAC;AACH,CAAC","sourcesContent":["/**\n * @fileoverview CLI Help Output Module\n *\n * This module generates and displays the `--help` output for the Maestro CLI.\n * It provides a comprehensive overview of:\n *\n * - **Usage syntax** and common invocation patterns\n * - **Command-line options** for provider, model, session management, etc.\n * - **Environment variables** for API keys and configuration\n * - **Available tools** and their capabilities\n * - **Subcommands** like `maestro exec` for headless execution\n * - **Session management** commands and workflows\n *\n * ## Styling\n *\n * The output uses the application's theme system for consistent terminal styling:\n * - `heading()` - Main title styling\n * - `sectionHeading()` - Section headers\n * - `muted()` - De-emphasized text for descriptions\n * - `badge()` - Highlighted tips and hints\n *\n * @module cli/help\n */\nimport { badge, heading, muted, sectionHeading } from \"../style/theme.js\";\n\n/**\n * Prints the complete CLI help message to stdout.\n *\n * This function is invoked when the user runs `maestro --help` or `maestro -h`.\n * It formats and displays all available options, commands, and usage examples\n * using the terminal theme for consistent styling.\n *\n * @param version - The current Maestro version string (e.g., \"1.2.3\")\n *\n * @example\n * ```typescript\n * import { printHelp } from \"./help.js\";\n * import { version } from \"../../package.json\";\n *\n * if (args.includes(\"--help\")) {\n * printHelp(version);\n * process.exit(0);\n * }\n * ```\n */\nexport function printHelp(version: string) {\n\tconst header = `${heading(\"Maestro\")} ${muted(\n\t\t`v${version} by EvalOps — AI coding assistant with read, list, search, diff, bash, edit, write, todo tools`,\n\t)}`;\n\tconst usage = `${sectionHeading(\"Usage\")}${muted(\n\t\t\"maestro [options] [messages...]\",\n\t)}`;\n\tconst options = `${sectionHeading(\"Options\")}${[\n\t\t\"--provider <name> Provider name (default: anthropic)\",\n\t\t\"-m, --model <id> Model ID (default: claude-sonnet-4-5)\",\n\t\t\"--task-budget <tokens> API-side Anthropic task budget in tokens\",\n\t\t\"--models <patterns> Comma-separated patterns for Ctrl+P model cycling\",\n\t\t\"--tools <names> Comma-separated tool names to enable (e.g., read,search,list,find)\",\n\t\t\"--api-key <key> API key (defaults to env vars)\",\n\t\t\"--system-prompt <text> System prompt (default: coding assistant prompt)\",\n\t\t\"--append-system-prompt <text> Append instructions to the system prompt\",\n\t\t\"--mode <mode> Output mode: text (default), json, or rpc\",\n\t\t\"--auth <mode> Credential mode: auto (default), api-key, claude\",\n\t\t\"--approval-mode <mode> Action approvals: prompt (default in TUI), auto, fail\",\n\t\t\"--sandbox <mode> Sandbox mode: docker, local, none (see docs/SAFETY.md)\",\n\t\t\"--port <n> Port for `maestro web` (defaults to PORT env or 8080)\",\n\t\t\"--continue, -c Continue previous session\",\n\t\t\"--resume, -r Select a session to resume\",\n\t\t\"--session <path> Use specific session file\",\n\t\t\"--no-session Don't save session (ephemeral)\",\n\t\t\"--safe-mode Enable extra safety restrictions\",\n\t\t\"--help, -h Show this help\",\n\t]\n\t\t.map((line) => ` ${muted(line)}`)\n\t\t.join(\"\\n\")}`;\n\tconst examples = `${sectionHeading(\"Examples\")}${muted(\n\t\t` # Interactive mode (no messages = interactive TUI)\n maestro\n\n # Single message\n maestro \"List all .ts files in src/\"\n\n # Multiple messages\n maestro \"Read package.json\" \"What dependencies do we have?\"\n\n # Continue previous session\n maestro --continue \"What did we discuss?\"\n\n # Use different model\n maestro --provider openai --model gpt-4o-mini \"Help me refactor this code\"\n\n # Export a portable session log\n maestro export <session-id> ./session.jsonl --format jsonl\n\n # Export a portable JSON archive with secret redaction\n maestro export <session-id> ./session.json --format json --redact-secrets\n\n # Import a portable session log into this workspace\n maestro import ./session.json`,\n\t)}`;\n\tconst env = `${sectionHeading(\"Environment Variables:\")}${muted(\n\t\t` GEMINI_API_KEY - Google Gemini API key\n OPENAI_API_KEY - OpenAI API key\n ANTHROPIC_API_KEY - Anthropic API key\n CLAUDE_CODE_TOKEN - Claude Code access token for --auth claude\n ANTHROPIC_OAUTH_TOKEN - Alternate env for Claude Code bearer tokens\n MAESTRO_AGENT_DIR - Session storage directory (default: ~/.maestro/agent)\n MAESTRO_SANDBOX_MODE - Sandbox mode: docker, local, none (default: none)\n MAESTRO_CHANGELOG - Set to off/false/hide/hidden/skip/0 to hide startup changelog banner\n MAESTRO_TUI_MINIMAL - Set to 1/true to disable animations and reduce TUI effects (SSH-friendly)\n MAESTRO_TUI_TOOL_MAX_CHARS - Max chars shown per tool output panel (0 = unlimited)\n MAESTRO_TUI_TOOL_MAX_LINES - Max lines shown per tool output panel (0 = unlimited)\n MAESTRO_MEMORY_BASE - Durable memory service base URL\n MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n CODING_AGENT_DIR - Legacy session directory override (fallback)`,\n\t)}`;\n\tconst execSection = `${sectionHeading(\"maestro exec\")}${muted(\n\t\t` maestro exec \"Summarize recent changes\" --json\n\n Flags:\n --json Stream JSONL thread/turn events\n --output-schema <file|json> Validate final assistant JSON against a schema\n --output-last-message <path> Write the final assistant message to disk\n --full-auto | --read-only Force approval policy (auto or fail)\n --sandbox <mode> Run in sandbox: docker, local, none\n --resume <sessionId> Resume a prior exec session by id\n --last Resume the most recent exec session`,\n\t)}`;\n\tconst webSection = `${sectionHeading(\"maestro web\")}${muted(\n\t\t` # Start the bundled web UI + API server\n maestro web\n\n # Use a custom port\n maestro web --port 3000`,\n\t)}`;\n\tconst portabilitySection = `${sectionHeading(\"Session Portability\")}${muted(\n\t\t` maestro export <session-id> [output-path] --format json|jsonl [--redact-secrets]\n maestro import <file.json|file.jsonl>\n\n Notes:\n - json preserves the full session in a portable wrapper object\n - jsonl preserves the append-only session log verbatim unless redaction is requested\n - --redact-secrets scrubs detected credentials from exported payloads\n - import restores the session into the current workspace session directory`,\n\t)}`;\n\tconst memorySection = `${sectionHeading(\"maestro memory\")}${muted(\n\t\t` maestro memory [status] Show shared memory service status\n maestro memory session <id> Show per-session metrics\n maestro memory audit <id> [n] Show recent sync audit entries\n maestro memory export <id> Export metrics log as JSONL\n maestro memory watch [id] [ms] Poll status/metrics continuously`,\n\t)}`;\n\tconst sessionsSection = `${sectionHeading(\"Session Metadata\")}${muted(\n\t\t` /session favorite|unfavorite Toggle favorite for current session\n /session summary \"<text>\" Save a manual summary for current session\n /sessions summarize <id> Auto-summarize a saved session`,\n\t)}`;\n\tconst sessionsDiscovery = `${sectionHeading(\"Session Commands\")}${muted(\n\t\t` /session [info|favorite|unfavorite|summary \"<text>\"]\n /sessions [list|load <id>|favorite <id>|unfavorite <id>|summarize <id>]\n (Also available via TUI command palette)`,\n\t)}`;\n\tconst tools = `${sectionHeading(\"Available Tools\")}${muted(\n\t\t` read - Read file contents\n list - List files in a directory\n find - Fast file search using fd (glob patterns)\n search - Search files with ripgrep-style filtering\n parallel_ripgrep - Run multiple ripgrep patterns in parallel and merge line ranges\n diff - Show git diffs (workspace, staged, or ranges)\n bash - Execute bash commands\n edit - Edit files with find/replace\n write - Write files (creates/overwrites)\n todo - Create TodoWrite-style checklists\n\n Read-only tools: read,list,find,search,parallel_ripgrep,diff,status\n Example: maestro --tools read,list,find,search,parallel_ripgrep,diff \"Analyze this code\"`,\n\t)}`;\n\n\tconst frameworkSection = `${sectionHeading(\"Framework Preference\")}${muted(\n\t\t` /framework <id> Set default stack (fastapi, express, node)\n /framework <id> --workspace Set workspace-scoped default\n /framework list Show available options\n Precedence: policy (locked) > policy > env override > env default > workspace > user file > none`,\n\t)}`;\n\n\tconsole.log(\n\t\t[\n\t\t\theader,\n\t\t\tusage,\n\t\t\toptions,\n\t\t\texamples,\n\t\t\tenv,\n\t\t\texecSection,\n\t\t\twebSection,\n\t\t\tportabilitySection,\n\t\t\tmemorySection,\n\t\t\tsessionsSection,\n\t\t\tsessionsDiscovery,\n\t\t\t`${sectionHeading(\"Tips\")}${badge(\n\t\t\t\t\"Need models?\",\n\t\t\t\t\"maestro models list\",\n\t\t\t\t\"info\",\n\t\t\t)}`,\n\t\t\tframeworkSection,\n\t\t\ttools,\n\t\t].join(\"\\n\\n\"),\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview CLI Help Output Module\n *\n * This module generates and displays the `--help` output for the Maestro CLI.\n * It provides a comprehensive overview of:\n *\n * - **Usage syntax** and common invocation patterns\n * - **Command-line options** for provider, model, session management, etc.\n * - **Environment variables** for API keys and configuration\n * - **Available tools** and their capabilities\n * - **Subcommands** like `maestro exec` for headless execution\n * - **Session management** commands and workflows\n *\n * ## Styling\n *\n * The output uses the application's theme system for consistent terminal styling:\n * - `heading()` - Main title styling\n * - `sectionHeading()` - Section headers\n * - `muted()` - De-emphasized text for descriptions\n * - `badge()` - Highlighted tips and hints\n *\n * @module cli/help\n */\nimport { badge, heading, muted, sectionHeading } from \"../style/theme.js\";\n\n/**\n * Prints the complete CLI help message to stdout.\n *\n * This function is invoked when the user runs `maestro --help` or `maestro -h`.\n * It formats and displays all available options, commands, and usage examples\n * using the terminal theme for consistent styling.\n *\n * @param version - The current Maestro version string (e.g., \"1.2.3\")\n *\n * @example\n * ```typescript\n * import { printHelp } from \"./help.js\";\n * import { version } from \"../../package.json\";\n *\n * if (args.includes(\"--help\")) {\n * printHelp(version);\n * process.exit(0);\n * }\n * ```\n */\nexport function printHelp(version: string) {\n\tconst header = `${heading(\"Maestro\")} ${muted(\n\t\t`v${version} by EvalOps — AI coding assistant with read, list, search, diff, bash, edit, write, todo tools`,\n\t)}`;\n\tconst usage = `${sectionHeading(\"Usage\")}${muted(\n\t\t\"maestro [options] [messages...]\",\n\t)}`;\n\tconst options = `${sectionHeading(\"Options\")}${[\n\t\t\"--provider <name> Provider name (default: anthropic)\",\n\t\t\"-m, --model <id> Model ID (default: claude-sonnet-4-5)\",\n\t\t\"--task-budget <tokens> API-side Anthropic task budget in tokens\",\n\t\t\"--models <patterns> Comma-separated patterns for Ctrl+P model cycling\",\n\t\t\"--tools <names> Comma-separated tool names to enable (e.g., read,search,list,find)\",\n\t\t\"--api-key <key> API key (defaults to env vars)\",\n\t\t\"--system-prompt <text> System prompt (default: coding assistant prompt)\",\n\t\t\"--append-system-prompt <text> Append instructions to the system prompt\",\n\t\t\"--mode <mode> Output mode: text (default), json, or rpc\",\n\t\t\"--auth <mode> Credential mode: auto (default), api-key, claude\",\n\t\t\"--approval-mode <mode> Action approvals: prompt (default in TUI), auto, fail\",\n\t\t\"--sandbox <mode> Sandbox mode: docker, local, none (see docs/SAFETY.md)\",\n\t\t\"--port <n> Port for `maestro web` (defaults to PORT env or 8080)\",\n\t\t\"--continue, -c Continue previous session\",\n\t\t\"--resume, -r Select a session to resume\",\n\t\t\"--session <path> Use specific session file\",\n\t\t\"--no-session Don't save session (ephemeral)\",\n\t\t\"--safe-mode Enable extra safety restrictions\",\n\t\t\"--help, -h Show this help\",\n\t]\n\t\t.map((line) => ` ${muted(line)}`)\n\t\t.join(\"\\n\")}`;\n\tconst examples = `${sectionHeading(\"Examples\")}${muted(\n\t\t` # Interactive mode (no messages = interactive TUI)\n maestro\n\n # Single message\n maestro \"List all .ts files in src/\"\n\n # Multiple messages\n maestro \"Read package.json\" \"What dependencies do we have?\"\n\n # Continue previous session\n maestro --continue \"What did we discuss?\"\n\n # Use different model\n maestro --provider openai --model gpt-4o-mini \"Help me refactor this code\"\n\n # Use Codex subscription models after \\`maestro codex login\\`\n maestro --provider openai-codex --model gpt-5.5 \"Plan this migration\"\n\n # Use EvalOps managed gateway models after \\`maestro evalops login\\`\n maestro --provider evalops --model gpt-4o-mini \"Say hello in one sentence\"\n\n # Export a portable session log\n maestro export <session-id> ./session.jsonl --format jsonl\n\n # Export a portable JSON archive with secret redaction\n maestro export <session-id> ./session.json --format json --redact-secrets\n\n # Import a portable session log into this workspace\n maestro import ./session.json\n\n # Start a hosted EvalOps runner session and wait for attach readiness\n maestro remote start --workspace ws_123 --repo evalops/foo --branch main --ttl 90m --wait --verify\n\n # Run a single-session hosted runtime pod entrypoint\n maestro hosted-runner --runner-session-id mrs_abc --workspace-root /workspace --listen 0.0.0.0:8080\n\n # Show usage analytics for the last 7 days\n maestro stats\n\n # Show usage analytics for one session\n maestro stats --session <session-id>`,\n\t)}`;\n\tconst env = `${sectionHeading(\"Environment Variables:\")}${muted(\n\t\t` GEMINI_API_KEY - Google Gemini API key\n OPENAI_API_KEY - OpenAI API key\n OPENAI_CODEX_TOKEN - OpenAI Codex ChatGPT access token\n OPENAI_CODEX_ACCOUNT_ID - ChatGPT account id when using a raw Codex token\n ANTHROPIC_API_KEY - Anthropic API key\n CLAUDE_CODE_TOKEN - Claude Code access token for --auth claude\n ANTHROPIC_OAUTH_TOKEN - Alternate env for Claude Code bearer tokens\n MAESTRO_AGENT_DIR - Session storage directory (default: ~/.maestro/agent)\n MAESTRO_SANDBOX_MODE - Sandbox mode: docker, local, none (default: none)\n MAESTRO_CHANGELOG - Set to off/false/hide/hidden/skip/0 to hide startup changelog banner\n MAESTRO_TUI_MINIMAL - Set to 1/true to disable animations and reduce TUI effects (SSH-friendly)\n MAESTRO_TUI_TOOL_MAX_CHARS - Max chars shown per tool output panel (0 = unlimited)\n MAESTRO_TUI_TOOL_MAX_LINES - Max lines shown per tool output panel (0 = unlimited)\n MAESTRO_MEMORY_BASE - Durable memory service base URL\n MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n MAESTRO_REMOTE_RUNNER_URL - Hosted runner control-plane URL (default: https://runner.evalops.dev)\n MAESTRO_REMOTE_RUNNER_TOKEN - Hosted runner bearer token override\n MAESTRO_REMOTE_RUNNER_ORG_ID - EvalOps organization id for hosted runner sessions\n MAESTRO_REMOTE_RUNNER_WORKSPACE_ID - EvalOps workspace id for hosted runner sessions\n CODING_AGENT_DIR - Legacy session directory override (fallback)`,\n\t)}`;\n\tconst execSection = `${sectionHeading(\"maestro exec\")}${muted(\n\t\t` maestro exec \"Summarize recent changes\" --json\n\n Flags:\n --json Stream JSONL thread/turn events\n --output-schema <file|json> Validate final assistant JSON against a schema\n --output-last-message <path> Write the final assistant message to disk\n --full-auto | --read-only Force approval policy (auto or fail)\n --sandbox <mode> Run in sandbox: docker, local, none\n --resume <sessionId> Resume a prior exec session by id\n --last Resume the most recent exec session`,\n\t)}`;\n\tconst webSection = `${sectionHeading(\"maestro web\")}${muted(\n\t\t` # Start the bundled web UI + API server\n maestro web\n\n # Use a custom port\n maestro web --port 3000`,\n\t)}`;\n\tconst portabilitySection = `${sectionHeading(\"Session Portability\")}${muted(\n\t\t` maestro export <session-id> [output-path] --format json|jsonl [--redact-secrets]\n maestro import <file.json|file.jsonl>\n\n Notes:\n - json preserves the full session in a portable wrapper object\n - jsonl preserves the append-only session log verbatim unless redaction is requested\n - --redact-secrets scrubs detected credentials from exported payloads\n - import restores the session into the current workspace session directory`,\n\t)}`;\n\tconst memorySection = `${sectionHeading(\"maestro memory\")}${muted(\n\t\t` maestro memory [status] Show shared memory service status\n maestro memory session <id> Show per-session metrics\n maestro memory audit <id> [n] Show recent sync audit entries\n maestro memory export <id> Export metrics log as JSONL\n maestro memory watch [id] [ms] Poll status/metrics continuously`,\n\t)}`;\n\tconst remoteSection = `${sectionHeading(\"maestro remote\")}${muted(\n\t\t` maestro remote start --workspace <id> --repo <repo> --branch <branch> [--ttl 90m] [--wait] [--verify]\n maestro remote list --workspace <id> [--state running]\n maestro remote attach <session-id> [--verify] [--print-env]\n maestro remote extend <session-id> --ttl 2h\n maestro remote stop <session-id> [--reason <text>]`,\n\t)}`;\n\tconst hostedRunnerSection = `${sectionHeading(\"maestro hosted-runner\")}${muted(\n\t\t` maestro hosted-runner --runner-session-id <id> --workspace-root <path> [--listen 0.0.0.0:8080]\n\n Env mode:\n MAESTRO_RUNNER_SESSION_ID=mrs_abc MAESTRO_WORKSPACE_ROOT=/workspace maestro hosted-runner`,\n\t)}`;\n\tconst sessionsSection = `${sectionHeading(\"Session Metadata\")}${muted(\n\t\t` /session favorite|unfavorite Toggle favorite for current session\n /session summary \"<text>\" Save a manual summary for current session\n /sessions summarize <id> Auto-summarize a saved session`,\n\t)}`;\n\tconst sessionsDiscovery = `${sectionHeading(\"Session Commands\")}${muted(\n\t\t` /session [info|favorite|unfavorite|summary \"<text>\"]\n /sessions [list|load <id>|favorite <id>|unfavorite <id>|summarize <id>]\n (Also available via TUI command palette)`,\n\t)}`;\n\tconst tools = `${sectionHeading(\"Available Tools\")}${muted(\n\t\t` read - Read file contents\n list - List files in a directory\n find - Fast file search using fd (glob patterns)\n search - Search files with ripgrep-style filtering\n parallel_ripgrep - Run multiple ripgrep patterns in parallel and merge line ranges\n diff - Show git diffs (workspace, staged, or ranges)\n bash - Execute bash commands\n edit - Edit files with find/replace\n write - Write files (creates/overwrites)\n todo - Create TodoWrite-style checklists\n\n Read-only tools: read,list,find,search,parallel_ripgrep,diff,status\n Example: maestro --tools read,list,find,search,parallel_ripgrep,diff \"Analyze this code\"`,\n\t)}`;\n\n\tconst frameworkSection = `${sectionHeading(\"Framework Preference\")}${muted(\n\t\t` /framework <id> Set default stack (fastapi, express, node)\n /framework <id> --workspace Set workspace-scoped default\n /framework list Show available options\n Precedence: policy (locked) > policy > env override > env default > workspace > user file > none`,\n\t)}`;\n\n\tconsole.log(\n\t\t[\n\t\t\theader,\n\t\t\tusage,\n\t\t\toptions,\n\t\t\texamples,\n\t\t\tenv,\n\t\t\texecSection,\n\t\t\twebSection,\n\t\t\tportabilitySection,\n\t\t\tmemorySection,\n\t\t\tremoteSection,\n\t\t\thostedRunnerSection,\n\t\t\tsessionsSection,\n\t\t\tsessionsDiscovery,\n\t\t\t`${sectionHeading(\"Tips\")}${badge(\n\t\t\t\t\"Need models?\",\n\t\t\t\t\"maestro models list\",\n\t\t\t\t\"info\",\n\t\t\t)}`,\n\t\t\tframeworkSection,\n\t\t\ttools,\n\t\t].join(\"\\n\\n\"),\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-writer.d.ts","sourceRoot":"","sources":["../../src/cli/jsonl-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EACX,UAAU,EAIV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,UAAU,GACnB;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;CACvB,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EACJ,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,aAAa,GACb,UAAU,GACV,YAAY,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CACd,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACA,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEL,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,QAAyB;IAGnD,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAM7B;AA8BD,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,oBAAoB,IAAI,MAAM,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,MAAM,GACtB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"jsonl-writer.d.ts","sourceRoot":"","sources":["../../src/cli/jsonl-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EACX,UAAU,EAIV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,UAAU,GACnB;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;CACvB,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACb,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EACJ,eAAe,GACf,kBAAkB,GAClB,WAAW,GACX,aAAa,GACb,aAAa,GACb,UAAU,GACV,YAAY,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CACd,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CAClB,GACD;IACA,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEL,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,QAAyB;IAGnD,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAM7B;AA8BD,MAAM,WAAW,iBAAiB;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,oBAAoB,IAAI,MAAM,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,MAAM,GACtB,iBAAiB,CA4KnB;AAED,wBAAgB,YAAY,CAC3B,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,MAAM,EACxB,IAAI,EAAE,MAAM,GACV,MAAM,CA0BR;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACtE,IAAI,CAUN;AAED,wBAAgB,aAAa,CAC5B,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,SAAS,CAAC,EAAE,MAAM,GAChB,IAAI,CASN"}
|
package/dist/cli/jsonl-writer.js
CHANGED
|
@@ -121,16 +121,29 @@ export function createAgentJsonlAdapter(writer, nextTurnId) {
|
|
|
121
121
|
break;
|
|
122
122
|
}
|
|
123
123
|
case "tool_execution_end": {
|
|
124
|
+
const data = {
|
|
125
|
+
toolCallId: event.toolCallId,
|
|
126
|
+
toolName: event.toolName,
|
|
127
|
+
result: event.result,
|
|
128
|
+
isError: event.isError,
|
|
129
|
+
};
|
|
130
|
+
if (event.errorCode) {
|
|
131
|
+
data.errorCode = event.errorCode;
|
|
132
|
+
}
|
|
133
|
+
if (event.approvalRequestId) {
|
|
134
|
+
data.approvalRequestId = event.approvalRequestId;
|
|
135
|
+
}
|
|
136
|
+
if (event.governedOutcome) {
|
|
137
|
+
data.governedOutcome = event.governedOutcome;
|
|
138
|
+
}
|
|
139
|
+
if (event.skillMetadata) {
|
|
140
|
+
data.skillMetadata = event.skillMetadata;
|
|
141
|
+
}
|
|
124
142
|
writer.emit({
|
|
125
143
|
type: "item",
|
|
126
144
|
subtype: "tool_result",
|
|
127
145
|
timestamp: now(),
|
|
128
|
-
data
|
|
129
|
-
toolCallId: event.toolCallId,
|
|
130
|
-
toolName: event.toolName,
|
|
131
|
-
result: event.result,
|
|
132
|
-
isError: event.isError,
|
|
133
|
-
},
|
|
146
|
+
data,
|
|
134
147
|
});
|
|
135
148
|
break;
|
|
136
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl-writer.js","sourceRoot":"","sources":["../../src/cli/jsonl-writer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Writable } from \"node:stream\";\nimport type {\n\tAgentEvent,\n\tAppMessage,\n\tAssistantMessage,\n\tTextContent,\n} from \"../agent/types.js\";\n\nexport type JsonlEvent =\n\t| {\n\t\t\ttype: \"thread\";\n\t\t\tphase: \"start\" | \"end\";\n\t\t\tthreadId: string;\n\t\t\tsessionId?: string;\n\t\t\ttimestamp: string;\n\t\t\tsandbox?: string;\n\t\t\tcwd?: string;\n\t\t\tstatus?: \"ok\" | \"error\";\n\t }\n\t| {\n\t\t\ttype: \"turn\";\n\t\t\tphase: \"start\" | \"end\";\n\t\t\tturnId: string;\n\t\t\trole: \"user\" | \"assistant\" | \"tool\";\n\t\t\ttimestamp: string;\n\t\t\ttext?: string;\n\t }\n\t| {\n\t\t\ttype: \"item\";\n\t\t\tsubtype:\n\t\t\t\t| \"message_delta\"\n\t\t\t\t| \"message_complete\"\n\t\t\t\t| \"tool_call\"\n\t\t\t\t| \"tool_result\"\n\t\t\t\t| \"tool_update\"\n\t\t\t\t| \"approval\"\n\t\t\t\t| \"tool_retry\";\n\t\t\tturnId?: string;\n\t\t\ttimestamp: string;\n\t\t\tdata?: unknown;\n\t }\n\t| {\n\t\t\ttype: \"done\";\n\t\t\tstatus: \"ok\" | \"error\";\n\t\t\ttimestamp: string;\n\t\t\tsessionId?: string;\n\t }\n\t| {\n\t\t\ttype: \"error\";\n\t\t\tmessage: string;\n\t\t\ttimestamp: string;\n\t\t\tstack?: string;\n\t };\n\nexport class JsonlEventWriter {\n\tconstructor(\n\t\tprivate readonly enabled: boolean,\n\t\tprivate readonly stream: Writable = process.stdout,\n\t) {}\n\n\temit(event: JsonlEvent): void {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.stream.write(`${JSON.stringify(event)}\\n`);\n\t}\n}\n\nconst now = (): string => new Date().toISOString();\n\nconst isTextChunk = (chunk: unknown): chunk is TextContent =>\n\ttypeof chunk === \"object\" &&\n\tchunk !== null &&\n\t\"type\" in chunk &&\n\t(chunk as { type?: unknown }).type === \"text\" &&\n\t\"text\" in chunk &&\n\ttypeof (chunk as { text?: unknown }).text === \"string\";\n\nconst extractText = (message: AppMessage | undefined): string => {\n\tif (!message) return \"\";\n\tconst content = (message as { content?: unknown }).content;\n\tif (Array.isArray(content)) {\n\t\treturn content\n\t\t\t.filter(isTextChunk)\n\t\t\t.map((chunk) => chunk.text)\n\t\t\t.join(\"\");\n\t}\n\tif (typeof content === \"string\") {\n\t\treturn content;\n\t}\n\treturn \"\";\n};\n\nconst isAssistantMessage = (message: AppMessage): message is AssistantMessage =>\n\t(message as { role?: unknown }).role === \"assistant\";\n\nexport interface AgentJsonlAdapter {\n\thandle(event: AgentEvent): void;\n\tgetLastAssistantText(): string;\n}\n\nexport function createAgentJsonlAdapter(\n\twriter: JsonlEventWriter,\n\tnextTurnId: () => string,\n): AgentJsonlAdapter {\n\tlet currentAssistantTurn: string | null = null;\n\tlet lastAssistantText = \"\";\n\n\treturn {\n\t\thandle(event: AgentEvent) {\n\t\t\tswitch (event.type) {\n\t\t\t\tcase \"message_start\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentAssistantTurn = nextTurnId();\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\tphase: \"start\",\n\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"message_update\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (!currentAssistantTurn) {\n\t\t\t\t\t\tcurrentAssistantTurn = nextTurnId();\n\t\t\t\t\t\twriter.emit({\n\t\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\t\tphase: \"start\",\n\t\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"message_delta\",\n\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { text: extractText(event.message) },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"message_end\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tlastAssistantText = extractText(event.message);\n\t\t\t\t\tconst turnId = currentAssistantTurn ?? nextTurnId();\n\t\t\t\t\tconst data: Record<string, unknown> = {\n\t\t\t\t\t\ttext: extractText(event.message),\n\t\t\t\t\t};\n\t\t\t\t\tdata.usage = event.message.usage;\n\t\t\t\t\tdata.stopReason = event.message.stopReason;\n\t\t\t\t\tdata.model = event.message.model;\n\t\t\t\t\tdata.provider = event.message.provider;\n\t\t\t\t\tdata.api = event.message.api;\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"message_complete\",\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata,\n\t\t\t\t\t});\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\tphase: \"end\",\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t});\n\t\t\t\t\tcurrentAssistantTurn = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_start\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_call\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\t\targs: event.args,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_end\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_result\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\t\tresult: event.result,\n\t\t\t\t\t\t\tisError: event.isError,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_update\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_update\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\t\tpartialResult: event.partialResult,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"action_approval_required\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"approval\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"action_approval_resolved\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"approval\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request, decision: event.decision },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_retry_required\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_retry\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_retry_resolved\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_retry\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request, decision: event.decision },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tgetLastAssistantText() {\n\t\t\treturn lastAssistantText;\n\t\t},\n\t};\n}\n\nexport function emitUserTurn(\n\twriter: JsonlEventWriter,\n\tnextTurnId: () => string,\n\ttext: string,\n): string {\n\tconst turnId = nextTurnId();\n\tconst stamp = now();\n\twriter.emit({\n\t\ttype: \"turn\",\n\t\tphase: \"start\",\n\t\tturnId,\n\t\trole: \"user\",\n\t\ttimestamp: stamp,\n\t\ttext,\n\t});\n\twriter.emit({\n\t\ttype: \"item\",\n\t\tsubtype: \"message_complete\",\n\t\tturnId,\n\t\ttimestamp: now(),\n\t\tdata: { text },\n\t});\n\twriter.emit({\n\t\ttype: \"turn\",\n\t\tphase: \"end\",\n\t\tturnId,\n\t\trole: \"user\",\n\t\ttimestamp: now(),\n\t});\n\treturn turnId;\n}\n\nexport function emitThreadStart(\n\twriter: JsonlEventWriter,\n\tthreadId: string,\n\toptions: { sandboxMode?: string; cwd?: string; sessionId?: string } = {},\n): void {\n\twriter.emit({\n\t\ttype: \"thread\",\n\t\tphase: \"start\",\n\t\tthreadId,\n\t\tsessionId: options.sessionId,\n\t\tsandbox: options.sandboxMode,\n\t\tcwd: options.cwd,\n\t\ttimestamp: now(),\n\t});\n}\n\nexport function emitThreadEnd(\n\twriter: JsonlEventWriter,\n\tthreadId: string,\n\tstatus: \"ok\" | \"error\",\n\tsessionId?: string,\n): void {\n\twriter.emit({\n\t\ttype: \"thread\",\n\t\tphase: \"end\",\n\t\tthreadId,\n\t\tsessionId,\n\t\tstatus,\n\t\ttimestamp: now(),\n\t});\n}\n"]}
|
|
1
|
+
{"version":3,"file":"jsonl-writer.js","sourceRoot":"","sources":["../../src/cli/jsonl-writer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Writable } from \"node:stream\";\nimport type {\n\tAgentEvent,\n\tAppMessage,\n\tAssistantMessage,\n\tTextContent,\n} from \"../agent/types.js\";\n\nexport type JsonlEvent =\n\t| {\n\t\t\ttype: \"thread\";\n\t\t\tphase: \"start\" | \"end\";\n\t\t\tthreadId: string;\n\t\t\tsessionId?: string;\n\t\t\ttimestamp: string;\n\t\t\tsandbox?: string;\n\t\t\tcwd?: string;\n\t\t\tstatus?: \"ok\" | \"error\";\n\t }\n\t| {\n\t\t\ttype: \"turn\";\n\t\t\tphase: \"start\" | \"end\";\n\t\t\tturnId: string;\n\t\t\trole: \"user\" | \"assistant\" | \"tool\";\n\t\t\ttimestamp: string;\n\t\t\ttext?: string;\n\t }\n\t| {\n\t\t\ttype: \"item\";\n\t\t\tsubtype:\n\t\t\t\t| \"message_delta\"\n\t\t\t\t| \"message_complete\"\n\t\t\t\t| \"tool_call\"\n\t\t\t\t| \"tool_result\"\n\t\t\t\t| \"tool_update\"\n\t\t\t\t| \"approval\"\n\t\t\t\t| \"tool_retry\";\n\t\t\tturnId?: string;\n\t\t\ttimestamp: string;\n\t\t\tdata?: unknown;\n\t }\n\t| {\n\t\t\ttype: \"done\";\n\t\t\tstatus: \"ok\" | \"error\";\n\t\t\ttimestamp: string;\n\t\t\tsessionId?: string;\n\t }\n\t| {\n\t\t\ttype: \"error\";\n\t\t\tmessage: string;\n\t\t\ttimestamp: string;\n\t\t\tstack?: string;\n\t };\n\nexport class JsonlEventWriter {\n\tconstructor(\n\t\tprivate readonly enabled: boolean,\n\t\tprivate readonly stream: Writable = process.stdout,\n\t) {}\n\n\temit(event: JsonlEvent): void {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis.stream.write(`${JSON.stringify(event)}\\n`);\n\t}\n}\n\nconst now = (): string => new Date().toISOString();\n\nconst isTextChunk = (chunk: unknown): chunk is TextContent =>\n\ttypeof chunk === \"object\" &&\n\tchunk !== null &&\n\t\"type\" in chunk &&\n\t(chunk as { type?: unknown }).type === \"text\" &&\n\t\"text\" in chunk &&\n\ttypeof (chunk as { text?: unknown }).text === \"string\";\n\nconst extractText = (message: AppMessage | undefined): string => {\n\tif (!message) return \"\";\n\tconst content = (message as { content?: unknown }).content;\n\tif (Array.isArray(content)) {\n\t\treturn content\n\t\t\t.filter(isTextChunk)\n\t\t\t.map((chunk) => chunk.text)\n\t\t\t.join(\"\");\n\t}\n\tif (typeof content === \"string\") {\n\t\treturn content;\n\t}\n\treturn \"\";\n};\n\nconst isAssistantMessage = (message: AppMessage): message is AssistantMessage =>\n\t(message as { role?: unknown }).role === \"assistant\";\n\nexport interface AgentJsonlAdapter {\n\thandle(event: AgentEvent): void;\n\tgetLastAssistantText(): string;\n}\n\nexport function createAgentJsonlAdapter(\n\twriter: JsonlEventWriter,\n\tnextTurnId: () => string,\n): AgentJsonlAdapter {\n\tlet currentAssistantTurn: string | null = null;\n\tlet lastAssistantText = \"\";\n\n\treturn {\n\t\thandle(event: AgentEvent) {\n\t\t\tswitch (event.type) {\n\t\t\t\tcase \"message_start\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentAssistantTurn = nextTurnId();\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\tphase: \"start\",\n\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"message_update\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (!currentAssistantTurn) {\n\t\t\t\t\t\tcurrentAssistantTurn = nextTurnId();\n\t\t\t\t\t\twriter.emit({\n\t\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\t\tphase: \"start\",\n\t\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"message_delta\",\n\t\t\t\t\t\tturnId: currentAssistantTurn,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { text: extractText(event.message) },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"message_end\": {\n\t\t\t\t\tif (!isAssistantMessage(event.message)) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tlastAssistantText = extractText(event.message);\n\t\t\t\t\tconst turnId = currentAssistantTurn ?? nextTurnId();\n\t\t\t\t\tconst data: Record<string, unknown> = {\n\t\t\t\t\t\ttext: extractText(event.message),\n\t\t\t\t\t};\n\t\t\t\t\tdata.usage = event.message.usage;\n\t\t\t\t\tdata.stopReason = event.message.stopReason;\n\t\t\t\t\tdata.model = event.message.model;\n\t\t\t\t\tdata.provider = event.message.provider;\n\t\t\t\t\tdata.api = event.message.api;\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"message_complete\",\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata,\n\t\t\t\t\t});\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"turn\",\n\t\t\t\t\t\tphase: \"end\",\n\t\t\t\t\t\tturnId,\n\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t});\n\t\t\t\t\tcurrentAssistantTurn = null;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_start\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_call\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\t\targs: event.args,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_end\": {\n\t\t\t\t\tconst data: Record<string, unknown> = {\n\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\tresult: event.result,\n\t\t\t\t\t\tisError: event.isError,\n\t\t\t\t\t};\n\t\t\t\t\tif (event.errorCode) {\n\t\t\t\t\t\tdata.errorCode = event.errorCode;\n\t\t\t\t\t}\n\t\t\t\t\tif (event.approvalRequestId) {\n\t\t\t\t\t\tdata.approvalRequestId = event.approvalRequestId;\n\t\t\t\t\t}\n\t\t\t\t\tif (event.governedOutcome) {\n\t\t\t\t\t\tdata.governedOutcome = event.governedOutcome;\n\t\t\t\t\t}\n\t\t\t\t\tif (event.skillMetadata) {\n\t\t\t\t\t\tdata.skillMetadata = event.skillMetadata;\n\t\t\t\t\t}\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_result\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_execution_update\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_update\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\t\t\t\ttoolName: event.toolName,\n\t\t\t\t\t\t\tpartialResult: event.partialResult,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"action_approval_required\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"approval\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"action_approval_resolved\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"approval\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request, decision: event.decision },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_retry_required\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_retry\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool_retry_resolved\": {\n\t\t\t\t\twriter.emit({\n\t\t\t\t\t\ttype: \"item\",\n\t\t\t\t\t\tsubtype: \"tool_retry\",\n\t\t\t\t\t\ttimestamp: now(),\n\t\t\t\t\t\tdata: { request: event.request, decision: event.decision },\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\tgetLastAssistantText() {\n\t\t\treturn lastAssistantText;\n\t\t},\n\t};\n}\n\nexport function emitUserTurn(\n\twriter: JsonlEventWriter,\n\tnextTurnId: () => string,\n\ttext: string,\n): string {\n\tconst turnId = nextTurnId();\n\tconst stamp = now();\n\twriter.emit({\n\t\ttype: \"turn\",\n\t\tphase: \"start\",\n\t\tturnId,\n\t\trole: \"user\",\n\t\ttimestamp: stamp,\n\t\ttext,\n\t});\n\twriter.emit({\n\t\ttype: \"item\",\n\t\tsubtype: \"message_complete\",\n\t\tturnId,\n\t\ttimestamp: now(),\n\t\tdata: { text },\n\t});\n\twriter.emit({\n\t\ttype: \"turn\",\n\t\tphase: \"end\",\n\t\tturnId,\n\t\trole: \"user\",\n\t\ttimestamp: now(),\n\t});\n\treturn turnId;\n}\n\nexport function emitThreadStart(\n\twriter: JsonlEventWriter,\n\tthreadId: string,\n\toptions: { sandboxMode?: string; cwd?: string; sessionId?: string } = {},\n): void {\n\twriter.emit({\n\t\ttype: \"thread\",\n\t\tphase: \"start\",\n\t\tthreadId,\n\t\tsessionId: options.sessionId,\n\t\tsandbox: options.sandboxMode,\n\t\tcwd: options.cwd,\n\t\ttimestamp: now(),\n\t});\n}\n\nexport function emitThreadEnd(\n\twriter: JsonlEventWriter,\n\tthreadId: string,\n\tstatus: \"ok\" | \"error\",\n\tsessionId?: string,\n): void {\n\twriter.emit({\n\t\ttype: \"thread\",\n\t\tphase: \"end\",\n\t\tthreadId,\n\t\tsessionId,\n\t\tstatus,\n\t\ttimestamp: now(),\n\t});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-tool-controller.d.ts","sourceRoot":"","sources":["../../../src/cli-tui/client-tools/client-tool-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEN,KAAK,qBAAqB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAEX,oBAAoB,EAEpB,MAAM,gCAAgC,CAAC;AAuFxC,UAAU,2BAA2B;IACpC,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5E;
|
|
1
|
+
{"version":3,"file":"client-tool-controller.d.ts","sourceRoot":"","sources":["../../../src/cli-tui/client-tools/client-tool-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAEN,KAAK,qBAAqB,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAEX,oBAAoB,EAEpB,MAAM,gCAAgC,CAAC;AAuFxC,UAAU,2BAA2B;IACpC,iBAAiB,EAAE,oBAAoB,CAAC;IACxC,EAAE,EAAE,GAAG,CAAC;IACR,MAAM,EAAE,YAAY,CAAC;IACrB,eAAe,EAAE,SAAS,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,qBAAqB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5E;AAqoBD,qBAAa,oBAAoB;IAOpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAEZ,OAAO,EAAE,2BAA2B;IAMjE,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,kBAAkB;IA8E1B,OAAO,CAAC,yBAAyB;IA8GjC,OAAO,CAAC,mBAAmB;IA0G3B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;CAUxB"}
|
|
@@ -336,11 +336,15 @@ function formatQueueSuffix(queueLength) {
|
|
|
336
336
|
: `${queueLength} more requests are queued behind this one.`;
|
|
337
337
|
}
|
|
338
338
|
function formatAskUserPrompt(question, index, total, queueLength) {
|
|
339
|
+
const optionLines = question.options.flatMap((option, optionIndex) => [
|
|
340
|
+
`${optionIndex + 1}. ${option.label}: ${option.description}`,
|
|
341
|
+
...formatAskUserOptionPreview(option),
|
|
342
|
+
]);
|
|
339
343
|
const lines = [
|
|
340
344
|
`Question ${index + 1} of ${total}`,
|
|
341
345
|
`[${question.header}] ${question.question}`,
|
|
342
346
|
"",
|
|
343
|
-
...
|
|
347
|
+
...optionLines,
|
|
344
348
|
`${question.options.length + 1}. Other: type your own answer directly`,
|
|
345
349
|
"",
|
|
346
350
|
question.multiSelect
|
|
@@ -354,6 +358,18 @@ function formatAskUserPrompt(question, index, total, queueLength) {
|
|
|
354
358
|
}
|
|
355
359
|
return lines.join("\n");
|
|
356
360
|
}
|
|
361
|
+
function formatAskUserOptionPreview(option) {
|
|
362
|
+
if (!option.preview) {
|
|
363
|
+
return [];
|
|
364
|
+
}
|
|
365
|
+
const title = option.preview.title ? `: ${option.preview.title}` : "";
|
|
366
|
+
const lines = option.preview.body.split(/\r?\n/);
|
|
367
|
+
const bodyLines = lines.slice(0, 12).map((line) => ` ${line}`);
|
|
368
|
+
if (lines.length > bodyLines.length) {
|
|
369
|
+
bodyLines.push(" ...");
|
|
370
|
+
}
|
|
371
|
+
return [` Preview (${option.preview.kind}${title})`, ...bodyLines];
|
|
372
|
+
}
|
|
357
373
|
function normalizeAskUserAnswer(answer) {
|
|
358
374
|
const entries = (Array.isArray(answer) ? answer : [answer])
|
|
359
375
|
.map((entry) => entry.trim())
|