@evalops/maestro 0.10.8 → 0.10.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/dist/agent/action-approval.d.ts +6 -0
- package/dist/agent/action-approval.d.ts.map +1 -1
- package/dist/agent/action-approval.js.map +1 -1
- package/dist/agent/agent.d.ts +13 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +368 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/auto-compaction.d.ts +4 -4
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/compaction-cleanup.d.ts +2 -0
- package/dist/agent/compaction-cleanup.d.ts.map +1 -1
- package/dist/agent/compaction-cleanup.js +17 -2
- package/dist/agent/compaction-cleanup.js.map +1 -1
- package/dist/agent/compaction.d.ts +3 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +10 -2
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-manager.d.ts +4 -0
- package/dist/agent/context-manager.d.ts.map +1 -1
- package/dist/agent/context-manager.js +8 -0
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/context-providers.d.ts +2 -0
- package/dist/agent/context-providers.d.ts.map +1 -1
- package/dist/agent/context-providers.js +3 -2
- package/dist/agent/context-providers.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +17 -5
- package/dist/agent/providers/google.js +174 -144
- package/dist/agent/providers/openai-codex-responses.d.ts +4 -0
- package/dist/agent/providers/openai-codex-responses.d.ts.map +1 -0
- package/dist/agent/providers/openai-codex-responses.js +637 -0
- package/dist/agent/providers/openai-codex-responses.js.map +1 -0
- package/dist/agent/providers/openai-codex-session.d.ts +18 -0
- package/dist/agent/providers/openai-codex-session.d.ts.map +1 -0
- package/dist/agent/providers/openai-codex-session.js +53 -0
- package/dist/agent/providers/openai-codex-session.js.map +1 -0
- package/dist/agent/providers/openai-responses-sdk.d.ts.map +1 -1
- package/dist/agent/providers/openai-responses-sdk.js +16 -6
- package/dist/agent/providers/openai-responses-sdk.js.map +1 -1
- package/dist/agent/providers/openai-shared.d.ts +12 -5
- package/dist/agent/providers/openai-shared.d.ts.map +1 -1
- package/dist/agent/providers/openai-shared.js +291 -2
- package/dist/agent/providers/openai-shared.js.map +1 -1
- package/dist/agent/providers/openai.d.ts +1 -1
- package/dist/agent/providers/openai.d.ts.map +1 -1
- package/dist/agent/providers/openai.js +48 -20
- package/dist/agent/providers/openai.js.map +1 -1
- package/dist/agent/providers/vertex.js +7 -0
- package/dist/agent/tracing.d.ts +16 -5
- package/dist/agent/tracing.d.ts.map +1 -1
- package/dist/agent/tracing.js +44 -2
- package/dist/agent/tracing.js.map +1 -1
- package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
- package/dist/agent/transport/create-provider-stream.js +9 -0
- package/dist/agent/transport/create-provider-stream.js.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.d.ts +86 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.js +665 -0
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -0
- package/dist/agent/transport/tool-execution.d.ts +3 -0
- package/dist/agent/transport/tool-execution.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution.js +16 -1
- package/dist/agent/transport/tool-execution.js.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts +7 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.js +207 -40
- package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
- package/dist/agent/transport/tool-update-queue.d.ts +2 -0
- package/dist/agent/transport/tool-update-queue.d.ts.map +1 -1
- package/dist/agent/transport/tool-update-queue.js.map +1 -1
- package/dist/agent/transport.d.ts +3 -0
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +96 -16
- package/dist/agent/transport.js.map +1 -1
- package/dist/agent/types.d.ts +50 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/approvals/platform-action-approval.d.ts +32 -0
- package/dist/approvals/platform-action-approval.d.ts.map +1 -0
- package/dist/approvals/platform-action-approval.js +210 -0
- package/dist/approvals/platform-action-approval.js.map +1 -0
- package/dist/approvals/service-client.d.ts +56 -0
- package/dist/approvals/service-client.d.ts.map +1 -0
- package/dist/approvals/service-client.js +316 -0
- package/dist/approvals/service-client.js.map +1 -0
- package/dist/audit/logger.d.ts +4 -4
- package/dist/bootstrap/auth-setup.d.ts +2 -2
- package/dist/bootstrap/auth-setup.d.ts.map +1 -1
- package/dist/bootstrap/auth-setup.js +4 -7
- package/dist/bootstrap/auth-setup.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +28 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/codex.d.ts +2 -0
- package/dist/cli/commands/codex.d.ts.map +1 -0
- package/dist/cli/commands/codex.js +65 -0
- package/dist/cli/commands/codex.js.map +1 -0
- package/dist/cli/commands/config.js +1 -1
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/evalops.d.ts +2 -0
- package/dist/cli/commands/evalops.d.ts.map +1 -0
- package/dist/cli/commands/evalops.js +69 -0
- package/dist/cli/commands/evalops.js.map +1 -0
- package/dist/cli/commands/hosted-runner.d.ts +23 -0
- package/dist/cli/commands/hosted-runner.d.ts.map +1 -0
- package/dist/cli/commands/hosted-runner.js +241 -0
- package/dist/cli/commands/hosted-runner.js.map +1 -0
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +23 -30
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/remote.d.ts +3 -0
- package/dist/cli/commands/remote.d.ts.map +1 -0
- package/dist/cli/commands/remote.js +631 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +7 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +167 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts +16 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +60 -4
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +1 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +36 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/jsonl-writer.d.ts.map +1 -1
- package/dist/cli/jsonl-writer.js +19 -6
- package/dist/cli/jsonl-writer.js.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +17 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
- package/dist/cli-tui/commands/access-command.js +1 -1
- package/dist/cli-tui/commands/access-command.js.map +1 -1
- package/dist/cli-tui/commands/audit-command.js +1 -1
- package/dist/cli-tui/commands/audit-command.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +29 -0
- package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-catalog.js +645 -0
- package/dist/cli-tui/commands/command-catalog.js.map +1 -0
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +12 -0
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-registry-adapter.js +120 -0
- package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -0
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +14 -0
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-suite-catalog.js +147 -0
- package/dist/cli-tui/commands/command-suite-catalog.js.map +1 -0
- package/dist/cli-tui/commands/{grouped-command-handlers.d.ts → command-suite-handlers.d.ts} +27 -26
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +1 -0
- package/dist/cli-tui/commands/command-suite-handlers.js +110 -0
- package/dist/cli-tui/commands/command-suite-handlers.js.map +1 -0
- package/dist/cli-tui/commands/hotkeys-command.d.ts +1 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +1 -1
- package/dist/cli-tui/commands/hotkeys-command.js +2 -2
- package/dist/cli-tui/commands/hotkeys-command.js.map +1 -1
- package/dist/cli-tui/commands/limits-command.js +1 -1
- package/dist/cli-tui/commands/limits-command.js.map +1 -1
- package/dist/cli-tui/commands/pii-command.js +1 -1
- package/dist/cli-tui/commands/pii-command.js.map +1 -1
- package/dist/cli-tui/commands/registry.d.ts +1 -1
- package/dist/cli-tui/commands/registry.d.ts.map +1 -1
- package/dist/cli-tui/commands/registry.js +29 -921
- package/dist/cli-tui/commands/registry.js.map +1 -1
- package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.d.ts +2 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/auth-commands.js +22 -6
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/config-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/diag-commands.js +5 -7
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.d.ts +0 -2
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/git-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/index.d.ts +2 -2
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/index.js +2 -2
- package/dist/cli-tui/commands/subcommands/index.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/safety-commands.js +12 -12
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/session-commands.js +3 -3
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/tools-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.d.ts +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/ui-commands.js +5 -5
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.d.ts +1 -2
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/undo-commands.js +6 -6
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +1 -0
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/utils.d.ts +15 -15
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +1 -0
- package/dist/cli-tui/commands/{grouped → subcommands}/utils.js +13 -8
- package/dist/cli-tui/commands/subcommands/utils.js.map +1 -0
- package/dist/cli-tui/commands/types.d.ts +3 -3
- package/dist/cli-tui/commands/types.d.ts.map +1 -1
- package/dist/cli-tui/commands/types.js.map +1 -1
- package/dist/cli-tui/editor-view.d.ts +1 -1
- package/dist/cli-tui/editor-view.d.ts.map +1 -1
- package/dist/cli-tui/editor-view.js +1 -1
- package/dist/cli-tui/editor-view.js.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +4 -0
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +1 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +76 -5
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +1 -1
- package/dist/cli-tui/run/run-controller.d.ts +2 -2
- package/dist/cli-tui/run/run-controller.d.ts.map +1 -1
- package/dist/cli-tui/run/run-controller.js +3 -2
- package/dist/cli-tui/run/run-controller.js.map +1 -1
- package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/run-shell-command.js +11 -3
- package/dist/cli-tui/run/run-shell-command.js.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.js +11 -3
- package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
- package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/model-selector.js +1 -0
- package/dist/cli-tui/selectors/model-selector.js.map +1 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +8 -0
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +23 -2
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +3 -3
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +12 -2
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +32 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +1 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +108 -0
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +1 -0
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +2 -2
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +2 -2
- package/dist/cli-tui/tui-renderer/input-controller.js.map +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +1 -1
- package/dist/cli-tui/tui-renderer.d.ts +1 -3
- package/dist/cli-tui/tui-renderer.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer.js +37 -83
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +8 -0
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.js +58 -0
- package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
- package/dist/cli.js +41771 -22892
- package/dist/cli.js.map +1 -1
- package/dist/config/env-vars.d.ts +4 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +4 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/config/feature-flags.d.ts +44 -0
- package/dist/config/feature-flags.d.ts.map +1 -1
- package/dist/config/feature-flags.js +214 -0
- package/dist/config/feature-flags.js.map +1 -1
- package/dist/connectors/service-client.d.ts +98 -0
- package/dist/connectors/service-client.d.ts.map +1 -0
- package/dist/connectors/service-client.js +459 -0
- package/dist/connectors/service-client.js.map +1 -0
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +53 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/db/health.d.ts +8 -0
- package/dist/db/health.d.ts.map +1 -0
- package/dist/db/health.js +64 -0
- package/dist/db/health.js.map +1 -0
- package/dist/db/migrate.d.ts +301 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +186 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/migrations/0000_initial.sql +308 -0
- package/dist/db/migrations/0001_shared_sessions.sql +18 -0
- package/dist/db/migrations/0002_usage_metrics.sql +28 -0
- package/dist/db/migrations/0003_execution_traces.sql +18 -0
- package/dist/db/migrations/0004_workspace_config.sql +11 -0
- package/dist/db/migrations/0005_revenue_attribution.sql +31 -0
- package/dist/db/migrations/0006_hosted_session_storage.sql +51 -0
- package/dist/db/migrations/0007_reconcile_legacy_audit_hash_cache.sql +24 -0
- package/dist/db/migrations/0008_reconcile_legacy_webhook_deliveries.sql +290 -0
- package/dist/db/migrations/meta/0000_snapshot.json +2438 -0
- package/dist/db/migrations/meta/_journal.json +69 -0
- package/dist/db/schema.d.ts +2232 -844
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +187 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/export-html.d.ts.map +1 -1
- package/dist/export-html.js +7 -4
- package/dist/export-html.js.map +1 -1
- package/dist/headless/utility-command-manager.d.ts +2 -1
- package/dist/headless/utility-command-manager.d.ts.map +1 -1
- package/dist/headless/utility-command-manager.js +12 -6
- package/dist/headless/utility-command-manager.js.map +1 -1
- package/dist/headless/utility-file-read.d.ts +1 -0
- package/dist/headless/utility-file-read.d.ts.map +1 -1
- package/dist/headless/utility-file-read.js +5 -1
- package/dist/headless/utility-file-read.js.map +1 -1
- package/dist/headless/utility-file-search.d.ts +1 -0
- package/dist/headless/utility-file-search.d.ts.map +1 -1
- package/dist/headless/utility-file-search.js +4 -1
- package/dist/headless/utility-file-search.js.map +1 -1
- package/dist/headless/utility-file-watch-manager.d.ts +2 -1
- package/dist/headless/utility-file-watch-manager.d.ts.map +1 -1
- package/dist/headless/utility-file-watch-manager.js +6 -2
- package/dist/headless/utility-file-watch-manager.js.map +1 -1
- package/dist/headless/workspace-root.d.ts +8 -0
- package/dist/headless/workspace-root.d.ts.map +1 -0
- package/dist/headless/workspace-root.js +74 -0
- package/dist/headless/workspace-root.js.map +1 -0
- package/dist/hooks/notification-hooks.d.ts +5 -0
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js +4 -0
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/lsp/diagnostic-deltas.d.ts +20 -0
- package/dist/lsp/diagnostic-deltas.d.ts.map +1 -0
- package/dist/lsp/diagnostic-deltas.js +92 -0
- package/dist/lsp/diagnostic-deltas.js.map +1 -0
- package/dist/lsp/diagnostic-repair.d.ts +48 -0
- package/dist/lsp/diagnostic-repair.d.ts.map +1 -0
- package/dist/lsp/diagnostic-repair.js +143 -0
- package/dist/lsp/diagnostic-repair.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +122 -37
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts +4 -2
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +58 -14
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/manager.d.ts +1 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +1 -0
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/platform-plugin.d.ts +3 -0
- package/dist/mcp/platform-plugin.d.ts.map +1 -0
- package/dist/mcp/platform-plugin.js +83 -0
- package/dist/mcp/platform-plugin.js.map +1 -0
- package/dist/mcp/tool-bridge.d.ts +15 -0
- package/dist/mcp/tool-bridge.d.ts.map +1 -1
- package/dist/mcp/tool-bridge.js +194 -6
- package/dist/mcp/tool-bridge.js.map +1 -1
- package/dist/memory/platform-memory-client.d.ts +130 -0
- package/dist/memory/platform-memory-client.d.ts.map +1 -0
- package/dist/memory/platform-memory-client.js +330 -0
- package/dist/memory/platform-memory-client.js.map +1 -0
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -2
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/builtin.d.ts.map +1 -1
- package/dist/models/builtin.js +137 -0
- package/dist/models/builtin.js.map +1 -1
- package/dist/models/config-loader.d.ts +10 -10
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -0
- package/dist/models/config-loader.js.map +1 -1
- package/dist/models/registry.d.ts +1 -0
- package/dist/models/registry.d.ts.map +1 -1
- package/dist/models/registry.js +1 -0
- package/dist/models/registry.js.map +1 -1
- package/dist/oauth/connectors.d.ts +25 -0
- package/dist/oauth/connectors.d.ts.map +1 -0
- package/dist/oauth/connectors.js +253 -0
- package/dist/oauth/connectors.js.map +1 -0
- package/dist/oauth/device-identity.d.ts +18 -0
- package/dist/oauth/device-identity.d.ts.map +1 -0
- package/dist/oauth/device-identity.js +193 -0
- package/dist/oauth/device-identity.js.map +1 -0
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +73 -14
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/oauth/index.d.ts +1 -1
- package/dist/oauth/index.d.ts.map +1 -1
- package/dist/oauth/index.js +31 -1
- package/dist/oauth/index.js.map +1 -1
- package/dist/oauth/openai-codex.d.ts +16 -0
- package/dist/oauth/openai-codex.d.ts.map +1 -0
- package/dist/oauth/openai-codex.js +300 -0
- package/dist/oauth/openai-codex.js.map +1 -0
- package/dist/opentelemetry.d.ts.map +1 -1
- package/dist/opentelemetry.js +9 -2
- package/dist/opentelemetry.js.map +1 -1
- package/dist/platform/agent-runtime-client.d.ts +279 -0
- package/dist/platform/agent-runtime-client.d.ts.map +1 -0
- package/dist/platform/agent-runtime-client.js +515 -0
- package/dist/platform/agent-runtime-client.js.map +1 -0
- package/dist/platform/cerebro-facts-client.d.ts +56 -0
- package/dist/platform/cerebro-facts-client.d.ts.map +1 -0
- package/dist/platform/cerebro-facts-client.js +297 -0
- package/dist/platform/cerebro-facts-client.js.map +1 -0
- package/dist/platform/client.d.ts +2 -1
- package/dist/platform/client.d.ts.map +1 -1
- package/dist/platform/client.js +9 -26
- package/dist/platform/client.js.map +1 -1
- package/dist/platform/core-services.d.ts +128 -0
- package/dist/platform/core-services.d.ts.map +1 -1
- package/dist/platform/core-services.js +128 -0
- package/dist/platform/core-services.js.map +1 -1
- package/dist/platform/maestro-timeline-client.d.ts +22 -0
- package/dist/platform/maestro-timeline-client.d.ts.map +1 -0
- package/dist/platform/maestro-timeline-client.js +373 -0
- package/dist/platform/maestro-timeline-client.js.map +1 -0
- package/dist/platform/tool-execution-client.d.ts +104 -0
- package/dist/platform/tool-execution-client.d.ts.map +1 -0
- package/dist/platform/tool-execution-client.js +284 -0
- package/dist/platform/tool-execution-client.js.map +1 -0
- package/dist/prompts/service-client.d.ts.map +1 -1
- package/dist/prompts/service-client.js +5 -2
- package/dist/prompts/service-client.js.map +1 -1
- package/dist/providers/anthropic-auth.d.ts.map +1 -1
- package/dist/providers/anthropic-auth.js +8 -6
- package/dist/providers/anthropic-auth.js.map +1 -1
- package/dist/providers/api-keys.d.ts +1 -0
- package/dist/providers/api-keys.d.ts.map +1 -1
- package/dist/providers/api-keys.js +5 -0
- package/dist/providers/api-keys.js.map +1 -1
- package/dist/providers/auth.d.ts +2 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +26 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/remote-runner/attach-client.d.ts +41 -0
- package/dist/remote-runner/attach-client.d.ts.map +1 -0
- package/dist/remote-runner/attach-client.js +692 -0
- package/dist/remote-runner/attach-client.js.map +1 -0
- package/dist/remote-runner/client.d.ts +205 -0
- package/dist/remote-runner/client.d.ts.map +1 -0
- package/dist/remote-runner/client.js +633 -0
- package/dist/remote-runner/client.js.map +1 -0
- package/dist/safety/action-firewall.d.ts +6 -1
- package/dist/safety/action-firewall.d.ts.map +1 -1
- package/dist/safety/action-firewall.js +62 -26
- package/dist/safety/action-firewall.js.map +1 -1
- package/dist/safety/governance-service-client.d.ts +36 -0
- package/dist/safety/governance-service-client.d.ts.map +1 -0
- package/dist/safety/governance-service-client.js +279 -0
- package/dist/safety/governance-service-client.js.map +1 -0
- package/dist/safety/policy.d.ts +13 -2
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +474 -52
- package/dist/safety/policy.js.map +1 -1
- package/dist/sdk-tools.d.ts +21 -0
- package/dist/sdk-tools.d.ts.map +1 -1
- package/dist/sdk-tools.js +16 -0
- package/dist/sdk-tools.js.map +1 -1
- package/dist/server/app-context.d.ts +25 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/approval-service.d.ts +7 -8
- package/dist/server/approval-service.d.ts.map +1 -1
- package/dist/server/approval-service.js +12 -24
- package/dist/server/approval-service.js.map +1 -1
- package/dist/server/authz.d.ts +23 -2
- package/dist/server/authz.d.ts.map +1 -1
- package/dist/server/authz.js +153 -17
- package/dist/server/authz.js.map +1 -1
- package/dist/server/handlers/approvals.d.ts.map +1 -1
- package/dist/server/handlers/approvals.js +3 -10
- package/dist/server/handlers/approvals.js.map +1 -1
- package/dist/server/handlers/branch.d.ts.map +1 -1
- package/dist/server/handlers/branch.js +29 -20
- package/dist/server/handlers/branch.js.map +1 -1
- package/dist/server/handlers/bridge.d.ts.map +1 -1
- package/dist/server/handlers/bridge.js +3 -2
- package/dist/server/handlers/bridge.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +23 -31
- package/dist/server/handlers/chat-ws.js.map +1 -1
- package/dist/server/handlers/chat.d.ts.map +1 -1
- package/dist/server/handlers/chat.js +105 -46
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/compliance.d.ts +3 -0
- package/dist/server/handlers/compliance.d.ts.map +1 -0
- package/dist/server/handlers/compliance.js +53 -0
- package/dist/server/handlers/compliance.js.map +1 -0
- package/dist/server/handlers/context.d.ts.map +1 -1
- package/dist/server/handlers/context.js +3 -8
- package/dist/server/handlers/context.js.map +1 -1
- package/dist/server/handlers/fleet.d.ts +4 -0
- package/dist/server/handlers/fleet.d.ts.map +1 -0
- package/dist/server/handlers/fleet.js +9 -0
- package/dist/server/handlers/fleet.js.map +1 -0
- package/dist/server/handlers/headless-sessions.d.ts +4 -0
- package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
- package/dist/server/handlers/headless-sessions.js +168 -3
- package/dist/server/handlers/headless-sessions.js.map +1 -1
- package/dist/server/handlers/health.d.ts +31 -2
- package/dist/server/handlers/health.d.ts.map +1 -1
- package/dist/server/handlers/health.js +82 -8
- package/dist/server/handlers/health.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts +128 -0
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -0
- package/dist/server/handlers/hosted-runner-drain.js +373 -0
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -0
- package/dist/server/handlers/hosted-runner-identity.d.ts +17 -0
- package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -0
- package/dist/server/handlers/hosted-runner-identity.js +39 -0
- package/dist/server/handlers/hosted-runner-identity.js.map +1 -0
- package/dist/server/handlers/intelligent-router.d.ts +3 -0
- package/dist/server/handlers/intelligent-router.d.ts.map +1 -0
- package/dist/server/handlers/intelligent-router.js +141 -0
- package/dist/server/handlers/intelligent-router.js.map +1 -0
- package/dist/server/handlers/models.d.ts.map +1 -1
- package/dist/server/handlers/models.js +14 -0
- package/dist/server/handlers/models.js.map +1 -1
- package/dist/server/handlers/pending-requests.d.ts +8 -0
- package/dist/server/handlers/pending-requests.d.ts.map +1 -0
- package/dist/server/handlers/pending-requests.js +149 -0
- package/dist/server/handlers/pending-requests.js.map +1 -0
- package/dist/server/handlers/revenue-attribution.d.ts +3 -0
- package/dist/server/handlers/revenue-attribution.d.ts.map +1 -0
- package/dist/server/handlers/revenue-attribution.js +45 -0
- package/dist/server/handlers/revenue-attribution.js.map +1 -0
- package/dist/server/handlers/runtime-app-server-ws.d.ts +10 -0
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -0
- package/dist/server/handlers/runtime-app-server-ws.js +206 -0
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -0
- package/dist/server/handlers/session-artifacts.js +2 -2
- package/dist/server/handlers/session-artifacts.js.map +1 -1
- package/dist/server/handlers/session-attachments.js +3 -3
- package/dist/server/handlers/session-attachments.js.map +1 -1
- package/dist/server/handlers/session-timeline.d.ts +11 -0
- package/dist/server/handlers/session-timeline.d.ts.map +1 -0
- package/dist/server/handlers/session-timeline.js +77 -0
- package/dist/server/handlers/session-timeline.js.map +1 -0
- package/dist/server/handlers/sessions.d.ts +11 -0
- package/dist/server/handlers/sessions.d.ts.map +1 -1
- package/dist/server/handlers/sessions.js +68 -100
- package/dist/server/handlers/sessions.js.map +1 -1
- package/dist/server/handlers/traces.d.ts +3 -0
- package/dist/server/handlers/traces.d.ts.map +1 -0
- package/dist/server/handlers/traces.js +60 -0
- package/dist/server/handlers/traces.js.map +1 -0
- package/dist/server/handlers/usage-analytics.d.ts +3 -0
- package/dist/server/handlers/usage-analytics.d.ts.map +1 -0
- package/dist/server/handlers/usage-analytics.js +40 -0
- package/dist/server/handlers/usage-analytics.js.map +1 -0
- package/dist/server/handlers/workspace-config.d.ts +3 -0
- package/dist/server/handlers/workspace-config.d.ts.map +1 -0
- package/dist/server/handlers/workspace-config.js +62 -0
- package/dist/server/handlers/workspace-config.js.map +1 -0
- package/dist/server/headless-in-process-host.d.ts +8 -1
- package/dist/server/headless-in-process-host.d.ts.map +1 -1
- package/dist/server/headless-in-process-host.js +6 -0
- package/dist/server/headless-in-process-host.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +99 -1
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +286 -23
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +103 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -0
- package/dist/server/hosted-session-manager.js +629 -0
- package/dist/server/hosted-session-manager.js.map +1 -0
- package/dist/server/pending-request-payload.d.ts +4 -0
- package/dist/server/pending-request-payload.d.ts.map +1 -0
- package/dist/server/pending-request-payload.js +107 -0
- package/dist/server/pending-request-payload.js.map +1 -0
- package/dist/server/request-context.d.ts +4 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +9 -0
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +149 -1
- package/dist/server/routes.js.map +1 -1
- package/dist/server/runtime-ws-access.d.ts +16 -0
- package/dist/server/runtime-ws-access.d.ts.map +1 -0
- package/dist/server/runtime-ws-access.js +21 -0
- package/dist/server/runtime-ws-access.js.map +1 -0
- package/dist/server/server-middlewares.d.ts +1 -1
- package/dist/server/server-middlewares.d.ts.map +1 -1
- package/dist/server/server-middlewares.js +35 -27
- package/dist/server/server-middlewares.js.map +1 -1
- package/dist/server/server-request-manager.d.ts +8 -27
- package/dist/server/server-request-manager.d.ts.map +1 -1
- package/dist/server/server-request-manager.js +7 -0
- package/dist/server/server-request-manager.js.map +1 -1
- package/dist/server/server-utils.d.ts +2 -1
- package/dist/server/server-utils.d.ts.map +1 -1
- package/dist/server/server-utils.js +11 -1
- package/dist/server/server-utils.js.map +1 -1
- package/dist/server/session-event-env.d.ts +2 -0
- package/dist/server/session-event-env.d.ts.map +1 -0
- package/dist/server/session-event-env.js +8 -0
- package/dist/server/session-event-env.js.map +1 -0
- package/dist/server/session-initialization.d.ts +25 -4
- package/dist/server/session-initialization.d.ts.map +1 -1
- package/dist/server/session-initialization.js +22 -5
- package/dist/server/session-initialization.js.map +1 -1
- package/dist/server/session-scope.d.ts +4 -0
- package/dist/server/session-scope.d.ts.map +1 -1
- package/dist/server/session-scope.js +44 -4
- package/dist/server/session-scope.js.map +1 -1
- package/dist/server/session-timeline.d.ts +13 -0
- package/dist/server/session-timeline.d.ts.map +1 -0
- package/dist/server/session-timeline.js +566 -0
- package/dist/server/session-timeline.js.map +1 -0
- package/dist/services/compliance/controls.d.ts +6 -0
- package/dist/services/compliance/controls.d.ts.map +1 -0
- package/dist/services/compliance/controls.js +113 -0
- package/dist/services/compliance/controls.js.map +1 -0
- package/dist/services/compliance/index.d.ts +6 -0
- package/dist/services/compliance/index.d.ts.map +1 -0
- package/dist/services/compliance/index.js +5 -0
- package/dist/services/compliance/index.js.map +1 -0
- package/dist/services/compliance/normalize.d.ts +23 -0
- package/dist/services/compliance/normalize.d.ts.map +1 -0
- package/dist/services/compliance/normalize.js +226 -0
- package/dist/services/compliance/normalize.js.map +1 -0
- package/dist/services/compliance/recorder.d.ts +22 -0
- package/dist/services/compliance/recorder.d.ts.map +1 -0
- package/dist/services/compliance/recorder.js +89 -0
- package/dist/services/compliance/recorder.js.map +1 -0
- package/dist/services/compliance/service.d.ts +24 -0
- package/dist/services/compliance/service.d.ts.map +1 -0
- package/dist/services/compliance/service.js +426 -0
- package/dist/services/compliance/service.js.map +1 -0
- package/dist/services/compliance/types.d.ts +185 -0
- package/dist/services/compliance/types.d.ts.map +1 -0
- package/dist/services/compliance/types.js +2 -0
- package/dist/services/compliance/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +5 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -0
- package/dist/services/intelligent-router/index.js +5 -0
- package/dist/services/intelligent-router/index.js.map +1 -0
- package/dist/services/intelligent-router/normalize.d.ts +9 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -0
- package/dist/services/intelligent-router/normalize.js +169 -0
- package/dist/services/intelligent-router/normalize.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +24 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -0
- package/dist/services/intelligent-router/recorder.js +98 -0
- package/dist/services/intelligent-router/recorder.js.map +1 -0
- package/dist/services/intelligent-router/service.d.ts +22 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -0
- package/dist/services/intelligent-router/service.js +328 -0
- package/dist/services/intelligent-router/service.js.map +1 -0
- package/dist/services/intelligent-router/types.d.ts +98 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -0
- package/dist/services/intelligent-router/types.js +7 -0
- package/dist/services/intelligent-router/types.js.map +1 -0
- package/dist/services/revenue-attribution/index.d.ts +4 -0
- package/dist/services/revenue-attribution/index.d.ts.map +1 -0
- package/dist/services/revenue-attribution/index.js +4 -0
- package/dist/services/revenue-attribution/index.js.map +1 -0
- package/dist/services/revenue-attribution/normalize.d.ts +13 -0
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -0
- package/dist/services/revenue-attribution/normalize.js +155 -0
- package/dist/services/revenue-attribution/normalize.js.map +1 -0
- package/dist/services/revenue-attribution/service.d.ts +21 -0
- package/dist/services/revenue-attribution/service.d.ts.map +1 -0
- package/dist/services/revenue-attribution/service.js +248 -0
- package/dist/services/revenue-attribution/service.js.map +1 -0
- package/dist/services/revenue-attribution/types.d.ts +96 -0
- package/dist/services/revenue-attribution/types.d.ts.map +1 -0
- package/dist/services/revenue-attribution/types.js +7 -0
- package/dist/services/revenue-attribution/types.js.map +1 -0
- package/dist/services/traces/index.d.ts +5 -0
- package/dist/services/traces/index.d.ts.map +1 -0
- package/dist/services/traces/index.js +4 -0
- package/dist/services/traces/index.js.map +1 -0
- package/dist/services/traces/normalize.d.ts +20 -0
- package/dist/services/traces/normalize.d.ts.map +1 -0
- package/dist/services/traces/normalize.js +261 -0
- package/dist/services/traces/normalize.js.map +1 -0
- package/dist/services/traces/otel.d.ts +3 -0
- package/dist/services/traces/otel.d.ts.map +1 -0
- package/dist/services/traces/otel.js +173 -0
- package/dist/services/traces/otel.js.map +1 -0
- package/dist/services/traces/service.d.ts +17 -0
- package/dist/services/traces/service.d.ts.map +1 -0
- package/dist/services/traces/service.js +197 -0
- package/dist/services/traces/service.js.map +1 -0
- package/dist/services/traces/types.d.ts +130 -0
- package/dist/services/traces/types.d.ts.map +1 -0
- package/dist/services/traces/types.js +8 -0
- package/dist/services/traces/types.js.map +1 -0
- package/dist/services/usage-analytics/aggregation.d.ts +18 -0
- package/dist/services/usage-analytics/aggregation.d.ts.map +1 -0
- package/dist/services/usage-analytics/aggregation.js +130 -0
- package/dist/services/usage-analytics/aggregation.js.map +1 -0
- package/dist/services/usage-analytics/index.d.ts +5 -0
- package/dist/services/usage-analytics/index.d.ts.map +1 -0
- package/dist/services/usage-analytics/index.js +4 -0
- package/dist/services/usage-analytics/index.js.map +1 -0
- package/dist/services/usage-analytics/recorder.d.ts +16 -0
- package/dist/services/usage-analytics/recorder.d.ts.map +1 -0
- package/dist/services/usage-analytics/recorder.js +128 -0
- package/dist/services/usage-analytics/recorder.js.map +1 -0
- package/dist/services/usage-analytics/service.d.ts +15 -0
- package/dist/services/usage-analytics/service.d.ts.map +1 -0
- package/dist/services/usage-analytics/service.js +210 -0
- package/dist/services/usage-analytics/service.js.map +1 -0
- package/dist/services/usage-analytics/types.d.ts +80 -0
- package/dist/services/usage-analytics/types.d.ts.map +1 -0
- package/dist/services/usage-analytics/types.js +2 -0
- package/dist/services/usage-analytics/types.js.map +1 -0
- package/dist/services/workspace-config/index.d.ts +6 -0
- package/dist/services/workspace-config/index.d.ts.map +1 -0
- package/dist/services/workspace-config/index.js +5 -0
- package/dist/services/workspace-config/index.js.map +1 -0
- package/dist/services/workspace-config/middleware.d.ts +5 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -0
- package/dist/services/workspace-config/middleware.js +98 -0
- package/dist/services/workspace-config/middleware.js.map +1 -0
- package/dist/services/workspace-config/normalize.d.ts +17 -0
- package/dist/services/workspace-config/normalize.d.ts.map +1 -0
- package/dist/services/workspace-config/normalize.js +148 -0
- package/dist/services/workspace-config/normalize.js.map +1 -0
- package/dist/services/workspace-config/policy.d.ts +16 -0
- package/dist/services/workspace-config/policy.d.ts.map +1 -0
- package/dist/services/workspace-config/policy.js +77 -0
- package/dist/services/workspace-config/policy.js.map +1 -0
- package/dist/services/workspace-config/service.d.ts +20 -0
- package/dist/services/workspace-config/service.d.ts.map +1 -0
- package/dist/services/workspace-config/service.js +162 -0
- package/dist/services/workspace-config/service.js.map +1 -0
- package/dist/services/workspace-config/types.d.ts +71 -0
- package/dist/services/workspace-config/types.d.ts.map +1 -0
- package/dist/services/workspace-config/types.js +2 -0
- package/dist/services/workspace-config/types.js.map +1 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +10 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/migration.d.ts.map +1 -1
- package/dist/session/migration.js +2 -1
- package/dist/session/migration.js.map +1 -1
- package/dist/session/session-memory.d.ts.map +1 -1
- package/dist/session/session-memory.js +7 -1
- package/dist/session/session-memory.js.map +1 -1
- package/dist/session/types.d.ts +1 -2
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +1 -22
- package/dist/session/types.js.map +1 -1
- package/dist/session/wire-format.d.ts +7 -0
- package/dist/session/wire-format.d.ts.map +1 -0
- package/dist/session/wire-format.generated.d.ts +95 -0
- package/dist/session/wire-format.generated.d.ts.map +1 -0
- package/dist/session/wire-format.generated.js +111 -0
- package/dist/session/wire-format.generated.js.map +1 -0
- package/dist/session/wire-format.js +145 -0
- package/dist/session/wire-format.js.map +1 -0
- package/dist/shared-memory/client.d.ts.map +1 -1
- package/dist/shared-memory/client.js +22 -22
- package/dist/shared-memory/client.js.map +1 -1
- package/dist/skills/artifact-metadata.d.ts +16 -0
- package/dist/skills/artifact-metadata.d.ts.map +1 -0
- package/dist/skills/artifact-metadata.js +86 -0
- package/dist/skills/artifact-metadata.js.map +1 -0
- package/dist/skills/loader.d.ts +2 -2
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +1 -0
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/service-client.d.ts +42 -0
- package/dist/skills/service-client.d.ts.map +1 -0
- package/dist/skills/service-client.js +258 -0
- package/dist/skills/service-client.js.map +1 -0
- package/dist/skills/tool.d.ts +3 -0
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +67 -5
- package/dist/skills/tool.js.map +1 -1
- package/dist/telemetry/index.d.ts +4 -0
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +440 -0
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -0
- package/dist/telemetry/maestro-event-bus.js +784 -0
- package/dist/telemetry/maestro-event-bus.js.map +1 -0
- package/dist/telemetry/maestro-event-catalog.d.ts +48 -0
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -0
- package/dist/telemetry/maestro-event-catalog.js +69 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -0
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts +24 -0
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -0
- package/dist/telemetry/maestro-platform-replay-fixture.js +400 -0
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +29 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.js +240 -0
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -0
- package/dist/telemetry/meter-service-client.d.ts +0 -33
- package/dist/telemetry/meter-service-client.d.ts.map +1 -1
- package/dist/telemetry/meter-service-client.js +22 -50
- package/dist/telemetry/meter-service-client.js.map +1 -1
- package/dist/telemetry/turn-tracker.d.ts.map +1 -1
- package/dist/telemetry/turn-tracker.js +5 -5
- package/dist/telemetry/turn-tracker.js.map +1 -1
- package/dist/telemetry/wide-events.d.ts +8 -0
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js +28 -0
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +14 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/timeline/redaction.d.ts +5 -0
- package/dist/timeline/redaction.d.ts.map +1 -0
- package/dist/timeline/redaction.js +119 -0
- package/dist/timeline/redaction.js.map +1 -0
- package/dist/tools/ask-user.d.ts +26 -0
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +33 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/tools/edit.d.ts +2 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +27 -7
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/pipeline.d.ts.map +1 -1
- package/dist/tools/pipeline.js +16 -7
- package/dist/tools/pipeline.js.map +1 -1
- package/dist/tools/write.d.ts +2 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +24 -6
- package/dist/tools/write.js.map +1 -1
- package/dist/tracking/cost-tracker.d.ts +15 -12
- package/dist/tracking/cost-tracker.d.ts.map +1 -1
- package/dist/tracking/cost-tracker.js +29 -40
- package/dist/tracking/cost-tracker.js.map +1 -1
- package/dist/utils/checkpoint-profiler.d.ts +29 -0
- package/dist/utils/checkpoint-profiler.d.ts.map +1 -0
- package/dist/utils/checkpoint-profiler.js +118 -0
- package/dist/utils/checkpoint-profiler.js.map +1 -0
- package/dist/utils/downstream-http.d.ts +21 -0
- package/dist/utils/downstream-http.d.ts.map +1 -0
- package/dist/utils/downstream-http.js +151 -0
- package/dist/utils/downstream-http.js.map +1 -0
- package/dist/utils/downstream.d.ts +18 -0
- package/dist/utils/downstream.d.ts.map +1 -0
- package/dist/utils/downstream.js +47 -0
- package/dist/utils/downstream.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +12 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/oauth-http.d.ts +8 -0
- package/dist/utils/oauth-http.d.ts.map +1 -0
- package/dist/utils/oauth-http.js +41 -0
- package/dist/utils/oauth-http.js.map +1 -0
- package/dist/utils/path-utils.d.ts +2 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +12 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/utils/path-validation.d.ts +1 -1
- package/dist/utils/path-validation.d.ts.map +1 -1
- package/dist/utils/path-validation.js +3 -3
- package/dist/utils/path-validation.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts +7 -1
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +117 -15
- package/dist/web-server.js.map +1 -1
- package/dist/webhooks/delivery.d.ts.map +1 -1
- package/dist/webhooks/delivery.js +9 -12
- package/dist/webhooks/delivery.js.map +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/descriptors.d.ts +12 -5
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js +7 -7
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/path.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/registry.js +24 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.js +9 -10
- package/node_modules/@bufbuild/protobuf/dist/cjs/types.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.d.ts +9 -7
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js +18 -8
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.d.ts +4 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js +8 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.js +38 -2
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js +24 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +12 -5
- package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +7 -7
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +2 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +24 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +10 -11
- package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +9 -7
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +18 -8
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +4 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +8 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +2 -2
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +37 -23
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +1 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +32 -36
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +65 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +37 -1
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +5 -5
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +3 -3
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +10 -0
- package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +23 -0
- package/node_modules/@bufbuild/protobuf/package.json +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +305 -2
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +34 -4
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.d.ts +88 -0
- package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.js +2 -0
- package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +77 -77
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +182 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.js +83 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +133 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js +68 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/schemas.d.ts +178 -0
- package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/schemas.js +165 -0
- package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts +2 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.js +5 -0
- package/node_modules/@evalops/contracts/dist/typebox-utils.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/validators.d.ts +4 -1
- package/node_modules/@evalops/contracts/dist/validators.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/validators.js +4 -1
- package/node_modules/@evalops/contracts/dist/validators.js.map +1 -1
- package/node_modules/@evalops/contracts/package.json +1 -1
- package/node_modules/@evalops/tui/package.json +1 -1
- package/node_modules/string-width/index.js +93 -9
- package/node_modules/string-width/package.json +1 -1
- package/package.json +32 -25
- package/dist/cli-tui/commands/grouped/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/index.js.map +0 -1
- package/dist/cli-tui/commands/grouped/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/grouped/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped/utils.js.map +0 -1
- package/dist/cli-tui/commands/grouped-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/grouped-command-handlers.js +0 -135
- package/dist/cli-tui/commands/grouped-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts +0 -78
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js +0 -129
- package/dist/cli-tui/tui-renderer/grouped-handlers-wiring.js.map +0 -1
- package/node_modules/@evalops/memory/dist/client.d.ts +0 -94
- package/node_modules/@evalops/memory/dist/client.js +0 -503
- package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.d.ts +0 -608
- package/node_modules/@evalops/memory/gen/proto/dist/memory/v1/memory_pb.js +0 -187
- package/node_modules/@evalops/memory/package.json +0 -26
- /package/dist/cli-tui/commands/{grouped → subcommands}/usage-commands.d.ts +0 -0
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,0DAA0D;AAC1D,sFAAsF;AACtF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAGlC,CAAC;AACb,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAsB,EAAE,GAAG,IAAe,EAAE,EAAE;IAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QACxB,IACC,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,MAAM,IAAI,QAAQ;YAClB,MAAM,IAAI,QAAQ;YACjB,QAA6C,CAAC,IAAI;gBAClD,oBAAoB;YACpB,QAA6C,CAAC,IAAI,KAAK,SAAS,EAChE,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,gCAAgC;QAC/C,CAAC;IACF,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC,CAAwB,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACtB,IAAI,CAAC;QACJ,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC3B,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC;oBACJ,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC;gBAAC,MAAM,CAAC;oBACR,oEAAoE;oBACpE,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC;YACF,CAAC;YACD,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env node\n\n// Suppress punycode deprecation warning from dependencies\n// This warning comes from old dependencies still using the deprecated punycode module\nconst originalEmit = process.emit.bind(process) as (\n\tevent: string | symbol,\n\t...args: unknown[]\n) => boolean;\nprocess.emit = ((event: string | symbol, ...args: unknown[]) => {\n\tif (event === \"warning\") {\n\t\tconst [firstArg] = args;\n\t\tif (\n\t\t\ttypeof firstArg === \"object\" &&\n\t\t\tfirstArg !== null &&\n\t\t\t\"name\" in firstArg &&\n\t\t\t\"code\" in firstArg &&\n\t\t\t(firstArg as { name?: string; code?: string }).name ===\n\t\t\t\t\"DeprecationWarning\" &&\n\t\t\t(firstArg as { name?: string; code?: string }).code === \"DEP0040\"\n\t\t) {\n\t\t\treturn false; // Suppress punycode deprecation\n\t\t}\n\t}\n\treturn originalEmit(event, ...args);\n}) as typeof process.emit;\n\nfunction isHeadlessInvocation(args: string[]): boolean {\n\tfor (let i = 0; i < args.length; i++) {\n\t\tconst arg = args[i];\n\t\tif (arg === \"--headless\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (arg === \"--mode\" && args[i + 1] === \"headless\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (\n\t\t\targ?.startsWith(\"--mode=\") &&\n\t\t\targ.slice(\"--mode=\".length) === \"headless\"\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction emitHeadlessStartupError(error: unknown): void {\n\tconst message = error instanceof Error ? error.message : String(error);\n\tconst stack = error instanceof Error ? error.stack : undefined;\n\ttry {\n\t\tprocess.stdout.write(\n\t\t\t`${JSON.stringify({\n\t\t\t\ttype: \"error\",\n\t\t\t\tmessage: `Headless startup failed: ${message}`,\n\t\t\t\tfatal: true,\n\t\t\t\terror_type: \"fatal\",\n\t\t\t})}\\n`,\n\t\t);\n\t} catch {\n\t\t// If stdout is unavailable there is no protocol channel left to use.\n\t}\n\tprocess.stderr.write(`${stack ?? message}\\n`);\n}\n\nconst run = async () => {\n\ttry {\n\t\t// Prefer the TypeScript entry when running under Bun during development,\n\t\t// but fall back to the compiled JS for bundled/compiled binaries.\n\t\tconst loadMain = async () => {\n\t\t\tif (process.versions?.bun) {\n\t\t\t\tconst tsEntry = \"./main.\" + \"ts\";\n\t\t\t\ttry {\n\t\t\t\t\treturn await import(tsEntry);\n\t\t\t\t} catch {\n\t\t\t\t\t// In compiled binaries the .ts source isn't present; use JS output.\n\t\t\t\t\treturn await import(\"./main.js\");\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn await import(\"./main.js\");\n\t\t};\n\n\t\tconst { main } = await loadMain();\n\t\tawait main(process.argv.slice(2));\n\t} catch (err) {\n\t\tif (isHeadlessInvocation(process.argv.slice(2))) {\n\t\t\temitHeadlessStartupError(err);\n\t\t} else {\n\t\t\tconsole.error(err);\n\t\t}\n\t\tprocess.exit(1);\n\t}\n};\n\n// Call without top-level await so Bun's bytecode compilation (which forbids TLA) can bundle this entry.\nvoid run();\n"]}
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
* ### API Configuration
|
|
32
32
|
* - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers
|
|
33
33
|
* - MAESTRO_SKIP_AUTH - Skip authentication (for testing)
|
|
34
|
+
* - MAESTRO_IDENTITY_URL - Override EvalOps identity base URL
|
|
35
|
+
* - MAESTRO_PLATFORM_BASE_URL - Shared EvalOps Platform base URL for core services
|
|
34
36
|
*
|
|
35
37
|
* ### Network Configuration
|
|
36
38
|
* - MAESTRO_HTTP_PROXY - HTTP proxy URL
|
|
@@ -83,6 +85,8 @@ export declare const ENV_VARS: {
|
|
|
83
85
|
readonly SKIP_AUTH: "MAESTRO_SKIP_AUTH";
|
|
84
86
|
readonly SKIP_BEDROCK_AUTH: "MAESTRO_SKIP_BEDROCK_AUTH";
|
|
85
87
|
readonly SKIP_VERTEX_AUTH: "MAESTRO_SKIP_VERTEX_AUTH";
|
|
88
|
+
readonly IDENTITY_URL: "MAESTRO_IDENTITY_URL";
|
|
89
|
+
readonly PLATFORM_BASE_URL: "MAESTRO_PLATFORM_BASE_URL";
|
|
86
90
|
readonly HTTP_PROXY: "MAESTRO_HTTP_PROXY";
|
|
87
91
|
readonly HTTPS_PROXY: "MAESTRO_HTTPS_PROXY";
|
|
88
92
|
readonly SOCKS_PROXY: "MAESTRO_SOCKS_PROXY";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env-vars.d.ts","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AAMH;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAElE;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAK9D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAMhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,SAAS,CAOjE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIzD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAiCA;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,IAAI,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAEvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAsBjC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAoD1C"}
|
package/dist/config/env-vars.js
CHANGED
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
* ### API Configuration
|
|
32
32
|
* - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers
|
|
33
33
|
* - MAESTRO_SKIP_AUTH - Skip authentication (for testing)
|
|
34
|
+
* - MAESTRO_IDENTITY_URL - Override EvalOps identity base URL
|
|
35
|
+
* - MAESTRO_PLATFORM_BASE_URL - Shared EvalOps Platform base URL for core services
|
|
34
36
|
*
|
|
35
37
|
* ### Network Configuration
|
|
36
38
|
* - MAESTRO_HTTP_PROXY - HTTP proxy URL
|
|
@@ -89,6 +91,8 @@ export const ENV_VARS = {
|
|
|
89
91
|
SKIP_AUTH: "MAESTRO_SKIP_AUTH",
|
|
90
92
|
SKIP_BEDROCK_AUTH: "MAESTRO_SKIP_BEDROCK_AUTH",
|
|
91
93
|
SKIP_VERTEX_AUTH: "MAESTRO_SKIP_VERTEX_AUTH",
|
|
94
|
+
IDENTITY_URL: "MAESTRO_IDENTITY_URL",
|
|
95
|
+
PLATFORM_BASE_URL: "MAESTRO_PLATFORM_BASE_URL",
|
|
92
96
|
// Network configuration
|
|
93
97
|
HTTP_PROXY: "MAESTRO_HTTP_PROXY",
|
|
94
98
|
HTTPS_PROXY: "MAESTRO_HTTPS_PROXY",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Environment Variable Configuration\n *\n * Centralized configuration for all MAESTRO_* environment variables.\n * Inspired by Claude Code's CLAUDE_CODE_* variables.\n *\n * Environment variables provide runtime configuration without modifying\n * config files. They have higher precedence than config files but lower\n * than CLI flags.\n *\n * ## Supported Variables\n *\n * ### Core Settings\n * - MAESTRO_MODEL - Override the default model\n * - MAESTRO_MODEL_PROVIDER - Override the model provider\n * - MAESTRO_PROFILE - Select a config profile\n * - MAESTRO_APPROVAL_POLICY - Set approval policy (untrusted|on-failure|on-request|never)\n * - MAESTRO_SANDBOX_MODE - Set sandbox mode (read-only|workspace-write|danger-full-access)\n *\n * ### Behavior Controls\n * - MAESTRO_MAX_OUTPUT_TOKENS - Maximum tokens for model output\n * - MAESTRO_DISABLE_TELEMETRY - Disable telemetry (1 to disable)\n * - MAESTRO_DISABLE_TERMINAL_TITLE - Don't update terminal title (1 to disable)\n * - MAESTRO_DISABLE_ANIMATIONS - Disable TUI animations (1 to disable)\n * - MAESTRO_CONTEXT_FIREWALL_BLOCKING - Enable/disable blocking of sensitive content in tool args (default: 1)\n *\n * ### Subagent Configuration\n * - MAESTRO_SUBAGENT_MODEL - Model to use for subagents\n * - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool\n *\n * ### API Configuration\n * - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers\n * - MAESTRO_SKIP_AUTH - Skip authentication (for testing)\n *\n * ### Network Configuration\n * - MAESTRO_HTTP_PROXY - HTTP proxy URL\n * - MAESTRO_HTTPS_PROXY - HTTPS proxy URL\n * - MAESTRO_SOCKS_PROXY - SOCKS proxy URL\n * - MAESTRO_NO_PROXY - Comma-separated list of hosts to bypass proxy\n *\n * ### Debug Configuration\n * - MAESTRO_DEBUG - Enable debug logging (1 to enable)\n * - MAESTRO_LOG_LEVEL - Set log level (debug|info|warn|error)\n * - MAESTRO_USAGE_FILE - Path to write usage data\n *\n * ### Session Configuration\n * - MAESTRO_NO_SESSION - Disable session persistence (1 to disable)\n * - MAESTRO_SESSION_DIR - Custom session storage directory\n * - MAESTRO_SESSION_SCOPE - Scope sessions by auth subject (auth|true|1)\n * - MAESTRO_MULTI_USER - Alias for MAESTRO_SESSION_SCOPE\n * - MAESTRO_MEMORY_BASE - Durable memory service base URL\n * - MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n * - MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n * - MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n * - MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n * - MAESTRO_SHARED_MEMORY_SESSION_ID - Override session ID for shared memory sync\n *\n * ### Feature Flags\n * - MAESTRO_ENABLE_* - Enable specific features\n * - MAESTRO_DISABLE_* - Disable specific features\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"config:env\");\n\n/**\n * All recognized MAESTRO_* environment variables.\n */\nexport const ENV_VARS = {\n\t// Core settings\n\tMODEL: \"MAESTRO_MODEL\",\n\tMODEL_PROVIDER: \"MAESTRO_MODEL_PROVIDER\",\n\tPROFILE: \"MAESTRO_PROFILE\",\n\tAPPROVAL_POLICY: \"MAESTRO_APPROVAL_POLICY\",\n\tSANDBOX_MODE: \"MAESTRO_SANDBOX_MODE\",\n\n\t// Behavior controls\n\tMAX_OUTPUT_TOKENS: \"MAESTRO_MAX_OUTPUT_TOKENS\",\n\tDISABLE_TELEMETRY: \"MAESTRO_DISABLE_TELEMETRY\",\n\tDISABLE_TERMINAL_TITLE: \"MAESTRO_DISABLE_TERMINAL_TITLE\",\n\tDISABLE_ANIMATIONS: \"MAESTRO_DISABLE_ANIMATIONS\",\n\tSAFE_MODE: \"MAESTRO_SAFE_MODE\",\n\tCONTEXT_FIREWALL_BLOCKING: \"MAESTRO_CONTEXT_FIREWALL_BLOCKING\",\n\n\t// Subagent configuration\n\tSUBAGENT_MODEL: \"MAESTRO_SUBAGENT_MODEL\",\n\tORACLE_MODEL: \"MAESTRO_ORACLE_MODEL\",\n\tSWARM_MODE: \"MAESTRO_SWARM_MODE\",\n\tSWARM_ID: \"MAESTRO_SWARM_ID\",\n\tTEAMMATE_ID: \"MAESTRO_TEAMMATE_ID\",\n\n\t// API configuration\n\tAPI_KEY_HELPER_TTL_MS: \"MAESTRO_API_KEY_HELPER_TTL_MS\",\n\tSKIP_AUTH: \"MAESTRO_SKIP_AUTH\",\n\tSKIP_BEDROCK_AUTH: \"MAESTRO_SKIP_BEDROCK_AUTH\",\n\tSKIP_VERTEX_AUTH: \"MAESTRO_SKIP_VERTEX_AUTH\",\n\n\t// Network configuration\n\tHTTP_PROXY: \"MAESTRO_HTTP_PROXY\",\n\tHTTPS_PROXY: \"MAESTRO_HTTPS_PROXY\",\n\tSOCKS_PROXY: \"MAESTRO_SOCKS_PROXY\",\n\tNO_PROXY: \"MAESTRO_NO_PROXY\",\n\n\t// Debug configuration\n\tDEBUG: \"MAESTRO_DEBUG\",\n\tLOG_LEVEL: \"MAESTRO_LOG_LEVEL\",\n\tUSAGE_FILE: \"MAESTRO_USAGE_FILE\",\n\n\t// Session configuration\n\tNO_SESSION: \"MAESTRO_NO_SESSION\",\n\tSESSION_DIR: \"MAESTRO_SESSION_DIR\",\n\tSESSION_SCOPE: \"MAESTRO_SESSION_SCOPE\",\n\tMULTI_USER: \"MAESTRO_MULTI_USER\",\n\tMEMORY_BASE: \"MAESTRO_MEMORY_BASE\",\n\tMEMORY_ACCESS_TOKEN: \"MAESTRO_MEMORY_ACCESS_TOKEN\",\n\tMEMORY_TEAM_ID: \"MAESTRO_MEMORY_TEAM_ID\",\n\tSHARED_MEMORY_BASE: \"MAESTRO_SHARED_MEMORY_BASE\",\n\tSHARED_MEMORY_API_KEY: \"MAESTRO_SHARED_MEMORY_API_KEY\",\n\tSHARED_MEMORY_SESSION_ID: \"MAESTRO_SHARED_MEMORY_SESSION_ID\",\n} as const;\n\nexport type EnvVarName = (typeof ENV_VARS)[keyof typeof ENV_VARS];\n\n/**\n * Get a string environment variable.\n */\nexport function getEnvString(name: EnvVarName): string | undefined {\n\treturn process.env[name]?.trim() || undefined;\n}\n\n/**\n * Get an integer environment variable.\n */\nexport function getEnvInt(name: EnvVarName): number | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\tconst parsed = Number.parseInt(value, 10);\n\treturn Number.isNaN(parsed) ? undefined : parsed;\n}\n\n/**\n * Get a boolean environment variable.\n * Treats \"1\", \"true\", \"yes\" as true; \"0\", \"false\", \"no\", \"\" as false.\n */\nexport function getEnvBool(name: EnvVarName): boolean | undefined {\n\tconst value = process.env[name]?.toLowerCase().trim();\n\tif (!value) return undefined;\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(value)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"\"].includes(value)) return false;\n\treturn undefined;\n}\n\n/**\n * Get a list environment variable (comma-separated).\n */\nexport function getEnvList(name: EnvVarName): string[] | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\treturn value\n\t\t.split(\",\")\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n}\n\n/**\n * Check if a feature flag is enabled.\n * Checks MAESTRO_ENABLE_<feature> env var.\n */\nexport function isFeatureEnabled(feature: string): boolean {\n\tconst envName = `MAESTRO_ENABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Check if a feature flag is disabled.\n * Checks MAESTRO_DISABLE_<feature> env var.\n */\nexport function isFeatureDisabled(feature: string): boolean {\n\tconst envName = `MAESTRO_DISABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Get proxy configuration from environment variables.\n */\nexport function getProxyConfig(): {\n\thttp?: string;\n\thttps?: string;\n\tsocks?: string;\n\tnoProxy?: string[];\n} {\n\tconst config: {\n\t\thttp?: string;\n\t\thttps?: string;\n\t\tsocks?: string;\n\t\tnoProxy?: string[];\n\t} = {};\n\n\t// Check MAESTRO_* vars first, then standard vars\n\tconst httpProxy =\n\t\tgetEnvString(ENV_VARS.HTTP_PROXY) ||\n\t\tprocess.env.HTTP_PROXY ||\n\t\tprocess.env.http_proxy;\n\tif (httpProxy) config.http = httpProxy;\n\n\tconst httpsProxy =\n\t\tgetEnvString(ENV_VARS.HTTPS_PROXY) ||\n\t\tprocess.env.HTTPS_PROXY ||\n\t\tprocess.env.https_proxy;\n\tif (httpsProxy) config.https = httpsProxy;\n\n\tconst socksProxy = getEnvString(ENV_VARS.SOCKS_PROXY);\n\tif (socksProxy) config.socks = socksProxy;\n\n\tconst noProxy =\n\t\tgetEnvList(ENV_VARS.NO_PROXY) ||\n\t\t(process.env.NO_PROXY || process.env.no_proxy)\n\t\t\t?.split(\",\")\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\tif (noProxy && noProxy.length > 0) config.noProxy = noProxy;\n\n\treturn config;\n}\n\n/**\n * Check if we're running in safe mode.\n */\nexport function isSafeMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SAFE_MODE) ?? false;\n}\n\n/**\n * Check if context firewall blocking is enabled.\n * Defaults to true (blocking enabled). Set MAESTRO_CONTEXT_FIREWALL_BLOCKING=0 to disable.\n *\n * When blocking is disabled, sensitive content (API keys, credentials) can be passed\n * through tool arguments without being blocked. This is useful for testing scenarios\n * where you intentionally want to use test API keys.\n */\nexport function isContextFirewallBlockingEnabled(): boolean {\n\treturn getEnvBool(ENV_VARS.CONTEXT_FIREWALL_BLOCKING) ?? true;\n}\n\n/**\n * Check if we're running as part of a swarm.\n */\nexport function isSwarmMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SWARM_MODE) ?? false;\n}\n\n/**\n * Check if telemetry is disabled.\n */\nexport function isTelemetryDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_TELEMETRY) ?? false;\n}\n\n/**\n * Check if animations are disabled.\n */\nexport function areAnimationsDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_ANIMATIONS) ?? false;\n}\n\n/**\n * Get max output tokens configuration.\n */\nexport function getMaxOutputTokens(): number | undefined {\n\treturn getEnvInt(ENV_VARS.MAX_OUTPUT_TOKENS);\n}\n\n/**\n * Get subagent model override.\n */\nexport function getSubagentModel(): string | undefined {\n\treturn getEnvString(ENV_VARS.SUBAGENT_MODEL);\n}\n\n/**\n * Log all set MAESTRO_* environment variables (for debugging).\n */\nexport function logEnvVars(): void {\n\tconst setVars: Record<string, string> = {};\n\n\tfor (const [key, envName] of Object.entries(ENV_VARS)) {\n\t\tconst value = process.env[envName];\n\t\tif (value !== undefined) {\n\t\t\t// Mask sensitive values\n\t\t\tif (\n\t\t\t\tenvName.includes(\"KEY\") ||\n\t\t\t\tenvName.includes(\"TOKEN\") ||\n\t\t\t\tenvName.includes(\"SECRET\")\n\t\t\t) {\n\t\t\t\tsetVars[key] = \"[REDACTED]\";\n\t\t\t} else {\n\t\t\t\tsetVars[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (Object.keys(setVars).length > 0) {\n\t\tlogger.debug(\"COMPOSER environment variables\", setVars);\n\t}\n}\n\n/**\n * Validate environment variable values and warn about invalid ones.\n */\nexport function validateEnvVars(): string[] {\n\tconst warnings: string[] = [];\n\n\t// Validate APPROVAL_POLICY\n\tconst approvalPolicy = getEnvString(ENV_VARS.APPROVAL_POLICY);\n\tif (\n\t\tapprovalPolicy &&\n\t\t![\"untrusted\", \"on-failure\", \"on-request\", \"never\"].includes(approvalPolicy)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_APPROVAL_POLICY: \"${approvalPolicy}\". Must be one of: untrusted, on-failure, on-request, never`,\n\t\t);\n\t}\n\n\t// Validate SANDBOX_MODE\n\tconst sandboxMode = getEnvString(ENV_VARS.SANDBOX_MODE);\n\tif (\n\t\tsandboxMode &&\n\t\t![\"read-only\", \"workspace-write\", \"danger-full-access\"].includes(\n\t\t\tsandboxMode,\n\t\t)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_SANDBOX_MODE: \"${sandboxMode}\". Must be one of: read-only, workspace-write, danger-full-access`,\n\t\t);\n\t}\n\n\t// Validate LOG_LEVEL\n\tconst logLevel = getEnvString(ENV_VARS.LOG_LEVEL);\n\tif (logLevel && ![\"debug\", \"info\", \"warn\", \"error\"].includes(logLevel)) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_LOG_LEVEL: \"${logLevel}\". Must be one of: debug, info, warn, error`,\n\t\t);\n\t}\n\n\t// Validate MAX_OUTPUT_TOKENS\n\tconst maxTokens = getEnvString(ENV_VARS.MAX_OUTPUT_TOKENS);\n\tif (\n\t\tmaxTokens &&\n\t\t(Number.isNaN(Number.parseInt(maxTokens, 10)) ||\n\t\t\tNumber.parseInt(maxTokens, 10) < 1)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_MAX_OUTPUT_TOKENS: \"${maxTokens}\". Must be a positive integer`,\n\t\t);\n\t}\n\n\tfor (const warning of warnings) {\n\t\tlogger.warn(warning);\n\t}\n\n\treturn warnings;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"env-vars.js","sourceRoot":"","sources":["../../src/config/env-vars.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Environment Variable Configuration\n *\n * Centralized configuration for all MAESTRO_* environment variables.\n * Inspired by Claude Code's CLAUDE_CODE_* variables.\n *\n * Environment variables provide runtime configuration without modifying\n * config files. They have higher precedence than config files but lower\n * than CLI flags.\n *\n * ## Supported Variables\n *\n * ### Core Settings\n * - MAESTRO_MODEL - Override the default model\n * - MAESTRO_MODEL_PROVIDER - Override the model provider\n * - MAESTRO_PROFILE - Select a config profile\n * - MAESTRO_APPROVAL_POLICY - Set approval policy (untrusted|on-failure|on-request|never)\n * - MAESTRO_SANDBOX_MODE - Set sandbox mode (read-only|workspace-write|danger-full-access)\n *\n * ### Behavior Controls\n * - MAESTRO_MAX_OUTPUT_TOKENS - Maximum tokens for model output\n * - MAESTRO_DISABLE_TELEMETRY - Disable telemetry (1 to disable)\n * - MAESTRO_DISABLE_TERMINAL_TITLE - Don't update terminal title (1 to disable)\n * - MAESTRO_DISABLE_ANIMATIONS - Disable TUI animations (1 to disable)\n * - MAESTRO_CONTEXT_FIREWALL_BLOCKING - Enable/disable blocking of sensitive content in tool args (default: 1)\n *\n * ### Subagent Configuration\n * - MAESTRO_SUBAGENT_MODEL - Model to use for subagents\n * - MAESTRO_ORACLE_MODEL - Model to use for the Oracle tool\n *\n * ### API Configuration\n * - MAESTRO_API_KEY_HELPER_TTL_MS - Cache TTL for API key helpers\n * - MAESTRO_SKIP_AUTH - Skip authentication (for testing)\n * - MAESTRO_IDENTITY_URL - Override EvalOps identity base URL\n * - MAESTRO_PLATFORM_BASE_URL - Shared EvalOps Platform base URL for core services\n *\n * ### Network Configuration\n * - MAESTRO_HTTP_PROXY - HTTP proxy URL\n * - MAESTRO_HTTPS_PROXY - HTTPS proxy URL\n * - MAESTRO_SOCKS_PROXY - SOCKS proxy URL\n * - MAESTRO_NO_PROXY - Comma-separated list of hosts to bypass proxy\n *\n * ### Debug Configuration\n * - MAESTRO_DEBUG - Enable debug logging (1 to enable)\n * - MAESTRO_LOG_LEVEL - Set log level (debug|info|warn|error)\n * - MAESTRO_USAGE_FILE - Path to write usage data\n *\n * ### Session Configuration\n * - MAESTRO_NO_SESSION - Disable session persistence (1 to disable)\n * - MAESTRO_SESSION_DIR - Custom session storage directory\n * - MAESTRO_SESSION_SCOPE - Scope sessions by auth subject (auth|true|1)\n * - MAESTRO_MULTI_USER - Alias for MAESTRO_SESSION_SCOPE\n * - MAESTRO_MEMORY_BASE - Durable memory service base URL\n * - MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n * - MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n * - MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n * - MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n * - MAESTRO_SHARED_MEMORY_SESSION_ID - Override session ID for shared memory sync\n *\n * ### Feature Flags\n * - MAESTRO_ENABLE_* - Enable specific features\n * - MAESTRO_DISABLE_* - Disable specific features\n */\n\nimport { createLogger } from \"../utils/logger.js\";\n\nconst logger = createLogger(\"config:env\");\n\n/**\n * All recognized MAESTRO_* environment variables.\n */\nexport const ENV_VARS = {\n\t// Core settings\n\tMODEL: \"MAESTRO_MODEL\",\n\tMODEL_PROVIDER: \"MAESTRO_MODEL_PROVIDER\",\n\tPROFILE: \"MAESTRO_PROFILE\",\n\tAPPROVAL_POLICY: \"MAESTRO_APPROVAL_POLICY\",\n\tSANDBOX_MODE: \"MAESTRO_SANDBOX_MODE\",\n\n\t// Behavior controls\n\tMAX_OUTPUT_TOKENS: \"MAESTRO_MAX_OUTPUT_TOKENS\",\n\tDISABLE_TELEMETRY: \"MAESTRO_DISABLE_TELEMETRY\",\n\tDISABLE_TERMINAL_TITLE: \"MAESTRO_DISABLE_TERMINAL_TITLE\",\n\tDISABLE_ANIMATIONS: \"MAESTRO_DISABLE_ANIMATIONS\",\n\tSAFE_MODE: \"MAESTRO_SAFE_MODE\",\n\tCONTEXT_FIREWALL_BLOCKING: \"MAESTRO_CONTEXT_FIREWALL_BLOCKING\",\n\n\t// Subagent configuration\n\tSUBAGENT_MODEL: \"MAESTRO_SUBAGENT_MODEL\",\n\tORACLE_MODEL: \"MAESTRO_ORACLE_MODEL\",\n\tSWARM_MODE: \"MAESTRO_SWARM_MODE\",\n\tSWARM_ID: \"MAESTRO_SWARM_ID\",\n\tTEAMMATE_ID: \"MAESTRO_TEAMMATE_ID\",\n\n\t// API configuration\n\tAPI_KEY_HELPER_TTL_MS: \"MAESTRO_API_KEY_HELPER_TTL_MS\",\n\tSKIP_AUTH: \"MAESTRO_SKIP_AUTH\",\n\tSKIP_BEDROCK_AUTH: \"MAESTRO_SKIP_BEDROCK_AUTH\",\n\tSKIP_VERTEX_AUTH: \"MAESTRO_SKIP_VERTEX_AUTH\",\n\tIDENTITY_URL: \"MAESTRO_IDENTITY_URL\",\n\tPLATFORM_BASE_URL: \"MAESTRO_PLATFORM_BASE_URL\",\n\n\t// Network configuration\n\tHTTP_PROXY: \"MAESTRO_HTTP_PROXY\",\n\tHTTPS_PROXY: \"MAESTRO_HTTPS_PROXY\",\n\tSOCKS_PROXY: \"MAESTRO_SOCKS_PROXY\",\n\tNO_PROXY: \"MAESTRO_NO_PROXY\",\n\n\t// Debug configuration\n\tDEBUG: \"MAESTRO_DEBUG\",\n\tLOG_LEVEL: \"MAESTRO_LOG_LEVEL\",\n\tUSAGE_FILE: \"MAESTRO_USAGE_FILE\",\n\n\t// Session configuration\n\tNO_SESSION: \"MAESTRO_NO_SESSION\",\n\tSESSION_DIR: \"MAESTRO_SESSION_DIR\",\n\tSESSION_SCOPE: \"MAESTRO_SESSION_SCOPE\",\n\tMULTI_USER: \"MAESTRO_MULTI_USER\",\n\tMEMORY_BASE: \"MAESTRO_MEMORY_BASE\",\n\tMEMORY_ACCESS_TOKEN: \"MAESTRO_MEMORY_ACCESS_TOKEN\",\n\tMEMORY_TEAM_ID: \"MAESTRO_MEMORY_TEAM_ID\",\n\tSHARED_MEMORY_BASE: \"MAESTRO_SHARED_MEMORY_BASE\",\n\tSHARED_MEMORY_API_KEY: \"MAESTRO_SHARED_MEMORY_API_KEY\",\n\tSHARED_MEMORY_SESSION_ID: \"MAESTRO_SHARED_MEMORY_SESSION_ID\",\n} as const;\n\nexport type EnvVarName = (typeof ENV_VARS)[keyof typeof ENV_VARS];\n\n/**\n * Get a string environment variable.\n */\nexport function getEnvString(name: EnvVarName): string | undefined {\n\treturn process.env[name]?.trim() || undefined;\n}\n\n/**\n * Get an integer environment variable.\n */\nexport function getEnvInt(name: EnvVarName): number | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\tconst parsed = Number.parseInt(value, 10);\n\treturn Number.isNaN(parsed) ? undefined : parsed;\n}\n\n/**\n * Get a boolean environment variable.\n * Treats \"1\", \"true\", \"yes\" as true; \"0\", \"false\", \"no\", \"\" as false.\n */\nexport function getEnvBool(name: EnvVarName): boolean | undefined {\n\tconst value = process.env[name]?.toLowerCase().trim();\n\tif (!value) return undefined;\n\tif ([\"1\", \"true\", \"yes\", \"on\"].includes(value)) return true;\n\tif ([\"0\", \"false\", \"no\", \"off\", \"\"].includes(value)) return false;\n\treturn undefined;\n}\n\n/**\n * Get a list environment variable (comma-separated).\n */\nexport function getEnvList(name: EnvVarName): string[] | undefined {\n\tconst value = process.env[name];\n\tif (!value) return undefined;\n\treturn value\n\t\t.split(\",\")\n\t\t.map((s) => s.trim())\n\t\t.filter(Boolean);\n}\n\n/**\n * Check if a feature flag is enabled.\n * Checks MAESTRO_ENABLE_<feature> env var.\n */\nexport function isFeatureEnabled(feature: string): boolean {\n\tconst envName = `MAESTRO_ENABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Check if a feature flag is disabled.\n * Checks MAESTRO_DISABLE_<feature> env var.\n */\nexport function isFeatureDisabled(feature: string): boolean {\n\tconst envName = `MAESTRO_DISABLE_${feature.toUpperCase().replace(/-/g, \"_\")}`;\n\tconst value = process.env[envName]?.toLowerCase().trim();\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value || \"\");\n}\n\n/**\n * Get proxy configuration from environment variables.\n */\nexport function getProxyConfig(): {\n\thttp?: string;\n\thttps?: string;\n\tsocks?: string;\n\tnoProxy?: string[];\n} {\n\tconst config: {\n\t\thttp?: string;\n\t\thttps?: string;\n\t\tsocks?: string;\n\t\tnoProxy?: string[];\n\t} = {};\n\n\t// Check MAESTRO_* vars first, then standard vars\n\tconst httpProxy =\n\t\tgetEnvString(ENV_VARS.HTTP_PROXY) ||\n\t\tprocess.env.HTTP_PROXY ||\n\t\tprocess.env.http_proxy;\n\tif (httpProxy) config.http = httpProxy;\n\n\tconst httpsProxy =\n\t\tgetEnvString(ENV_VARS.HTTPS_PROXY) ||\n\t\tprocess.env.HTTPS_PROXY ||\n\t\tprocess.env.https_proxy;\n\tif (httpsProxy) config.https = httpsProxy;\n\n\tconst socksProxy = getEnvString(ENV_VARS.SOCKS_PROXY);\n\tif (socksProxy) config.socks = socksProxy;\n\n\tconst noProxy =\n\t\tgetEnvList(ENV_VARS.NO_PROXY) ||\n\t\t(process.env.NO_PROXY || process.env.no_proxy)\n\t\t\t?.split(\",\")\n\t\t\t.map((s) => s.trim())\n\t\t\t.filter(Boolean);\n\tif (noProxy && noProxy.length > 0) config.noProxy = noProxy;\n\n\treturn config;\n}\n\n/**\n * Check if we're running in safe mode.\n */\nexport function isSafeMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SAFE_MODE) ?? false;\n}\n\n/**\n * Check if context firewall blocking is enabled.\n * Defaults to true (blocking enabled). Set MAESTRO_CONTEXT_FIREWALL_BLOCKING=0 to disable.\n *\n * When blocking is disabled, sensitive content (API keys, credentials) can be passed\n * through tool arguments without being blocked. This is useful for testing scenarios\n * where you intentionally want to use test API keys.\n */\nexport function isContextFirewallBlockingEnabled(): boolean {\n\treturn getEnvBool(ENV_VARS.CONTEXT_FIREWALL_BLOCKING) ?? true;\n}\n\n/**\n * Check if we're running as part of a swarm.\n */\nexport function isSwarmMode(): boolean {\n\treturn getEnvBool(ENV_VARS.SWARM_MODE) ?? false;\n}\n\n/**\n * Check if telemetry is disabled.\n */\nexport function isTelemetryDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_TELEMETRY) ?? false;\n}\n\n/**\n * Check if animations are disabled.\n */\nexport function areAnimationsDisabled(): boolean {\n\treturn getEnvBool(ENV_VARS.DISABLE_ANIMATIONS) ?? false;\n}\n\n/**\n * Get max output tokens configuration.\n */\nexport function getMaxOutputTokens(): number | undefined {\n\treturn getEnvInt(ENV_VARS.MAX_OUTPUT_TOKENS);\n}\n\n/**\n * Get subagent model override.\n */\nexport function getSubagentModel(): string | undefined {\n\treturn getEnvString(ENV_VARS.SUBAGENT_MODEL);\n}\n\n/**\n * Log all set MAESTRO_* environment variables (for debugging).\n */\nexport function logEnvVars(): void {\n\tconst setVars: Record<string, string> = {};\n\n\tfor (const [key, envName] of Object.entries(ENV_VARS)) {\n\t\tconst value = process.env[envName];\n\t\tif (value !== undefined) {\n\t\t\t// Mask sensitive values\n\t\t\tif (\n\t\t\t\tenvName.includes(\"KEY\") ||\n\t\t\t\tenvName.includes(\"TOKEN\") ||\n\t\t\t\tenvName.includes(\"SECRET\")\n\t\t\t) {\n\t\t\t\tsetVars[key] = \"[REDACTED]\";\n\t\t\t} else {\n\t\t\t\tsetVars[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (Object.keys(setVars).length > 0) {\n\t\tlogger.debug(\"COMPOSER environment variables\", setVars);\n\t}\n}\n\n/**\n * Validate environment variable values and warn about invalid ones.\n */\nexport function validateEnvVars(): string[] {\n\tconst warnings: string[] = [];\n\n\t// Validate APPROVAL_POLICY\n\tconst approvalPolicy = getEnvString(ENV_VARS.APPROVAL_POLICY);\n\tif (\n\t\tapprovalPolicy &&\n\t\t![\"untrusted\", \"on-failure\", \"on-request\", \"never\"].includes(approvalPolicy)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_APPROVAL_POLICY: \"${approvalPolicy}\". Must be one of: untrusted, on-failure, on-request, never`,\n\t\t);\n\t}\n\n\t// Validate SANDBOX_MODE\n\tconst sandboxMode = getEnvString(ENV_VARS.SANDBOX_MODE);\n\tif (\n\t\tsandboxMode &&\n\t\t![\"read-only\", \"workspace-write\", \"danger-full-access\"].includes(\n\t\t\tsandboxMode,\n\t\t)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_SANDBOX_MODE: \"${sandboxMode}\". Must be one of: read-only, workspace-write, danger-full-access`,\n\t\t);\n\t}\n\n\t// Validate LOG_LEVEL\n\tconst logLevel = getEnvString(ENV_VARS.LOG_LEVEL);\n\tif (logLevel && ![\"debug\", \"info\", \"warn\", \"error\"].includes(logLevel)) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_LOG_LEVEL: \"${logLevel}\". Must be one of: debug, info, warn, error`,\n\t\t);\n\t}\n\n\t// Validate MAX_OUTPUT_TOKENS\n\tconst maxTokens = getEnvString(ENV_VARS.MAX_OUTPUT_TOKENS);\n\tif (\n\t\tmaxTokens &&\n\t\t(Number.isNaN(Number.parseInt(maxTokens, 10)) ||\n\t\t\tNumber.parseInt(maxTokens, 10) < 1)\n\t) {\n\t\twarnings.push(\n\t\t\t`Invalid MAESTRO_MAX_OUTPUT_TOKENS: \"${maxTokens}\". Must be a positive integer`,\n\t\t);\n\t}\n\n\tfor (const warning of warnings) {\n\t\tlogger.warn(warning);\n\t}\n\n\treturn warnings;\n}\n"]}
|
|
@@ -1,8 +1,52 @@
|
|
|
1
1
|
export declare const MAESTRO_EVALOPS_MANAGED_KILL_SWITCH = "platform.kill_switches.maestro.evalops_managed";
|
|
2
2
|
export declare const MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH = "platform.kill_switches.maestro.autonomous_actions";
|
|
3
|
+
export declare const MAESTRO_PLATFORM_RUNTIME_BRIDGE_KILL_SWITCH = "platform.kill_switches.maestro.platform_runtime_bridge";
|
|
3
4
|
export declare const MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG = "maestro.agent_authority.draft_and_confirm_default";
|
|
5
|
+
export declare const MAESTRO_PLATFORM_RUNTIME_AGENT_RUNTIME_OBSERVE_FLAG = "maestro.platform_runtime.agent_runtime_observe";
|
|
6
|
+
export declare const MAESTRO_PLATFORM_RUNTIME_TOOL_EXECUTION_BRIDGE_FLAG = "maestro.platform_runtime.tool_execution_bridge";
|
|
7
|
+
export type FeatureFlagDecision = {
|
|
8
|
+
key: string;
|
|
9
|
+
metadata: Record<string, unknown>;
|
|
10
|
+
reason: string;
|
|
11
|
+
value: boolean;
|
|
12
|
+
variant: string;
|
|
13
|
+
};
|
|
14
|
+
export type ExperimentAssignment = {
|
|
15
|
+
assigned: boolean;
|
|
16
|
+
bucket: number;
|
|
17
|
+
experimentId: string;
|
|
18
|
+
exposureRecorded: boolean;
|
|
19
|
+
flagKey: string;
|
|
20
|
+
holdoutId?: string;
|
|
21
|
+
inHoldout: boolean;
|
|
22
|
+
layerId?: string;
|
|
23
|
+
metadata: Record<string, unknown>;
|
|
24
|
+
namespaceEnd: number;
|
|
25
|
+
namespaceStart: number;
|
|
26
|
+
reason: string;
|
|
27
|
+
subject: string;
|
|
28
|
+
variant: string;
|
|
29
|
+
variantBucket: number;
|
|
30
|
+
};
|
|
31
|
+
export type FeatureFlagRequestContext = {
|
|
32
|
+
attributes?: Record<string, string | number | boolean | null | undefined>;
|
|
33
|
+
subject: string;
|
|
34
|
+
};
|
|
35
|
+
export type FeatureFlagRemoteOptions = {
|
|
36
|
+
baseUrl?: string;
|
|
37
|
+
headers?: Record<string, string>;
|
|
38
|
+
timeoutMs?: number;
|
|
39
|
+
};
|
|
4
40
|
export declare function isFeatureFlagEnabled(key: string): boolean;
|
|
5
41
|
export declare function areAutonomousActionsDisabled(): boolean;
|
|
6
42
|
export declare function isDraftAndConfirmDefaultEnabled(): boolean;
|
|
43
|
+
export declare function isPlatformRuntimeBridgeDisabled(): boolean;
|
|
44
|
+
export declare function isPlatformRuntimeObserveEnabled(): boolean;
|
|
45
|
+
export declare function isPlatformToolExecutionBridgeEnabled(): boolean;
|
|
46
|
+
export declare function evaluateFeatureFlag(key: string, context: FeatureFlagRequestContext, defaultValue?: boolean, options?: FeatureFlagRemoteOptions): Promise<FeatureFlagDecision>;
|
|
47
|
+
export declare function assignExperiment(experimentId: string, context: FeatureFlagRequestContext, options?: FeatureFlagRemoteOptions & {
|
|
48
|
+
metadata?: Record<string, unknown>;
|
|
49
|
+
recordExposure?: boolean;
|
|
50
|
+
}): Promise<ExperimentAssignment>;
|
|
7
51
|
export declare function resetFeatureFlagCacheForTests(): void;
|
|
8
52
|
//# sourceMappingURL=feature-flags.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,mCAAmC,mDACC,CAAC;AAClD,eAAO,MAAM,sCAAsC,sDACC,CAAC;AACrD,eAAO,MAAM,sCAAsC,sDACC,CAAC;
|
|
1
|
+
{"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,mCAAmC,mDACC,CAAC;AAClD,eAAO,MAAM,sCAAsC,sDACC,CAAC;AACrD,eAAO,MAAM,2CAA2C,2DACC,CAAC;AAC1D,eAAO,MAAM,sCAAsC,sDACC,CAAC;AACrD,eAAO,MAAM,mDAAmD,mDACf,CAAC;AAClD,eAAO,MAAM,mDAAmD,mDACf,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA0EF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAczD;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAED,wBAAgB,+BAA+B,IAAI,OAAO,CAEzD;AAED,wBAAgB,+BAA+B,IAAI,OAAO,CAEzD;AAED,wBAAgB,+BAA+B,IAAI,OAAO,CAIzD;AAED,wBAAgB,oCAAoC,IAAI,OAAO,CAI9D;AAED,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,yBAAyB,EAClC,YAAY,UAAQ,EACpB,OAAO,GAAE,wBAA6B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAkE9B;AAED,wBAAsB,gBAAgB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,wBAAwB,GAAG;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,OAAO,CAAC;CACpB,GACJ,OAAO,CAAC,oBAAoB,CAAC,CAqE/B;AAuID,wBAAgB,6BAA6B,IAAI,IAAI,CAIpD"}
|
|
@@ -4,11 +4,34 @@ const featureFlagCache = {
|
|
|
4
4
|
};
|
|
5
5
|
export const MAESTRO_EVALOPS_MANAGED_KILL_SWITCH = "platform.kill_switches.maestro.evalops_managed";
|
|
6
6
|
export const MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH = "platform.kill_switches.maestro.autonomous_actions";
|
|
7
|
+
export const MAESTRO_PLATFORM_RUNTIME_BRIDGE_KILL_SWITCH = "platform.kill_switches.maestro.platform_runtime_bridge";
|
|
7
8
|
export const MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG = "maestro.agent_authority.draft_and_confirm_default";
|
|
9
|
+
export const MAESTRO_PLATFORM_RUNTIME_AGENT_RUNTIME_OBSERVE_FLAG = "maestro.platform_runtime.agent_runtime_observe";
|
|
10
|
+
export const MAESTRO_PLATFORM_RUNTIME_TOOL_EXECUTION_BRIDGE_FLAG = "maestro.platform_runtime.tool_execution_bridge";
|
|
11
|
+
const DEFAULT_IN_CLUSTER_FLAG_CONTROL_URL = "http://flag-control-service.evalops.svc.cluster.local:8080";
|
|
12
|
+
const DEFAULT_OUT_OF_CLUSTER_FLAG_CONTROL_URL = "https://flags.internal.evalops.dev";
|
|
13
|
+
const DEFAULT_REMOTE_TIMEOUT_MS = 2_000;
|
|
8
14
|
function getFeatureFlagsPath() {
|
|
9
15
|
const configured = process.env.EVALOPS_FEATURE_FLAGS_PATH?.trim();
|
|
10
16
|
return configured ? configured : undefined;
|
|
11
17
|
}
|
|
18
|
+
function getFeatureFlagRemoteBaseUrl() {
|
|
19
|
+
return (process.env.EVALOPS_FEATURE_FLAGS_URL?.trim() ||
|
|
20
|
+
process.env.EVALOPS_FLAG_CONTROL_URL?.trim() ||
|
|
21
|
+
(process.env.KUBERNETES_SERVICE_HOST
|
|
22
|
+
? DEFAULT_IN_CLUSTER_FLAG_CONTROL_URL
|
|
23
|
+
: DEFAULT_OUT_OF_CLUSTER_FLAG_CONTROL_URL)).replace(/\/+$/, "");
|
|
24
|
+
}
|
|
25
|
+
function getFeatureFlagRemoteHeaders(headers) {
|
|
26
|
+
const merged = { ...(headers ?? {}) };
|
|
27
|
+
const token = process.env.EVALOPS_FEATURE_FLAGS_BEARER_TOKEN?.trim() ||
|
|
28
|
+
process.env.EVALOPS_FLAG_CONTROL_BEARER_TOKEN?.trim();
|
|
29
|
+
const hasAuthorization = Object.keys(merged).some((key) => key.toLowerCase() === "authorization");
|
|
30
|
+
if (token && !hasAuthorization) {
|
|
31
|
+
merged.Authorization = `Bearer ${token}`;
|
|
32
|
+
}
|
|
33
|
+
return merged;
|
|
34
|
+
}
|
|
12
35
|
function readFeatureFlagSnapshot() {
|
|
13
36
|
const path = getFeatureFlagsPath();
|
|
14
37
|
if (!path) {
|
|
@@ -55,6 +78,197 @@ export function areAutonomousActionsDisabled() {
|
|
|
55
78
|
export function isDraftAndConfirmDefaultEnabled() {
|
|
56
79
|
return isFeatureFlagEnabled(MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG);
|
|
57
80
|
}
|
|
81
|
+
export function isPlatformRuntimeBridgeDisabled() {
|
|
82
|
+
return isFeatureFlagEnabled(MAESTRO_PLATFORM_RUNTIME_BRIDGE_KILL_SWITCH);
|
|
83
|
+
}
|
|
84
|
+
export function isPlatformRuntimeObserveEnabled() {
|
|
85
|
+
return isFeatureFlagEnabled(MAESTRO_PLATFORM_RUNTIME_AGENT_RUNTIME_OBSERVE_FLAG);
|
|
86
|
+
}
|
|
87
|
+
export function isPlatformToolExecutionBridgeEnabled() {
|
|
88
|
+
return isFeatureFlagEnabled(MAESTRO_PLATFORM_RUNTIME_TOOL_EXECUTION_BRIDGE_FLAG);
|
|
89
|
+
}
|
|
90
|
+
export async function evaluateFeatureFlag(key, context, defaultValue = false, options = {}) {
|
|
91
|
+
const normalizedKey = key.trim();
|
|
92
|
+
if (!normalizedKey) {
|
|
93
|
+
return fallbackDecision(normalizedKey, context, defaultValue, "missing_key");
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const response = await postJSON(`${remoteBaseUrl(options)}/ofrep/v1/evaluate/flags/${encodeURIComponent(normalizedKey)}`, JSON.stringify({ context: remoteContext(context) }), options);
|
|
97
|
+
if (response.status === 404) {
|
|
98
|
+
return fallbackDecision(normalizedKey, context, defaultValue, "not_found");
|
|
99
|
+
}
|
|
100
|
+
if (!response.ok) {
|
|
101
|
+
return fallbackDecision(normalizedKey, context, defaultValue, `remote_status_${response.status}`);
|
|
102
|
+
}
|
|
103
|
+
const payload = (await response.json());
|
|
104
|
+
if (typeof payload.value !== "boolean") {
|
|
105
|
+
return fallbackDecision(normalizedKey, context, defaultValue, "invalid_remote_value");
|
|
106
|
+
}
|
|
107
|
+
const metadata = getRecord(payload.metadata);
|
|
108
|
+
return {
|
|
109
|
+
key: payload.key?.trim() || normalizedKey,
|
|
110
|
+
metadata,
|
|
111
|
+
reason: getString(metadata.flag_reason) || payload.reason?.trim() || "remote",
|
|
112
|
+
value: payload.value,
|
|
113
|
+
variant: payload.variant?.trim() || booleanVariant(payload.value),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
return fallbackDecision(normalizedKey, context, defaultValue, error instanceof Error ? error.message : "remote_error");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export async function assignExperiment(experimentId, context, options = {}) {
|
|
121
|
+
const normalizedExperimentId = experimentId.trim();
|
|
122
|
+
if (!normalizedExperimentId) {
|
|
123
|
+
return missingAssignment(normalizedExperimentId, context, "missing_experiment_id");
|
|
124
|
+
}
|
|
125
|
+
const subject = context.subject.trim();
|
|
126
|
+
if (!subject) {
|
|
127
|
+
return missingAssignment(normalizedExperimentId, context, "missing_subject");
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
const response = await postJSON(`${remoteBaseUrl(options)}/api/experiments/${encodeURIComponent(normalizedExperimentId)}/assign`, JSON.stringify({
|
|
131
|
+
context: remoteContext(context),
|
|
132
|
+
metadata: options.metadata ?? {},
|
|
133
|
+
record_exposure: options.recordExposure,
|
|
134
|
+
subject,
|
|
135
|
+
}), options);
|
|
136
|
+
if (response.status === 404) {
|
|
137
|
+
return missingAssignment(normalizedExperimentId, context, "missing_experiment");
|
|
138
|
+
}
|
|
139
|
+
if (!response.ok) {
|
|
140
|
+
return missingAssignment(normalizedExperimentId, context, `remote_status_${response.status}`);
|
|
141
|
+
}
|
|
142
|
+
const payload = (await response.json());
|
|
143
|
+
return {
|
|
144
|
+
assigned: payload.assigned === true,
|
|
145
|
+
bucket: getNumber(payload.bucket),
|
|
146
|
+
experimentId: getString(payload.experiment_id) || normalizedExperimentId,
|
|
147
|
+
exposureRecorded: payload.exposure_recorded === true,
|
|
148
|
+
flagKey: getString(payload.flag_key),
|
|
149
|
+
holdoutId: getString(payload.holdout_id) || undefined,
|
|
150
|
+
inHoldout: payload.in_holdout === true,
|
|
151
|
+
layerId: getString(payload.layer_id) || undefined,
|
|
152
|
+
metadata: getRecord(payload.metadata),
|
|
153
|
+
namespaceEnd: getNumber(payload.namespace_end),
|
|
154
|
+
namespaceStart: getNumber(payload.namespace_start),
|
|
155
|
+
reason: getString(payload.reason) || "remote",
|
|
156
|
+
subject: getString(payload.subject) || subject,
|
|
157
|
+
variant: getString(payload.variant),
|
|
158
|
+
variantBucket: getNumber(payload.variant_bucket),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
return missingAssignment(normalizedExperimentId, context, error instanceof Error ? error.message : "remote_error");
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function remoteBaseUrl(options) {
|
|
166
|
+
const configured = options.baseUrl?.trim().replace(/\/+$/, "");
|
|
167
|
+
return configured || getFeatureFlagRemoteBaseUrl();
|
|
168
|
+
}
|
|
169
|
+
function remoteContext(context) {
|
|
170
|
+
const remote = {};
|
|
171
|
+
for (const [key, value] of Object.entries(context.attributes ?? {})) {
|
|
172
|
+
const normalizedKey = key.trim();
|
|
173
|
+
if (!normalizedKey || value == null) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (normalizedKey === "subject" || normalizedKey === "targetingKey") {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (typeof value === "string") {
|
|
180
|
+
const normalizedValue = value.trim();
|
|
181
|
+
if (normalizedValue) {
|
|
182
|
+
remote[normalizedKey] = normalizedValue;
|
|
183
|
+
}
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
remote[normalizedKey] = value;
|
|
187
|
+
}
|
|
188
|
+
const subject = context.subject.trim();
|
|
189
|
+
if (subject) {
|
|
190
|
+
remote.subject = subject;
|
|
191
|
+
remote.targetingKey = subject;
|
|
192
|
+
}
|
|
193
|
+
return remote;
|
|
194
|
+
}
|
|
195
|
+
function remoteTimeoutMs(options) {
|
|
196
|
+
if (options.timeoutMs == null) {
|
|
197
|
+
return DEFAULT_REMOTE_TIMEOUT_MS;
|
|
198
|
+
}
|
|
199
|
+
if (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
return Math.max(1, Math.trunc(options.timeoutMs));
|
|
203
|
+
}
|
|
204
|
+
async function postJSON(url, body, options) {
|
|
205
|
+
const controller = new AbortController();
|
|
206
|
+
const timeoutMs = remoteTimeoutMs(options);
|
|
207
|
+
let timeout;
|
|
208
|
+
if (timeoutMs != null) {
|
|
209
|
+
timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
return await fetch(url, {
|
|
213
|
+
body,
|
|
214
|
+
headers: {
|
|
215
|
+
accept: "application/json",
|
|
216
|
+
"content-type": "application/json",
|
|
217
|
+
...getFeatureFlagRemoteHeaders(options.headers),
|
|
218
|
+
},
|
|
219
|
+
method: "POST",
|
|
220
|
+
signal: controller.signal,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
if (timeout != null) {
|
|
225
|
+
clearTimeout(timeout);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
function fallbackDecision(key, context, defaultValue, reason) {
|
|
230
|
+
return {
|
|
231
|
+
key,
|
|
232
|
+
metadata: {
|
|
233
|
+
fallback_used: true,
|
|
234
|
+
flag_subject: context.subject.trim(),
|
|
235
|
+
},
|
|
236
|
+
reason,
|
|
237
|
+
value: defaultValue,
|
|
238
|
+
variant: booleanVariant(defaultValue),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function missingAssignment(experimentId, context, reason) {
|
|
242
|
+
return {
|
|
243
|
+
assigned: false,
|
|
244
|
+
bucket: 0,
|
|
245
|
+
experimentId,
|
|
246
|
+
exposureRecorded: false,
|
|
247
|
+
flagKey: "",
|
|
248
|
+
inHoldout: false,
|
|
249
|
+
metadata: { fallback_used: true },
|
|
250
|
+
namespaceEnd: 0,
|
|
251
|
+
namespaceStart: 0,
|
|
252
|
+
reason,
|
|
253
|
+
subject: context.subject.trim(),
|
|
254
|
+
variant: "",
|
|
255
|
+
variantBucket: 0,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function booleanVariant(value) {
|
|
259
|
+
return value ? "true" : "false";
|
|
260
|
+
}
|
|
261
|
+
function getRecord(value) {
|
|
262
|
+
return value != null && typeof value === "object" && !Array.isArray(value)
|
|
263
|
+
? value
|
|
264
|
+
: {};
|
|
265
|
+
}
|
|
266
|
+
function getString(value) {
|
|
267
|
+
return typeof value === "string" ? value.trim() : "";
|
|
268
|
+
}
|
|
269
|
+
function getNumber(value) {
|
|
270
|
+
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
271
|
+
}
|
|
58
272
|
export function resetFeatureFlagCacheForTests() {
|
|
59
273
|
featureFlagCache.lastKnownSnapshot = null;
|
|
60
274
|
featureFlagCache.lastPath = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync, statSync } from \"node:fs\";\n\ntype FeatureFlag = {\n\tenabled?: boolean;\n\tkey?: string;\n};\n\ntype FeatureFlagSnapshot = {\n\tflags?: FeatureFlag[];\n\tschema_version?: number;\n};\n\ntype FeatureFlagCache = {\n\tlastKnownSnapshot: FeatureFlagSnapshot | null;\n\tlastPath?: string;\n\tlastStatMtimeMs?: number;\n};\n\nconst featureFlagCache: FeatureFlagCache = {\n\tlastKnownSnapshot: null,\n};\n\nexport const MAESTRO_EVALOPS_MANAGED_KILL_SWITCH =\n\t\"platform.kill_switches.maestro.evalops_managed\";\nexport const MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH =\n\t\"platform.kill_switches.maestro.autonomous_actions\";\nexport const MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG =\n\t\"maestro.agent_authority.draft_and_confirm_default\";\n\nfunction getFeatureFlagsPath(): string | undefined {\n\tconst configured = process.env.EVALOPS_FEATURE_FLAGS_PATH?.trim();\n\treturn configured ? configured : undefined;\n}\n\nfunction readFeatureFlagSnapshot(): FeatureFlagSnapshot | null {\n\tconst path = getFeatureFlagsPath();\n\tif (!path) {\n\t\tfeatureFlagCache.lastKnownSnapshot = null;\n\t\tfeatureFlagCache.lastPath = undefined;\n\t\tfeatureFlagCache.lastStatMtimeMs = undefined;\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst stats = statSync(path);\n\t\tif (\n\t\t\tfeatureFlagCache.lastPath === path &&\n\t\t\tfeatureFlagCache.lastStatMtimeMs === stats.mtimeMs\n\t\t) {\n\t\t\treturn featureFlagCache.lastKnownSnapshot;\n\t\t}\n\n\t\tconst snapshot = JSON.parse(\n\t\t\treadFileSync(path, \"utf8\"),\n\t\t) as FeatureFlagSnapshot;\n\t\tfeatureFlagCache.lastKnownSnapshot = snapshot;\n\t\tfeatureFlagCache.lastPath = path;\n\t\tfeatureFlagCache.lastStatMtimeMs = stats.mtimeMs;\n\t\treturn snapshot;\n\t} catch {\n\t\tif (featureFlagCache.lastPath !== path) {\n\t\t\tfeatureFlagCache.lastKnownSnapshot = null;\n\t\t}\n\t\tfeatureFlagCache.lastPath = path;\n\t\tfeatureFlagCache.lastStatMtimeMs = undefined;\n\t\treturn featureFlagCache.lastKnownSnapshot;\n\t}\n}\n\nexport function isFeatureFlagEnabled(key: string): boolean {\n\tconst normalizedKey = key.trim();\n\tif (!normalizedKey) {\n\t\treturn false;\n\t}\n\n\tconst snapshot = readFeatureFlagSnapshot();\n\tif (!snapshot?.flags?.length) {\n\t\treturn false;\n\t}\n\n\treturn snapshot.flags.some(\n\t\t(flag) => flag?.key?.trim() === normalizedKey && flag.enabled === true,\n\t);\n}\n\nexport function areAutonomousActionsDisabled(): boolean {\n\treturn isFeatureFlagEnabled(MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH);\n}\n\nexport function isDraftAndConfirmDefaultEnabled(): boolean {\n\treturn isFeatureFlagEnabled(MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG);\n}\n\nexport function resetFeatureFlagCacheForTests(): void {\n\tfeatureFlagCache.lastKnownSnapshot = null;\n\tfeatureFlagCache.lastPath = undefined;\n\tfeatureFlagCache.lastStatMtimeMs = undefined;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"feature-flags.js","sourceRoot":"","sources":["../../src/config/feature-flags.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync, statSync } from \"node:fs\";\n\ntype FeatureFlag = {\n\tenabled?: boolean;\n\tkey?: string;\n};\n\ntype FeatureFlagSnapshot = {\n\tflags?: FeatureFlag[];\n\tschema_version?: number;\n};\n\ntype FeatureFlagCache = {\n\tlastKnownSnapshot: FeatureFlagSnapshot | null;\n\tlastPath?: string;\n\tlastStatMtimeMs?: number;\n};\n\nconst featureFlagCache: FeatureFlagCache = {\n\tlastKnownSnapshot: null,\n};\n\nexport const MAESTRO_EVALOPS_MANAGED_KILL_SWITCH =\n\t\"platform.kill_switches.maestro.evalops_managed\";\nexport const MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH =\n\t\"platform.kill_switches.maestro.autonomous_actions\";\nexport const MAESTRO_PLATFORM_RUNTIME_BRIDGE_KILL_SWITCH =\n\t\"platform.kill_switches.maestro.platform_runtime_bridge\";\nexport const MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG =\n\t\"maestro.agent_authority.draft_and_confirm_default\";\nexport const MAESTRO_PLATFORM_RUNTIME_AGENT_RUNTIME_OBSERVE_FLAG =\n\t\"maestro.platform_runtime.agent_runtime_observe\";\nexport const MAESTRO_PLATFORM_RUNTIME_TOOL_EXECUTION_BRIDGE_FLAG =\n\t\"maestro.platform_runtime.tool_execution_bridge\";\n\nexport type FeatureFlagDecision = {\n\tkey: string;\n\tmetadata: Record<string, unknown>;\n\treason: string;\n\tvalue: boolean;\n\tvariant: string;\n};\n\nexport type ExperimentAssignment = {\n\tassigned: boolean;\n\tbucket: number;\n\texperimentId: string;\n\texposureRecorded: boolean;\n\tflagKey: string;\n\tholdoutId?: string;\n\tinHoldout: boolean;\n\tlayerId?: string;\n\tmetadata: Record<string, unknown>;\n\tnamespaceEnd: number;\n\tnamespaceStart: number;\n\treason: string;\n\tsubject: string;\n\tvariant: string;\n\tvariantBucket: number;\n};\n\nexport type FeatureFlagRequestContext = {\n\tattributes?: Record<string, string | number | boolean | null | undefined>;\n\tsubject: string;\n};\n\nexport type FeatureFlagRemoteOptions = {\n\tbaseUrl?: string;\n\theaders?: Record<string, string>;\n\ttimeoutMs?: number;\n};\n\nconst DEFAULT_IN_CLUSTER_FLAG_CONTROL_URL =\n\t\"http://flag-control-service.evalops.svc.cluster.local:8080\";\nconst DEFAULT_OUT_OF_CLUSTER_FLAG_CONTROL_URL =\n\t\"https://flags.internal.evalops.dev\";\nconst DEFAULT_REMOTE_TIMEOUT_MS = 2_000;\n\nfunction getFeatureFlagsPath(): string | undefined {\n\tconst configured = process.env.EVALOPS_FEATURE_FLAGS_PATH?.trim();\n\treturn configured ? configured : undefined;\n}\n\nfunction getFeatureFlagRemoteBaseUrl(): string {\n\treturn (\n\t\tprocess.env.EVALOPS_FEATURE_FLAGS_URL?.trim() ||\n\t\tprocess.env.EVALOPS_FLAG_CONTROL_URL?.trim() ||\n\t\t(process.env.KUBERNETES_SERVICE_HOST\n\t\t\t? DEFAULT_IN_CLUSTER_FLAG_CONTROL_URL\n\t\t\t: DEFAULT_OUT_OF_CLUSTER_FLAG_CONTROL_URL)\n\t).replace(/\\/+$/, \"\");\n}\n\nfunction getFeatureFlagRemoteHeaders(\n\theaders?: Record<string, string>,\n): Record<string, string> {\n\tconst merged: Record<string, string> = { ...(headers ?? {}) };\n\tconst token =\n\t\tprocess.env.EVALOPS_FEATURE_FLAGS_BEARER_TOKEN?.trim() ||\n\t\tprocess.env.EVALOPS_FLAG_CONTROL_BEARER_TOKEN?.trim();\n\tconst hasAuthorization = Object.keys(merged).some(\n\t\t(key) => key.toLowerCase() === \"authorization\",\n\t);\n\tif (token && !hasAuthorization) {\n\t\tmerged.Authorization = `Bearer ${token}`;\n\t}\n\treturn merged;\n}\n\nfunction readFeatureFlagSnapshot(): FeatureFlagSnapshot | null {\n\tconst path = getFeatureFlagsPath();\n\tif (!path) {\n\t\tfeatureFlagCache.lastKnownSnapshot = null;\n\t\tfeatureFlagCache.lastPath = undefined;\n\t\tfeatureFlagCache.lastStatMtimeMs = undefined;\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst stats = statSync(path);\n\t\tif (\n\t\t\tfeatureFlagCache.lastPath === path &&\n\t\t\tfeatureFlagCache.lastStatMtimeMs === stats.mtimeMs\n\t\t) {\n\t\t\treturn featureFlagCache.lastKnownSnapshot;\n\t\t}\n\n\t\tconst snapshot = JSON.parse(\n\t\t\treadFileSync(path, \"utf8\"),\n\t\t) as FeatureFlagSnapshot;\n\t\tfeatureFlagCache.lastKnownSnapshot = snapshot;\n\t\tfeatureFlagCache.lastPath = path;\n\t\tfeatureFlagCache.lastStatMtimeMs = stats.mtimeMs;\n\t\treturn snapshot;\n\t} catch {\n\t\tif (featureFlagCache.lastPath !== path) {\n\t\t\tfeatureFlagCache.lastKnownSnapshot = null;\n\t\t}\n\t\tfeatureFlagCache.lastPath = path;\n\t\tfeatureFlagCache.lastStatMtimeMs = undefined;\n\t\treturn featureFlagCache.lastKnownSnapshot;\n\t}\n}\n\nexport function isFeatureFlagEnabled(key: string): boolean {\n\tconst normalizedKey = key.trim();\n\tif (!normalizedKey) {\n\t\treturn false;\n\t}\n\n\tconst snapshot = readFeatureFlagSnapshot();\n\tif (!snapshot?.flags?.length) {\n\t\treturn false;\n\t}\n\n\treturn snapshot.flags.some(\n\t\t(flag) => flag?.key?.trim() === normalizedKey && flag.enabled === true,\n\t);\n}\n\nexport function areAutonomousActionsDisabled(): boolean {\n\treturn isFeatureFlagEnabled(MAESTRO_AUTONOMOUS_ACTIONS_KILL_SWITCH);\n}\n\nexport function isDraftAndConfirmDefaultEnabled(): boolean {\n\treturn isFeatureFlagEnabled(MAESTRO_DRAFT_AND_CONFIRM_DEFAULT_FLAG);\n}\n\nexport function isPlatformRuntimeBridgeDisabled(): boolean {\n\treturn isFeatureFlagEnabled(MAESTRO_PLATFORM_RUNTIME_BRIDGE_KILL_SWITCH);\n}\n\nexport function isPlatformRuntimeObserveEnabled(): boolean {\n\treturn isFeatureFlagEnabled(\n\t\tMAESTRO_PLATFORM_RUNTIME_AGENT_RUNTIME_OBSERVE_FLAG,\n\t);\n}\n\nexport function isPlatformToolExecutionBridgeEnabled(): boolean {\n\treturn isFeatureFlagEnabled(\n\t\tMAESTRO_PLATFORM_RUNTIME_TOOL_EXECUTION_BRIDGE_FLAG,\n\t);\n}\n\nexport async function evaluateFeatureFlag(\n\tkey: string,\n\tcontext: FeatureFlagRequestContext,\n\tdefaultValue = false,\n\toptions: FeatureFlagRemoteOptions = {},\n): Promise<FeatureFlagDecision> {\n\tconst normalizedKey = key.trim();\n\tif (!normalizedKey) {\n\t\treturn fallbackDecision(\n\t\t\tnormalizedKey,\n\t\t\tcontext,\n\t\t\tdefaultValue,\n\t\t\t\"missing_key\",\n\t\t);\n\t}\n\n\ttry {\n\t\tconst response = await postJSON(\n\t\t\t`${remoteBaseUrl(options)}/ofrep/v1/evaluate/flags/${encodeURIComponent(normalizedKey)}`,\n\t\t\tJSON.stringify({ context: remoteContext(context) }),\n\t\t\toptions,\n\t\t);\n\t\tif (response.status === 404) {\n\t\t\treturn fallbackDecision(\n\t\t\t\tnormalizedKey,\n\t\t\t\tcontext,\n\t\t\t\tdefaultValue,\n\t\t\t\t\"not_found\",\n\t\t\t);\n\t\t}\n\t\tif (!response.ok) {\n\t\t\treturn fallbackDecision(\n\t\t\t\tnormalizedKey,\n\t\t\t\tcontext,\n\t\t\t\tdefaultValue,\n\t\t\t\t`remote_status_${response.status}`,\n\t\t\t);\n\t\t}\n\n\t\tconst payload = (await response.json()) as {\n\t\t\tkey?: string;\n\t\t\tmetadata?: Record<string, unknown>;\n\t\t\treason?: string;\n\t\t\tvalue?: unknown;\n\t\t\tvariant?: string;\n\t\t};\n\t\tif (typeof payload.value !== \"boolean\") {\n\t\t\treturn fallbackDecision(\n\t\t\t\tnormalizedKey,\n\t\t\t\tcontext,\n\t\t\t\tdefaultValue,\n\t\t\t\t\"invalid_remote_value\",\n\t\t\t);\n\t\t}\n\t\tconst metadata = getRecord(payload.metadata);\n\t\treturn {\n\t\t\tkey: payload.key?.trim() || normalizedKey,\n\t\t\tmetadata,\n\t\t\treason:\n\t\t\t\tgetString(metadata.flag_reason) || payload.reason?.trim() || \"remote\",\n\t\t\tvalue: payload.value,\n\t\t\tvariant: payload.variant?.trim() || booleanVariant(payload.value),\n\t\t};\n\t} catch (error) {\n\t\treturn fallbackDecision(\n\t\t\tnormalizedKey,\n\t\t\tcontext,\n\t\t\tdefaultValue,\n\t\t\terror instanceof Error ? error.message : \"remote_error\",\n\t\t);\n\t}\n}\n\nexport async function assignExperiment(\n\texperimentId: string,\n\tcontext: FeatureFlagRequestContext,\n\toptions: FeatureFlagRemoteOptions & {\n\t\tmetadata?: Record<string, unknown>;\n\t\trecordExposure?: boolean;\n\t} = {},\n): Promise<ExperimentAssignment> {\n\tconst normalizedExperimentId = experimentId.trim();\n\tif (!normalizedExperimentId) {\n\t\treturn missingAssignment(\n\t\t\tnormalizedExperimentId,\n\t\t\tcontext,\n\t\t\t\"missing_experiment_id\",\n\t\t);\n\t}\n\tconst subject = context.subject.trim();\n\tif (!subject) {\n\t\treturn missingAssignment(\n\t\t\tnormalizedExperimentId,\n\t\t\tcontext,\n\t\t\t\"missing_subject\",\n\t\t);\n\t}\n\n\ttry {\n\t\tconst response = await postJSON(\n\t\t\t`${remoteBaseUrl(options)}/api/experiments/${encodeURIComponent(normalizedExperimentId)}/assign`,\n\t\t\tJSON.stringify({\n\t\t\t\tcontext: remoteContext(context),\n\t\t\t\tmetadata: options.metadata ?? {},\n\t\t\t\trecord_exposure: options.recordExposure,\n\t\t\t\tsubject,\n\t\t\t}),\n\t\t\toptions,\n\t\t);\n\t\tif (response.status === 404) {\n\t\t\treturn missingAssignment(\n\t\t\t\tnormalizedExperimentId,\n\t\t\t\tcontext,\n\t\t\t\t\"missing_experiment\",\n\t\t\t);\n\t\t}\n\t\tif (!response.ok) {\n\t\t\treturn missingAssignment(\n\t\t\t\tnormalizedExperimentId,\n\t\t\t\tcontext,\n\t\t\t\t`remote_status_${response.status}`,\n\t\t\t);\n\t\t}\n\n\t\tconst payload = (await response.json()) as Record<string, unknown>;\n\t\treturn {\n\t\t\tassigned: payload.assigned === true,\n\t\t\tbucket: getNumber(payload.bucket),\n\t\t\texperimentId: getString(payload.experiment_id) || normalizedExperimentId,\n\t\t\texposureRecorded: payload.exposure_recorded === true,\n\t\t\tflagKey: getString(payload.flag_key),\n\t\t\tholdoutId: getString(payload.holdout_id) || undefined,\n\t\t\tinHoldout: payload.in_holdout === true,\n\t\t\tlayerId: getString(payload.layer_id) || undefined,\n\t\t\tmetadata: getRecord(payload.metadata),\n\t\t\tnamespaceEnd: getNumber(payload.namespace_end),\n\t\t\tnamespaceStart: getNumber(payload.namespace_start),\n\t\t\treason: getString(payload.reason) || \"remote\",\n\t\t\tsubject: getString(payload.subject) || subject,\n\t\t\tvariant: getString(payload.variant),\n\t\t\tvariantBucket: getNumber(payload.variant_bucket),\n\t\t};\n\t} catch (error) {\n\t\treturn missingAssignment(\n\t\t\tnormalizedExperimentId,\n\t\t\tcontext,\n\t\t\terror instanceof Error ? error.message : \"remote_error\",\n\t\t);\n\t}\n}\n\nfunction remoteBaseUrl(options: FeatureFlagRemoteOptions): string {\n\tconst configured = options.baseUrl?.trim().replace(/\\/+$/, \"\");\n\treturn configured || getFeatureFlagRemoteBaseUrl();\n}\n\nfunction remoteContext(\n\tcontext: FeatureFlagRequestContext,\n): Record<string, string | number | boolean> {\n\tconst remote: Record<string, string | number | boolean> = {};\n\tfor (const [key, value] of Object.entries(context.attributes ?? {})) {\n\t\tconst normalizedKey = key.trim();\n\t\tif (!normalizedKey || value == null) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (normalizedKey === \"subject\" || normalizedKey === \"targetingKey\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof value === \"string\") {\n\t\t\tconst normalizedValue = value.trim();\n\t\t\tif (normalizedValue) {\n\t\t\t\tremote[normalizedKey] = normalizedValue;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tremote[normalizedKey] = value;\n\t}\n\tconst subject = context.subject.trim();\n\tif (subject) {\n\t\tremote.subject = subject;\n\t\tremote.targetingKey = subject;\n\t}\n\treturn remote;\n}\n\nfunction remoteTimeoutMs(\n\toptions: FeatureFlagRemoteOptions,\n): number | undefined {\n\tif (options.timeoutMs == null) {\n\t\treturn DEFAULT_REMOTE_TIMEOUT_MS;\n\t}\n\tif (!Number.isFinite(options.timeoutMs) || options.timeoutMs <= 0) {\n\t\treturn undefined;\n\t}\n\treturn Math.max(1, Math.trunc(options.timeoutMs));\n}\n\nasync function postJSON(\n\turl: string,\n\tbody: string,\n\toptions: FeatureFlagRemoteOptions,\n): Promise<Response> {\n\tconst controller = new AbortController();\n\tconst timeoutMs = remoteTimeoutMs(options);\n\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\tif (timeoutMs != null) {\n\t\ttimeout = setTimeout(() => controller.abort(), timeoutMs);\n\t}\n\ttry {\n\t\treturn await fetch(url, {\n\t\t\tbody,\n\t\t\theaders: {\n\t\t\t\taccept: \"application/json\",\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t...getFeatureFlagRemoteHeaders(options.headers),\n\t\t\t},\n\t\t\tmethod: \"POST\",\n\t\t\tsignal: controller.signal,\n\t\t});\n\t} finally {\n\t\tif (timeout != null) {\n\t\t\tclearTimeout(timeout);\n\t\t}\n\t}\n}\n\nfunction fallbackDecision(\n\tkey: string,\n\tcontext: FeatureFlagRequestContext,\n\tdefaultValue: boolean,\n\treason: string,\n): FeatureFlagDecision {\n\treturn {\n\t\tkey,\n\t\tmetadata: {\n\t\t\tfallback_used: true,\n\t\t\tflag_subject: context.subject.trim(),\n\t\t},\n\t\treason,\n\t\tvalue: defaultValue,\n\t\tvariant: booleanVariant(defaultValue),\n\t};\n}\n\nfunction missingAssignment(\n\texperimentId: string,\n\tcontext: FeatureFlagRequestContext,\n\treason: string,\n): ExperimentAssignment {\n\treturn {\n\t\tassigned: false,\n\t\tbucket: 0,\n\t\texperimentId,\n\t\texposureRecorded: false,\n\t\tflagKey: \"\",\n\t\tinHoldout: false,\n\t\tmetadata: { fallback_used: true },\n\t\tnamespaceEnd: 0,\n\t\tnamespaceStart: 0,\n\t\treason,\n\t\tsubject: context.subject.trim(),\n\t\tvariant: \"\",\n\t\tvariantBucket: 0,\n\t};\n}\n\nfunction booleanVariant(value: boolean): string {\n\treturn value ? \"true\" : \"false\";\n}\n\nfunction getRecord(value: unknown): Record<string, unknown> {\n\treturn value != null && typeof value === \"object\" && !Array.isArray(value)\n\t\t? (value as Record<string, unknown>)\n\t\t: {};\n}\n\nfunction getString(value: unknown): string {\n\treturn typeof value === \"string\" ? value.trim() : \"\";\n}\n\nfunction getNumber(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\n\nexport function resetFeatureFlagCacheForTests(): void {\n\tfeatureFlagCache.lastKnownSnapshot = null;\n\tfeatureFlagCache.lastPath = undefined;\n\tfeatureFlagCache.lastStatMtimeMs = undefined;\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export declare const CONNECTORS_CALL_FAILURE_MODES: {
|
|
2
|
+
readonly getCapabilities: "fail-open";
|
|
3
|
+
readonly getConnection: "fail-open";
|
|
4
|
+
readonly getDegradedReadPolicy: "fail-open";
|
|
5
|
+
readonly getHealth: "fail-open";
|
|
6
|
+
readonly listConnections: "fail-open";
|
|
7
|
+
readonly refreshConnection: "fail-open";
|
|
8
|
+
readonly registerConnection: "fail-open";
|
|
9
|
+
readonly resolveSourceOfTruth: "fail-open";
|
|
10
|
+
readonly revokeConnection: "fail-open";
|
|
11
|
+
readonly setSourceOfTruthPolicy: "fail-open";
|
|
12
|
+
};
|
|
13
|
+
export interface ConnectorsServiceConfig {
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
token?: string;
|
|
16
|
+
workspaceId?: string;
|
|
17
|
+
timeoutMs?: number;
|
|
18
|
+
maxAttempts?: number;
|
|
19
|
+
circuitFailureThreshold?: number;
|
|
20
|
+
circuitResetTimeoutMs?: number;
|
|
21
|
+
circuitSuccessThreshold?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ResolvedConnectorsServiceConfig {
|
|
24
|
+
baseUrl: string;
|
|
25
|
+
token?: string;
|
|
26
|
+
workspaceId?: string;
|
|
27
|
+
timeoutMs: number;
|
|
28
|
+
maxAttempts: number;
|
|
29
|
+
circuitFailureThreshold: number;
|
|
30
|
+
circuitResetTimeoutMs: number;
|
|
31
|
+
circuitSuccessThreshold: number;
|
|
32
|
+
}
|
|
33
|
+
export interface RemoteConnectorConnection {
|
|
34
|
+
id: string;
|
|
35
|
+
workspaceId: string;
|
|
36
|
+
providerId: string;
|
|
37
|
+
displayName?: string;
|
|
38
|
+
authType?: string;
|
|
39
|
+
scopes: string[];
|
|
40
|
+
credentialRefs?: Record<string, string>;
|
|
41
|
+
healthStatus?: string;
|
|
42
|
+
lastHealthyAt?: string;
|
|
43
|
+
createdAt?: string;
|
|
44
|
+
updatedAt?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface RemoteConnectionHealth {
|
|
47
|
+
status?: string;
|
|
48
|
+
latencyMs?: number;
|
|
49
|
+
lastCheckAt?: string;
|
|
50
|
+
errorMessage?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface RegisterRemoteConnectionInput {
|
|
53
|
+
workspaceId?: string;
|
|
54
|
+
providerId: string;
|
|
55
|
+
displayName?: string;
|
|
56
|
+
authType: "AUTH_TYPE_OAUTH2" | "AUTH_TYPE_API_KEY" | "AUTH_TYPE_BASIC";
|
|
57
|
+
scopes?: string[];
|
|
58
|
+
credentials?: Record<string, string>;
|
|
59
|
+
}
|
|
60
|
+
export interface RemoteSourceOfTruthResolution {
|
|
61
|
+
workspaceId: string;
|
|
62
|
+
area: string;
|
|
63
|
+
primaryConnectionId: string;
|
|
64
|
+
fallbackConnectionId?: string;
|
|
65
|
+
providerId: string;
|
|
66
|
+
displayName?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface RemoteSourceOfTruthPolicy {
|
|
69
|
+
workspaceId: string;
|
|
70
|
+
area: string;
|
|
71
|
+
primaryConnectionId: string;
|
|
72
|
+
fallbackConnectionId?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface SetRemoteSourceOfTruthPolicyInput {
|
|
75
|
+
workspaceId?: string;
|
|
76
|
+
area: string;
|
|
77
|
+
primaryConnectionId: string;
|
|
78
|
+
fallbackConnectionId?: string;
|
|
79
|
+
}
|
|
80
|
+
export interface RemoteDegradedReadPolicy {
|
|
81
|
+
mode?: string;
|
|
82
|
+
integrations: string[];
|
|
83
|
+
maxAgeMinutes?: number;
|
|
84
|
+
queuePrimaryRefresh?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export declare function resolveConnectorsServiceConfig(config?: ConnectorsServiceConfig | false): ResolvedConnectorsServiceConfig | null;
|
|
87
|
+
export declare function listRemoteConnections(workspaceId?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteConnectorConnection[]>;
|
|
88
|
+
export declare function getRemoteConnection(connectionId?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteConnectorConnection | null>;
|
|
89
|
+
export declare function registerRemoteConnection(input: RegisterRemoteConnectionInput, configInput?: ConnectorsServiceConfig | false): Promise<RemoteConnectorConnection | null>;
|
|
90
|
+
export declare function refreshRemoteConnection(connectionId?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteConnectorConnection | null>;
|
|
91
|
+
export declare function revokeRemoteConnection(connectionId?: string, configInput?: ConnectorsServiceConfig | false): Promise<boolean>;
|
|
92
|
+
export declare function getRemoteConnectionHealth(connectionId?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteConnectionHealth | null>;
|
|
93
|
+
export declare function resolveRemoteSourceOfTruth(workspaceId?: string, area?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteSourceOfTruthResolution | null>;
|
|
94
|
+
export declare function setRemoteSourceOfTruthPolicy(input: SetRemoteSourceOfTruthPolicyInput, configInput?: ConnectorsServiceConfig | false): Promise<RemoteSourceOfTruthPolicy | null>;
|
|
95
|
+
export declare function getRemoteDegradedReadPolicy(workspaceId?: string, configInput?: ConnectorsServiceConfig | false): Promise<RemoteDegradedReadPolicy | null>;
|
|
96
|
+
export declare function getRemoteConnectionCapabilities(connectionId?: string, configInput?: ConnectorsServiceConfig | false): Promise<string[]>;
|
|
97
|
+
export declare function resetConnectorsDownstreamForTests(): void;
|
|
98
|
+
//# sourceMappingURL=service-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-client.d.ts","sourceRoot":"","sources":["../../src/connectors/service-client.ts"],"names":[],"mappings":"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"}
|