@evalops/maestro 0.10.8 → 0.10.11
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 +29 -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 +74 -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/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +140 -0
- package/dist/cli/commands/init.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 +44 -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 +42555 -23133
- 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/evalops/agent-bootstrap.d.ts +73 -0
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -0
- package/dist/evalops/agent-bootstrap.js +380 -0
- package/dist/evalops/agent-bootstrap.js.map +1 -0
- 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 +127 -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 +117 -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 +74 -15
- 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
|
@@ -1,34 +1,15 @@
|
|
|
1
|
+
import type { RuntimeServerRequestKind, RuntimeServerRequestLifecycleEvent, RuntimeServerRequestRegisteredEvent, RuntimeServerRequestResolution, RuntimeServerRequestResolvedBy, RuntimeServerRequestResolvedEvent, RuntimeServerRequestSnapshot } from "@evalops/contracts";
|
|
1
2
|
import type { ActionApprovalDecision, ActionApprovalRequest, ActionApprovalService } from "../agent/action-approval.js";
|
|
2
3
|
import type { ToolRetryDecision, ToolRetryRequest, ToolRetryService } from "../agent/tool-retry.js";
|
|
3
4
|
import type { ImageContent, TextContent } from "../agent/types.js";
|
|
4
5
|
type ToolResultContent = TextContent | ImageContent;
|
|
5
|
-
export type ServerRequestKind =
|
|
6
|
-
export type ServerRequestResolution =
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
toolName: string;
|
|
13
|
-
displayName?: string;
|
|
14
|
-
summaryLabel?: string;
|
|
15
|
-
actionDescription?: string;
|
|
16
|
-
args: unknown;
|
|
17
|
-
reason: string;
|
|
18
|
-
timestamp: number;
|
|
19
|
-
}
|
|
20
|
-
export interface ServerRequestRegisteredEvent {
|
|
21
|
-
type: "registered";
|
|
22
|
-
request: PendingServerRequestSnapshot;
|
|
23
|
-
}
|
|
24
|
-
export interface ServerRequestResolvedEvent {
|
|
25
|
-
type: "resolved";
|
|
26
|
-
request: PendingServerRequestSnapshot;
|
|
27
|
-
resolution: ServerRequestResolution;
|
|
28
|
-
reason?: string;
|
|
29
|
-
resolvedBy: "user" | "policy" | "client" | "runtime";
|
|
30
|
-
}
|
|
31
|
-
export type ServerRequestLifecycleEvent = ServerRequestRegisteredEvent | ServerRequestResolvedEvent;
|
|
6
|
+
export type ServerRequestKind = RuntimeServerRequestKind;
|
|
7
|
+
export type ServerRequestResolution = RuntimeServerRequestResolution;
|
|
8
|
+
export type ServerRequestResolvedBy = RuntimeServerRequestResolvedBy;
|
|
9
|
+
export type PendingServerRequestSnapshot = RuntimeServerRequestSnapshot;
|
|
10
|
+
export type ServerRequestRegisteredEvent = RuntimeServerRequestRegisteredEvent;
|
|
11
|
+
export type ServerRequestResolvedEvent = RuntimeServerRequestResolvedEvent;
|
|
12
|
+
export type ServerRequestLifecycleEvent = RuntimeServerRequestLifecycleEvent;
|
|
32
13
|
type ServerRequestListener = (event: ServerRequestLifecycleEvent) => void;
|
|
33
14
|
type RegisterApprovalOptions = {
|
|
34
15
|
sessionId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-request-manager.d.ts","sourceRoot":"","sources":["../../src/server/server-request-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE,KAAK,iBAAiB,GAAG,WAAW,GAAG,YAAY,CAAC;AAEpD,MAAM,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"server-request-manager.d.ts","sourceRoot":"","sources":["../../src/server/server-request-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ export class ServerRequestManager {
|
|
|
39
39
|
actionDescription: request.actionDescription,
|
|
40
40
|
args: request.args,
|
|
41
41
|
reason: request.reason,
|
|
42
|
+
platform: request.platform,
|
|
42
43
|
timestamp: Date.now(),
|
|
43
44
|
timeoutMs: options.timeoutMs ?? DEFAULT_APPROVAL_TIMEOUT_MS,
|
|
44
45
|
resolve: (decision) => service.resolve(request.id, decision),
|
|
@@ -130,6 +131,8 @@ export class ServerRequestManager {
|
|
|
130
131
|
args: entry.args,
|
|
131
132
|
reason: entry.reason,
|
|
132
133
|
timestamp: entry.timestamp,
|
|
134
|
+
timeoutMs: entry.timeoutMs,
|
|
135
|
+
platform: entry.kind === "approval" ? entry.platform : undefined,
|
|
133
136
|
};
|
|
134
137
|
}
|
|
135
138
|
listPending(filters) {
|
|
@@ -148,6 +151,8 @@ export class ServerRequestManager {
|
|
|
148
151
|
args: entry.args,
|
|
149
152
|
reason: entry.reason,
|
|
150
153
|
timestamp: entry.timestamp,
|
|
154
|
+
timeoutMs: entry.timeoutMs,
|
|
155
|
+
platform: entry.kind === "approval" ? entry.platform : undefined,
|
|
151
156
|
}));
|
|
152
157
|
}
|
|
153
158
|
resolveApproval(id, decision) {
|
|
@@ -320,6 +325,8 @@ export class ServerRequestManager {
|
|
|
320
325
|
args: entry.args,
|
|
321
326
|
reason: entry.reason,
|
|
322
327
|
timestamp: entry.timestamp,
|
|
328
|
+
timeoutMs: entry.timeoutMs,
|
|
329
|
+
platform: entry.kind === "approval" ? entry.platform : undefined,
|
|
323
330
|
};
|
|
324
331
|
}
|
|
325
332
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-request-manager.js","sourceRoot":"","sources":["../../src/server/server-request-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tActionApprovalDecision,\n\tActionApprovalRequest,\n\tActionApprovalService,\n} from \"../agent/action-approval.js\";\nimport type {\n\tToolRetryDecision,\n\tToolRetryRequest,\n\tToolRetryService,\n} from \"../agent/tool-retry.js\";\nimport type { ImageContent, TextContent } from \"../agent/types.js\";\n\ntype ToolResultContent = TextContent | ImageContent;\n\nexport type ServerRequestKind =\n\t| \"approval\"\n\t| \"client_tool\"\n\t| \"mcp_elicitation\"\n\t| \"user_input\"\n\t| \"tool_retry\";\nexport type ServerRequestResolution =\n\t| \"approved\"\n\t| \"denied\"\n\t| \"completed\"\n\t| \"failed\"\n\t| \"answered\"\n\t| \"retried\"\n\t| \"skipped\"\n\t| \"aborted\"\n\t| \"cancelled\";\n\nexport interface PendingServerRequestSnapshot {\n\tid: string;\n\tkind: ServerRequestKind;\n\tsessionId?: string;\n\tcallId: string;\n\ttoolName: string;\n\tdisplayName?: string;\n\tsummaryLabel?: string;\n\tactionDescription?: string;\n\targs: unknown;\n\treason: string;\n\ttimestamp: number;\n}\n\nexport interface ServerRequestRegisteredEvent {\n\ttype: \"registered\";\n\trequest: PendingServerRequestSnapshot;\n}\n\nexport interface ServerRequestResolvedEvent {\n\ttype: \"resolved\";\n\trequest: PendingServerRequestSnapshot;\n\tresolution: ServerRequestResolution;\n\treason?: string;\n\tresolvedBy: \"user\" | \"policy\" | \"client\" | \"runtime\";\n}\n\nexport type ServerRequestLifecycleEvent =\n\t| ServerRequestRegisteredEvent\n\t| ServerRequestResolvedEvent;\n\ntype ServerRequestListener = (event: ServerRequestLifecycleEvent) => void;\n\ntype ApprovalRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"approval\";\n\ttimeoutMs: number;\n\tresolve: (decision: ActionApprovalDecision) => boolean;\n};\n\ntype ClientToolRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"client_tool\" | \"mcp_elicitation\" | \"user_input\";\n\ttimeoutMs: number;\n\tresolve: (content: ToolResultContent[], isError: boolean) => boolean;\n\tcancel: (reason: string) => boolean;\n};\n\ntype ToolRetryRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"tool_retry\";\n\ttimeoutMs: number;\n\tresolve: (decision: ToolRetryDecision) => boolean;\n};\n\ntype PendingServerRequestEntry =\n\t| ApprovalRequestEntry\n\t| ClientToolRequestEntry\n\t| ToolRetryRequestEntry;\n\ntype RegisterApprovalOptions = {\n\tsessionId?: string;\n\trequest: ActionApprovalRequest;\n\tservice: ActionApprovalService;\n\ttimeoutMs?: number;\n};\n\ntype RegisterClientToolOptions = {\n\tid: string;\n\tsessionId?: string;\n\ttoolName: string;\n\targs: unknown;\n\treason?: string;\n\ttimeoutMs?: number;\n\tkind?: \"client_tool\" | \"mcp_elicitation\" | \"user_input\";\n\tresolve: (content: ToolResultContent[], isError: boolean) => boolean;\n\tcancel: (reason: string) => boolean;\n};\n\ntype RegisterToolRetryOptions = {\n\tsessionId?: string;\n\trequest: ToolRetryRequest;\n\tservice: ToolRetryService;\n\ttimeoutMs?: number;\n};\n\nconst DEFAULT_APPROVAL_TIMEOUT_MS = 60 * 60 * 1000;\nconst DEFAULT_CLIENT_TOOL_TIMEOUT_MS = 60 * 1000;\nconst DEFAULT_TOOL_RETRY_TIMEOUT_MS = 60 * 60 * 1000;\n\nfunction getTimeoutReason(kind: ServerRequestKind): string {\n\tswitch (kind) {\n\t\tcase \"approval\":\n\t\t\treturn \"Approval request timed out\";\n\t\tcase \"mcp_elicitation\":\n\t\t\treturn \"MCP elicitation request timed out before the connected client responded.\";\n\t\tcase \"user_input\":\n\t\t\treturn \"User input request timed out before the connected client responded.\";\n\t\tcase \"client_tool\":\n\t\t\treturn \"Client tool execution timed out after 60 seconds. The VS Code extension may not be responding.\";\n\t\tcase \"tool_retry\":\n\t\t\treturn \"Tool retry request timed out before a retry decision was provided.\";\n\t}\n}\n\nexport class ServerRequestManager {\n\tprivate readonly pending = new Map<string, PendingServerRequestEntry>();\n\tprivate readonly listeners = new Set<ServerRequestListener>();\n\n\tsubscribe(listener: ServerRequestListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tregisterApproval(options: RegisterApprovalOptions): void {\n\t\tconst { request, service } = options;\n\t\tconst entry: ApprovalRequestEntry = {\n\t\t\tid: request.id,\n\t\t\tkind: \"approval\",\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: request.id,\n\t\t\ttoolName: request.toolName,\n\t\t\tdisplayName: request.displayName,\n\t\t\tsummaryLabel: request.summaryLabel,\n\t\t\tactionDescription: request.actionDescription,\n\t\t\targs: request.args,\n\t\t\treason: request.reason,\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_APPROVAL_TIMEOUT_MS,\n\t\t\tresolve: (decision) => service.resolve(request.id, decision),\n\t\t};\n\t\tthis.pending.set(request.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tregisterClientTool(options: RegisterClientToolOptions): void {\n\t\tconst kind = options.kind ?? \"client_tool\";\n\t\tconst entry: ClientToolRequestEntry = {\n\t\t\tid: options.id,\n\t\t\tkind,\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: options.id,\n\t\t\ttoolName: options.toolName,\n\t\t\targs: options.args,\n\t\t\treason:\n\t\t\t\toptions.reason ??\n\t\t\t\t(kind === \"user_input\"\n\t\t\t\t\t? \"Agent requested structured user input\"\n\t\t\t\t\t: kind === \"mcp_elicitation\"\n\t\t\t\t\t\t? \"MCP server requested additional user input\"\n\t\t\t\t\t\t: `Client tool ${options.toolName} requires local execution`),\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_CLIENT_TOOL_TIMEOUT_MS,\n\t\t\tresolve: options.resolve,\n\t\t\tcancel: options.cancel,\n\t\t};\n\t\tthis.pending.set(options.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tregisterToolRetry(options: RegisterToolRetryOptions): void {\n\t\tconst { request, service } = options;\n\t\tconst entry: ToolRetryRequestEntry = {\n\t\t\tid: request.id,\n\t\t\tkind: \"tool_retry\",\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: request.toolCallId,\n\t\t\ttoolName: request.toolName,\n\t\t\targs: {\n\t\t\t\ttool_call_id: request.toolCallId,\n\t\t\t\targs: request.args,\n\t\t\t\terror_message: request.errorMessage,\n\t\t\t\tattempt: request.attempt,\n\t\t\t\t...(request.maxAttempts !== undefined\n\t\t\t\t\t? { max_attempts: request.maxAttempts }\n\t\t\t\t\t: {}),\n\t\t\t\t...(request.summary ? { summary: request.summary } : {}),\n\t\t\t},\n\t\t\treason: request.summary ?? \"Tool retry decision required\",\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_TOOL_RETRY_TIMEOUT_MS,\n\t\t\tresolve: (decision) => {\n\t\t\t\tswitch (decision.action) {\n\t\t\t\t\tcase \"retry\":\n\t\t\t\t\t\treturn service.retry(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t\tcase \"skip\":\n\t\t\t\t\t\treturn service.skip(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t\tcase \"abort\":\n\t\t\t\t\t\treturn service.abort(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.pending.set(request.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tunregister(id: string): void {\n\t\tthis.pending.delete(id);\n\t}\n\n\tget(id: string): PendingServerRequestSnapshot | undefined {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\tid: entry.id,\n\t\t\tkind: entry.kind,\n\t\t\tsessionId: entry.sessionId,\n\t\t\tcallId: entry.callId,\n\t\t\ttoolName: entry.toolName,\n\t\t\targs: entry.args,\n\t\t\treason: entry.reason,\n\t\t\ttimestamp: entry.timestamp,\n\t\t};\n\t}\n\n\tlistPending(filters?: {\n\t\tsessionId?: string;\n\t\tkind?: ServerRequestKind;\n\t}): PendingServerRequestSnapshot[] {\n\t\treturn Array.from(this.pending.values())\n\t\t\t.filter((entry) =>\n\t\t\t\tfilters?.sessionId ? entry.sessionId === filters.sessionId : true,\n\t\t\t)\n\t\t\t.filter((entry) => (filters?.kind ? entry.kind === filters.kind : true))\n\t\t\t.map((entry) => ({\n\t\t\t\tid: entry.id,\n\t\t\t\tkind: entry.kind,\n\t\t\t\tsessionId: entry.sessionId,\n\t\t\t\tcallId: entry.callId,\n\t\t\t\ttoolName: entry.toolName,\n\t\t\t\tdisplayName: entry.displayName,\n\t\t\t\tsummaryLabel: entry.summaryLabel,\n\t\t\t\tactionDescription: entry.actionDescription,\n\t\t\t\targs: entry.args,\n\t\t\t\treason: entry.reason,\n\t\t\t\ttimestamp: entry.timestamp,\n\t\t\t}));\n\t}\n\n\tresolveApproval(\n\t\tid: string,\n\t\tdecision: Pick<\n\t\t\tActionApprovalDecision,\n\t\t\t\"approved\" | \"reason\" | \"resolvedBy\"\n\t\t>,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind !== \"approval\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve({\n\t\t\tapproved: decision.approved,\n\t\t\treason: decision.reason,\n\t\t\tresolvedBy: decision.resolvedBy,\n\t\t});\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: decision.approved ? \"approved\" : \"denied\",\n\t\t\t\treason: decision.reason,\n\t\t\t\tresolvedBy: decision.resolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tresolveToolRetry(\n\t\tid: string,\n\t\tdecision: Pick<ToolRetryDecision, \"action\" | \"reason\" | \"resolvedBy\">,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind !== \"tool_retry\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve({\n\t\t\taction: decision.action,\n\t\t\treason: decision.reason,\n\t\t\tresolvedBy: decision.resolvedBy,\n\t\t});\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution:\n\t\t\t\t\tdecision.action === \"retry\"\n\t\t\t\t\t\t? \"retried\"\n\t\t\t\t\t\t: decision.action === \"skip\"\n\t\t\t\t\t\t\t? \"skipped\"\n\t\t\t\t\t\t\t: \"aborted\",\n\t\t\t\treason: decision.reason,\n\t\t\t\tresolvedBy: decision.resolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tresolveClientTool(\n\t\tid: string,\n\t\tcontent: ToolResultContent[],\n\t\tisError: boolean,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind === \"approval\" || entry.kind === \"tool_retry\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve(content, isError);\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: isError\n\t\t\t\t\t? \"failed\"\n\t\t\t\t\t: request.kind === \"user_input\" || request.kind === \"mcp_elicitation\"\n\t\t\t\t\t\t? \"answered\"\n\t\t\t\t\t\t: \"completed\",\n\t\t\t\treason: isError\n\t\t\t\t\t? request.kind === \"user_input\"\n\t\t\t\t\t\t? \"User input request reported an error\"\n\t\t\t\t\t\t: request.kind === \"mcp_elicitation\"\n\t\t\t\t\t\t\t? \"MCP elicitation request reported an error\"\n\t\t\t\t\t\t\t: \"Client tool result reported an error\"\n\t\t\t\t\t: undefined,\n\t\t\t\tresolvedBy: \"client\",\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tcancel(\n\t\tid: string,\n\t\treason: string,\n\t\tresolvedBy: \"policy\" | \"runtime\" = \"policy\",\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry) {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tif (entry.kind === \"approval\") {\n\t\t\tconst handled = entry.resolve({\n\t\t\t\tapproved: false,\n\t\t\t\treason,\n\t\t\t\tresolvedBy: resolvedBy === \"runtime\" ? \"policy\" : resolvedBy,\n\t\t\t});\n\t\t\tif (handled) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"resolved\",\n\t\t\t\t\trequest,\n\t\t\t\t\tresolution: resolvedBy === \"runtime\" ? \"cancelled\" : \"denied\",\n\t\t\t\t\treason,\n\t\t\t\t\tresolvedBy,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn handled;\n\t\t}\n\t\tif (entry.kind === \"tool_retry\") {\n\t\t\tconst handled = entry.resolve({\n\t\t\t\taction: \"abort\",\n\t\t\t\treason,\n\t\t\t\tresolvedBy,\n\t\t\t});\n\t\t\tif (handled) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"resolved\",\n\t\t\t\t\trequest,\n\t\t\t\t\tresolution: \"cancelled\",\n\t\t\t\t\treason,\n\t\t\t\t\tresolvedBy,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn handled;\n\t\t}\n\t\tconst handled = entry.cancel(reason);\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: resolvedBy === \"runtime\" ? \"cancelled\" : \"failed\",\n\t\t\t\treason,\n\t\t\t\tresolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tcancelBySession(\n\t\tsessionId: string,\n\t\treason: string,\n\t\tresolvedBy: \"policy\" | \"runtime\" = \"policy\",\n\t): number {\n\t\tlet cancelled = 0;\n\t\tfor (const entry of Array.from(this.pending.values())) {\n\t\t\tif (entry.sessionId !== sessionId) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (this.cancel(entry.id, reason, resolvedBy)) {\n\t\t\t\tcancelled += 1;\n\t\t\t}\n\t\t}\n\t\treturn cancelled;\n\t}\n\n\tcleanup(now = Date.now()): void {\n\t\tfor (const entry of Array.from(this.pending.values())) {\n\t\t\tif (now - entry.timestamp <= entry.timeoutMs) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.cancel(entry.id, getTimeoutReason(entry.kind));\n\t\t}\n\t}\n\n\tprivate emit(event: ServerRequestLifecycleEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\tlistener(event);\n\t\t}\n\t}\n\n\tprivate toSnapshot(\n\t\tentry: PendingServerRequestEntry,\n\t): PendingServerRequestSnapshot {\n\t\treturn {\n\t\t\tid: entry.id,\n\t\t\tkind: entry.kind,\n\t\t\tsessionId: entry.sessionId,\n\t\t\tcallId: entry.callId,\n\t\t\ttoolName: entry.toolName,\n\t\t\tdisplayName: entry.displayName,\n\t\t\tsummaryLabel: entry.summaryLabel,\n\t\t\tactionDescription: entry.actionDescription,\n\t\t\targs: entry.args,\n\t\t\treason: entry.reason,\n\t\t\ttimestamp: entry.timestamp,\n\t\t};\n\t}\n}\n\nexport const serverRequestManager = new ServerRequestManager();\n\nsetInterval(() => serverRequestManager.cleanup(), 60 * 1000).unref();\n"]}
|
|
1
|
+
{"version":3,"file":"server-request-manager.js","sourceRoot":"","sources":["../../src/server/server-request-manager.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tRuntimeServerRequestKind,\n\tRuntimeServerRequestLifecycleEvent,\n\tRuntimeServerRequestRegisteredEvent,\n\tRuntimeServerRequestResolution,\n\tRuntimeServerRequestResolvedBy,\n\tRuntimeServerRequestResolvedEvent,\n\tRuntimeServerRequestSnapshot,\n} from \"@evalops/contracts\";\nimport type {\n\tActionApprovalDecision,\n\tActionApprovalRequest,\n\tActionApprovalService,\n} from \"../agent/action-approval.js\";\nimport type {\n\tToolRetryDecision,\n\tToolRetryRequest,\n\tToolRetryService,\n} from \"../agent/tool-retry.js\";\nimport type { ImageContent, TextContent } from \"../agent/types.js\";\n\ntype ToolResultContent = TextContent | ImageContent;\n\nexport type ServerRequestKind = RuntimeServerRequestKind;\nexport type ServerRequestResolution = RuntimeServerRequestResolution;\nexport type ServerRequestResolvedBy = RuntimeServerRequestResolvedBy;\nexport type PendingServerRequestSnapshot = RuntimeServerRequestSnapshot;\nexport type ServerRequestRegisteredEvent = RuntimeServerRequestRegisteredEvent;\nexport type ServerRequestResolvedEvent = RuntimeServerRequestResolvedEvent;\nexport type ServerRequestLifecycleEvent = RuntimeServerRequestLifecycleEvent;\n\ntype ServerRequestListener = (event: ServerRequestLifecycleEvent) => void;\n\ntype ApprovalRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"approval\";\n\ttimeoutMs: number;\n\tresolve: (decision: ActionApprovalDecision) => boolean;\n};\n\ntype ClientToolRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"client_tool\" | \"mcp_elicitation\" | \"user_input\";\n\ttimeoutMs: number;\n\tresolve: (content: ToolResultContent[], isError: boolean) => boolean;\n\tcancel: (reason: string) => boolean;\n};\n\ntype ToolRetryRequestEntry = PendingServerRequestSnapshot & {\n\tkind: \"tool_retry\";\n\ttimeoutMs: number;\n\tresolve: (decision: ToolRetryDecision) => boolean;\n};\n\ntype PendingServerRequestEntry =\n\t| ApprovalRequestEntry\n\t| ClientToolRequestEntry\n\t| ToolRetryRequestEntry;\n\ntype RegisterApprovalOptions = {\n\tsessionId?: string;\n\trequest: ActionApprovalRequest;\n\tservice: ActionApprovalService;\n\ttimeoutMs?: number;\n};\n\ntype RegisterClientToolOptions = {\n\tid: string;\n\tsessionId?: string;\n\ttoolName: string;\n\targs: unknown;\n\treason?: string;\n\ttimeoutMs?: number;\n\tkind?: \"client_tool\" | \"mcp_elicitation\" | \"user_input\";\n\tresolve: (content: ToolResultContent[], isError: boolean) => boolean;\n\tcancel: (reason: string) => boolean;\n};\n\ntype RegisterToolRetryOptions = {\n\tsessionId?: string;\n\trequest: ToolRetryRequest;\n\tservice: ToolRetryService;\n\ttimeoutMs?: number;\n};\n\nconst DEFAULT_APPROVAL_TIMEOUT_MS = 60 * 60 * 1000;\nconst DEFAULT_CLIENT_TOOL_TIMEOUT_MS = 60 * 1000;\nconst DEFAULT_TOOL_RETRY_TIMEOUT_MS = 60 * 60 * 1000;\n\nfunction getTimeoutReason(kind: ServerRequestKind): string {\n\tswitch (kind) {\n\t\tcase \"approval\":\n\t\t\treturn \"Approval request timed out\";\n\t\tcase \"mcp_elicitation\":\n\t\t\treturn \"MCP elicitation request timed out before the connected client responded.\";\n\t\tcase \"user_input\":\n\t\t\treturn \"User input request timed out before the connected client responded.\";\n\t\tcase \"client_tool\":\n\t\t\treturn \"Client tool execution timed out after 60 seconds. The VS Code extension may not be responding.\";\n\t\tcase \"tool_retry\":\n\t\t\treturn \"Tool retry request timed out before a retry decision was provided.\";\n\t}\n}\n\nexport class ServerRequestManager {\n\tprivate readonly pending = new Map<string, PendingServerRequestEntry>();\n\tprivate readonly listeners = new Set<ServerRequestListener>();\n\n\tsubscribe(listener: ServerRequestListener): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\tregisterApproval(options: RegisterApprovalOptions): void {\n\t\tconst { request, service } = options;\n\t\tconst entry: ApprovalRequestEntry = {\n\t\t\tid: request.id,\n\t\t\tkind: \"approval\",\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: request.id,\n\t\t\ttoolName: request.toolName,\n\t\t\tdisplayName: request.displayName,\n\t\t\tsummaryLabel: request.summaryLabel,\n\t\t\tactionDescription: request.actionDescription,\n\t\t\targs: request.args,\n\t\t\treason: request.reason,\n\t\t\tplatform: request.platform,\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_APPROVAL_TIMEOUT_MS,\n\t\t\tresolve: (decision) => service.resolve(request.id, decision),\n\t\t};\n\t\tthis.pending.set(request.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tregisterClientTool(options: RegisterClientToolOptions): void {\n\t\tconst kind = options.kind ?? \"client_tool\";\n\t\tconst entry: ClientToolRequestEntry = {\n\t\t\tid: options.id,\n\t\t\tkind,\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: options.id,\n\t\t\ttoolName: options.toolName,\n\t\t\targs: options.args,\n\t\t\treason:\n\t\t\t\toptions.reason ??\n\t\t\t\t(kind === \"user_input\"\n\t\t\t\t\t? \"Agent requested structured user input\"\n\t\t\t\t\t: kind === \"mcp_elicitation\"\n\t\t\t\t\t\t? \"MCP server requested additional user input\"\n\t\t\t\t\t\t: `Client tool ${options.toolName} requires local execution`),\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_CLIENT_TOOL_TIMEOUT_MS,\n\t\t\tresolve: options.resolve,\n\t\t\tcancel: options.cancel,\n\t\t};\n\t\tthis.pending.set(options.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tregisterToolRetry(options: RegisterToolRetryOptions): void {\n\t\tconst { request, service } = options;\n\t\tconst entry: ToolRetryRequestEntry = {\n\t\t\tid: request.id,\n\t\t\tkind: \"tool_retry\",\n\t\t\tsessionId: options.sessionId,\n\t\t\tcallId: request.toolCallId,\n\t\t\ttoolName: request.toolName,\n\t\t\targs: {\n\t\t\t\ttool_call_id: request.toolCallId,\n\t\t\t\targs: request.args,\n\t\t\t\terror_message: request.errorMessage,\n\t\t\t\tattempt: request.attempt,\n\t\t\t\t...(request.maxAttempts !== undefined\n\t\t\t\t\t? { max_attempts: request.maxAttempts }\n\t\t\t\t\t: {}),\n\t\t\t\t...(request.summary ? { summary: request.summary } : {}),\n\t\t\t},\n\t\t\treason: request.summary ?? \"Tool retry decision required\",\n\t\t\ttimestamp: Date.now(),\n\t\t\ttimeoutMs: options.timeoutMs ?? DEFAULT_TOOL_RETRY_TIMEOUT_MS,\n\t\t\tresolve: (decision) => {\n\t\t\t\tswitch (decision.action) {\n\t\t\t\t\tcase \"retry\":\n\t\t\t\t\t\treturn service.retry(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t\tcase \"skip\":\n\t\t\t\t\t\treturn service.skip(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t\tcase \"abort\":\n\t\t\t\t\t\treturn service.abort(\n\t\t\t\t\t\t\trequest.id,\n\t\t\t\t\t\t\tdecision.reason,\n\t\t\t\t\t\t\tdecision.resolvedBy,\n\t\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.pending.set(request.id, entry);\n\t\tthis.emit({\n\t\t\ttype: \"registered\",\n\t\t\trequest: this.toSnapshot(entry),\n\t\t});\n\t}\n\n\tunregister(id: string): void {\n\t\tthis.pending.delete(id);\n\t}\n\n\tget(id: string): PendingServerRequestSnapshot | undefined {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn {\n\t\t\tid: entry.id,\n\t\t\tkind: entry.kind,\n\t\t\tsessionId: entry.sessionId,\n\t\t\tcallId: entry.callId,\n\t\t\ttoolName: entry.toolName,\n\t\t\targs: entry.args,\n\t\t\treason: entry.reason,\n\t\t\ttimestamp: entry.timestamp,\n\t\t\ttimeoutMs: entry.timeoutMs,\n\t\t\tplatform: entry.kind === \"approval\" ? entry.platform : undefined,\n\t\t};\n\t}\n\n\tlistPending(filters?: {\n\t\tsessionId?: string;\n\t\tkind?: ServerRequestKind;\n\t}): PendingServerRequestSnapshot[] {\n\t\treturn Array.from(this.pending.values())\n\t\t\t.filter((entry) =>\n\t\t\t\tfilters?.sessionId ? entry.sessionId === filters.sessionId : true,\n\t\t\t)\n\t\t\t.filter((entry) => (filters?.kind ? entry.kind === filters.kind : true))\n\t\t\t.map((entry) => ({\n\t\t\t\tid: entry.id,\n\t\t\t\tkind: entry.kind,\n\t\t\t\tsessionId: entry.sessionId,\n\t\t\t\tcallId: entry.callId,\n\t\t\t\ttoolName: entry.toolName,\n\t\t\t\tdisplayName: entry.displayName,\n\t\t\t\tsummaryLabel: entry.summaryLabel,\n\t\t\t\tactionDescription: entry.actionDescription,\n\t\t\t\targs: entry.args,\n\t\t\t\treason: entry.reason,\n\t\t\t\ttimestamp: entry.timestamp,\n\t\t\t\ttimeoutMs: entry.timeoutMs,\n\t\t\t\tplatform: entry.kind === \"approval\" ? entry.platform : undefined,\n\t\t\t}));\n\t}\n\n\tresolveApproval(\n\t\tid: string,\n\t\tdecision: Pick<\n\t\t\tActionApprovalDecision,\n\t\t\t\"approved\" | \"reason\" | \"resolvedBy\"\n\t\t>,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind !== \"approval\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve({\n\t\t\tapproved: decision.approved,\n\t\t\treason: decision.reason,\n\t\t\tresolvedBy: decision.resolvedBy,\n\t\t});\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: decision.approved ? \"approved\" : \"denied\",\n\t\t\t\treason: decision.reason,\n\t\t\t\tresolvedBy: decision.resolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tresolveToolRetry(\n\t\tid: string,\n\t\tdecision: Pick<ToolRetryDecision, \"action\" | \"reason\" | \"resolvedBy\">,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind !== \"tool_retry\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve({\n\t\t\taction: decision.action,\n\t\t\treason: decision.reason,\n\t\t\tresolvedBy: decision.resolvedBy,\n\t\t});\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution:\n\t\t\t\t\tdecision.action === \"retry\"\n\t\t\t\t\t\t? \"retried\"\n\t\t\t\t\t\t: decision.action === \"skip\"\n\t\t\t\t\t\t\t? \"skipped\"\n\t\t\t\t\t\t\t: \"aborted\",\n\t\t\t\treason: decision.reason,\n\t\t\t\tresolvedBy: decision.resolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tresolveClientTool(\n\t\tid: string,\n\t\tcontent: ToolResultContent[],\n\t\tisError: boolean,\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry || entry.kind === \"approval\" || entry.kind === \"tool_retry\") {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tconst handled = entry.resolve(content, isError);\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: isError\n\t\t\t\t\t? \"failed\"\n\t\t\t\t\t: request.kind === \"user_input\" || request.kind === \"mcp_elicitation\"\n\t\t\t\t\t\t? \"answered\"\n\t\t\t\t\t\t: \"completed\",\n\t\t\t\treason: isError\n\t\t\t\t\t? request.kind === \"user_input\"\n\t\t\t\t\t\t? \"User input request reported an error\"\n\t\t\t\t\t\t: request.kind === \"mcp_elicitation\"\n\t\t\t\t\t\t\t? \"MCP elicitation request reported an error\"\n\t\t\t\t\t\t\t: \"Client tool result reported an error\"\n\t\t\t\t\t: undefined,\n\t\t\t\tresolvedBy: \"client\",\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tcancel(\n\t\tid: string,\n\t\treason: string,\n\t\tresolvedBy: \"policy\" | \"runtime\" = \"policy\",\n\t): boolean {\n\t\tconst entry = this.pending.get(id);\n\t\tif (!entry) {\n\t\t\treturn false;\n\t\t}\n\t\tconst request = this.toSnapshot(entry);\n\t\tthis.pending.delete(id);\n\t\tif (entry.kind === \"approval\") {\n\t\t\tconst handled = entry.resolve({\n\t\t\t\tapproved: false,\n\t\t\t\treason,\n\t\t\t\tresolvedBy: resolvedBy === \"runtime\" ? \"policy\" : resolvedBy,\n\t\t\t});\n\t\t\tif (handled) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"resolved\",\n\t\t\t\t\trequest,\n\t\t\t\t\tresolution: resolvedBy === \"runtime\" ? \"cancelled\" : \"denied\",\n\t\t\t\t\treason,\n\t\t\t\t\tresolvedBy,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn handled;\n\t\t}\n\t\tif (entry.kind === \"tool_retry\") {\n\t\t\tconst handled = entry.resolve({\n\t\t\t\taction: \"abort\",\n\t\t\t\treason,\n\t\t\t\tresolvedBy,\n\t\t\t});\n\t\t\tif (handled) {\n\t\t\t\tthis.emit({\n\t\t\t\t\ttype: \"resolved\",\n\t\t\t\t\trequest,\n\t\t\t\t\tresolution: \"cancelled\",\n\t\t\t\t\treason,\n\t\t\t\t\tresolvedBy,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn handled;\n\t\t}\n\t\tconst handled = entry.cancel(reason);\n\t\tif (handled) {\n\t\t\tthis.emit({\n\t\t\t\ttype: \"resolved\",\n\t\t\t\trequest,\n\t\t\t\tresolution: resolvedBy === \"runtime\" ? \"cancelled\" : \"failed\",\n\t\t\t\treason,\n\t\t\t\tresolvedBy,\n\t\t\t});\n\t\t}\n\t\treturn handled;\n\t}\n\n\tcancelBySession(\n\t\tsessionId: string,\n\t\treason: string,\n\t\tresolvedBy: \"policy\" | \"runtime\" = \"policy\",\n\t): number {\n\t\tlet cancelled = 0;\n\t\tfor (const entry of Array.from(this.pending.values())) {\n\t\t\tif (entry.sessionId !== sessionId) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (this.cancel(entry.id, reason, resolvedBy)) {\n\t\t\t\tcancelled += 1;\n\t\t\t}\n\t\t}\n\t\treturn cancelled;\n\t}\n\n\tcleanup(now = Date.now()): void {\n\t\tfor (const entry of Array.from(this.pending.values())) {\n\t\t\tif (now - entry.timestamp <= entry.timeoutMs) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.cancel(entry.id, getTimeoutReason(entry.kind));\n\t\t}\n\t}\n\n\tprivate emit(event: ServerRequestLifecycleEvent): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\tlistener(event);\n\t\t}\n\t}\n\n\tprivate toSnapshot(\n\t\tentry: PendingServerRequestEntry,\n\t): PendingServerRequestSnapshot {\n\t\treturn {\n\t\t\tid: entry.id,\n\t\t\tkind: entry.kind,\n\t\t\tsessionId: entry.sessionId,\n\t\t\tcallId: entry.callId,\n\t\t\ttoolName: entry.toolName,\n\t\t\tdisplayName: entry.displayName,\n\t\t\tsummaryLabel: entry.summaryLabel,\n\t\t\tactionDescription: entry.actionDescription,\n\t\t\targs: entry.args,\n\t\t\treason: entry.reason,\n\t\t\ttimestamp: entry.timestamp,\n\t\t\ttimeoutMs: entry.timeoutMs,\n\t\t\tplatform: entry.kind === \"approval\" ? entry.platform : undefined,\n\t\t};\n\t}\n}\n\nexport const serverRequestManager = new ServerRequestManager();\n\nsetInterval(() => serverRequestManager.cleanup(), 60 * 1000).unref();\n"]}
|
|
@@ -2,7 +2,8 @@ import type { IncomingMessage, ServerResponse } from "node:http";
|
|
|
2
2
|
import { StatusError } from "./status.js";
|
|
3
3
|
export declare class ApiError extends StatusError {
|
|
4
4
|
statusCode: number;
|
|
5
|
-
|
|
5
|
+
errorType?: string | undefined;
|
|
6
|
+
constructor(statusCode: number, message: string, details?: Record<string, unknown>[], errorType?: string | undefined);
|
|
6
7
|
}
|
|
7
8
|
export declare function createCorsHeaders(origin: string): Record<string, string>;
|
|
8
9
|
export declare function readRequestBody(req: IncomingMessage, limit?: number): Promise<Buffer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-utils.d.ts","sourceRoot":"","sources":["../../src/server/server-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAIxD,qBAAa,QAAS,SAAQ,WAAW;IAEhC,UAAU,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"server-utils.d.ts","sourceRoot":"","sources":["../../src/server/server-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKjE,OAAO,EAAgB,WAAW,EAAE,MAAM,aAAa,CAAC;AAIxD,qBAAa,QAAS,SAAQ,WAAW;IAEhC,UAAU,EAAE,MAAM;IAGlB,SAAS,CAAC,EAAE,MAAM;gBAHlB,UAAU,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO,EAChC,SAAS,CAAC,EAAE,MAAM,YAAA;CA8C1B;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsCxE;AAED,wBAAsB,eAAe,CACpC,GAAG,EAAE,eAAe,EACpB,KAAK,SAAY,GACf,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED,wBAAsB,YAAY,CAAC,CAAC,EACnC,GAAG,EAAE,eAAe,EACpB,KAAK,SAAY,GACf,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED,wBAAgB,QAAQ,CACvB,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,GAAG,CAAC,EAAE,eAAe,GACnB,IAAI,CAsEN;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,eAAe,EACpB,GAAG,KAAK,EAAE,MAAM,EAAE,GAChB,MAAM,GAAG,IAAI,CAcf;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAMnE;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,SAAS,EAAE,MAAM,GAAG,IAAI,GACtB,OAAO,CAUT;AAED,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,OAAO,EACd,cAAc,SAAM,EACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,GAAG,CAAC,EAAE,eAAe,GACnB,OAAO,CAgDT"}
|
|
@@ -6,7 +6,7 @@ import { isComposerError } from "../errors/index.js";
|
|
|
6
6
|
import { Code, Status, StatusError } from "./status.js";
|
|
7
7
|
const pipe = promisify(pipeline);
|
|
8
8
|
export class ApiError extends StatusError {
|
|
9
|
-
constructor(statusCode, message, details = []) {
|
|
9
|
+
constructor(statusCode, message, details = [], errorType) {
|
|
10
10
|
let code = Code.UNKNOWN;
|
|
11
11
|
switch (statusCode) {
|
|
12
12
|
case 400:
|
|
@@ -46,6 +46,7 @@ export class ApiError extends StatusError {
|
|
|
46
46
|
})));
|
|
47
47
|
super(status);
|
|
48
48
|
this.statusCode = statusCode;
|
|
49
|
+
this.errorType = errorType;
|
|
49
50
|
this.statusCode = statusCode;
|
|
50
51
|
}
|
|
51
52
|
}
|
|
@@ -59,14 +60,20 @@ export function createCorsHeaders(origin) {
|
|
|
59
60
|
"X-Composer-Client",
|
|
60
61
|
"X-Composer-Client-Tools",
|
|
61
62
|
"X-Composer-Csrf",
|
|
63
|
+
"X-Composer-Agent-Id",
|
|
62
64
|
"X-Composer-Slim-Events",
|
|
65
|
+
"X-Composer-Workspace",
|
|
66
|
+
"X-Composer-Workspace-Id",
|
|
63
67
|
"X-Maestro-Artifact-Access",
|
|
64
68
|
"X-Maestro-Api-Key",
|
|
65
69
|
"X-Maestro-Approval-Mode",
|
|
70
|
+
"X-Maestro-Agent-Id",
|
|
66
71
|
"X-Maestro-Client",
|
|
67
72
|
"X-Maestro-Client-Tools",
|
|
68
73
|
"X-Maestro-Csrf",
|
|
69
74
|
"X-Maestro-Slim-Events",
|
|
75
|
+
"X-Maestro-Workspace",
|
|
76
|
+
"X-Maestro-Workspace-Id",
|
|
70
77
|
"X-Csrf-Token",
|
|
71
78
|
"X-Xsrf-Token",
|
|
72
79
|
];
|
|
@@ -253,6 +260,9 @@ export function respondWithApiError(res, error, fallbackStatus = 500, corsHeader
|
|
|
253
260
|
sendJson(res, statusCode, {
|
|
254
261
|
error: status.message,
|
|
255
262
|
code: Code[status.code],
|
|
263
|
+
error_type: error instanceof ApiError && error.errorType
|
|
264
|
+
? error.errorType
|
|
265
|
+
: undefined,
|
|
256
266
|
details: status.details.length ? status.details : undefined,
|
|
257
267
|
maestro: isComposerError(error)
|
|
258
268
|
? {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-utils.js","sourceRoot":"","sources":["../../src/server/server-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, timingSafeEqual } from \"node:crypto\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport { pipeline } from \"node:stream\";\nimport { promisify } from \"node:util\";\nimport { createDeflate, createGzip } from \"node:zlib\";\nimport { isComposerError } from \"../errors/index.js\";\nimport { Code, Status, StatusError } from \"./status.js\";\n\nconst pipe = promisify(pipeline);\n\nexport class ApiError extends StatusError {\n\tconstructor(\n\t\tpublic statusCode: number,\n\t\tmessage: string,\n\t\tdetails: Record<string, unknown>[] = [],\n\t) {\n\t\tlet code = Code.UNKNOWN;\n\t\tswitch (statusCode) {\n\t\t\tcase 400:\n\t\t\t\tcode = Code.INVALID_ARGUMENT;\n\t\t\t\tbreak;\n\t\t\tcase 401:\n\t\t\t\tcode = Code.UNAUTHENTICATED;\n\t\t\t\tbreak;\n\t\t\tcase 403:\n\t\t\t\tcode = Code.PERMISSION_DENIED;\n\t\t\t\tbreak;\n\t\t\tcase 404:\n\t\t\t\tcode = Code.NOT_FOUND;\n\t\t\t\tbreak;\n\t\t\tcase 409:\n\t\t\t\tcode = Code.ALREADY_EXISTS;\n\t\t\t\tbreak;\n\t\t\tcase 429:\n\t\t\t\tcode = Code.RESOURCE_EXHAUSTED;\n\t\t\t\tbreak;\n\t\t\tcase 500:\n\t\t\t\tcode = Code.INTERNAL;\n\t\t\t\tbreak;\n\t\t\tcase 501:\n\t\t\t\tcode = Code.UNIMPLEMENTED;\n\t\t\t\tbreak;\n\t\t\tcase 503:\n\t\t\t\tcode = Code.UNAVAILABLE;\n\t\t\t\tbreak;\n\t\t\tcase 504:\n\t\t\t\tcode = Code.DEADLINE_EXCEEDED;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst status = new Status(\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\tdetails.map((d) => ({\n\t\t\t\t\"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n\t\t\t\t...d,\n\t\t\t})),\n\t\t);\n\t\tsuper(status);\n\t\tthis.statusCode = statusCode;\n\t}\n}\n\nexport function createCorsHeaders(origin: string): Record<string, string> {\n\tconst allowHeaders = [\n\t\t\"Content-Type\",\n\t\t\"Authorization\",\n\t\t\"X-Composer-Artifact-Access\",\n\t\t\"X-Composer-Api-Key\",\n\t\t\"X-Composer-Approval-Mode\",\n\t\t\"X-Composer-Client\",\n\t\t\"X-Composer-Client-Tools\",\n\t\t\"X-Composer-Csrf\",\n\t\t\"X-Composer-Slim-Events\",\n\t\t\"X-Maestro-Artifact-Access\",\n\t\t\"X-Maestro-Api-Key\",\n\t\t\"X-Maestro-Approval-Mode\",\n\t\t\"X-Maestro-Client\",\n\t\t\"X-Maestro-Client-Tools\",\n\t\t\"X-Maestro-Csrf\",\n\t\t\"X-Maestro-Slim-Events\",\n\t\t\"X-Csrf-Token\",\n\t\t\"X-Xsrf-Token\",\n\t];\n\n\tconst headers: Record<string, string> = {\n\t\t\"Access-Control-Allow-Origin\": origin,\n\t\t\"Access-Control-Allow-Methods\": \"GET, POST, PATCH, DELETE, OPTIONS\",\n\t\t\"Access-Control-Allow-Headers\": allowHeaders.join(\", \"),\n\t\t\"Access-Control-Max-Age\": \"86400\",\n\t};\n\tif (origin !== \"*\") {\n\t\theaders[\"Access-Control-Allow-Credentials\"] = \"true\";\n\t}\n\treturn headers;\n}\n\nexport async function readRequestBody(\n\treq: IncomingMessage,\n\tlimit = 1_000_000,\n): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet total = 0;\n\t\tconst chunks: Buffer[] = [];\n\t\treq.on(\"data\", (chunk: Buffer) => {\n\t\t\tconst nextTotal = total + chunk.length;\n\t\t\tif (nextTotal > limit) {\n\t\t\t\treq.removeAllListeners(\"data\");\n\t\t\t\treq.removeAllListeners(\"end\");\n\t\t\t\treq.destroy();\n\t\t\t\treject(new ApiError(413, \"Payload too large\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttotal = nextTotal;\n\t\t\tchunks.push(chunk);\n\t\t});\n\t\treq.on(\"end\", () => {\n\t\t\tresolve(Buffer.concat(chunks));\n\t\t});\n\t\treq.on(\"error\", (error) => {\n\t\t\treject(error);\n\t\t});\n\t});\n}\n\nexport async function readJsonBody<T>(\n\treq: IncomingMessage,\n\tlimit = 1_000_000,\n): Promise<T> {\n\tconst raw = await readRequestBody(req, limit);\n\tif (!raw.length) {\n\t\treturn {} as T;\n\t}\n\ttry {\n\t\treturn JSON.parse(raw.toString()) as T;\n\t} catch {\n\t\tthrow new ApiError(400, \"Invalid JSON payload\");\n\t}\n}\n\nexport function sendJson(\n\tres: ServerResponse,\n\tstatus: number,\n\tpayload: unknown,\n\tcorsHeaders?: Record<string, string>,\n\treq?: IncomingMessage,\n): void {\n\tif (res.writableEnded || res.headersSent) return;\n\n\tconst body = JSON.stringify(payload);\n\tconst headers: Record<string, string | number> = {\n\t\t\"Content-Type\": \"application/json\",\n\t\t...(corsHeaders || {}),\n\t};\n\n\t// Prefer explicit request; fall back to ServerResponse.req when available.\n\tconst responseWithReq = res as ServerResponse & { req?: IncomingMessage };\n\tconst request = req ?? responseWithReq.req;\n\tconst acceptEncoding =\n\t\trequest?.headers[\"accept-encoding\"]?.toLowerCase() || \"\";\n\n\t// If we cannot inspect the request, respond uncompressed explicitly.\n\tif (!request) {\n\t\theaders[\"Content-Encoding\"] = \"identity\";\n\t\tres.writeHead(status, headers);\n\t\tres.end(body);\n\t\treturn;\n\t}\n\n\t// Only compress if larger than 1KB\n\tif (body.length > 1024) {\n\t\tif (acceptEncoding.includes(\"gzip\") || acceptEncoding.includes(\"*\")) {\n\t\t\theaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\tres.writeHead(status, headers);\n\t\t\tconst gzip = createGzip();\n\t\t\t// Handle compression stream errors to prevent process crash\n\t\t\tgzip.on(\"error\", (err) => {\n\t\t\t\t// Stream error during compression - destroy streams cleanly\n\t\t\t\tgzip.destroy();\n\t\t\t\tif (!res.writableEnded) {\n\t\t\t\t\tres.destroy(err);\n\t\t\t\t}\n\t\t\t});\n\t\t\tres.on(\"error\", () => {\n\t\t\t\t// Client disconnect - destroy compression stream\n\t\t\t\tgzip.destroy();\n\t\t\t});\n\t\t\tgzip.pipe(res);\n\t\t\tgzip.end(body);\n\t\t\treturn;\n\t\t}\n\n\t\tif (acceptEncoding.includes(\"deflate\")) {\n\t\t\theaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\tres.writeHead(status, headers);\n\t\t\tconst deflate = createDeflate();\n\t\t\t// Handle compression stream errors to prevent process crash\n\t\t\tdeflate.on(\"error\", (err) => {\n\t\t\t\t// Stream error during compression - destroy streams cleanly\n\t\t\t\tdeflate.destroy();\n\t\t\t\tif (!res.writableEnded) {\n\t\t\t\t\tres.destroy(err);\n\t\t\t\t}\n\t\t\t});\n\t\t\tres.on(\"error\", () => {\n\t\t\t\t// Client disconnect - destroy compression stream\n\t\t\t\tdeflate.destroy();\n\t\t\t});\n\t\t\tdeflate.pipe(res);\n\t\t\tdeflate.end(body);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tres.writeHead(status, headers);\n\tres.end(body);\n}\n\nexport function buildContentDisposition(filename: string): string {\n\t// Avoid header injection via CRLF, and keep the value ASCII-safe.\n\tconst trimmed = (filename || \"\")\n\t\t.replaceAll(\"\\r\", \"\")\n\t\t.replaceAll(\"\\n\", \"\")\n\t\t.trim();\n\tconst safe = trimmed.length > 0 ? trimmed : \"attachment\";\n\treturn `attachment; filename*=UTF-8''${encodeURIComponent(safe)}`;\n}\n\nexport function secureCompare(value: string, secret: string): boolean {\n\tconst hashProvided = createHash(\"sha256\").update(value).digest();\n\tconst hashSecret = createHash(\"sha256\").update(secret).digest();\n\treturn timingSafeEqual(hashProvided, hashSecret);\n}\n\nexport function getRequestHeader(\n\treq: IncomingMessage,\n\t...names: string[]\n): string | null {\n\tconst headers = req.headers ?? {};\n\tfor (const name of names) {\n\t\tconst value = headers[name.toLowerCase()];\n\t\tif (Array.isArray(value)) {\n\t\t\tconst first = value[0]?.trim();\n\t\t\tif (first) return first;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"string\" && value.trim()) {\n\t\t\treturn value.trim();\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function getRequestToken(req: IncomingMessage): string | null {\n\tconst authHeader = req.headers.authorization;\n\tif (authHeader?.startsWith(\"Bearer \")) {\n\t\treturn authHeader.slice(7).trim() || null;\n\t}\n\treturn getRequestHeader(req, \"x-composer-api-key\", \"x-maestro-api-key\");\n}\n\nexport function authenticateRequest(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcorsHeaders: Record<string, string>,\n\twebApiKey: string | null,\n): boolean {\n\tif (!webApiKey) {\n\t\treturn true;\n\t}\n\tconst provided = getRequestToken(req);\n\tif (!provided || !secureCompare(provided, webApiKey)) {\n\t\tsendJson(res, 401, { error: \"Unauthorized\" }, corsHeaders, req);\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nexport function respondWithApiError(\n\tres: ServerResponse,\n\terror: unknown,\n\tfallbackStatus = 500,\n\tcorsHeaders?: Record<string, string>,\n\treq?: IncomingMessage,\n): boolean {\n\tconst originalStatus = Status.fromError(error);\n\t// Clone to avoid mutation of original error status\n\tconst status = new Status(\n\t\toriginalStatus.code,\n\t\toriginalStatus.message,\n\t\toriginalStatus.details,\n\t);\n\tlet statusCode = status.toHttpCode();\n\n\t// Preserve explicit status codes from ApiError\n\tif (error instanceof ApiError) {\n\t\tstatusCode = error.statusCode;\n\t} else if (status.code === Code.UNKNOWN && fallbackStatus) {\n\t\t// If generic unknown, use fallback if provided\n\t\tstatusCode = fallbackStatus;\n\t\t// Map HTTP fallback back to Status Code if possible for consistency\n\t\tif (statusCode === 500) status.code = Code.INTERNAL;\n\t\telse if (statusCode === 400) status.code = Code.INVALID_ARGUMENT;\n\t\telse if (statusCode === 404) status.code = Code.NOT_FOUND;\n\t}\n\n\tsendJson(\n\t\tres,\n\t\tstatusCode,\n\t\t{\n\t\t\terror: status.message,\n\t\t\tcode: Code[status.code],\n\t\t\tdetails: status.details.length ? status.details : undefined,\n\t\t\tmaestro: isComposerError(error)\n\t\t\t\t? {\n\t\t\t\t\t\tcode: error.code,\n\t\t\t\t\t\tcategory: error.category,\n\t\t\t\t\t\tseverity: error.severity,\n\t\t\t\t\t\tretriable: error.retriable,\n\t\t\t\t\t\tcontext:\n\t\t\t\t\t\t\tObject.keys(error.context).length > 0 ? error.context : undefined,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t\tcorsHeaders,\n\t\treq,\n\t);\n\treturn true;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"server-utils.js","sourceRoot":"","sources":["../../src/server/server-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, timingSafeEqual } from \"node:crypto\";\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport { pipeline } from \"node:stream\";\nimport { promisify } from \"node:util\";\nimport { createDeflate, createGzip } from \"node:zlib\";\nimport { isComposerError } from \"../errors/index.js\";\nimport { Code, Status, StatusError } from \"./status.js\";\n\nconst pipe = promisify(pipeline);\n\nexport class ApiError extends StatusError {\n\tconstructor(\n\t\tpublic statusCode: number,\n\t\tmessage: string,\n\t\tdetails: Record<string, unknown>[] = [],\n\t\tpublic errorType?: string,\n\t) {\n\t\tlet code = Code.UNKNOWN;\n\t\tswitch (statusCode) {\n\t\t\tcase 400:\n\t\t\t\tcode = Code.INVALID_ARGUMENT;\n\t\t\t\tbreak;\n\t\t\tcase 401:\n\t\t\t\tcode = Code.UNAUTHENTICATED;\n\t\t\t\tbreak;\n\t\t\tcase 403:\n\t\t\t\tcode = Code.PERMISSION_DENIED;\n\t\t\t\tbreak;\n\t\t\tcase 404:\n\t\t\t\tcode = Code.NOT_FOUND;\n\t\t\t\tbreak;\n\t\t\tcase 409:\n\t\t\t\tcode = Code.ALREADY_EXISTS;\n\t\t\t\tbreak;\n\t\t\tcase 429:\n\t\t\t\tcode = Code.RESOURCE_EXHAUSTED;\n\t\t\t\tbreak;\n\t\t\tcase 500:\n\t\t\t\tcode = Code.INTERNAL;\n\t\t\t\tbreak;\n\t\t\tcase 501:\n\t\t\t\tcode = Code.UNIMPLEMENTED;\n\t\t\t\tbreak;\n\t\t\tcase 503:\n\t\t\t\tcode = Code.UNAVAILABLE;\n\t\t\t\tbreak;\n\t\t\tcase 504:\n\t\t\t\tcode = Code.DEADLINE_EXCEEDED;\n\t\t\t\tbreak;\n\t\t}\n\t\tconst status = new Status(\n\t\t\tcode,\n\t\t\tmessage,\n\t\t\tdetails.map((d) => ({\n\t\t\t\t\"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n\t\t\t\t...d,\n\t\t\t})),\n\t\t);\n\t\tsuper(status);\n\t\tthis.statusCode = statusCode;\n\t}\n}\n\nexport function createCorsHeaders(origin: string): Record<string, string> {\n\tconst allowHeaders = [\n\t\t\"Content-Type\",\n\t\t\"Authorization\",\n\t\t\"X-Composer-Artifact-Access\",\n\t\t\"X-Composer-Api-Key\",\n\t\t\"X-Composer-Approval-Mode\",\n\t\t\"X-Composer-Client\",\n\t\t\"X-Composer-Client-Tools\",\n\t\t\"X-Composer-Csrf\",\n\t\t\"X-Composer-Agent-Id\",\n\t\t\"X-Composer-Slim-Events\",\n\t\t\"X-Composer-Workspace\",\n\t\t\"X-Composer-Workspace-Id\",\n\t\t\"X-Maestro-Artifact-Access\",\n\t\t\"X-Maestro-Api-Key\",\n\t\t\"X-Maestro-Approval-Mode\",\n\t\t\"X-Maestro-Agent-Id\",\n\t\t\"X-Maestro-Client\",\n\t\t\"X-Maestro-Client-Tools\",\n\t\t\"X-Maestro-Csrf\",\n\t\t\"X-Maestro-Slim-Events\",\n\t\t\"X-Maestro-Workspace\",\n\t\t\"X-Maestro-Workspace-Id\",\n\t\t\"X-Csrf-Token\",\n\t\t\"X-Xsrf-Token\",\n\t];\n\n\tconst headers: Record<string, string> = {\n\t\t\"Access-Control-Allow-Origin\": origin,\n\t\t\"Access-Control-Allow-Methods\": \"GET, POST, PATCH, DELETE, OPTIONS\",\n\t\t\"Access-Control-Allow-Headers\": allowHeaders.join(\", \"),\n\t\t\"Access-Control-Max-Age\": \"86400\",\n\t};\n\tif (origin !== \"*\") {\n\t\theaders[\"Access-Control-Allow-Credentials\"] = \"true\";\n\t}\n\treturn headers;\n}\n\nexport async function readRequestBody(\n\treq: IncomingMessage,\n\tlimit = 1_000_000,\n): Promise<Buffer> {\n\treturn new Promise((resolve, reject) => {\n\t\tlet total = 0;\n\t\tconst chunks: Buffer[] = [];\n\t\treq.on(\"data\", (chunk: Buffer) => {\n\t\t\tconst nextTotal = total + chunk.length;\n\t\t\tif (nextTotal > limit) {\n\t\t\t\treq.removeAllListeners(\"data\");\n\t\t\t\treq.removeAllListeners(\"end\");\n\t\t\t\treq.destroy();\n\t\t\t\treject(new ApiError(413, \"Payload too large\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttotal = nextTotal;\n\t\t\tchunks.push(chunk);\n\t\t});\n\t\treq.on(\"end\", () => {\n\t\t\tresolve(Buffer.concat(chunks));\n\t\t});\n\t\treq.on(\"error\", (error) => {\n\t\t\treject(error);\n\t\t});\n\t});\n}\n\nexport async function readJsonBody<T>(\n\treq: IncomingMessage,\n\tlimit = 1_000_000,\n): Promise<T> {\n\tconst raw = await readRequestBody(req, limit);\n\tif (!raw.length) {\n\t\treturn {} as T;\n\t}\n\ttry {\n\t\treturn JSON.parse(raw.toString()) as T;\n\t} catch {\n\t\tthrow new ApiError(400, \"Invalid JSON payload\");\n\t}\n}\n\nexport function sendJson(\n\tres: ServerResponse,\n\tstatus: number,\n\tpayload: unknown,\n\tcorsHeaders?: Record<string, string>,\n\treq?: IncomingMessage,\n): void {\n\tif (res.writableEnded || res.headersSent) return;\n\n\tconst body = JSON.stringify(payload);\n\tconst headers: Record<string, string | number> = {\n\t\t\"Content-Type\": \"application/json\",\n\t\t...(corsHeaders || {}),\n\t};\n\n\t// Prefer explicit request; fall back to ServerResponse.req when available.\n\tconst responseWithReq = res as ServerResponse & { req?: IncomingMessage };\n\tconst request = req ?? responseWithReq.req;\n\tconst acceptEncoding =\n\t\trequest?.headers[\"accept-encoding\"]?.toLowerCase() || \"\";\n\n\t// If we cannot inspect the request, respond uncompressed explicitly.\n\tif (!request) {\n\t\theaders[\"Content-Encoding\"] = \"identity\";\n\t\tres.writeHead(status, headers);\n\t\tres.end(body);\n\t\treturn;\n\t}\n\n\t// Only compress if larger than 1KB\n\tif (body.length > 1024) {\n\t\tif (acceptEncoding.includes(\"gzip\") || acceptEncoding.includes(\"*\")) {\n\t\t\theaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\tres.writeHead(status, headers);\n\t\t\tconst gzip = createGzip();\n\t\t\t// Handle compression stream errors to prevent process crash\n\t\t\tgzip.on(\"error\", (err) => {\n\t\t\t\t// Stream error during compression - destroy streams cleanly\n\t\t\t\tgzip.destroy();\n\t\t\t\tif (!res.writableEnded) {\n\t\t\t\t\tres.destroy(err);\n\t\t\t\t}\n\t\t\t});\n\t\t\tres.on(\"error\", () => {\n\t\t\t\t// Client disconnect - destroy compression stream\n\t\t\t\tgzip.destroy();\n\t\t\t});\n\t\t\tgzip.pipe(res);\n\t\t\tgzip.end(body);\n\t\t\treturn;\n\t\t}\n\n\t\tif (acceptEncoding.includes(\"deflate\")) {\n\t\t\theaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\tres.writeHead(status, headers);\n\t\t\tconst deflate = createDeflate();\n\t\t\t// Handle compression stream errors to prevent process crash\n\t\t\tdeflate.on(\"error\", (err) => {\n\t\t\t\t// Stream error during compression - destroy streams cleanly\n\t\t\t\tdeflate.destroy();\n\t\t\t\tif (!res.writableEnded) {\n\t\t\t\t\tres.destroy(err);\n\t\t\t\t}\n\t\t\t});\n\t\t\tres.on(\"error\", () => {\n\t\t\t\t// Client disconnect - destroy compression stream\n\t\t\t\tdeflate.destroy();\n\t\t\t});\n\t\t\tdeflate.pipe(res);\n\t\t\tdeflate.end(body);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tres.writeHead(status, headers);\n\tres.end(body);\n}\n\nexport function buildContentDisposition(filename: string): string {\n\t// Avoid header injection via CRLF, and keep the value ASCII-safe.\n\tconst trimmed = (filename || \"\")\n\t\t.replaceAll(\"\\r\", \"\")\n\t\t.replaceAll(\"\\n\", \"\")\n\t\t.trim();\n\tconst safe = trimmed.length > 0 ? trimmed : \"attachment\";\n\treturn `attachment; filename*=UTF-8''${encodeURIComponent(safe)}`;\n}\n\nexport function secureCompare(value: string, secret: string): boolean {\n\tconst hashProvided = createHash(\"sha256\").update(value).digest();\n\tconst hashSecret = createHash(\"sha256\").update(secret).digest();\n\treturn timingSafeEqual(hashProvided, hashSecret);\n}\n\nexport function getRequestHeader(\n\treq: IncomingMessage,\n\t...names: string[]\n): string | null {\n\tconst headers = req.headers ?? {};\n\tfor (const name of names) {\n\t\tconst value = headers[name.toLowerCase()];\n\t\tif (Array.isArray(value)) {\n\t\t\tconst first = value[0]?.trim();\n\t\t\tif (first) return first;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"string\" && value.trim()) {\n\t\t\treturn value.trim();\n\t\t}\n\t}\n\treturn null;\n}\n\nexport function getRequestToken(req: IncomingMessage): string | null {\n\tconst authHeader = req.headers.authorization;\n\tif (authHeader?.startsWith(\"Bearer \")) {\n\t\treturn authHeader.slice(7).trim() || null;\n\t}\n\treturn getRequestHeader(req, \"x-composer-api-key\", \"x-maestro-api-key\");\n}\n\nexport function authenticateRequest(\n\treq: IncomingMessage,\n\tres: ServerResponse,\n\tcorsHeaders: Record<string, string>,\n\twebApiKey: string | null,\n): boolean {\n\tif (!webApiKey) {\n\t\treturn true;\n\t}\n\tconst provided = getRequestToken(req);\n\tif (!provided || !secureCompare(provided, webApiKey)) {\n\t\tsendJson(res, 401, { error: \"Unauthorized\" }, corsHeaders, req);\n\t\treturn false;\n\t}\n\treturn true;\n}\n\nexport function respondWithApiError(\n\tres: ServerResponse,\n\terror: unknown,\n\tfallbackStatus = 500,\n\tcorsHeaders?: Record<string, string>,\n\treq?: IncomingMessage,\n): boolean {\n\tconst originalStatus = Status.fromError(error);\n\t// Clone to avoid mutation of original error status\n\tconst status = new Status(\n\t\toriginalStatus.code,\n\t\toriginalStatus.message,\n\t\toriginalStatus.details,\n\t);\n\tlet statusCode = status.toHttpCode();\n\n\t// Preserve explicit status codes from ApiError\n\tif (error instanceof ApiError) {\n\t\tstatusCode = error.statusCode;\n\t} else if (status.code === Code.UNKNOWN && fallbackStatus) {\n\t\t// If generic unknown, use fallback if provided\n\t\tstatusCode = fallbackStatus;\n\t\t// Map HTTP fallback back to Status Code if possible for consistency\n\t\tif (statusCode === 500) status.code = Code.INTERNAL;\n\t\telse if (statusCode === 400) status.code = Code.INVALID_ARGUMENT;\n\t\telse if (statusCode === 404) status.code = Code.NOT_FOUND;\n\t}\n\n\tsendJson(\n\t\tres,\n\t\tstatusCode,\n\t\t{\n\t\t\terror: status.message,\n\t\t\tcode: Code[status.code],\n\t\t\terror_type:\n\t\t\t\terror instanceof ApiError && error.errorType\n\t\t\t\t\t? error.errorType\n\t\t\t\t\t: undefined,\n\t\t\tdetails: status.details.length ? status.details : undefined,\n\t\t\tmaestro: isComposerError(error)\n\t\t\t\t? {\n\t\t\t\t\t\tcode: error.code,\n\t\t\t\t\t\tcategory: error.category,\n\t\t\t\t\t\tseverity: error.severity,\n\t\t\t\t\t\tretriable: error.retriable,\n\t\t\t\t\t\tcontext:\n\t\t\t\t\t\t\tObject.keys(error.context).length > 0 ? error.context : undefined,\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t},\n\t\tcorsHeaders,\n\t\treq,\n\t);\n\treturn true;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-env.d.ts","sourceRoot":"","sources":["../../src/server/session-event-env.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CACjC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAClC,MAAM,CAAC,UAAU,CAMnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-event-env.js","sourceRoot":"","sources":["../../src/server/session-event-env.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CACjC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO;QACN,GAAG,GAAG;QACN,wBAAwB,EAAE,GAAG,CAAC,wBAAwB,IAAI,aAAa;QACvE,eAAe,EAAE,GAAG,CAAC,eAAe,IAAI,KAAK;KAC7C,CAAC;AACH,CAAC","sourcesContent":["export function webSessionEventEnv(\n\tenv: NodeJS.ProcessEnv = process.env,\n): NodeJS.ProcessEnv {\n\treturn {\n\t\t...env,\n\t\tMAESTRO_EVENT_BUS_SOURCE: env.MAESTRO_EVENT_BUS_SOURCE ?? \"maestro.web\",\n\t\tMAESTRO_SURFACE: env.MAESTRO_SURFACE ?? \"web\",\n\t};\n}\n"]}
|
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
import type { EnterpriseSession } from "../enterprise/context.js";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type SessionState = Parameters<SessionInitializationManager["startSession"]>[0];
|
|
3
|
+
export interface SessionInitializationManager {
|
|
4
|
+
loadAllSessions(): Array<{
|
|
5
|
+
modified: Date;
|
|
6
|
+
}>;
|
|
7
|
+
countActiveSessions?(since: Date): Promise<number>;
|
|
8
|
+
startSession(state: AgentSessionState, options?: {
|
|
9
|
+
subject?: string;
|
|
10
|
+
}): void;
|
|
11
|
+
getSessionId(): string;
|
|
12
|
+
}
|
|
13
|
+
type AgentSessionState = {
|
|
14
|
+
messages: unknown[];
|
|
15
|
+
model: unknown;
|
|
16
|
+
thinkingLevel: unknown;
|
|
17
|
+
systemPrompt: string;
|
|
18
|
+
promptMetadata?: unknown;
|
|
19
|
+
tools: Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
label?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
4
25
|
export interface SessionInitializationAgent {
|
|
5
26
|
state: SessionState;
|
|
6
27
|
setSession(session: {
|
|
@@ -22,8 +43,8 @@ export declare function startSessionWithPolicy(params: {
|
|
|
22
43
|
logger: SessionInitializationLogger;
|
|
23
44
|
modelId: string;
|
|
24
45
|
onSessionReady: (sessionId: string) => void;
|
|
25
|
-
sessionManager:
|
|
46
|
+
sessionManager: SessionInitializationManager;
|
|
26
47
|
subject?: string;
|
|
27
|
-
}): string | null
|
|
48
|
+
}): Promise<string | null>;
|
|
28
49
|
export {};
|
|
29
50
|
//# sourceMappingURL=session-initialization.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-initialization.d.ts","sourceRoot":"","sources":["../../src/server/session-initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"session-initialization.d.ts","sourceRoot":"","sources":["../../src/server/session-initialization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,KAAK,YAAY,GAAG,UAAU,CAAC,4BAA4B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,WAAW,4BAA4B;IAC5C,eAAe,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7C,mBAAmB,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnD,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7E,YAAY,IAAI,MAAM,CAAC;CACvB;AAED,KAAK,iBAAiB,GAAG;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,0BAA0B;IAC1C,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,sCAAsC;IACtD,YAAY,IAAI,OAAO,CAAC;IACxB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvD,UAAU,IAAI,iBAAiB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9D;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,0BAA0B,CAAC;IAClC,iBAAiB,EAAE,sCAAsC,CAAC;IAC1D,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,4BAA4B,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6DzB"}
|
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import { checkSessionLimits } from "../safety/policy.js";
|
|
2
|
-
|
|
2
|
+
import { recordMaestroSessionEvent } from "../telemetry/maestro-event-bus.js";
|
|
3
|
+
import { webSessionEventEnv } from "./session-event-env.js";
|
|
4
|
+
export async function startSessionWithPolicy(params) {
|
|
3
5
|
const { agent, enterpriseContext, logger, modelId, onSessionReady, sessionManager, subject, } = params;
|
|
4
6
|
let activeCount;
|
|
5
7
|
try {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
+
const activeSince = new Date(Date.now() - 60 * 60 * 1000);
|
|
9
|
+
if (sessionManager.countActiveSessions) {
|
|
10
|
+
activeCount = await sessionManager.countActiveSessions(activeSince);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const sessions = sessionManager.loadAllSessions();
|
|
14
|
+
activeCount = sessions.filter((session) => session.modified.getTime() >= activeSince.getTime()).length;
|
|
15
|
+
}
|
|
8
16
|
}
|
|
9
17
|
catch (error) {
|
|
10
18
|
logger.warn("Failed to count active sessions", {
|
|
@@ -18,8 +26,17 @@ export function startSessionWithPolicy(params) {
|
|
|
18
26
|
return limitCheck.reason ?? "Session policy blocked chat request";
|
|
19
27
|
}
|
|
20
28
|
sessionManager.startSession(agent.state, { subject });
|
|
29
|
+
const sessionId = sessionManager.getSessionId();
|
|
30
|
+
recordMaestroSessionEvent("MAESTRO_SESSION_STATE_STARTED", {
|
|
31
|
+
sessionId,
|
|
32
|
+
env: webSessionEventEnv(),
|
|
33
|
+
metadata: {
|
|
34
|
+
model: modelId,
|
|
35
|
+
...(subject ? { subject } : {}),
|
|
36
|
+
},
|
|
37
|
+
});
|
|
21
38
|
if (enterpriseContext.isEnterprise()) {
|
|
22
|
-
enterpriseContext.startSession(
|
|
39
|
+
enterpriseContext.startSession(sessionId, modelId);
|
|
23
40
|
const session = enterpriseContext.getSession();
|
|
24
41
|
if (session) {
|
|
25
42
|
agent.setSession({
|
|
@@ -28,7 +45,7 @@ export function startSessionWithPolicy(params) {
|
|
|
28
45
|
});
|
|
29
46
|
}
|
|
30
47
|
}
|
|
31
|
-
onSessionReady(
|
|
48
|
+
onSessionReady(sessionId);
|
|
32
49
|
return null;
|
|
33
50
|
}
|
|
34
51
|
//# sourceMappingURL=session-initialization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-initialization.js","sourceRoot":"","sources":["../../src/server/session-initialization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-initialization.js","sourceRoot":"","sources":["../../src/server/session-initialization.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAuC5D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAQ5C;IACA,MAAM,EACL,KAAK,EACL,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,cAAc,EACd,cAAc,EACd,OAAO,GACP,GAAG,MAAM,CAAC;IAEX,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,mBAAmB,EAAE,CAAC;YACxC,WAAW,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC;YAClD,WAAW,GAAG,QAAQ,CAAC,MAAM,CAC5B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,WAAW,CAAC,OAAO,EAAE,CAChE,CAAC,MAAM,CAAC;QACV,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE;YAC9C,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC7D,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CACpC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,EACzB,WAAW,KAAK,SAAS;QACxB,CAAC,CAAC,EAAE,kBAAkB,EAAE,WAAW,GAAG,CAAC,EAAE;QACzC,CAAC,CAAC,SAAS,CACZ,CAAC;IACF,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,MAAM,IAAI,qCAAqC,CAAC;IACnE,CAAC;IAED,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;IAChD,yBAAyB,CAAC,+BAA+B,EAAE;QAC1D,SAAS;QACT,GAAG,EAAE,kBAAkB,EAAE;QACzB,QAAQ,EAAE;YACT,KAAK,EAAE,OAAO;YACd,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/B;KACD,CAAC,CAAC;IACH,IAAI,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC;QACtC,iBAAiB,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,UAAU,CAAC;gBAChB,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["import type { EnterpriseSession } from \"../enterprise/context.js\";\nimport { checkSessionLimits } from \"../safety/policy.js\";\nimport { recordMaestroSessionEvent } from \"../telemetry/maestro-event-bus.js\";\nimport { webSessionEventEnv } from \"./session-event-env.js\";\n\ntype SessionState = Parameters<SessionInitializationManager[\"startSession\"]>[0];\n\nexport interface SessionInitializationManager {\n\tloadAllSessions(): Array<{ modified: Date }>;\n\tcountActiveSessions?(since: Date): Promise<number>;\n\tstartSession(state: AgentSessionState, options?: { subject?: string }): void;\n\tgetSessionId(): string;\n}\n\ntype AgentSessionState = {\n\tmessages: unknown[];\n\tmodel: unknown;\n\tthinkingLevel: unknown;\n\tsystemPrompt: string;\n\tpromptMetadata?: unknown;\n\ttools: Array<{\n\t\tname: string;\n\t\tlabel?: string;\n\t\tdescription?: string;\n\t}>;\n};\n\nexport interface SessionInitializationAgent {\n\tstate: SessionState;\n\tsetSession(session: { id: string; startedAt: Date }): void;\n}\n\nexport interface SessionInitializationEnterpriseContext {\n\tisEnterprise(): boolean;\n\tstartSession(sessionId: string, modelId: string): void;\n\tgetSession(): EnterpriseSession | null;\n}\n\nexport interface SessionInitializationLogger {\n\twarn(message: string, context: Record<string, unknown>): void;\n}\n\nexport async function startSessionWithPolicy(params: {\n\tagent: SessionInitializationAgent;\n\tenterpriseContext: SessionInitializationEnterpriseContext;\n\tlogger: SessionInitializationLogger;\n\tmodelId: string;\n\tonSessionReady: (sessionId: string) => void;\n\tsessionManager: SessionInitializationManager;\n\tsubject?: string;\n}): Promise<string | null> {\n\tconst {\n\t\tagent,\n\t\tenterpriseContext,\n\t\tlogger,\n\t\tmodelId,\n\t\tonSessionReady,\n\t\tsessionManager,\n\t\tsubject,\n\t} = params;\n\n\tlet activeCount: number | undefined;\n\ttry {\n\t\tconst activeSince = new Date(Date.now() - 60 * 60 * 1000);\n\t\tif (sessionManager.countActiveSessions) {\n\t\t\tactiveCount = await sessionManager.countActiveSessions(activeSince);\n\t\t} else {\n\t\t\tconst sessions = sessionManager.loadAllSessions();\n\t\t\tactiveCount = sessions.filter(\n\t\t\t\t(session) => session.modified.getTime() >= activeSince.getTime(),\n\t\t\t).length;\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn(\"Failed to count active sessions\", {\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t});\n\t}\n\n\tconst limitCheck = checkSessionLimits(\n\t\t{ startedAt: new Date() },\n\t\tactiveCount !== undefined\n\t\t\t? { activeSessionCount: activeCount + 1 }\n\t\t\t: undefined,\n\t);\n\tif (!limitCheck.allowed) {\n\t\treturn limitCheck.reason ?? \"Session policy blocked chat request\";\n\t}\n\n\tsessionManager.startSession(agent.state, { subject });\n\tconst sessionId = sessionManager.getSessionId();\n\trecordMaestroSessionEvent(\"MAESTRO_SESSION_STATE_STARTED\", {\n\t\tsessionId,\n\t\tenv: webSessionEventEnv(),\n\t\tmetadata: {\n\t\t\tmodel: modelId,\n\t\t\t...(subject ? { subject } : {}),\n\t\t},\n\t});\n\tif (enterpriseContext.isEnterprise()) {\n\t\tenterpriseContext.startSession(sessionId, modelId);\n\t\tconst session = enterpriseContext.getSession();\n\t\tif (session) {\n\t\t\tagent.setSession({\n\t\t\t\tid: session.sessionId,\n\t\t\t\tstartedAt: session.startedAt,\n\t\t\t});\n\t\t}\n\t}\n\n\tonSessionReady(sessionId);\n\treturn null;\n}\n"]}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { IncomingMessage } from "node:http";
|
|
2
2
|
import { SessionManager } from "../session/manager.js";
|
|
3
3
|
import { decodeScopedSessionId, encodeScopedSessionId } from "../session/scope.js";
|
|
4
|
+
import { HostedSessionManager } from "./hosted-session-manager.js";
|
|
4
5
|
export declare function resolveSessionScope(req: IncomingMessage): string | null;
|
|
5
6
|
export declare function createSessionManagerForRequest(req: IncomingMessage, continueSession?: boolean, customSessionPath?: string): SessionManager;
|
|
6
7
|
export { decodeScopedSessionId, encodeScopedSessionId };
|
|
7
8
|
export declare function createSessionManagerForScope(scope: string | null, continueSession?: boolean, customSessionPath?: string): SessionManager;
|
|
9
|
+
export type WebSessionManager = SessionManager | HostedSessionManager;
|
|
10
|
+
export declare function createWebSessionManagerForRequest(req: IncomingMessage, continueSession?: boolean, customSessionPath?: string): WebSessionManager;
|
|
11
|
+
export declare function createWebSessionManagerForScope(scope: string | null, continueSession?: boolean, customSessionPath?: string): WebSessionManager;
|
|
8
12
|
//# sourceMappingURL=session-scope.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-scope.d.ts","sourceRoot":"","sources":["../../src/server/session-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session-scope.d.ts","sourceRoot":"","sources":["../../src/server/session-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACN,qBAAqB,EACrB,qBAAqB,EAErB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAgBnE,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAUvE;AAED,wBAAgB,8BAA8B,CAC7C,GAAG,EAAE,eAAe,EACpB,eAAe,UAAO,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACxB,cAAc,CAMhB;AAED,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,CAAC;AAExD,wBAAgB,4BAA4B,CAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,eAAe,UAAO,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACxB,cAAc,CAOhB;AAED,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG,oBAAoB,CAAC;AA6BtE,wBAAgB,iCAAiC,CAChD,GAAG,EAAE,eAAe,EACpB,eAAe,UAAO,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACxB,iBAAiB,CAanB;AAED,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,eAAe,UAAO,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACxB,iBAAiB,CASnB"}
|