@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
|
@@ -136,6 +136,10 @@ export declare class AgentContextManager {
|
|
|
136
136
|
* Get list of registered source names.
|
|
137
137
|
*/
|
|
138
138
|
getSourceNames(): string[];
|
|
139
|
+
/**
|
|
140
|
+
* Clear cached session-scoped source output after context rewrites.
|
|
141
|
+
*/
|
|
142
|
+
clearSessionCache(): number;
|
|
139
143
|
/**
|
|
140
144
|
* Check if a source is enabled.
|
|
141
145
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,mBAAmB,CAAC;AAK5D;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMjD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAkB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;gBAE7B,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAOtD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CACpE,MAAM,GAAG,IAAI,CACb,CAAC;CACF;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC5B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC/B,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAA4B;IAC3C,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE5C,OAAO,GAAE,mBAAwB;IAU7C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhD;;;;;;;;;;OAUG;IACG,iCAAiC,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA2JrE;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOtC,OAAO,CAAC,kBAAkB;CA8C1B"}
|
|
1
|
+
{"version":3,"file":"context-manager.d.ts","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAe,MAAM,mBAAmB,CAAC;AAK5D;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMjD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,SAAkB,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;gBAE7B,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO;CAOtD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IAClC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CACpE,MAAM,GAAG,IAAI,CACb,CAAC;CACF;AAED;;GAEG;AACH,UAAU,mBAAmB;IAC5B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACjC,+CAA+C;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC;CACd;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC/B,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAA4B;IAC3C,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE5C,OAAO,GAAE,mBAAwB;IAU7C;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;;OAGG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhD;;;;;;;;;;OAUG;IACG,iCAAiC,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA2JrE;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAM3B;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOtC,OAAO,CAAC,kBAAkB;CA8C1B"}
|
|
@@ -217,6 +217,14 @@ export class AgentContextManager {
|
|
|
217
217
|
getSourceNames() {
|
|
218
218
|
return this.sources.map((s) => s.name);
|
|
219
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Clear cached session-scoped source output after context rewrites.
|
|
222
|
+
*/
|
|
223
|
+
clearSessionCache() {
|
|
224
|
+
const cleared = this.sourceCache.size;
|
|
225
|
+
this.sourceCache.clear();
|
|
226
|
+
return cleared;
|
|
227
|
+
}
|
|
220
228
|
/**
|
|
221
229
|
* Check if a source is enabled.
|
|
222
230
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Context Manager\n *\n * This module manages dynamic context loading from multiple sources to build\n * the agent's system prompt. Context sources can include:\n * - Todo lists and task state\n * - LSP diagnostics and symbols\n * - Background task outputs\n * - Custom user-defined sources\n *\n * Key features:\n * - Parallel loading of all context sources for performance\n * - Per-source timeouts to prevent slow sources from blocking\n * - Content truncation to stay within token limits\n * - Detailed status reporting for debugging and monitoring\n *\n * The manager uses a defensive approach: individual source failures\n * don't block the entire context assembly. Failed sources are logged\n * and skipped, allowing the agent to continue with partial context.\n */\n\nimport { type Clock, systemClock } from \"../utils/clock.js\";\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context-manager\");\n\n/**\n * Custom error for context source timeouts.\n * Thrown when a source exceeds its allowed time budget.\n */\nexport class ContextTimeoutError extends Error {\n\treadonly sourceName: string;\n\treadonly timeoutMs: number;\n\n\tconstructor(sourceName: string, timeoutMs: number) {\n\t\tsuper(`Context source '${sourceName}' timed out after ${timeoutMs}ms`);\n\t\tthis.name = \"ContextTimeoutError\";\n\t\tthis.sourceName = sourceName;\n\t\tthis.timeoutMs = timeoutMs;\n\t}\n}\n\n/**\n * Custom error for context source failures.\n */\nexport class ContextSourceError extends Error {\n\treadonly sourceName: string;\n\toverride readonly cause: Error | unknown;\n\n\tconstructor(sourceName: string, cause: Error | unknown) {\n\t\tconst message = cause instanceof Error ? cause.message : String(cause);\n\t\tsuper(`Context source '${sourceName}' failed: ${message}`);\n\t\tthis.name = \"ContextSourceError\";\n\t\tthis.sourceName = sourceName;\n\t\tthis.cause = cause;\n\t}\n}\n\n/**\n * Interface for pluggable context sources.\n *\n * Each source provides additional content to append to the system prompt.\n * Sources should:\n * - Return null if they have no content to contribute\n * - Respect the abort signal for cancellation\n * - Handle their own errors gracefully\n */\nexport interface AgentContextSource {\n\t/** Unique identifier for this source (used for filtering and logging) */\n\tname: string;\n\t/** Whether the source can be cached for the life of the manager/session. */\n\tcacheScope?: \"none\" | \"session\";\n\n\t/**\n\t * Fetch the context content to add to the system prompt.\n\t * @param options.signal - Abort signal for cancellation support\n\t * @returns The content string, or null if no content to contribute\n\t */\n\tgetSystemPromptAdditions(options?: { signal?: AbortSignal }): Promise<\n\t\tstring | null\n\t>;\n}\n\n/**\n * Configuration options for the context manager.\n */\ninterface AgentContextOptions {\n\t/** Maximum time to wait for each source (default: 1500ms) */\n\tsourceTimeoutMs?: number;\n\t/** Maximum characters allowed from each source (default: 4000) */\n\tmaxCharsPerSource?: number;\n\t/** Whitelist of source names to enable (null = all enabled) */\n\tenabledSources?: string[] | null;\n\t/** Clock for timing (default: system clock) */\n\tclock?: Clock;\n}\n\n/** Status of a single source load operation */\nexport interface SourceLoadStatus {\n\tname: string;\n\tstatus: \"success\" | \"timeout\" | \"error\" | \"skipped\" | \"empty\";\n\tdurationMs: number;\n\tcached?: boolean;\n\terror?: string;\n\ttruncated?: boolean;\n\toriginalLength?: number;\n}\n\n/** Result from getCombinedSystemPrompt with detailed status */\nexport interface ContextLoadResult {\n\tprompt: string;\n\tsourceStatuses: SourceLoadStatus[];\n\ttotalDurationMs: number;\n\tsuccessCount: number;\n\tfailureCount: number;\n}\n\n/**\n * Manages multiple context sources and assembles their content into\n * a combined system prompt addition.\n *\n * Usage:\n * ```typescript\n * const manager = new AgentContextManager({ sourceTimeoutMs: 2000 });\n * manager.addSource(todoContextSource);\n * manager.addSource(lspDiagnosticsSource);\n * const result = await manager.getCombinedSystemPromptWithStatus();\n * ```\n */\nexport class AgentContextManager {\n\t/** Registered context sources, loaded in parallel */\n\tprivate sources: AgentContextSource[] = [];\n\t/** Per-session cache for stable context sources. */\n\tprivate readonly sourceCache = new Map<string, string | null>();\n\t/** Resolved configuration with defaults applied */\n\tprivate readonly options: Required<AgentContextOptions>;\n\n\tconstructor(options: AgentContextOptions = {}) {\n\t\t// Apply defaults for any unspecified options\n\t\tthis.options = {\n\t\t\tsourceTimeoutMs: options.sourceTimeoutMs ?? 1500,\n\t\t\tmaxCharsPerSource: options.maxCharsPerSource ?? 4000,\n\t\t\tenabledSources: options.enabledSources ?? null,\n\t\t\tclock: options.clock ?? systemClock,\n\t\t};\n\t}\n\n\t/**\n\t * Register a context source.\n\t * Sources are loaded in parallel when getCombinedSystemPrompt is called.\n\t */\n\taddSource(source: AgentContextSource): void {\n\t\tthis.sources.push(source);\n\t}\n\n\t/**\n\t * Get combined system prompt from all sources.\n\t * Returns just the prompt string for backward compatibility.\n\t */\n\tasync getCombinedSystemPrompt(): Promise<string> {\n\t\tconst result = await this.getCombinedSystemPromptWithStatus();\n\t\treturn result.prompt;\n\t}\n\n\t/**\n\t * Get combined system prompt with detailed status for each source.\n\t * This is the main entry point for context assembly.\n\t *\n\t * The method:\n\t * 1. Filters sources based on enabledSources whitelist\n\t * 2. Loads all enabled sources in parallel\n\t * 3. Applies per-source timeout and truncation limits\n\t * 4. Collects detailed status for monitoring\n\t * 5. Joins successful results into a single prompt\n\t */\n\tasync getCombinedSystemPromptWithStatus(): Promise<ContextLoadResult> {\n\t\tconst startTime = this.options.clock.now();\n\t\tconst parts: string[] = []; // Successful content fragments\n\t\tconst sourceStatuses: SourceLoadStatus[] = []; // Status for each source\n\n\t\t// Run all sources in parallel for optimal latency.\n\t\t// Each source has its own timeout, so slow sources don't block fast ones.\n\t\tconst results = await Promise.all(\n\t\t\tthis.sources.map(async (source) => {\n\t\t\t\tconst sourceStart = this.options.clock.now();\n\n\t\t\t\t// Skip disabled sources immediately (no timeout overhead)\n\t\t\t\tif (\n\t\t\t\t\tthis.options.enabledSources &&\n\t\t\t\t\t!this.options.enabledSources.includes(source.name)\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\tstatus: \"skipped\" as const,\n\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tsource.cacheScope === \"session\" &&\n\t\t\t\t\tthis.sourceCache.has(source.name)\n\t\t\t\t) {\n\t\t\t\t\treturn this.formatSourceResult(\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tthis.sourceCache.get(source.name) ?? null,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Each source gets its own AbortController for independent cancellation\n\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await withTimeout(\n\t\t\t\t\t\tsource.getSystemPromptAdditions({\n\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.options.sourceTimeoutMs,\n\t\t\t\t\t\tcontroller,\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tthis.options.clock,\n\t\t\t\t\t);\n\n\t\t\t\t\tconst durationMs = this.options.clock.now() - sourceStart;\n\n\t\t\t\t\t// Log slow sources (> 80% of timeout)\n\t\t\t\t\tif (durationMs > this.options.sourceTimeoutMs * 0.8) {\n\t\t\t\t\t\tlogger.warn(`Context source '${source.name}' is slow`, {\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\ttimeoutMs: this.options.sourceTimeoutMs,\n\t\t\t\t\t\t\tpercentOfTimeout: Math.round(\n\t\t\t\t\t\t\t\t(durationMs / this.options.sourceTimeoutMs) * 100,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (source.cacheScope === \"session\") {\n\t\t\t\t\t\tthis.sourceCache.set(source.name, result);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.formatSourceResult(\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst durationMs = this.options.clock.now() - sourceStart;\n\n\t\t\t\t\tif (error instanceof ContextTimeoutError) {\n\t\t\t\t\t\tlogger.warn(`Context source '${source.name}' timed out`, {\n\t\t\t\t\t\t\ttimeoutMs: this.options.sourceTimeoutMs,\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\t\tstatus: \"timeout\" as const,\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t\t\terror: error.message,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tlogger.warn(`Context source '${source.name}' failed`, {\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\tstatus: \"error\" as const,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\tlet successCount = 0;\n\t\tlet failureCount = 0;\n\n\t\tfor (const result of results) {\n\t\t\tsourceStatuses.push({\n\t\t\t\tname: result.name,\n\t\t\t\tstatus: result.status,\n\t\t\t\tdurationMs: result.durationMs,\n\t\t\t\tcached: result.cached,\n\t\t\t\terror: \"error\" in result ? result.error : undefined,\n\t\t\t\ttruncated: \"truncated\" in result ? result.truncated : undefined,\n\t\t\t\toriginalLength:\n\t\t\t\t\t\"originalLength\" in result ? result.originalLength : undefined,\n\t\t\t});\n\n\t\t\tif (result.content) {\n\t\t\t\tparts.push(result.content);\n\t\t\t\tsuccessCount++;\n\t\t\t} else if (result.status === \"error\" || result.status === \"timeout\") {\n\t\t\t\tfailureCount++;\n\t\t\t}\n\t\t}\n\n\t\tconst totalDurationMs = this.options.clock.now() - startTime;\n\n\t\t// Log summary if there were failures\n\t\tif (failureCount > 0) {\n\t\t\tlogger.warn(\"Some context sources failed\", {\n\t\t\t\tsuccessCount,\n\t\t\t\tfailureCount,\n\t\t\t\ttotalDurationMs,\n\t\t\t\tfailedSources: sourceStatuses\n\t\t\t\t\t.filter((s) => s.status === \"error\" || s.status === \"timeout\")\n\t\t\t\t\t.map((s) => s.name),\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tprompt: parts.length > 0 ? parts.join(\"\\n\\n\") : \"\",\n\t\t\tsourceStatuses,\n\t\t\ttotalDurationMs,\n\t\t\tsuccessCount,\n\t\t\tfailureCount,\n\t\t};\n\t}\n\n\t/**\n\t * Get list of registered source names.\n\t */\n\tgetSourceNames(): string[] {\n\t\treturn this.sources.map((s) => s.name);\n\t}\n\n\t/**\n\t * Check if a source is enabled.\n\t */\n\tisSourceEnabled(name: string): boolean {\n\t\tif (!this.options.enabledSources) {\n\t\t\treturn true; // All enabled if no filter\n\t\t}\n\t\treturn this.options.enabledSources.includes(name);\n\t}\n\n\tprivate formatSourceResult(\n\t\tname: string,\n\t\tcontent: string | null,\n\t\tdurationMs: number,\n\t\tcached: boolean,\n\t):\n\t\t| {\n\t\t\t\tname: string;\n\t\t\t\tstatus: \"empty\";\n\t\t\t\tdurationMs: number;\n\t\t\t\tcached: boolean;\n\t\t\t\tcontent: null;\n\t\t }\n\t\t| {\n\t\t\t\tname: string;\n\t\t\t\tstatus: \"success\";\n\t\t\t\tdurationMs: number;\n\t\t\t\tcached: boolean;\n\t\t\t\tcontent: string;\n\t\t\t\ttruncated: boolean;\n\t\t\t\toriginalLength: number;\n\t\t } {\n\t\tif (content === null) {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tstatus: \"empty\",\n\t\t\t\tdurationMs,\n\t\t\t\tcached,\n\t\t\t\tcontent: null,\n\t\t\t};\n\t\t}\n\n\t\tconst originalLength = content.length;\n\t\tconst truncated = truncate(content, this.options.maxCharsPerSource);\n\t\tconst wasTruncated = truncated.length < originalLength;\n\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"success\",\n\t\t\tdurationMs,\n\t\t\tcached,\n\t\t\tcontent: truncated,\n\t\t\ttruncated: wasTruncated,\n\t\t\toriginalLength,\n\t\t};\n\t}\n}\n\n/**\n * Wraps a promise with a timeout, aborting if the timeout is exceeded.\n *\n * Uses Promise.race to compete the original promise against a timeout.\n * If the timeout wins, it aborts the controller (allowing the source\n * to clean up) and rejects with a ContextTimeoutError.\n *\n * @param promise - The promise to wrap\n * @param timeoutMs - Maximum time to wait in milliseconds\n * @param controller - AbortController to signal cancellation\n * @param sourceName - Name of the source (for error messages)\n */\nasync function withTimeout<T>(\n\tpromise: Promise<T>,\n\ttimeoutMs: number,\n\tcontroller: AbortController,\n\tsourceName: string,\n\tclock: Clock,\n): Promise<T> {\n\tlet timeoutHandle: NodeJS.Timeout | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tpromise,\n\t\t\tnew Promise<never>((_, reject) => {\n\t\t\t\ttimeoutHandle = clock.setTimeout(() => {\n\t\t\t\t\t// Abort the controller first to signal the source to stop\n\t\t\t\t\tcontroller.abort(new ContextTimeoutError(sourceName, timeoutMs));\n\t\t\t\t\t// Then reject to complete the race\n\t\t\t\t\treject(new ContextTimeoutError(sourceName, timeoutMs));\n\t\t\t\t}, timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\t// Always clean up the timer to prevent memory leaks\n\t\tif (timeoutHandle) clock.clearTimeout(timeoutHandle);\n\t}\n}\n\n/**\n * Truncates a string to a maximum length, appending a suffix indicating\n * how much content was removed.\n *\n * Example output: \"content here...\\n\\n[truncated 1234 chars]\"\n *\n * @param value - The string to truncate\n * @param maxChars - Maximum allowed length\n */\nfunction truncate(value: string, maxChars: number): string {\n\tif (value.length <= maxChars) {\n\t\treturn value;\n\t}\n\t// Build suffix first to know how much space it needs\n\tconst suffix = `\\n\\n[truncated ${value.length - maxChars} chars]`;\n\tconst available = Math.max(0, maxChars - suffix.length);\n\tconst head = available > 0 ? value.slice(0, available) : \"\";\n\treturn `${head}${suffix}`.slice(0, Math.max(0, maxChars));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agent Context Manager\n *\n * This module manages dynamic context loading from multiple sources to build\n * the agent's system prompt. Context sources can include:\n * - Todo lists and task state\n * - LSP diagnostics and symbols\n * - Background task outputs\n * - Custom user-defined sources\n *\n * Key features:\n * - Parallel loading of all context sources for performance\n * - Per-source timeouts to prevent slow sources from blocking\n * - Content truncation to stay within token limits\n * - Detailed status reporting for debugging and monitoring\n *\n * The manager uses a defensive approach: individual source failures\n * don't block the entire context assembly. Failed sources are logged\n * and skipped, allowing the agent to continue with partial context.\n */\n\nimport { type Clock, systemClock } from \"../utils/clock.js\";\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"context-manager\");\n\n/**\n * Custom error for context source timeouts.\n * Thrown when a source exceeds its allowed time budget.\n */\nexport class ContextTimeoutError extends Error {\n\treadonly sourceName: string;\n\treadonly timeoutMs: number;\n\n\tconstructor(sourceName: string, timeoutMs: number) {\n\t\tsuper(`Context source '${sourceName}' timed out after ${timeoutMs}ms`);\n\t\tthis.name = \"ContextTimeoutError\";\n\t\tthis.sourceName = sourceName;\n\t\tthis.timeoutMs = timeoutMs;\n\t}\n}\n\n/**\n * Custom error for context source failures.\n */\nexport class ContextSourceError extends Error {\n\treadonly sourceName: string;\n\toverride readonly cause: Error | unknown;\n\n\tconstructor(sourceName: string, cause: Error | unknown) {\n\t\tconst message = cause instanceof Error ? cause.message : String(cause);\n\t\tsuper(`Context source '${sourceName}' failed: ${message}`);\n\t\tthis.name = \"ContextSourceError\";\n\t\tthis.sourceName = sourceName;\n\t\tthis.cause = cause;\n\t}\n}\n\n/**\n * Interface for pluggable context sources.\n *\n * Each source provides additional content to append to the system prompt.\n * Sources should:\n * - Return null if they have no content to contribute\n * - Respect the abort signal for cancellation\n * - Handle their own errors gracefully\n */\nexport interface AgentContextSource {\n\t/** Unique identifier for this source (used for filtering and logging) */\n\tname: string;\n\t/** Whether the source can be cached for the life of the manager/session. */\n\tcacheScope?: \"none\" | \"session\";\n\n\t/**\n\t * Fetch the context content to add to the system prompt.\n\t * @param options.signal - Abort signal for cancellation support\n\t * @returns The content string, or null if no content to contribute\n\t */\n\tgetSystemPromptAdditions(options?: { signal?: AbortSignal }): Promise<\n\t\tstring | null\n\t>;\n}\n\n/**\n * Configuration options for the context manager.\n */\ninterface AgentContextOptions {\n\t/** Maximum time to wait for each source (default: 1500ms) */\n\tsourceTimeoutMs?: number;\n\t/** Maximum characters allowed from each source (default: 4000) */\n\tmaxCharsPerSource?: number;\n\t/** Whitelist of source names to enable (null = all enabled) */\n\tenabledSources?: string[] | null;\n\t/** Clock for timing (default: system clock) */\n\tclock?: Clock;\n}\n\n/** Status of a single source load operation */\nexport interface SourceLoadStatus {\n\tname: string;\n\tstatus: \"success\" | \"timeout\" | \"error\" | \"skipped\" | \"empty\";\n\tdurationMs: number;\n\tcached?: boolean;\n\terror?: string;\n\ttruncated?: boolean;\n\toriginalLength?: number;\n}\n\n/** Result from getCombinedSystemPrompt with detailed status */\nexport interface ContextLoadResult {\n\tprompt: string;\n\tsourceStatuses: SourceLoadStatus[];\n\ttotalDurationMs: number;\n\tsuccessCount: number;\n\tfailureCount: number;\n}\n\n/**\n * Manages multiple context sources and assembles their content into\n * a combined system prompt addition.\n *\n * Usage:\n * ```typescript\n * const manager = new AgentContextManager({ sourceTimeoutMs: 2000 });\n * manager.addSource(todoContextSource);\n * manager.addSource(lspDiagnosticsSource);\n * const result = await manager.getCombinedSystemPromptWithStatus();\n * ```\n */\nexport class AgentContextManager {\n\t/** Registered context sources, loaded in parallel */\n\tprivate sources: AgentContextSource[] = [];\n\t/** Per-session cache for stable context sources. */\n\tprivate readonly sourceCache = new Map<string, string | null>();\n\t/** Resolved configuration with defaults applied */\n\tprivate readonly options: Required<AgentContextOptions>;\n\n\tconstructor(options: AgentContextOptions = {}) {\n\t\t// Apply defaults for any unspecified options\n\t\tthis.options = {\n\t\t\tsourceTimeoutMs: options.sourceTimeoutMs ?? 1500,\n\t\t\tmaxCharsPerSource: options.maxCharsPerSource ?? 4000,\n\t\t\tenabledSources: options.enabledSources ?? null,\n\t\t\tclock: options.clock ?? systemClock,\n\t\t};\n\t}\n\n\t/**\n\t * Register a context source.\n\t * Sources are loaded in parallel when getCombinedSystemPrompt is called.\n\t */\n\taddSource(source: AgentContextSource): void {\n\t\tthis.sources.push(source);\n\t}\n\n\t/**\n\t * Get combined system prompt from all sources.\n\t * Returns just the prompt string for backward compatibility.\n\t */\n\tasync getCombinedSystemPrompt(): Promise<string> {\n\t\tconst result = await this.getCombinedSystemPromptWithStatus();\n\t\treturn result.prompt;\n\t}\n\n\t/**\n\t * Get combined system prompt with detailed status for each source.\n\t * This is the main entry point for context assembly.\n\t *\n\t * The method:\n\t * 1. Filters sources based on enabledSources whitelist\n\t * 2. Loads all enabled sources in parallel\n\t * 3. Applies per-source timeout and truncation limits\n\t * 4. Collects detailed status for monitoring\n\t * 5. Joins successful results into a single prompt\n\t */\n\tasync getCombinedSystemPromptWithStatus(): Promise<ContextLoadResult> {\n\t\tconst startTime = this.options.clock.now();\n\t\tconst parts: string[] = []; // Successful content fragments\n\t\tconst sourceStatuses: SourceLoadStatus[] = []; // Status for each source\n\n\t\t// Run all sources in parallel for optimal latency.\n\t\t// Each source has its own timeout, so slow sources don't block fast ones.\n\t\tconst results = await Promise.all(\n\t\t\tthis.sources.map(async (source) => {\n\t\t\t\tconst sourceStart = this.options.clock.now();\n\n\t\t\t\t// Skip disabled sources immediately (no timeout overhead)\n\t\t\t\tif (\n\t\t\t\t\tthis.options.enabledSources &&\n\t\t\t\t\t!this.options.enabledSources.includes(source.name)\n\t\t\t\t) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\tstatus: \"skipped\" as const,\n\t\t\t\t\t\tdurationMs: 0,\n\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tsource.cacheScope === \"session\" &&\n\t\t\t\t\tthis.sourceCache.has(source.name)\n\t\t\t\t) {\n\t\t\t\t\treturn this.formatSourceResult(\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tthis.sourceCache.get(source.name) ?? null,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Each source gets its own AbortController for independent cancellation\n\t\t\t\tconst controller = new AbortController();\n\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await withTimeout(\n\t\t\t\t\t\tsource.getSystemPromptAdditions({\n\t\t\t\t\t\t\tsignal: controller.signal,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tthis.options.sourceTimeoutMs,\n\t\t\t\t\t\tcontroller,\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tthis.options.clock,\n\t\t\t\t\t);\n\n\t\t\t\t\tconst durationMs = this.options.clock.now() - sourceStart;\n\n\t\t\t\t\t// Log slow sources (> 80% of timeout)\n\t\t\t\t\tif (durationMs > this.options.sourceTimeoutMs * 0.8) {\n\t\t\t\t\t\tlogger.warn(`Context source '${source.name}' is slow`, {\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\ttimeoutMs: this.options.sourceTimeoutMs,\n\t\t\t\t\t\t\tpercentOfTimeout: Math.round(\n\t\t\t\t\t\t\t\t(durationMs / this.options.sourceTimeoutMs) * 100,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (source.cacheScope === \"session\") {\n\t\t\t\t\t\tthis.sourceCache.set(source.name, result);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.formatSourceResult(\n\t\t\t\t\t\tsource.name,\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst durationMs = this.options.clock.now() - sourceStart;\n\n\t\t\t\t\tif (error instanceof ContextTimeoutError) {\n\t\t\t\t\t\tlogger.warn(`Context source '${source.name}' timed out`, {\n\t\t\t\t\t\t\ttimeoutMs: this.options.sourceTimeoutMs,\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\t\tstatus: \"timeout\" as const,\n\t\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t\t\terror: error.message,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tlogger.warn(`Context source '${source.name}' failed`, {\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: source.name,\n\t\t\t\t\t\tstatus: \"error\" as const,\n\t\t\t\t\t\tdurationMs,\n\t\t\t\t\t\tcached: false,\n\t\t\t\t\t\tcontent: null,\n\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\tlet successCount = 0;\n\t\tlet failureCount = 0;\n\n\t\tfor (const result of results) {\n\t\t\tsourceStatuses.push({\n\t\t\t\tname: result.name,\n\t\t\t\tstatus: result.status,\n\t\t\t\tdurationMs: result.durationMs,\n\t\t\t\tcached: result.cached,\n\t\t\t\terror: \"error\" in result ? result.error : undefined,\n\t\t\t\ttruncated: \"truncated\" in result ? result.truncated : undefined,\n\t\t\t\toriginalLength:\n\t\t\t\t\t\"originalLength\" in result ? result.originalLength : undefined,\n\t\t\t});\n\n\t\t\tif (result.content) {\n\t\t\t\tparts.push(result.content);\n\t\t\t\tsuccessCount++;\n\t\t\t} else if (result.status === \"error\" || result.status === \"timeout\") {\n\t\t\t\tfailureCount++;\n\t\t\t}\n\t\t}\n\n\t\tconst totalDurationMs = this.options.clock.now() - startTime;\n\n\t\t// Log summary if there were failures\n\t\tif (failureCount > 0) {\n\t\t\tlogger.warn(\"Some context sources failed\", {\n\t\t\t\tsuccessCount,\n\t\t\t\tfailureCount,\n\t\t\t\ttotalDurationMs,\n\t\t\t\tfailedSources: sourceStatuses\n\t\t\t\t\t.filter((s) => s.status === \"error\" || s.status === \"timeout\")\n\t\t\t\t\t.map((s) => s.name),\n\t\t\t});\n\t\t}\n\n\t\treturn {\n\t\t\tprompt: parts.length > 0 ? parts.join(\"\\n\\n\") : \"\",\n\t\t\tsourceStatuses,\n\t\t\ttotalDurationMs,\n\t\t\tsuccessCount,\n\t\t\tfailureCount,\n\t\t};\n\t}\n\n\t/**\n\t * Get list of registered source names.\n\t */\n\tgetSourceNames(): string[] {\n\t\treturn this.sources.map((s) => s.name);\n\t}\n\n\t/**\n\t * Clear cached session-scoped source output after context rewrites.\n\t */\n\tclearSessionCache(): number {\n\t\tconst cleared = this.sourceCache.size;\n\t\tthis.sourceCache.clear();\n\t\treturn cleared;\n\t}\n\n\t/**\n\t * Check if a source is enabled.\n\t */\n\tisSourceEnabled(name: string): boolean {\n\t\tif (!this.options.enabledSources) {\n\t\t\treturn true; // All enabled if no filter\n\t\t}\n\t\treturn this.options.enabledSources.includes(name);\n\t}\n\n\tprivate formatSourceResult(\n\t\tname: string,\n\t\tcontent: string | null,\n\t\tdurationMs: number,\n\t\tcached: boolean,\n\t):\n\t\t| {\n\t\t\t\tname: string;\n\t\t\t\tstatus: \"empty\";\n\t\t\t\tdurationMs: number;\n\t\t\t\tcached: boolean;\n\t\t\t\tcontent: null;\n\t\t }\n\t\t| {\n\t\t\t\tname: string;\n\t\t\t\tstatus: \"success\";\n\t\t\t\tdurationMs: number;\n\t\t\t\tcached: boolean;\n\t\t\t\tcontent: string;\n\t\t\t\ttruncated: boolean;\n\t\t\t\toriginalLength: number;\n\t\t } {\n\t\tif (content === null) {\n\t\t\treturn {\n\t\t\t\tname,\n\t\t\t\tstatus: \"empty\",\n\t\t\t\tdurationMs,\n\t\t\t\tcached,\n\t\t\t\tcontent: null,\n\t\t\t};\n\t\t}\n\n\t\tconst originalLength = content.length;\n\t\tconst truncated = truncate(content, this.options.maxCharsPerSource);\n\t\tconst wasTruncated = truncated.length < originalLength;\n\n\t\treturn {\n\t\t\tname,\n\t\t\tstatus: \"success\",\n\t\t\tdurationMs,\n\t\t\tcached,\n\t\t\tcontent: truncated,\n\t\t\ttruncated: wasTruncated,\n\t\t\toriginalLength,\n\t\t};\n\t}\n}\n\n/**\n * Wraps a promise with a timeout, aborting if the timeout is exceeded.\n *\n * Uses Promise.race to compete the original promise against a timeout.\n * If the timeout wins, it aborts the controller (allowing the source\n * to clean up) and rejects with a ContextTimeoutError.\n *\n * @param promise - The promise to wrap\n * @param timeoutMs - Maximum time to wait in milliseconds\n * @param controller - AbortController to signal cancellation\n * @param sourceName - Name of the source (for error messages)\n */\nasync function withTimeout<T>(\n\tpromise: Promise<T>,\n\ttimeoutMs: number,\n\tcontroller: AbortController,\n\tsourceName: string,\n\tclock: Clock,\n): Promise<T> {\n\tlet timeoutHandle: NodeJS.Timeout | undefined;\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tpromise,\n\t\t\tnew Promise<never>((_, reject) => {\n\t\t\t\ttimeoutHandle = clock.setTimeout(() => {\n\t\t\t\t\t// Abort the controller first to signal the source to stop\n\t\t\t\t\tcontroller.abort(new ContextTimeoutError(sourceName, timeoutMs));\n\t\t\t\t\t// Then reject to complete the race\n\t\t\t\t\treject(new ContextTimeoutError(sourceName, timeoutMs));\n\t\t\t\t}, timeoutMs);\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\t// Always clean up the timer to prevent memory leaks\n\t\tif (timeoutHandle) clock.clearTimeout(timeoutHandle);\n\t}\n}\n\n/**\n * Truncates a string to a maximum length, appending a suffix indicating\n * how much content was removed.\n *\n * Example output: \"content here...\\n\\n[truncated 1234 chars]\"\n *\n * @param value - The string to truncate\n * @param maxChars - Maximum allowed length\n */\nfunction truncate(value: string, maxChars: number): string {\n\tif (value.length <= maxChars) {\n\t\treturn value;\n\t}\n\t// Build suffix first to know how much space it needs\n\tconst suffix = `\\n\\n[truncated ${value.length - maxChars} chars]`;\n\tconst available = Math.max(0, maxChars - suffix.length);\n\tconst head = available > 0 ? value.slice(0, available) : \"\";\n\treturn `${head}${suffix}`.slice(0, Math.max(0, maxChars));\n}\n"]}
|
|
@@ -20,7 +20,9 @@ export declare class CurrentDateContextSource implements AgentContextSource {
|
|
|
20
20
|
getSystemPromptAdditions(): Promise<string | null>;
|
|
21
21
|
}
|
|
22
22
|
export declare class LspContextSource implements AgentContextSource {
|
|
23
|
+
private readonly cwd;
|
|
23
24
|
name: string;
|
|
25
|
+
constructor(cwd?: string);
|
|
24
26
|
getSystemPromptAdditions(): Promise<string | null>;
|
|
25
27
|
}
|
|
26
28
|
export declare class FrameworkPreferenceContextSource implements AgentContextSource {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-providers.d.ts","sourceRoot":"","sources":["../../src/agent/context-providers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS/D,qBAAa,iBAAkB,YAAW,kBAAkB;IAC3D,IAAI,SAAU;IAER,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA2CxD;AAED,qBAAa,2BAA4B,YAAW,kBAAkB;IACrE,IAAI,SAAsB;IAEpB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAWxD;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IAItD,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,IAAI,SAAkB;IACtB,UAAU,EAAG,SAAS,CAAU;gBAEH,GAAG,GAAE,MAAsB;IAElD,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGxD;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IAClE,IAAI,SAAkB;IACtB,UAAU,EAAG,SAAS,CAAU;IAE1B,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGxD;AAED,qBAAa,gBAAiB,YAAW,kBAAkB;
|
|
1
|
+
{"version":3,"file":"context-providers.d.ts","sourceRoot":"","sources":["../../src/agent/context-providers.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS/D,qBAAa,iBAAkB,YAAW,kBAAkB;IAC3D,IAAI,SAAU;IAER,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA2CxD;AAED,qBAAa,2BAA4B,YAAW,kBAAkB;IACrE,IAAI,SAAsB;IAEpB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAWxD;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IAItD,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,IAAI,SAAkB;IACtB,UAAU,EAAG,SAAS,CAAU;gBAEH,GAAG,GAAE,MAAsB;IAElD,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGxD;AAED,qBAAa,wBAAyB,YAAW,kBAAkB;IAClE,IAAI,SAAkB;IACtB,UAAU,EAAG,SAAS,CAAU;IAE1B,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGxD;AAED,qBAAa,gBAAiB,YAAW,kBAAkB;IAG9C,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,IAAI,SAAS;gBAEgB,GAAG,GAAE,MAAsB;IAElD,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAmExD;AAED,qBAAa,gCAAiC,YAAW,kBAAkB;IAC1E,IAAI,SAAuB;IAErB,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAOxD;AAED,qBAAa,uBAAwB,YAAW,kBAAkB;IAGrD,OAAO,CAAC,QAAQ,CAAC,GAAG;IAFhC,IAAI,SAAiB;gBAEQ,GAAG,GAAE,MAAsB;IAElD,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAUxD;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,kBAAkB;IAC1D,IAAI,SAAS;IAEP,wBAAwB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgCxD,OAAO,CAAC,WAAW;CA+BnB"}
|
|
@@ -87,7 +87,8 @@ export class CurrentDateContextSource {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
export class LspContextSource {
|
|
90
|
-
constructor() {
|
|
90
|
+
constructor(cwd = process.cwd()) {
|
|
91
|
+
this.cwd = cwd;
|
|
91
92
|
this.name = "lsp";
|
|
92
93
|
}
|
|
93
94
|
async getSystemPromptAdditions() {
|
|
@@ -103,7 +104,7 @@ export class LspContextSource {
|
|
|
103
104
|
let totalErrors = 0;
|
|
104
105
|
for (const [file, diagnostics] of Object.entries(allDiagnostics)) {
|
|
105
106
|
// Validate that the file path is within the workspace for security
|
|
106
|
-
if (!isWithinCwd(file)) {
|
|
107
|
+
if (!isWithinCwd(file, this.cwd)) {
|
|
107
108
|
continue;
|
|
108
109
|
}
|
|
109
110
|
// Treat undefined severity as error (severity 1) per LSP spec
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-providers.js","sourceRoot":"","sources":["../../src/agent/context-providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tgetFrameworkSummary,\n\tresolveFrameworkPreference,\n} from \"../config/framework.js\";\nimport { getLspConfig } from \"../config/lsp-config.js\";\nimport { type IDEInfo, getPrimaryIDE } from \"../ide/auto-connect.js\";\nimport { collectDiagnostics, getClients } from \"../lsp/index.js\";\nimport { buildTeamMemoryPromptContext } from \"../memory/team-memory.js\";\nimport { formatTaskFailures } from \"../tools/background-tasks.js\";\nimport {\n\tformatGoalSection,\n\tformatSummarySection,\n\tformatTodosSection,\n\tloadStore,\n} from \"../tools/todo.js\";\nimport { getGitSnapshot } from \"../utils/git.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { isWithinCwd } from \"../utils/path-validation.js\";\nimport type { AgentContextSource } from \"./context-manager.js\";\n\nconst logger = createLogger(\"context-providers\");\n\nfunction getLocalIsoDate(now: Date = new Date()): string {\n\tconst timezoneOffsetMs = now.getTimezoneOffset() * 60_000;\n\treturn new Date(now.getTime() - timezoneOffsetMs).toISOString().slice(0, 10);\n}\n\nexport class TodoContextSource implements AgentContextSource {\n\tname = \"todo\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\tconst store = await loadStore();\n\t\t\t// Find the most recently updated goal\n\t\t\tconst goals = Object.values(store).sort((a, b) => {\n\t\t\t\treturn (\n\t\t\t\t\tnew Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()\n\t\t\t\t);\n\t\t\t});\n\t\t\tconst activeGoal = goals[0];\n\n\t\t\tif (!activeGoal) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst counts = activeGoal.items.reduce(\n\t\t\t\t(acc, item) => {\n\t\t\t\t\tacc[item.status] += 1;\n\t\t\t\t\tacc.total += 1;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t{ pending: 0, in_progress: 0, completed: 0, total: 0 } as Record<\n\t\t\t\t\t\"pending\" | \"in_progress\" | \"completed\" | \"total\",\n\t\t\t\t\tnumber\n\t\t\t\t>,\n\t\t\t);\n\n\t\t\t// Only show if there are incomplete tasks or it was recently updated\n\t\t\tif (counts.total > 0 && counts.completed < counts.total) {\n\t\t\t\tconst summary = formatSummarySection(counts);\n\t\t\t\tconst todos = formatTodosSection(activeGoal.items);\n\t\t\t\treturn `# Current Task Context\\n${formatGoalSection(activeGoal.goal)}\\n\\n${summary}\\n\\n${todos}`;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load todo context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class BackgroundTaskContextSource implements AgentContextSource {\n\tname = \"background-tasks\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\treturn formatTaskFailures();\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load background task context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class GitSnapshotContextSource implements AgentContextSource {\n\tname = \"git-snapshot\";\n\tcacheScope = \"session\" as const;\n\n\tconstructor(private readonly cwd: string = process.cwd()) {}\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\treturn getGitSnapshot(this.cwd);\n\t}\n}\n\nexport class CurrentDateContextSource implements AgentContextSource {\n\tname = \"current-date\";\n\tcacheScope = \"session\" as const;\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\treturn `Today's date is ${getLocalIsoDate()}.`;\n\t}\n}\n\nexport class LspContextSource implements AgentContextSource {\n\tname = \"lsp\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\t// Check if we have any active clients\n\t\t\tconst clients = await getClients();\n\t\t\tif (clients.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Collect diagnostics from all active clients\n\t\t\tconst allDiagnostics = await collectDiagnostics();\n\t\t\tconst filesWithErrors: Array<{ file: string; count: number }> = [];\n\t\t\tlet totalErrors = 0;\n\n\t\t\tfor (const [file, diagnostics] of Object.entries(allDiagnostics)) {\n\t\t\t\t// Validate that the file path is within the workspace for security\n\t\t\t\tif (!isWithinCwd(file)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Treat undefined severity as error (severity 1) per LSP spec\n\t\t\t\tconst errorCount = diagnostics.filter(\n\t\t\t\t\t(d) => d.severity === 1 || d.severity === undefined,\n\t\t\t\t).length;\n\n\t\t\t\tif (errorCount > 0) {\n\t\t\t\t\tfilesWithErrors.push({ file, count: errorCount });\n\t\t\t\t\ttotalErrors += errorCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (filesWithErrors.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Sort by error count\n\t\t\tfilesWithErrors.sort((a, b) => b.count - a.count);\n\n\t\t\t// Get config for limits\n\t\t\tconst config = getLspConfig();\n\t\t\tconst maxFiles = config.maxFilesInContext ?? 5;\n\n\t\t\t// Take top files\n\t\t\tconst topFiles = filesWithErrors.slice(0, maxFiles);\n\t\t\tconst otherFilesCount = Math.max(0, filesWithErrors.length - maxFiles);\n\n\t\t\tlet summary = `LSP Status: ${totalErrors} error${totalErrors === 1 ? \"\" : \"s\"} detected across ${filesWithErrors.length} file${filesWithErrors.length === 1 ? \"\" : \"s\"}.`;\n\t\t\tsummary += \"\\nTop issues:\";\n\n\t\t\tfor (const { file, count } of topFiles) {\n\t\t\t\t// Sanitize file path to prevent Markdown injection\n\t\t\t\tconst sanitizedFile = file.replace(/[`\\n\\r]/g, \"\");\n\t\t\t\tsummary += `\\n- ${sanitizedFile}: ${count} error${count === 1 ? \"\" : \"s\"}`;\n\t\t\t}\n\n\t\t\tif (otherFilesCount > 0) {\n\t\t\t\tsummary += `\\n...and ${otherFilesCount} more ${otherFilesCount === 1 ? \"file\" : \"files\"}.`;\n\t\t\t}\n\n\t\t\treturn `# Workspace Health\\n${summary}`;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load LSP context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class FrameworkPreferenceContextSource implements AgentContextSource {\n\tname = \"framework-default\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\tconst pref = resolveFrameworkPreference();\n\t\tif (!pref.id) return null;\n\t\tconst info = getFrameworkSummary(pref.id);\n\t\tif (!info) return null;\n\t\treturn `${info.summary} (source: ${pref.source})`;\n\t}\n}\n\nexport class TeamMemoryContextSource implements AgentContextSource {\n\tname = \"team-memory\";\n\n\tconstructor(private readonly cwd: string = process.cwd()) {}\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\treturn buildTeamMemoryPromptContext(this.cwd);\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load team memory context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\n/**\n * IDE context source that injects detected IDE information.\n * This helps the agent provide IDE-specific suggestions and commands.\n */\nexport class IDEContextSource implements AgentContextSource {\n\tname = \"ide\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\tconst ide = getPrimaryIDE();\n\t\t\tif (!ide) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst parts: string[] = [`IDE: ${ide.name}`];\n\n\t\t\tif (ide.version) {\n\t\t\t\tparts.push(`Version: ${ide.version}`);\n\t\t\t}\n\n\t\t\tif (ide.connectionMethod && ide.connectionMethod !== \"none\") {\n\t\t\t\tparts.push(`Integration: ${ide.connectionMethod}`);\n\t\t\t}\n\n\t\t\t// Add IDE-specific hints\n\t\t\tconst hints = this.getIDEHints(ide);\n\t\t\tif (hints) {\n\t\t\t\tparts.push(`\\n${hints}`);\n\t\t\t}\n\n\t\t\treturn `# Development Environment\\n${parts.join(\"\\n\")}`;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load IDE context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate getIDEHints(ide: IDEInfo): string | null {\n\t\tswitch (ide.type) {\n\t\t\tcase \"vscode\":\n\t\t\tcase \"vscode-insiders\":\n\t\t\t\treturn \"User is in VS Code. Prefer VS Code keyboard shortcuts and extension suggestions.\";\n\t\t\tcase \"cursor\":\n\t\t\t\treturn \"User is in Cursor (AI-native VS Code fork). They have AI features built-in.\";\n\t\t\tcase \"windsurf\":\n\t\t\t\treturn \"User is in Windsurf. Suggest Windsurf-compatible workflows.\";\n\t\t\tcase \"jetbrains-idea\":\n\t\t\tcase \"jetbrains-webstorm\":\n\t\t\tcase \"jetbrains-pycharm\":\n\t\t\tcase \"jetbrains-goland\":\n\t\t\tcase \"jetbrains-rider\":\n\t\t\tcase \"jetbrains-clion\":\n\t\t\tcase \"jetbrains-rubymine\":\n\t\t\tcase \"jetbrains-datagrip\":\n\t\t\t\treturn \"User is in a JetBrains IDE. Prefer JetBrains keyboard shortcuts and plugin suggestions.\";\n\t\t\tcase \"vim\":\n\t\t\tcase \"neovim\":\n\t\t\t\treturn \"User is in Vim/Neovim. They likely prefer terminal-based workflows.\";\n\t\t\tcase \"emacs\":\n\t\t\t\treturn \"User is in Emacs. They likely prefer keyboard-driven workflows.\";\n\t\t\tcase \"sublime\":\n\t\t\t\treturn \"User is in Sublime Text. Suggest Sublime-compatible workflows.\";\n\t\t\tcase \"zed\":\n\t\t\t\treturn \"User is in Zed editor. They likely value performance and modern features.\";\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"context-providers.js","sourceRoot":"","sources":["../../src/agent/context-providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tgetFrameworkSummary,\n\tresolveFrameworkPreference,\n} from \"../config/framework.js\";\nimport { getLspConfig } from \"../config/lsp-config.js\";\nimport { type IDEInfo, getPrimaryIDE } from \"../ide/auto-connect.js\";\nimport { collectDiagnostics, getClients } from \"../lsp/index.js\";\nimport { buildTeamMemoryPromptContext } from \"../memory/team-memory.js\";\nimport { formatTaskFailures } from \"../tools/background-tasks.js\";\nimport {\n\tformatGoalSection,\n\tformatSummarySection,\n\tformatTodosSection,\n\tloadStore,\n} from \"../tools/todo.js\";\nimport { getGitSnapshot } from \"../utils/git.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { isWithinCwd } from \"../utils/path-validation.js\";\nimport type { AgentContextSource } from \"./context-manager.js\";\n\nconst logger = createLogger(\"context-providers\");\n\nfunction getLocalIsoDate(now: Date = new Date()): string {\n\tconst timezoneOffsetMs = now.getTimezoneOffset() * 60_000;\n\treturn new Date(now.getTime() - timezoneOffsetMs).toISOString().slice(0, 10);\n}\n\nexport class TodoContextSource implements AgentContextSource {\n\tname = \"todo\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\tconst store = await loadStore();\n\t\t\t// Find the most recently updated goal\n\t\t\tconst goals = Object.values(store).sort((a, b) => {\n\t\t\t\treturn (\n\t\t\t\t\tnew Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()\n\t\t\t\t);\n\t\t\t});\n\t\t\tconst activeGoal = goals[0];\n\n\t\t\tif (!activeGoal) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst counts = activeGoal.items.reduce(\n\t\t\t\t(acc, item) => {\n\t\t\t\t\tacc[item.status] += 1;\n\t\t\t\t\tacc.total += 1;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t{ pending: 0, in_progress: 0, completed: 0, total: 0 } as Record<\n\t\t\t\t\t\"pending\" | \"in_progress\" | \"completed\" | \"total\",\n\t\t\t\t\tnumber\n\t\t\t\t>,\n\t\t\t);\n\n\t\t\t// Only show if there are incomplete tasks or it was recently updated\n\t\t\tif (counts.total > 0 && counts.completed < counts.total) {\n\t\t\t\tconst summary = formatSummarySection(counts);\n\t\t\t\tconst todos = formatTodosSection(activeGoal.items);\n\t\t\t\treturn `# Current Task Context\\n${formatGoalSection(activeGoal.goal)}\\n\\n${summary}\\n\\n${todos}`;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load todo context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class BackgroundTaskContextSource implements AgentContextSource {\n\tname = \"background-tasks\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\treturn formatTaskFailures();\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load background task context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class GitSnapshotContextSource implements AgentContextSource {\n\tname = \"git-snapshot\";\n\tcacheScope = \"session\" as const;\n\n\tconstructor(private readonly cwd: string = process.cwd()) {}\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\treturn getGitSnapshot(this.cwd);\n\t}\n}\n\nexport class CurrentDateContextSource implements AgentContextSource {\n\tname = \"current-date\";\n\tcacheScope = \"session\" as const;\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\treturn `Today's date is ${getLocalIsoDate()}.`;\n\t}\n}\n\nexport class LspContextSource implements AgentContextSource {\n\tname = \"lsp\";\n\n\tconstructor(private readonly cwd: string = process.cwd()) {}\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\t// Check if we have any active clients\n\t\t\tconst clients = await getClients();\n\t\t\tif (clients.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Collect diagnostics from all active clients\n\t\t\tconst allDiagnostics = await collectDiagnostics();\n\t\t\tconst filesWithErrors: Array<{ file: string; count: number }> = [];\n\t\t\tlet totalErrors = 0;\n\n\t\t\tfor (const [file, diagnostics] of Object.entries(allDiagnostics)) {\n\t\t\t\t// Validate that the file path is within the workspace for security\n\t\t\t\tif (!isWithinCwd(file, this.cwd)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Treat undefined severity as error (severity 1) per LSP spec\n\t\t\t\tconst errorCount = diagnostics.filter(\n\t\t\t\t\t(d) => d.severity === 1 || d.severity === undefined,\n\t\t\t\t).length;\n\n\t\t\t\tif (errorCount > 0) {\n\t\t\t\t\tfilesWithErrors.push({ file, count: errorCount });\n\t\t\t\t\ttotalErrors += errorCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (filesWithErrors.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Sort by error count\n\t\t\tfilesWithErrors.sort((a, b) => b.count - a.count);\n\n\t\t\t// Get config for limits\n\t\t\tconst config = getLspConfig();\n\t\t\tconst maxFiles = config.maxFilesInContext ?? 5;\n\n\t\t\t// Take top files\n\t\t\tconst topFiles = filesWithErrors.slice(0, maxFiles);\n\t\t\tconst otherFilesCount = Math.max(0, filesWithErrors.length - maxFiles);\n\n\t\t\tlet summary = `LSP Status: ${totalErrors} error${totalErrors === 1 ? \"\" : \"s\"} detected across ${filesWithErrors.length} file${filesWithErrors.length === 1 ? \"\" : \"s\"}.`;\n\t\t\tsummary += \"\\nTop issues:\";\n\n\t\t\tfor (const { file, count } of topFiles) {\n\t\t\t\t// Sanitize file path to prevent Markdown injection\n\t\t\t\tconst sanitizedFile = file.replace(/[`\\n\\r]/g, \"\");\n\t\t\t\tsummary += `\\n- ${sanitizedFile}: ${count} error${count === 1 ? \"\" : \"s\"}`;\n\t\t\t}\n\n\t\t\tif (otherFilesCount > 0) {\n\t\t\t\tsummary += `\\n...and ${otherFilesCount} more ${otherFilesCount === 1 ? \"file\" : \"files\"}.`;\n\t\t\t}\n\n\t\t\treturn `# Workspace Health\\n${summary}`;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load LSP context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\nexport class FrameworkPreferenceContextSource implements AgentContextSource {\n\tname = \"framework-default\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\tconst pref = resolveFrameworkPreference();\n\t\tif (!pref.id) return null;\n\t\tconst info = getFrameworkSummary(pref.id);\n\t\tif (!info) return null;\n\t\treturn `${info.summary} (source: ${pref.source})`;\n\t}\n}\n\nexport class TeamMemoryContextSource implements AgentContextSource {\n\tname = \"team-memory\";\n\n\tconstructor(private readonly cwd: string = process.cwd()) {}\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\treturn buildTeamMemoryPromptContext(this.cwd);\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load team memory context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n}\n\n/**\n * IDE context source that injects detected IDE information.\n * This helps the agent provide IDE-specific suggestions and commands.\n */\nexport class IDEContextSource implements AgentContextSource {\n\tname = \"ide\";\n\n\tasync getSystemPromptAdditions(): Promise<string | null> {\n\t\ttry {\n\t\t\tconst ide = getPrimaryIDE();\n\t\t\tif (!ide) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst parts: string[] = [`IDE: ${ide.name}`];\n\n\t\t\tif (ide.version) {\n\t\t\t\tparts.push(`Version: ${ide.version}`);\n\t\t\t}\n\n\t\t\tif (ide.connectionMethod && ide.connectionMethod !== \"none\") {\n\t\t\t\tparts.push(`Integration: ${ide.connectionMethod}`);\n\t\t\t}\n\n\t\t\t// Add IDE-specific hints\n\t\t\tconst hints = this.getIDEHints(ide);\n\t\t\tif (hints) {\n\t\t\t\tparts.push(`\\n${hints}`);\n\t\t\t}\n\n\t\t\treturn `# Development Environment\\n${parts.join(\"\\n\")}`;\n\t\t} catch (error) {\n\t\t\tlogger.warn(\"Failed to load IDE context\", {\n\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t});\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate getIDEHints(ide: IDEInfo): string | null {\n\t\tswitch (ide.type) {\n\t\t\tcase \"vscode\":\n\t\t\tcase \"vscode-insiders\":\n\t\t\t\treturn \"User is in VS Code. Prefer VS Code keyboard shortcuts and extension suggestions.\";\n\t\t\tcase \"cursor\":\n\t\t\t\treturn \"User is in Cursor (AI-native VS Code fork). They have AI features built-in.\";\n\t\t\tcase \"windsurf\":\n\t\t\t\treturn \"User is in Windsurf. Suggest Windsurf-compatible workflows.\";\n\t\t\tcase \"jetbrains-idea\":\n\t\t\tcase \"jetbrains-webstorm\":\n\t\t\tcase \"jetbrains-pycharm\":\n\t\t\tcase \"jetbrains-goland\":\n\t\t\tcase \"jetbrains-rider\":\n\t\t\tcase \"jetbrains-clion\":\n\t\t\tcase \"jetbrains-rubymine\":\n\t\t\tcase \"jetbrains-datagrip\":\n\t\t\t\treturn \"User is in a JetBrains IDE. Prefer JetBrains keyboard shortcuts and plugin suggestions.\";\n\t\t\tcase \"vim\":\n\t\t\tcase \"neovim\":\n\t\t\t\treturn \"User is in Vim/Neovim. They likely prefer terminal-based workflows.\";\n\t\t\tcase \"emacs\":\n\t\t\t\treturn \"User is in Emacs. They likely prefer keyboard-driven workflows.\";\n\t\t\tcase \"sublime\":\n\t\t\t\treturn \"User is in Sublime Text. Suggest Sublime-compatible workflows.\";\n\t\t\tcase \"zed\":\n\t\t\t\treturn \"User is in Zed editor. They likely value performance and modern features.\";\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -18960,6 +18960,11 @@ var VideoCompressionQuality;
|
|
|
18960
18960
|
VideoCompressionQuality2["OPTIMIZED"] = "OPTIMIZED";
|
|
18961
18961
|
VideoCompressionQuality2["LOSSLESS"] = "LOSSLESS";
|
|
18962
18962
|
})(VideoCompressionQuality || (VideoCompressionQuality = {}));
|
|
18963
|
+
var ImageResizeMode;
|
|
18964
|
+
(function(ImageResizeMode2) {
|
|
18965
|
+
ImageResizeMode2["CROP"] = "CROP";
|
|
18966
|
+
ImageResizeMode2["PAD"] = "PAD";
|
|
18967
|
+
})(ImageResizeMode || (ImageResizeMode = {}));
|
|
18963
18968
|
var TuningMethod;
|
|
18964
18969
|
(function(TuningMethod2) {
|
|
18965
18970
|
TuningMethod2["SUPERVISED_FINE_TUNING"] = "SUPERVISED_FINE_TUNING";
|
|
@@ -19183,7 +19188,7 @@ function __asyncValues(o) {
|
|
|
19183
19188
|
}, reject);
|
|
19184
19189
|
}
|
|
19185
19190
|
}
|
|
19186
|
-
var SDK_VERSION = "1.
|
|
19191
|
+
var SDK_VERSION = "1.51.0";
|
|
19187
19192
|
var LIBRARY_LABEL = `google-genai-sdk/${SDK_VERSION}`;
|
|
19188
19193
|
var uuid4Internal = function() {
|
|
19189
19194
|
const { crypto: crypto2 } = globalThis;
|
|
@@ -19638,14 +19643,14 @@ var BaseWebhooks = class extends APIResource {
|
|
|
19638
19643
|
* Creates a new Webhook.
|
|
19639
19644
|
*/
|
|
19640
19645
|
create(params, options) {
|
|
19641
|
-
const { api_version = this._client.apiVersion
|
|
19642
|
-
return this._client.post(path`/${api_version}/webhooks`, Object.assign({
|
|
19646
|
+
const { api_version = this._client.apiVersion } = params, body = __rest(params, ["api_version"]);
|
|
19647
|
+
return this._client.post(path`/${api_version}/webhooks`, Object.assign({ body }, options));
|
|
19643
19648
|
}
|
|
19644
19649
|
/**
|
|
19645
19650
|
* Updates an existing Webhook.
|
|
19646
19651
|
*/
|
|
19647
|
-
update(id, params, options) {
|
|
19648
|
-
const { api_version = this._client.apiVersion, update_mask } =
|
|
19652
|
+
update(id, params = {}, options) {
|
|
19653
|
+
const _a2 = params !== null && params !== void 0 ? params : {}, { api_version = this._client.apiVersion, update_mask } = _a2, body = __rest(_a2, ["api_version", "update_mask"]);
|
|
19649
19654
|
return this._client.patch(path`/${api_version}/webhooks/${id}`, Object.assign({ query: { update_mask }, body }, options));
|
|
19650
19655
|
}
|
|
19651
19656
|
/**
|
|
@@ -20820,6 +20825,13 @@ var FEATURES = {
|
|
|
20820
20825
|
};
|
|
20821
20826
|
|
|
20822
20827
|
// dist/utils/logger.js
|
|
20828
|
+
var originalConsole = {
|
|
20829
|
+
log: console.log.bind(console),
|
|
20830
|
+
info: console.info.bind(console),
|
|
20831
|
+
warn: console.warn.bind(console),
|
|
20832
|
+
error: console.error.bind(console),
|
|
20833
|
+
debug: console.debug.bind(console)
|
|
20834
|
+
};
|
|
20823
20835
|
var LOG_LEVELS = {
|
|
20824
20836
|
debug: 0,
|
|
20825
20837
|
info: 1,
|