@evalops/maestro 0.10.50 → 0.10.53
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 +1 -3
- package/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +1 -1
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/context-handoff.d.ts.map +1 -1
- package/dist/agent/context-handoff.js +2 -1
- package/dist/agent/context-handoff.js.map +1 -1
- package/dist/agent/index.d.ts +8 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +8 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +3 -3
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +66 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/oracle-consultation-policy.d.ts +22 -0
- package/dist/agent/oracle-consultation-policy.d.ts.map +1 -0
- package/dist/agent/oracle-consultation-policy.js +72 -0
- package/dist/agent/oracle-consultation-policy.js.map +1 -0
- package/dist/agent/oracle-policy-experiment.d.ts +27 -0
- package/dist/agent/oracle-policy-experiment.d.ts.map +1 -0
- package/dist/agent/oracle-policy-experiment.js +59 -0
- package/dist/agent/oracle-policy-experiment.js.map +1 -0
- package/dist/agent/oracle-policy-rollout.d.ts +42 -0
- package/dist/agent/oracle-policy-rollout.d.ts.map +1 -0
- package/dist/agent/oracle-policy-rollout.js +80 -0
- package/dist/agent/oracle-policy-rollout.js.map +1 -0
- package/dist/agent/plugin-agent-api.d.ts +13 -0
- package/dist/agent/plugin-agent-api.d.ts.map +1 -0
- package/dist/agent/plugin-agent-api.js +11 -0
- package/dist/agent/plugin-agent-api.js.map +1 -0
- package/dist/agent/plugin-agent-loader.d.ts +17 -0
- package/dist/agent/plugin-agent-loader.d.ts.map +1 -0
- package/dist/agent/plugin-agent-loader.js +81 -0
- package/dist/agent/plugin-agent-loader.js.map +1 -0
- package/dist/agent/plugin-agent-registry.d.ts +62 -0
- package/dist/agent/plugin-agent-registry.d.ts.map +1 -0
- package/dist/agent/plugin-agent-registry.js +109 -0
- package/dist/agent/plugin-agent-registry.js.map +1 -0
- package/dist/agent/profile-loader.d.ts +7 -0
- package/dist/agent/profile-loader.d.ts.map +1 -0
- package/dist/agent/profile-loader.js +115 -0
- package/dist/agent/profile-loader.js.map +1 -0
- package/dist/agent/profiles.d.ts +30 -0
- package/dist/agent/profiles.d.ts.map +1 -0
- package/dist/agent/profiles.js +146 -0
- package/dist/agent/profiles.js.map +1 -0
- package/dist/agent/prompt-cache.d.ts +0 -4
- package/dist/agent/prompt-cache.d.ts.map +1 -1
- package/dist/agent/prompt-cache.js +1 -7
- package/dist/agent/prompt-cache.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +204 -107
- package/dist/agent/providers/google.js +101 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +204 -107
- package/dist/agent/routing-receipt.d.ts +34 -0
- package/dist/agent/routing-receipt.d.ts.map +1 -0
- package/dist/agent/routing-receipt.js +55 -0
- package/dist/agent/routing-receipt.js.map +1 -0
- package/dist/agent/skill-artifact-metadata.d.ts +14 -0
- package/dist/agent/skill-artifact-metadata.d.ts.map +1 -0
- package/dist/agent/skill-artifact-metadata.js +49 -0
- package/dist/agent/skill-artifact-metadata.js.map +1 -0
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +5 -2
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +83 -10
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/token-counter.d.ts +40 -0
- package/dist/agent/token-counter.d.ts.map +1 -0
- package/dist/agent/token-counter.js +74 -0
- package/dist/agent/token-counter.js.map +1 -0
- package/dist/agent/transport/events.d.ts +1 -1
- package/dist/agent/transport/events.d.ts.map +1 -1
- package/dist/agent/transport/events.js +1 -1
- package/dist/agent/transport/events.js.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/types.d.ts +4 -2
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +2 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/app-server/session-api.d.ts.map +1 -1
- package/dist/app-server/session-api.js +15 -2
- package/dist/app-server/session-api.js.map +1 -1
- package/dist/audit/logger.d.ts +5 -5
- package/dist/cli/args.d.ts +4 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +33 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/direct-runtime-command.d.ts +1 -0
- package/dist/cli/direct-runtime-command.d.ts.map +1 -1
- package/dist/cli/direct-runtime-command.js +25 -3
- package/dist/cli/direct-runtime-command.js.map +1 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless.d.ts +3 -19
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +8 -619
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +13 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/native-tui-launcher.d.ts +126 -0
- package/dist/cli/native-tui-launcher.d.ts.map +1 -0
- package/dist/cli/native-tui-launcher.js +425 -0
- package/dist/cli/native-tui-launcher.js.map +1 -0
- package/dist/cli/rpc-mode.d.ts +3 -27
- package/dist/cli/rpc-mode.d.ts.map +1 -1
- package/dist/cli/rpc-mode.js +8 -177
- package/dist/cli/rpc-mode.js.map +1 -1
- package/dist/cli/session.d.ts +11 -19
- package/dist/cli/session.d.ts.map +1 -1
- package/dist/cli/session.js +6 -64
- package/dist/cli/session.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-command-runtime.d.ts.map +1 -1
- package/dist/cli-command-runtime.js +26 -24
- package/dist/cli-command-runtime.js.map +1 -1
- package/dist/cli-runtime.js +41729 -121859
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/config/env-vars.d.ts +12 -0
- package/dist/config/env-vars.d.ts.map +1 -1
- package/dist/config/env-vars.js +12 -0
- package/dist/config/env-vars.js.map +1 -1
- package/dist/config/ui-state.d.ts +32 -0
- package/dist/config/ui-state.d.ts.map +1 -0
- package/dist/config/ui-state.js +88 -0
- package/dist/config/ui-state.js.map +1 -0
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/context/repo-map.d.ts.map +1 -1
- package/dist/context/repo-map.js +1 -7
- package/dist/context/repo-map.js.map +1 -1
- package/dist/context/token-optimizer.d.ts.map +1 -1
- package/dist/context/token-optimizer.js +1 -8
- package/dist/context/token-optimizer.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/schema.d.ts +7 -3
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/hooks/notification-hooks.d.ts +1 -1
- package/dist/hooks/notification-hooks.d.ts.map +1 -1
- package/dist/hooks/notification-hooks.js.map +1 -1
- package/dist/hooks/tui-surface.d.ts +35 -0
- package/dist/hooks/tui-surface.d.ts.map +1 -0
- package/dist/hooks/tui-surface.js +11 -0
- package/dist/hooks/tui-surface.js.map +1 -0
- package/dist/hooks/types.d.ts +2 -1
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/hooks/types.js.map +1 -1
- package/dist/hooks/typescript-loader.d.ts.map +1 -1
- package/dist/hooks/typescript-loader.js.map +1 -1
- package/dist/hooks/ui-context.d.ts.map +1 -1
- package/dist/hooks/ui-context.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +201 -840
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts +5 -5
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +46 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +3 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +284 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +41 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +986 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/schemas.js +49 -0
- package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts +56 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js +86 -0
- package/dist/node_modules/@evalops/contracts/dist/token-estimation.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/packages/discovery.d.ts.map +1 -1
- package/dist/packages/discovery.js +1 -0
- package/dist/packages/discovery.js.map +1 -1
- package/dist/packages/inspection.d.ts.map +1 -1
- package/dist/packages/inspection.js +7 -1
- package/dist/packages/inspection.js.map +1 -1
- package/dist/packages/loader.d.ts.map +1 -1
- package/dist/packages/loader.js +8 -1
- package/dist/packages/loader.js.map +1 -1
- package/dist/packages/runtime.d.ts +1 -0
- package/dist/packages/runtime.d.ts.map +1 -1
- package/dist/packages/runtime.js +9 -1
- package/dist/packages/runtime.js.map +1 -1
- package/dist/packages/types.d.ts +6 -0
- package/dist/packages/types.d.ts.map +1 -1
- package/dist/packages/types.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/agent-runtime.d.ts +22 -6
- package/dist/runtime/agent-runtime.d.ts.map +1 -1
- package/dist/runtime/agent-runtime.js +1 -1
- package/dist/runtime/agent-runtime.js.map +1 -1
- package/dist/runtime/env.d.ts +10 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +64 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/runtime/prompt-queue.d.ts.map +1 -0
- package/dist/runtime/prompt-queue.js.map +1 -0
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/chat-ws.d.ts +2 -1
- package/dist/server/handlers/chat-ws.d.ts.map +1 -1
- package/dist/server/handlers/chat-ws.js +150 -5
- 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 +78 -5
- package/dist/server/handlers/chat.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/package.d.ts.map +1 -1
- package/dist/server/handlers/package.js +1 -0
- package/dist/server/handlers/package.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/queue.js +1 -1
- package/dist/server/handlers/queue.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/handlers/ui.js +1 -1
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/handlers/zen.js +1 -1
- package/dist/server/handlers/zen.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/hosted-session-manager.d.ts +3 -0
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +26 -0
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/model-selection.d.ts +1 -0
- package/dist/server/model-selection.d.ts.map +1 -1
- package/dist/server/model-selection.js +4 -0
- package/dist/server/model-selection.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +4 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/server/session-timeline.d.ts.map +1 -1
- package/dist/server/session-timeline.js +1 -1
- package/dist/server/session-timeline.js.map +1 -1
- package/dist/server/sse-session.d.ts +2 -0
- package/dist/server/sse-session.d.ts.map +1 -1
- package/dist/server/sse-session.js +3 -0
- package/dist/server/sse-session.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/server/utils/token-estimator.d.ts +2 -2
- package/dist/server/utils/token-estimator.d.ts.map +1 -1
- package/dist/server/utils/token-estimator.js +2 -12
- package/dist/server/utils/token-estimator.js.map +1 -1
- package/dist/server/validation.d.ts +54 -0
- package/dist/server/validation.d.ts.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/image-providers/cost.d.ts +70 -0
- package/dist/services/image-providers/cost.d.ts.map +1 -0
- package/dist/services/image-providers/cost.js +164 -0
- package/dist/services/image-providers/cost.js.map +1 -0
- package/dist/services/image-providers/flux.d.ts +40 -0
- package/dist/services/image-providers/flux.d.ts.map +1 -0
- package/dist/services/image-providers/flux.js +99 -0
- package/dist/services/image-providers/flux.js.map +1 -0
- package/dist/services/image-providers/index.d.ts +24 -0
- package/dist/services/image-providers/index.d.ts.map +1 -0
- package/dist/services/image-providers/index.js +27 -0
- package/dist/services/image-providers/index.js.map +1 -0
- package/dist/services/image-providers/masks.d.ts +51 -0
- package/dist/services/image-providers/masks.d.ts.map +1 -0
- package/dist/services/image-providers/masks.js +132 -0
- package/dist/services/image-providers/masks.js.map +1 -0
- package/dist/services/image-providers/openai.d.ts +35 -0
- package/dist/services/image-providers/openai.d.ts.map +1 -0
- package/dist/services/image-providers/openai.js +93 -0
- package/dist/services/image-providers/openai.js.map +1 -0
- package/dist/services/image-providers/types.d.ts +61 -0
- package/dist/services/image-providers/types.d.ts.map +1 -0
- package/dist/services/image-providers/types.js +17 -0
- package/dist/services/image-providers/types.js.map +1 -0
- package/dist/services/intelligent-router/index.d.ts +1 -0
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -0
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +1 -0
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +18 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/outcome.d.ts +19 -0
- package/dist/services/intelligent-router/outcome.d.ts.map +1 -0
- package/dist/services/intelligent-router/outcome.js +51 -0
- package/dist/services/intelligent-router/outcome.js.map +1 -0
- package/dist/services/intelligent-router/recorder.d.ts +2 -0
- package/dist/services/intelligent-router/recorder.d.ts.map +1 -1
- package/dist/services/intelligent-router/recorder.js +72 -1
- package/dist/services/intelligent-router/recorder.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts +1 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +60 -11
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +18 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/middleware.d.ts +2 -0
- package/dist/services/workspace-config/middleware.d.ts.map +1 -1
- package/dist/services/workspace-config/middleware.js +25 -28
- package/dist/services/workspace-config/middleware.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/session/agent-lineage-projection.d.ts +30 -0
- package/dist/session/agent-lineage-projection.d.ts.map +1 -0
- package/dist/session/agent-lineage-projection.js +109 -0
- package/dist/session/agent-lineage-projection.js.map +1 -0
- package/dist/session/manager.d.ts +3 -0
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +24 -0
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-graph-projection.d.ts +11 -0
- package/dist/session/session-graph-projection.d.ts.map +1 -1
- package/dist/session/session-graph-projection.js +28 -0
- package/dist/session/session-graph-projection.js.map +1 -1
- package/dist/session/types.d.ts +2 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
- package/dist/telemetry/oracle-policy.d.ts +6 -0
- package/dist/telemetry/oracle-policy.d.ts.map +1 -0
- package/dist/telemetry/oracle-policy.js +17 -0
- package/dist/telemetry/oracle-policy.js.map +1 -0
- package/dist/telemetry/wide-events.d.ts +1 -1
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/theme/theme.d.ts +2 -8
- package/dist/theme/theme.d.ts.map +1 -1
- package/dist/theme/theme.js +7 -0
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/tui-theme-helpers.d.ts +2 -1
- package/dist/theme/tui-theme-helpers.d.ts.map +1 -1
- package/dist/theme/tui-theme-helpers.js.map +1 -1
- package/dist/theme/tui-theme-types.d.ts +39 -0
- package/dist/theme/tui-theme-types.d.ts.map +1 -0
- package/dist/theme/tui-theme-types.js +10 -0
- package/dist/theme/tui-theme-types.js.map +1 -0
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/index.d.ts +199 -160
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lazy-registry.d.ts.map +1 -1
- package/dist/tools/lazy-registry.js +1 -0
- package/dist/tools/lazy-registry.js.map +1 -1
- package/dist/tools/oracle.d.ts +9 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +26 -24
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/painter.d.ts +73 -0
- package/dist/tools/painter.d.ts.map +1 -0
- package/dist/tools/painter.js +283 -0
- package/dist/tools/painter.js.map +1 -0
- package/dist/tools/typebox-tool.d.ts.map +1 -1
- package/dist/tools/typebox-tool.js +1 -1
- package/dist/tools/typebox-tool.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/terminal-image.d.ts +52 -0
- package/dist/utils/terminal-image.d.ts.map +1 -0
- package/dist/utils/terminal-image.js +95 -0
- package/dist/utils/terminal-image.js.map +1 -0
- package/dist/utils/terminal-text.d.ts +11 -0
- package/dist/utils/terminal-text.d.ts.map +1 -0
- package/dist/utils/terminal-text.js +21 -0
- package/dist/utils/terminal-text.js.map +1 -0
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +24 -2
- package/dist/web-server.js.map +1 -1
- package/package.json +312 -306
- package/skills/incident-triage/SKILL.md +20 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
- package/dist/cli/commands/agents.d.ts +0 -20
- package/dist/cli/commands/agents.d.ts.map +0 -1
- package/dist/cli/commands/agents.js +0 -280
- package/dist/cli/commands/agents.js.map +0 -1
- package/dist/cli/commands/anthropic.d.ts +0 -2
- package/dist/cli/commands/anthropic.d.ts.map +0 -1
- package/dist/cli/commands/anthropic.js +0 -6
- package/dist/cli/commands/anthropic.js.map +0 -1
- package/dist/cli/commands/cost.d.ts +0 -13
- package/dist/cli/commands/cost.d.ts.map +0 -1
- package/dist/cli/commands/cost.js +0 -143
- package/dist/cli/commands/cost.js.map +0 -1
- package/dist/cli/commands/exec-constants.d.ts +0 -3
- package/dist/cli/commands/exec-constants.d.ts.map +0 -1
- package/dist/cli/commands/exec-constants.js +0 -3
- package/dist/cli/commands/exec-constants.js.map +0 -1
- package/dist/cli/commands/exec.d.ts +0 -19
- package/dist/cli/commands/exec.d.ts.map +0 -1
- package/dist/cli/commands/exec.js +0 -207
- package/dist/cli/commands/exec.js.map +0 -1
- package/dist/cli/commands/hooks.d.ts +0 -2
- package/dist/cli/commands/hooks.d.ts.map +0 -1
- package/dist/cli/commands/hooks.js +0 -25
- package/dist/cli/commands/hooks.js.map +0 -1
- package/dist/cli/commands/hosted-runner.d.ts +0 -25
- package/dist/cli/commands/hosted-runner.d.ts.map +0 -1
- package/dist/cli/commands/hosted-runner.js +0 -278
- package/dist/cli/commands/hosted-runner.js.map +0 -1
- package/dist/cli/commands/memory.d.ts +0 -2
- package/dist/cli/commands/memory.d.ts.map +0 -1
- package/dist/cli/commands/memory.js +0 -208
- package/dist/cli/commands/memory.js.map +0 -1
- package/dist/cli/commands/models.d.ts +0 -3
- package/dist/cli/commands/models.d.ts.map +0 -1
- package/dist/cli/commands/models.js +0 -154
- package/dist/cli/commands/models.js.map +0 -1
- package/dist/cli/commands/modes.d.ts +0 -8
- package/dist/cli/commands/modes.d.ts.map +0 -1
- package/dist/cli/commands/modes.js +0 -151
- package/dist/cli/commands/modes.js.map +0 -1
- package/dist/cli/commands/openai.d.ts +0 -2
- package/dist/cli/commands/openai.d.ts.map +0 -1
- package/dist/cli/commands/openai.js +0 -116
- package/dist/cli/commands/openai.js.map +0 -1
- package/dist/cli/commands/session-transfer.d.ts +0 -5
- package/dist/cli/commands/session-transfer.d.ts.map +0 -1
- package/dist/cli/commands/session-transfer.js +0 -43
- package/dist/cli/commands/session-transfer.js.map +0 -1
- package/dist/cli/commands/sessions.d.ts +0 -8
- package/dist/cli/commands/sessions.d.ts.map +0 -1
- package/dist/cli/commands/sessions.js +0 -152
- package/dist/cli/commands/sessions.js.map +0 -1
- package/dist/cli/commands/skill.d.ts +0 -10
- package/dist/cli/commands/skill.d.ts.map +0 -1
- package/dist/cli/commands/skill.js +0 -303
- package/dist/cli/commands/skill.js.map +0 -1
- package/dist/cli/commands/stats.d.ts +0 -7
- package/dist/cli/commands/stats.d.ts.map +0 -1
- package/dist/cli/commands/stats.js +0 -167
- package/dist/cli/commands/stats.js.map +0 -1
- package/dist/cli/commands/status.d.ts +0 -2
- package/dist/cli/commands/status.d.ts.map +0 -1
- package/dist/cli/commands/status.js +0 -11
- package/dist/cli/commands/status.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -12
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -148
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli-tui/about-view.d.ts +0 -48
- package/dist/cli-tui/about-view.d.ts.map +0 -1
- package/dist/cli-tui/about-view.js +0 -206
- package/dist/cli-tui/about-view.js.map +0 -1
- package/dist/cli-tui/agent-event-router.d.ts +0 -28
- package/dist/cli-tui/agent-event-router.d.ts.map +0 -1
- package/dist/cli-tui/agent-event-router.js +0 -126
- package/dist/cli-tui/agent-event-router.js.map +0 -1
- package/dist/cli-tui/approval/approval-controller.d.ts +0 -28
- package/dist/cli-tui/approval/approval-controller.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-controller.js +0 -99
- package/dist/cli-tui/approval/approval-controller.js.map +0 -1
- package/dist/cli-tui/approval/approval-modal.d.ts +0 -26
- package/dist/cli-tui/approval/approval-modal.d.ts.map +0 -1
- package/dist/cli-tui/approval/approval-modal.js +0 -143
- package/dist/cli-tui/approval/approval-modal.js.map +0 -1
- package/dist/cli-tui/assistant-message.d.ts +0 -41
- package/dist/cli-tui/assistant-message.d.ts.map +0 -1
- package/dist/cli-tui/assistant-message.js +0 -236
- package/dist/cli-tui/assistant-message.js.map +0 -1
- package/dist/cli-tui/auth-state.d.ts +0 -7
- package/dist/cli-tui/auth-state.d.ts.map +0 -1
- package/dist/cli-tui/auth-state.js +0 -46
- package/dist/cli-tui/auth-state.js.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.d.ts +0 -31
- package/dist/cli-tui/background/background-tasks-controller.d.ts.map +0 -1
- package/dist/cli-tui/background/background-tasks-controller.js +0 -84
- package/dist/cli-tui/background/background-tasks-controller.js.map +0 -1
- package/dist/cli-tui/base-view.d.ts +0 -111
- package/dist/cli-tui/base-view.d.ts.map +0 -1
- package/dist/cli-tui/base-view.js +0 -145
- package/dist/cli-tui/base-view.js.map +0 -1
- package/dist/cli-tui/bash/background-launcher.d.ts +0 -14
- package/dist/cli-tui/bash/background-launcher.d.ts.map +0 -1
- package/dist/cli-tui/bash/background-launcher.js +0 -50
- package/dist/cli-tui/bash/background-launcher.js.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.d.ts +0 -40
- package/dist/cli-tui/bash/bash-autocomplete.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-autocomplete.js +0 -347
- package/dist/cli-tui/bash/bash-autocomplete.js.map +0 -1
- package/dist/cli-tui/bash/bash-history.d.ts +0 -21
- package/dist/cli-tui/bash/bash-history.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-history.js +0 -72
- package/dist/cli-tui/bash/bash-history.js.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.d.ts +0 -5
- package/dist/cli-tui/bash/bash-syntax.d.ts.map +0 -1
- package/dist/cli-tui/bash/bash-syntax.js +0 -176
- package/dist/cli-tui/bash/bash-syntax.js.map +0 -1
- package/dist/cli-tui/bash/index.d.ts +0 -4
- package/dist/cli-tui/bash/index.d.ts.map +0 -1
- package/dist/cli-tui/bash/index.js +0 -4
- package/dist/cli-tui/bash/index.js.map +0 -1
- package/dist/cli-tui/bash-mode-view.d.ts +0 -86
- package/dist/cli-tui/bash-mode-view.d.ts.map +0 -1
- package/dist/cli-tui/bash-mode-view.js +0 -560
- package/dist/cli-tui/bash-mode-view.js.map +0 -1
- package/dist/cli-tui/bash-shell-block.d.ts +0 -50
- package/dist/cli-tui/bash-shell-block.d.ts.map +0 -1
- package/dist/cli-tui/bash-shell-block.js +0 -119
- package/dist/cli-tui/bash-shell-block.js.map +0 -1
- package/dist/cli-tui/changelog-view.d.ts +0 -13
- package/dist/cli-tui/changelog-view.d.ts.map +0 -1
- package/dist/cli-tui/changelog-view.js +0 -34
- package/dist/cli-tui/changelog-view.js.map +0 -1
- package/dist/cli-tui/clean-mode.d.ts +0 -13
- package/dist/cli-tui/clean-mode.d.ts.map +0 -1
- package/dist/cli-tui/clean-mode.js +0 -32
- package/dist/cli-tui/clean-mode.js.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts +0 -41
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +0 -862
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts +0 -33
- package/dist/cli-tui/client-tools/local-client-tool-service.d.ts.map +0 -1
- package/dist/cli-tui/client-tools/local-client-tool-service.js +0 -94
- package/dist/cli-tui/client-tools/local-client-tool-service.js.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts +0 -7
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/a2a-handlers.js +0 -215
- package/dist/cli-tui/commands/a2a-handlers.js.map +0 -1
- package/dist/cli-tui/commands/access-command.d.ts +0 -3
- package/dist/cli-tui/commands/access-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/access-command.js +0 -89
- package/dist/cli-tui/commands/access-command.js.map +0 -1
- package/dist/cli-tui/commands/argument-parser.d.ts +0 -12
- package/dist/cli-tui/commands/argument-parser.d.ts.map +0 -1
- package/dist/cli-tui/commands/argument-parser.js +0 -135
- package/dist/cli-tui/commands/argument-parser.js.map +0 -1
- package/dist/cli-tui/commands/audit-command.d.ts +0 -5
- package/dist/cli-tui/commands/audit-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/audit-command.js +0 -35
- package/dist/cli-tui/commands/audit-command.js.map +0 -1
- package/dist/cli-tui/commands/background-handlers.d.ts +0 -14
- package/dist/cli-tui/commands/background-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/background-handlers.js +0 -115
- package/dist/cli-tui/commands/background-handlers.js.map +0 -1
- package/dist/cli-tui/commands/command-catalog.d.ts +0 -29
- package/dist/cli-tui/commands/command-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-catalog.js +0 -666
- package/dist/cli-tui/commands/command-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.d.ts +0 -12
- package/dist/cli-tui/commands/command-registry-adapter.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-registry-adapter.js +0 -129
- package/dist/cli-tui/commands/command-registry-adapter.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.d.ts +0 -14
- package/dist/cli-tui/commands/command-suite-catalog.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-catalog.js +0 -147
- package/dist/cli-tui/commands/command-suite-catalog.js.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.d.ts +0 -111
- package/dist/cli-tui/commands/command-suite-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/command-suite-handlers.js +0 -110
- package/dist/cli-tui/commands/command-suite-handlers.js.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.d.ts +0 -8
- package/dist/cli-tui/commands/composer-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/composer-handlers.js +0 -90
- package/dist/cli-tui/commands/composer-handlers.js.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.d.ts +0 -18
- package/dist/cli-tui/commands/framework-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/framework-handlers.js +0 -57
- package/dist/cli-tui/commands/framework-handlers.js.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.d.ts +0 -20
- package/dist/cli-tui/commands/guardian-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/guardian-handlers.js +0 -48
- package/dist/cli-tui/commands/guardian-handlers.js.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts +0 -32
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +0 -1
- package/dist/cli-tui/commands/handlers/mode-handler.js +0 -153
- package/dist/cli-tui/commands/handlers/mode-handler.js.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.d.ts +0 -8
- package/dist/cli-tui/commands/hotkeys-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/hotkeys-command.js +0 -61
- package/dist/cli-tui/commands/hotkeys-command.js.map +0 -1
- package/dist/cli-tui/commands/limits-command.d.ts +0 -3
- package/dist/cli-tui/commands/limits-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/limits-command.js +0 -88
- package/dist/cli-tui/commands/limits-command.js.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.d.ts +0 -12
- package/dist/cli-tui/commands/mcp-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/mcp-handlers.js +0 -1306
- package/dist/cli-tui/commands/mcp-handlers.js.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.d.ts +0 -28
- package/dist/cli-tui/commands/memory-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/memory-handlers.js +0 -414
- package/dist/cli-tui/commands/memory-handlers.js.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.d.ts +0 -11
- package/dist/cli-tui/commands/otel-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/otel-handlers.js +0 -20
- package/dist/cli-tui/commands/otel-handlers.js.map +0 -1
- package/dist/cli-tui/commands/package-handlers.d.ts +0 -30
- package/dist/cli-tui/commands/package-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/package-handlers.js +0 -499
- package/dist/cli-tui/commands/package-handlers.js.map +0 -1
- package/dist/cli-tui/commands/pii-command.d.ts +0 -3
- package/dist/cli-tui/commands/pii-command.d.ts.map +0 -1
- package/dist/cli-tui/commands/pii-command.js +0 -54
- package/dist/cli-tui/commands/pii-command.js.map +0 -1
- package/dist/cli-tui/commands/registry.d.ts +0 -3
- package/dist/cli-tui/commands/registry.d.ts.map +0 -1
- package/dist/cli-tui/commands/registry.js +0 -36
- package/dist/cli-tui/commands/registry.js.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.d.ts +0 -36
- package/dist/cli-tui/commands/safety-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/safety-handlers.js +0 -62
- package/dist/cli-tui/commands/safety-handlers.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/auth-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/auth-commands.js +0 -79
- package/dist/cli-tui/commands/subcommands/auth-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts +0 -23
- package/dist/cli-tui/commands/subcommands/config-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/config-commands.js +0 -61
- package/dist/cli-tui/commands/subcommands/config-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts +0 -46
- package/dist/cli-tui/commands/subcommands/diag-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/diag-commands.js +0 -163
- package/dist/cli-tui/commands/subcommands/diag-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/git-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/git-commands.js +0 -50
- package/dist/cli-tui/commands/subcommands/git-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.d.ts +0 -18
- package/dist/cli-tui/commands/subcommands/index.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/index.js +0 -18
- package/dist/cli-tui/commands/subcommands/index.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts +0 -26
- package/dist/cli-tui/commands/subcommands/safety-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/safety-commands.js +0 -149
- package/dist/cli-tui/commands/subcommands/safety-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts +0 -36
- package/dist/cli-tui/commands/subcommands/session-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/session-commands.js +0 -112
- package/dist/cli-tui/commands/subcommands/session-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts +0 -27
- package/dist/cli-tui/commands/subcommands/tools-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/tools-commands.js +0 -80
- package/dist/cli-tui/commands/subcommands/tools-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +0 -30
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts +0 -25
- package/dist/cli-tui/commands/subcommands/undo-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/undo-commands.js +0 -74
- package/dist/cli-tui/commands/subcommands/undo-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts +0 -19
- package/dist/cli-tui/commands/subcommands/usage-commands.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/usage-commands.js +0 -63
- package/dist/cli-tui/commands/subcommands/usage-commands.js.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.d.ts +0 -127
- package/dist/cli-tui/commands/subcommands/utils.d.ts.map +0 -1
- package/dist/cli-tui/commands/subcommands/utils.js +0 -395
- package/dist/cli-tui/commands/subcommands/utils.js.map +0 -1
- package/dist/cli-tui/commands/types.d.ts +0 -105
- package/dist/cli-tui/commands/types.d.ts.map +0 -1
- package/dist/cli-tui/commands/types.js +0 -2
- package/dist/cli-tui/commands/types.js.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts +0 -29
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/undo-handlers.js +0 -300
- package/dist/cli-tui/commands/undo-handlers.js.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.d.ts +0 -55
- package/dist/cli-tui/commands/utility-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/utility-handlers.js +0 -137
- package/dist/cli-tui/commands/utility-handlers.js.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.d.ts +0 -22
- package/dist/cli-tui/commands/workflow-handlers.d.ts.map +0 -1
- package/dist/cli-tui/commands/workflow-handlers.js +0 -227
- package/dist/cli-tui/commands/workflow-handlers.js.map +0 -1
- package/dist/cli-tui/compact-boundary-message.d.ts +0 -9
- package/dist/cli-tui/compact-boundary-message.d.ts.map +0 -1
- package/dist/cli-tui/compact-boundary-message.js +0 -18
- package/dist/cli-tui/compact-boundary-message.js.map +0 -1
- package/dist/cli-tui/compaction-recovery.d.ts +0 -6
- package/dist/cli-tui/compaction-recovery.d.ts.map +0 -1
- package/dist/cli-tui/compaction-recovery.js +0 -13
- package/dist/cli-tui/compaction-recovery.js.map +0 -1
- package/dist/cli-tui/config-view.d.ts +0 -30
- package/dist/cli-tui/config-view.d.ts.map +0 -1
- package/dist/cli-tui/config-view.js +0 -255
- package/dist/cli-tui/config-view.js.map +0 -1
- package/dist/cli-tui/context-view.d.ts +0 -20
- package/dist/cli-tui/context-view.d.ts.map +0 -1
- package/dist/cli-tui/context-view.js +0 -191
- package/dist/cli-tui/context-view.js.map +0 -1
- package/dist/cli-tui/custom-editor.d.ts +0 -25
- package/dist/cli-tui/custom-editor.d.ts.map +0 -1
- package/dist/cli-tui/custom-editor.js +0 -241
- package/dist/cli-tui/custom-editor.js.map +0 -1
- package/dist/cli-tui/editor-view.d.ts +0 -34
- package/dist/cli-tui/editor-view.d.ts.map +0 -1
- package/dist/cli-tui/editor-view.js +0 -102
- package/dist/cli-tui/editor-view.js.map +0 -1
- package/dist/cli-tui/feedback-view.d.ts +0 -35
- package/dist/cli-tui/feedback-view.d.ts.map +0 -1
- package/dist/cli-tui/feedback-view.js +0 -271
- package/dist/cli-tui/feedback-view.js.map +0 -1
- package/dist/cli-tui/footer.d.ts +0 -56
- package/dist/cli-tui/footer.d.ts.map +0 -1
- package/dist/cli-tui/footer.js +0 -228
- package/dist/cli-tui/footer.js.map +0 -1
- package/dist/cli-tui/git/commit-modal.d.ts +0 -14
- package/dist/cli-tui/git/commit-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/commit-modal.js +0 -56
- package/dist/cli-tui/git/commit-modal.js.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.d.ts +0 -40
- package/dist/cli-tui/git/git-preview-modal.d.ts.map +0 -1
- package/dist/cli-tui/git/git-preview-modal.js +0 -123
- package/dist/cli-tui/git/git-preview-modal.js.map +0 -1
- package/dist/cli-tui/git/git-view.d.ts +0 -65
- package/dist/cli-tui/git/git-view.d.ts.map +0 -1
- package/dist/cli-tui/git/git-view.js +0 -529
- package/dist/cli-tui/git/git-view.js.map +0 -1
- package/dist/cli-tui/history/history-config.d.ts +0 -7
- package/dist/cli-tui/history/history-config.d.ts.map +0 -1
- package/dist/cli-tui/history/history-config.js +0 -49
- package/dist/cli-tui/history/history-config.js.map +0 -1
- package/dist/cli-tui/history/prompt-history.d.ts +0 -33
- package/dist/cli-tui/history/prompt-history.d.ts.map +0 -1
- package/dist/cli-tui/history/prompt-history.js +0 -185
- package/dist/cli-tui/history/prompt-history.js.map +0 -1
- package/dist/cli-tui/history/tool-history.d.ts +0 -50
- package/dist/cli-tui/history/tool-history.d.ts.map +0 -1
- package/dist/cli-tui/history/tool-history.js +0 -253
- package/dist/cli-tui/history/tool-history.js.map +0 -1
- package/dist/cli-tui/hook-message.d.ts +0 -13
- package/dist/cli-tui/hook-message.d.ts.map +0 -1
- package/dist/cli-tui/hook-message.js +0 -56
- package/dist/cli-tui/hook-message.js.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.d.ts +0 -22
- package/dist/cli-tui/hooks/hook-input-modal.d.ts.map +0 -1
- package/dist/cli-tui/hooks/hook-input-modal.js +0 -63
- package/dist/cli-tui/hooks/hook-input-modal.js.map +0 -1
- package/dist/cli-tui/hotkeys-view.d.ts +0 -13
- package/dist/cli-tui/hotkeys-view.d.ts.map +0 -1
- package/dist/cli-tui/hotkeys-view.js +0 -96
- package/dist/cli-tui/hotkeys-view.js.map +0 -1
- package/dist/cli-tui/import-view.d.ts +0 -28
- package/dist/cli-tui/import-view.d.ts.map +0 -1
- package/dist/cli-tui/import-view.js +0 -184
- package/dist/cli-tui/import-view.js.map +0 -1
- package/dist/cli-tui/info-view.d.ts +0 -18
- package/dist/cli-tui/info-view.d.ts.map +0 -1
- package/dist/cli-tui/info-view.js +0 -107
- package/dist/cli-tui/info-view.js.map +0 -1
- package/dist/cli-tui/instruction-panel.d.ts +0 -11
- package/dist/cli-tui/instruction-panel.d.ts.map +0 -1
- package/dist/cli-tui/instruction-panel.js +0 -86
- package/dist/cli-tui/instruction-panel.js.map +0 -1
- package/dist/cli-tui/interrupt-controller.d.ts +0 -78
- package/dist/cli-tui/interrupt-controller.d.ts.map +0 -1
- package/dist/cli-tui/interrupt-controller.js +0 -104
- package/dist/cli-tui/interrupt-controller.js.map +0 -1
- package/dist/cli-tui/keybindings-config.d.ts +0 -27
- package/dist/cli-tui/keybindings-config.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-config.js +0 -372
- package/dist/cli-tui/keybindings-config.js.map +0 -1
- package/dist/cli-tui/keybindings-watcher.d.ts +0 -8
- package/dist/cli-tui/keybindings-watcher.d.ts.map +0 -1
- package/dist/cli-tui/keybindings-watcher.js +0 -56
- package/dist/cli-tui/keybindings-watcher.js.map +0 -1
- package/dist/cli-tui/keybindings.d.ts +0 -13
- package/dist/cli-tui/keybindings.d.ts.map +0 -1
- package/dist/cli-tui/keybindings.js +0 -223
- package/dist/cli-tui/keybindings.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.d.ts +0 -43
- package/dist/cli-tui/loader/loader-stage-manager.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-manager.js +0 -241
- package/dist/cli-tui/loader/loader-stage-manager.js.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts +0 -14
- package/dist/cli-tui/loader/loader-stage-telemetry.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-stage-telemetry.js +0 -34
- package/dist/cli-tui/loader/loader-stage-telemetry.js.map +0 -1
- package/dist/cli-tui/loader/loader-view.d.ts +0 -41
- package/dist/cli-tui/loader/loader-view.d.ts.map +0 -1
- package/dist/cli-tui/loader/loader-view.js +0 -162
- package/dist/cli-tui/loader/loader-view.js.map +0 -1
- package/dist/cli-tui/lsp-view.d.ts +0 -21
- package/dist/cli-tui/lsp-view.d.ts.map +0 -1
- package/dist/cli-tui/lsp-view.js +0 -183
- package/dist/cli-tui/lsp-view.js.map +0 -1
- package/dist/cli-tui/mermaid-renderer.d.ts +0 -2
- package/dist/cli-tui/mermaid-renderer.d.ts.map +0 -1
- package/dist/cli-tui/mermaid-renderer.js +0 -391
- package/dist/cli-tui/mermaid-renderer.js.map +0 -1
- package/dist/cli-tui/message-view.d.ts +0 -27
- package/dist/cli-tui/message-view.d.ts.map +0 -1
- package/dist/cli-tui/message-view.js +0 -169
- package/dist/cli-tui/message-view.js.map +0 -1
- package/dist/cli-tui/modal-manager.d.ts +0 -77
- package/dist/cli-tui/modal-manager.d.ts.map +0 -1
- package/dist/cli-tui/modal-manager.js +0 -131
- package/dist/cli-tui/modal-manager.js.map +0 -1
- package/dist/cli-tui/notification-view.d.ts +0 -16
- package/dist/cli-tui/notification-view.d.ts.map +0 -1
- package/dist/cli-tui/notification-view.js +0 -53
- package/dist/cli-tui/notification-view.js.map +0 -1
- package/dist/cli-tui/oauth/index.d.ts +0 -2
- package/dist/cli-tui/oauth/index.d.ts.map +0 -1
- package/dist/cli-tui/oauth/index.js +0 -2
- package/dist/cli-tui/oauth/index.js.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts +0 -65
- package/dist/cli-tui/oauth/oauth-flow-controller.d.ts.map +0 -1
- package/dist/cli-tui/oauth/oauth-flow-controller.js +0 -400
- package/dist/cli-tui/oauth/oauth-flow-controller.js.map +0 -1
- package/dist/cli-tui/ollama-view.d.ts +0 -38
- package/dist/cli-tui/ollama-view.d.ts.map +0 -1
- package/dist/cli-tui/ollama-view.js +0 -395
- package/dist/cli-tui/ollama-view.js.map +0 -1
- package/dist/cli-tui/paste/index.d.ts +0 -2
- package/dist/cli-tui/paste/index.d.ts.map +0 -1
- package/dist/cli-tui/paste/index.js +0 -2
- package/dist/cli-tui/paste/index.js.map +0 -1
- package/dist/cli-tui/paste/paste-handler.d.ts +0 -54
- package/dist/cli-tui/paste/paste-handler.d.ts.map +0 -1
- package/dist/cli-tui/paste/paste-handler.js +0 -128
- package/dist/cli-tui/paste/paste-handler.js.map +0 -1
- package/dist/cli-tui/plan/plan-controller.d.ts +0 -28
- package/dist/cli-tui/plan/plan-controller.d.ts.map +0 -1
- package/dist/cli-tui/plan/plan-controller.js +0 -66
- package/dist/cli-tui/plan/plan-controller.js.map +0 -1
- package/dist/cli-tui/plan-panel-modal.d.ts +0 -28
- package/dist/cli-tui/plan-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/plan-panel-modal.js +0 -193
- package/dist/cli-tui/plan-panel-modal.js.map +0 -1
- package/dist/cli-tui/plan-view.d.ts +0 -57
- package/dist/cli-tui/plan-view.d.ts.map +0 -1
- package/dist/cli-tui/plan-view.js +0 -404
- package/dist/cli-tui/plan-view.js.map +0 -1
- package/dist/cli-tui/prompt-queue.d.ts.map +0 -1
- package/dist/cli-tui/prompt-queue.js.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts +0 -6
- package/dist/cli-tui/queue/follow-up-shortcut.d.ts.map +0 -1
- package/dist/cli-tui/queue/follow-up-shortcut.js +0 -12
- package/dist/cli-tui/queue/follow-up-shortcut.js.map +0 -1
- package/dist/cli-tui/queue/index.d.ts +0 -3
- package/dist/cli-tui/queue/index.d.ts.map +0 -1
- package/dist/cli-tui/queue/index.js +0 -3
- package/dist/cli-tui/queue/index.js.map +0 -1
- package/dist/cli-tui/queue/queue-controller.d.ts +0 -109
- package/dist/cli-tui/queue/queue-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-controller.js +0 -327
- package/dist/cli-tui/queue/queue-controller.js.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.d.ts +0 -34
- package/dist/cli-tui/queue/queue-panel-controller.d.ts.map +0 -1
- package/dist/cli-tui/queue/queue-panel-controller.js +0 -163
- package/dist/cli-tui/queue/queue-panel-controller.js.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts +0 -7
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.d.ts.map +0 -1
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js +0 -14
- package/dist/cli-tui/queue/queued-follow-up-edit-binding.js.map +0 -1
- package/dist/cli-tui/queue-panel-modal.d.ts +0 -26
- package/dist/cli-tui/queue-panel-modal.d.ts.map +0 -1
- package/dist/cli-tui/queue-panel-modal.js +0 -159
- package/dist/cli-tui/queue-panel-modal.js.map +0 -1
- package/dist/cli-tui/run/run-command-view.d.ts +0 -17
- package/dist/cli-tui/run/run-command-view.d.ts.map +0 -1
- package/dist/cli-tui/run/run-command-view.js +0 -62
- package/dist/cli-tui/run/run-command-view.js.map +0 -1
- package/dist/cli-tui/run/run-controller.d.ts +0 -24
- package/dist/cli-tui/run/run-controller.d.ts.map +0 -1
- package/dist/cli-tui/run/run-controller.js +0 -38
- package/dist/cli-tui/run/run-controller.js.map +0 -1
- package/dist/cli-tui/run/run-shell-command.d.ts +0 -13
- package/dist/cli-tui/run/run-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/run-shell-command.js +0 -51
- package/dist/cli-tui/run/run-shell-command.js.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts +0 -19
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +0 -1
- package/dist/cli-tui/run/streaming-shell-command.js +0 -107
- package/dist/cli-tui/run/streaming-shell-command.js.map +0 -1
- package/dist/cli-tui/search/file-search-view.d.ts +0 -22
- package/dist/cli-tui/search/file-search-view.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search-view.js +0 -68
- package/dist/cli-tui/search/file-search-view.js.map +0 -1
- package/dist/cli-tui/search/file-search.d.ts +0 -13
- package/dist/cli-tui/search/file-search.d.ts.map +0 -1
- package/dist/cli-tui/search/file-search.js +0 -52
- package/dist/cli-tui/search/file-search.js.map +0 -1
- package/dist/cli-tui/security-status.d.ts +0 -83
- package/dist/cli-tui/security-status.d.ts.map +0 -1
- package/dist/cli-tui/security-status.js +0 -214
- package/dist/cli-tui/security-status.js.map +0 -1
- package/dist/cli-tui/selectors/base-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/base-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/base-selector.js +0 -47
- package/dist/cli-tui/selectors/base-selector.js.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts +0 -18
- package/dist/cli-tui/selectors/branch-summary-modal.d.ts.map +0 -1
- package/dist/cli-tui/selectors/branch-summary-modal.js +0 -24
- package/dist/cli-tui/selectors/branch-summary-modal.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.d.ts +0 -22
- package/dist/cli-tui/selectors/model-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector-view.js +0 -31
- package/dist/cli-tui/selectors/model-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/model-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/model-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/model-selector.js +0 -218
- package/dist/cli-tui/selectors/model-selector.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/oauth-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector-view.js +0 -28
- package/dist/cli-tui/selectors/oauth-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.d.ts +0 -19
- package/dist/cli-tui/selectors/oauth-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/oauth-selector.js +0 -120
- package/dist/cli-tui/selectors/oauth-selector.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/queue-mode-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector-view.js +0 -29
- package/dist/cli-tui/selectors/queue-mode-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts +0 -5
- package/dist/cli-tui/selectors/queue-mode-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/queue-mode-selector.js +0 -34
- package/dist/cli-tui/selectors/queue-mode-selector.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.d.ts +0 -17
- package/dist/cli-tui/selectors/report-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector-view.js +0 -29
- package/dist/cli-tui/selectors/report-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/report-selector.d.ts +0 -7
- package/dist/cli-tui/selectors/report-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/report-selector.js +0 -31
- package/dist/cli-tui/selectors/report-selector.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.d.ts +0 -19
- package/dist/cli-tui/selectors/theme-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector-view.js +0 -41
- package/dist/cli-tui/selectors/theme-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.d.ts +0 -14
- package/dist/cli-tui/selectors/theme-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/theme-selector.js +0 -46
- package/dist/cli-tui/selectors/theme-selector.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts +0 -20
- package/dist/cli-tui/selectors/thinking-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector-view.js +0 -31
- package/dist/cli-tui/selectors/thinking-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.d.ts +0 -9
- package/dist/cli-tui/selectors/thinking-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/thinking-selector.js +0 -47
- package/dist/cli-tui/selectors/thinking-selector.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.d.ts +0 -32
- package/dist/cli-tui/selectors/tree-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector-view.js +0 -407
- package/dist/cli-tui/selectors/tree-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.d.ts +0 -27
- package/dist/cli-tui/selectors/tree-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/tree-selector.js +0 -194
- package/dist/cli-tui/selectors/tree-selector.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts +0 -25
- package/dist/cli-tui/selectors/user-message-selector-view.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector-view.js +0 -101
- package/dist/cli-tui/selectors/user-message-selector-view.js.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.d.ts +0 -30
- package/dist/cli-tui/selectors/user-message-selector.d.ts.map +0 -1
- package/dist/cli-tui/selectors/user-message-selector.js +0 -114
- package/dist/cli-tui/selectors/user-message-selector.js.map +0 -1
- package/dist/cli-tui/session/branch-controller.d.ts +0 -65
- package/dist/cli-tui/session/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/branch-controller.js +0 -125
- package/dist/cli-tui/session/branch-controller.js.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.d.ts +0 -64
- package/dist/cli-tui/session/conversation-compactor.d.ts.map +0 -1
- package/dist/cli-tui/session/conversation-compactor.js +0 -77
- package/dist/cli-tui/session/conversation-compactor.js.map +0 -1
- package/dist/cli-tui/session/session-context.d.ts +0 -59
- package/dist/cli-tui/session/session-context.d.ts.map +0 -1
- package/dist/cli-tui/session/session-context.js +0 -79
- package/dist/cli-tui/session/session-context.js.map +0 -1
- package/dist/cli-tui/session/session-data-provider.d.ts +0 -23
- package/dist/cli-tui/session/session-data-provider.d.ts.map +0 -1
- package/dist/cli-tui/session/session-data-provider.js +0 -22
- package/dist/cli-tui/session/session-data-provider.js.map +0 -1
- package/dist/cli-tui/session/session-list.d.ts +0 -18
- package/dist/cli-tui/session/session-list.d.ts.map +0 -1
- package/dist/cli-tui/session/session-list.js +0 -103
- package/dist/cli-tui/session/session-list.js.map +0 -1
- package/dist/cli-tui/session/session-selector.d.ts +0 -12
- package/dist/cli-tui/session/session-selector.d.ts.map +0 -1
- package/dist/cli-tui/session/session-selector.js +0 -37
- package/dist/cli-tui/session/session-selector.js.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.d.ts +0 -24
- package/dist/cli-tui/session/session-summary-controller.d.ts.map +0 -1
- package/dist/cli-tui/session/session-summary-controller.js +0 -96
- package/dist/cli-tui/session/session-summary-controller.js.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.d.ts +0 -20
- package/dist/cli-tui/session/session-switcher-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher-view.js +0 -43
- package/dist/cli-tui/session/session-switcher-view.js.map +0 -1
- package/dist/cli-tui/session/session-switcher.d.ts +0 -38
- package/dist/cli-tui/session/session-switcher.d.ts.map +0 -1
- package/dist/cli-tui/session/session-switcher.js +0 -204
- package/dist/cli-tui/session/session-switcher.js.map +0 -1
- package/dist/cli-tui/session/session-view.d.ts +0 -46
- package/dist/cli-tui/session/session-view.d.ts.map +0 -1
- package/dist/cli-tui/session/session-view.js +0 -311
- package/dist/cli-tui/session/session-view.js.map +0 -1
- package/dist/cli-tui/slash/index.d.ts +0 -2
- package/dist/cli-tui/slash/index.d.ts.map +0 -1
- package/dist/cli-tui/slash/index.js +0 -2
- package/dist/cli-tui/slash/index.js.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.d.ts +0 -55
- package/dist/cli-tui/slash/slash-command-matcher.d.ts.map +0 -1
- package/dist/cli-tui/slash/slash-command-matcher.js +0 -113
- package/dist/cli-tui/slash/slash-command-matcher.js.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.d.ts +0 -5
- package/dist/cli-tui/smart-autocomplete-provider.d.ts.map +0 -1
- package/dist/cli-tui/smart-autocomplete-provider.js +0 -44
- package/dist/cli-tui/smart-autocomplete-provider.js.map +0 -1
- package/dist/cli-tui/startup-announcements.d.ts +0 -15
- package/dist/cli-tui/startup-announcements.d.ts.map +0 -1
- package/dist/cli-tui/startup-announcements.js +0 -75
- package/dist/cli-tui/startup-announcements.js.map +0 -1
- package/dist/cli-tui/status/cost-view.d.ts +0 -27
- package/dist/cli-tui/status/cost-view.d.ts.map +0 -1
- package/dist/cli-tui/status/cost-view.js +0 -212
- package/dist/cli-tui/status/cost-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.d.ts +0 -34
- package/dist/cli-tui/status/diagnostics-templates.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-templates.js +0 -167
- package/dist/cli-tui/status/diagnostics-templates.js.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.d.ts +0 -48
- package/dist/cli-tui/status/diagnostics-view.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics-view.js +0 -249
- package/dist/cli-tui/status/diagnostics-view.js.map +0 -1
- package/dist/cli-tui/status/diagnostics.d.ts +0 -39
- package/dist/cli-tui/status/diagnostics.d.ts.map +0 -1
- package/dist/cli-tui/status/diagnostics.js +0 -286
- package/dist/cli-tui/status/diagnostics.js.map +0 -1
- package/dist/cli-tui/status/health-snapshot.d.ts +0 -17
- package/dist/cli-tui/status/health-snapshot.d.ts.map +0 -1
- package/dist/cli-tui/status/health-snapshot.js +0 -28
- package/dist/cli-tui/status/health-snapshot.js.map +0 -1
- package/dist/cli-tui/status/quota-view.d.ts +0 -37
- package/dist/cli-tui/status/quota-view.d.ts.map +0 -1
- package/dist/cli-tui/status/quota-view.js +0 -309
- package/dist/cli-tui/status/quota-view.js.map +0 -1
- package/dist/cli-tui/status/telemetry-view.d.ts +0 -23
- package/dist/cli-tui/status/telemetry-view.d.ts.map +0 -1
- package/dist/cli-tui/status/telemetry-view.js +0 -77
- package/dist/cli-tui/status/telemetry-view.js.map +0 -1
- package/dist/cli-tui/status/training-view.d.ts +0 -23
- package/dist/cli-tui/status/training-view.d.ts.map +0 -1
- package/dist/cli-tui/status/training-view.js +0 -71
- package/dist/cli-tui/status/training-view.js.map +0 -1
- package/dist/cli-tui/streaming-view.d.ts +0 -43
- package/dist/cli-tui/streaming-view.d.ts.map +0 -1
- package/dist/cli-tui/streaming-view.js +0 -176
- package/dist/cli-tui/streaming-view.js.map +0 -1
- package/dist/cli-tui/terminal/index.d.ts +0 -2
- package/dist/cli-tui/terminal/index.d.ts.map +0 -1
- package/dist/cli-tui/terminal/index.js +0 -2
- package/dist/cli-tui/terminal/index.js.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.d.ts +0 -44
- package/dist/cli-tui/terminal/terminal-utils.d.ts.map +0 -1
- package/dist/cli-tui/terminal/terminal-utils.js +0 -145
- package/dist/cli-tui/terminal/terminal-utils.js.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.d.ts +0 -19
- package/dist/cli-tui/tips/tip-scheduler.d.ts.map +0 -1
- package/dist/cli-tui/tips/tip-scheduler.js +0 -135
- package/dist/cli-tui/tips/tip-scheduler.js.map +0 -1
- package/dist/cli-tui/tool-execution.d.ts +0 -76
- package/dist/cli-tui/tool-execution.d.ts.map +0 -1
- package/dist/cli-tui/tool-execution.js +0 -217
- package/dist/cli-tui/tool-execution.js.map +0 -1
- package/dist/cli-tui/tool-output-view.d.ts +0 -22
- package/dist/cli-tui/tool-output-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-output-view.js +0 -71
- package/dist/cli-tui/tool-output-view.js.map +0 -1
- package/dist/cli-tui/tool-renderers/index.d.ts +0 -4
- package/dist/cli-tui/tool-renderers/index.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/index.js +0 -19
- package/dist/cli-tui/tool-renderers/index.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-bash.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-bash.js +0 -90
- package/dist/cli-tui/tool-renderers/render-bash.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.d.ts +0 -12
- package/dist/cli-tui/tool-renderers/render-batch.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-batch.js +0 -133
- package/dist/cli-tui/tool-renderers/render-batch.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-edit.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-edit.js +0 -125
- package/dist/cli-tui/tool-renderers/render-edit.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.d.ts +0 -6
- package/dist/cli-tui/tool-renderers/render-generic.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-generic.js +0 -66
- package/dist/cli-tui/tool-renderers/render-generic.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.d.ts +0 -9
- package/dist/cli-tui/tool-renderers/render-read.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-read.js +0 -108
- package/dist/cli-tui/tool-renderers/render-read.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.d.ts +0 -21
- package/dist/cli-tui/tool-renderers/render-style.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-style.js +0 -51
- package/dist/cli-tui/tool-renderers/render-style.js.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.d.ts +0 -5
- package/dist/cli-tui/tool-renderers/render-write.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/render-write.js +0 -60
- package/dist/cli-tui/tool-renderers/render-write.js.map +0 -1
- package/dist/cli-tui/tool-renderers/types.d.ts +0 -20
- package/dist/cli-tui/tool-renderers/types.d.ts.map +0 -1
- package/dist/cli-tui/tool-renderers/types.js +0 -2
- package/dist/cli-tui/tool-renderers/types.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts +0 -29
- package/dist/cli-tui/tool-retry/tool-retry-controller.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-controller.js +0 -110
- package/dist/cli-tui/tool-retry/tool-retry-controller.js.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts +0 -27
- package/dist/cli-tui/tool-retry/tool-retry-modal.d.ts.map +0 -1
- package/dist/cli-tui/tool-retry/tool-retry-modal.js +0 -118
- package/dist/cli-tui/tool-retry/tool-retry-modal.js.map +0 -1
- package/dist/cli-tui/tool-status-view.d.ts +0 -32
- package/dist/cli-tui/tool-status-view.d.ts.map +0 -1
- package/dist/cli-tui/tool-status-view.js +0 -86
- package/dist/cli-tui/tool-status-view.js.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/agent-event-bridge.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js +0 -129
- package/dist/cli-tui/tui-renderer/agent-event-bridge.js.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/approval-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/approval-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/approval-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts +0 -54
- package/dist/cli-tui/tui-renderer/attachment-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/attachment-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/attachment-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts +0 -9
- package/dist/cli-tui/tui-renderer/background-tasks-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js +0 -7
- package/dist/cli-tui/tui-renderer/background-tasks-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts +0 -41
- package/dist/cli-tui/tui-renderer/branch-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/branch-controller.js +0 -102
- package/dist/cli-tui/tui-renderer/branch-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/clear-controller.js +0 -75
- package/dist/cli-tui/tui-renderer/clear-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/client-tools-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/client-tools-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/client-tools-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts +0 -111
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +0 -163
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.d.ts +0 -16
- package/dist/cli-tui/tui-renderer/command-registry.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-registry.js +0 -23
- package/dist/cli-tui/tui-renderer/command-registry.js.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts +0 -29
- package/dist/cli-tui/tui-renderer/command-suite-wiring.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js +0 -108
- package/dist/cli-tui/tui-renderer/command-suite-wiring.js.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts +0 -100
- package/dist/cli-tui/tui-renderer/compaction-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/compaction-controller.js +0 -160
- package/dist/cli-tui/tui-renderer/compaction-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts +0 -42
- package/dist/cli-tui/tui-renderer/custom-commands-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js +0 -106
- package/dist/cli-tui/tui-renderer/custom-commands-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts +0 -37
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js +0 -139
- package/dist/cli-tui/tui-renderer/delegating-command-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/editor-bindings.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/editor-bindings.js +0 -76
- package/dist/cli-tui/tui-renderer/editor-bindings.js.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/footer-hints-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js +0 -152
- package/dist/cli-tui/tui-renderer/footer-hints-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.d.ts +0 -35
- package/dist/cli-tui/tui-renderer/history-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/history-controller.js +0 -153
- package/dist/cli-tui/tui-renderer/history-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts +0 -83
- package/dist/cli-tui/tui-renderer/hook-ui-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js +0 -309
- package/dist/cli-tui/tui-renderer/hook-ui-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/initial-preferences.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/initial-preferences.js +0 -54
- package/dist/cli-tui/tui-renderer/initial-preferences.js.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.d.ts +0 -56
- package/dist/cli-tui/tui-renderer/input-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/input-controller.js +0 -104
- package/dist/cli-tui/tui-renderer/input-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/interrupt-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/interrupt-setup.js +0 -18
- package/dist/cli-tui/tui-renderer/interrupt-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/loader-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/loader-setup.js +0 -13
- package/dist/cli-tui/tui-renderer/loader-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts +0 -55
- package/dist/cli-tui/tui-renderer/mcp-events-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js +0 -143
- package/dist/cli-tui/tui-renderer/mcp-events-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts +0 -59
- package/dist/cli-tui/tui-renderer/misc-handlers.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/misc-handlers.js +0 -143
- package/dist/cli-tui/tui-renderer/misc-handlers.js.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts +0 -14
- package/dist/cli-tui/tui-renderer/oauth-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/oauth-setup.js +0 -26
- package/dist/cli-tui/tui-renderer/oauth-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts +0 -19
- package/dist/cli-tui/tui-renderer/plan-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/plan-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/plan-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts +0 -21
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js +0 -64
- package/dist/cli-tui/tui-renderer/prompt-template-slash-commands.js.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts +0 -18
- package/dist/cli-tui/tui-renderer/queue-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/queue-setup.js +0 -42
- package/dist/cli-tui/tui-renderer/queue-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts +0 -53
- package/dist/cli-tui/tui-renderer/quick-settings-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js +0 -100
- package/dist/cli-tui/tui-renderer/quick-settings-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.d.ts +0 -31
- package/dist/cli-tui/tui-renderer/session-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-setup.js +0 -45
- package/dist/cli-tui/tui-renderer/session-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts +0 -66
- package/dist/cli-tui/tui-renderer/session-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/session-state-controller.js +0 -139
- package/dist/cli-tui/tui-renderer/session-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +0 -411
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts +0 -90
- package/dist/cli-tui/tui-renderer/slash-hint-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js +0 -131
- package/dist/cli-tui/tui-renderer/slash-hint-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/tool-retry-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js +0 -5
- package/dist/cli-tui/tui-renderer/tool-retry-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts +0 -38
- package/dist/cli-tui/tui-renderer/tooling-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js +0 -48
- package/dist/cli-tui/tui-renderer/tooling-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +0 -70
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +0 -184
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts +0 -13
- package/dist/cli-tui/tui-renderer/ui-state-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/ui-state-setup.js +0 -11
- package/dist/cli-tui/tui-renderer/ui-state-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts +0 -26
- package/dist/cli-tui/tui-renderer/utility-views-setup.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/utility-views-setup.js +0 -23
- package/dist/cli-tui/tui-renderer/utility-views-setup.js.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts +0 -33
- package/dist/cli-tui/tui-renderer/viewport-controller.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer/viewport-controller.js +0 -98
- package/dist/cli-tui/tui-renderer/viewport-controller.js.map +0 -1
- package/dist/cli-tui/tui-renderer.d.ts +0 -268
- package/dist/cli-tui/tui-renderer.d.ts.map +0 -1
- package/dist/cli-tui/tui-renderer.js +0 -2131
- package/dist/cli-tui/tui-renderer.js.map +0 -1
- package/dist/cli-tui/ui-state.d.ts +0 -27
- package/dist/cli-tui/ui-state.d.ts.map +0 -1
- package/dist/cli-tui/ui-state.js +0 -88
- package/dist/cli-tui/ui-state.js.map +0 -1
- package/dist/cli-tui/update-view.d.ts +0 -16
- package/dist/cli-tui/update-view.d.ts.map +0 -1
- package/dist/cli-tui/update-view.js +0 -45
- package/dist/cli-tui/update-view.js.map +0 -1
- package/dist/cli-tui/user-message.d.ts +0 -17
- package/dist/cli-tui/user-message.d.ts.map +0 -1
- package/dist/cli-tui/user-message.js +0 -83
- package/dist/cli-tui/user-message.js.map +0 -1
- package/dist/cli-tui/utils/borders.d.ts +0 -131
- package/dist/cli-tui/utils/borders.d.ts.map +0 -1
- package/dist/cli-tui/utils/borders.js +0 -254
- package/dist/cli-tui/utils/borders.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts +0 -22
- package/dist/cli-tui/utils/commands/command-palette-view.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette-view.js +0 -31
- package/dist/cli-tui/utils/commands/command-palette-view.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.d.ts +0 -29
- package/dist/cli-tui/utils/commands/command-palette.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-palette.js +0 -213
- package/dist/cli-tui/utils/commands/command-palette.js.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts +0 -8
- package/dist/cli-tui/utils/commands/command-registry-builder.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/command-registry-builder.js +0 -9
- package/dist/cli-tui/utils/commands/command-registry-builder.js.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts +0 -10
- package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/review-prompt.js +0 -90
- package/dist/cli-tui/utils/commands/review-prompt.js.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts +0 -15
- package/dist/cli-tui/utils/commands/slash-hint-bar.d.ts.map +0 -1
- package/dist/cli-tui/utils/commands/slash-hint-bar.js +0 -106
- package/dist/cli-tui/utils/commands/slash-hint-bar.js.map +0 -1
- package/dist/cli-tui/utils/env-detect.d.ts +0 -11
- package/dist/cli-tui/utils/env-detect.d.ts.map +0 -1
- package/dist/cli-tui/utils/env-detect.js +0 -107
- package/dist/cli-tui/utils/env-detect.js.map +0 -1
- package/dist/cli-tui/utils/external-editor.d.ts +0 -7
- package/dist/cli-tui/utils/external-editor.d.ts.map +0 -1
- package/dist/cli-tui/utils/external-editor.js +0 -53
- package/dist/cli-tui/utils/external-editor.js.map +0 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +0 -169
- package/dist/cli-tui/utils/footer-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-utils.js +0 -716
- package/dist/cli-tui/utils/footer-utils.js.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts +0 -38
- package/dist/cli-tui/utils/footer-visual-widgets.d.ts.map +0 -1
- package/dist/cli-tui/utils/footer-visual-widgets.js +0 -141
- package/dist/cli-tui/utils/footer-visual-widgets.js.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.d.ts +0 -38
- package/dist/cli-tui/utils/git-branch-tracker.d.ts.map +0 -1
- package/dist/cli-tui/utils/git-branch-tracker.js +0 -90
- package/dist/cli-tui/utils/git-branch-tracker.js.map +0 -1
- package/dist/cli-tui/utils/glyphs.d.ts +0 -207
- package/dist/cli-tui/utils/glyphs.d.ts.map +0 -1
- package/dist/cli-tui/utils/glyphs.js +0 -249
- package/dist/cli-tui/utils/glyphs.js.map +0 -1
- package/dist/cli-tui/utils/layout.d.ts +0 -77
- package/dist/cli-tui/utils/layout.d.ts.map +0 -1
- package/dist/cli-tui/utils/layout.js +0 -83
- package/dist/cli-tui/utils/layout.js.map +0 -1
- package/dist/cli-tui/utils/links.d.ts +0 -2
- package/dist/cli-tui/utils/links.d.ts.map +0 -1
- package/dist/cli-tui/utils/links.js +0 -14
- package/dist/cli-tui/utils/links.js.map +0 -1
- package/dist/cli-tui/utils/motion.d.ts +0 -4
- package/dist/cli-tui/utils/motion.d.ts.map +0 -1
- package/dist/cli-tui/utils/motion.js +0 -28
- package/dist/cli-tui/utils/motion.js.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +0 -26
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +0 -1
- package/dist/cli-tui/utils/runtime-badges.js +0 -178
- package/dist/cli-tui/utils/runtime-badges.js.map +0 -1
- package/dist/cli-tui/utils/shimmer.d.ts +0 -12
- package/dist/cli-tui/utils/shimmer.d.ts.map +0 -1
- package/dist/cli-tui/utils/shimmer.js +0 -57
- package/dist/cli-tui/utils/shimmer.js.map +0 -1
- package/dist/cli-tui/utils/stage-labels.d.ts +0 -9
- package/dist/cli-tui/utils/stage-labels.d.ts.map +0 -1
- package/dist/cli-tui/utils/stage-labels.js +0 -65
- package/dist/cli-tui/utils/stage-labels.js.map +0 -1
- package/dist/cli-tui/utils/text-formatting.d.ts +0 -13
- package/dist/cli-tui/utils/text-formatting.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-formatting.js +0 -109
- package/dist/cli-tui/utils/text-formatting.js.map +0 -1
- package/dist/cli-tui/utils/text-preview.d.ts +0 -10
- package/dist/cli-tui/utils/text-preview.d.ts.map +0 -1
- package/dist/cli-tui/utils/text-preview.js +0 -26
- package/dist/cli-tui/utils/text-preview.js.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.d.ts +0 -42
- package/dist/cli-tui/utils/tool-text-utils.d.ts.map +0 -1
- package/dist/cli-tui/utils/tool-text-utils.js +0 -361
- package/dist/cli-tui/utils/tool-text-utils.js.map +0 -1
- package/dist/cli-tui/welcome-animation.d.ts +0 -24
- package/dist/cli-tui/welcome-animation.d.ts.map +0 -1
- package/dist/cli-tui/welcome-animation.js +0 -99
- package/dist/cli-tui/welcome-animation.js.map +0 -1
- package/dist/cli-tui/welcome-colors.d.ts +0 -3
- package/dist/cli-tui/welcome-colors.d.ts.map +0 -1
- package/dist/cli-tui/welcome-colors.js +0 -39
- package/dist/cli-tui/welcome-colors.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts +0 -304
- package/dist/node_modules/@evalops/tui/dist/autocomplete.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js +0 -712
- package/dist/node_modules/@evalops/tui/dist/autocomplete.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts +0 -185
- package/dist/node_modules/@evalops/tui/dist/components/editor.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/editor.js +0 -1460
- package/dist/node_modules/@evalops/tui/dist/components/editor.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts +0 -117
- package/dist/node_modules/@evalops/tui/dist/components/input.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/input.js +0 -391
- package/dist/node_modules/@evalops/tui/dist/components/input.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts +0 -256
- package/dist/node_modules/@evalops/tui/dist/components/layout.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/layout.js +0 -478
- package/dist/node_modules/@evalops/tui/dist/components/layout.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts +0 -199
- package/dist/node_modules/@evalops/tui/dist/components/loader.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/loader.js +0 -374
- package/dist/node_modules/@evalops/tui/dist/components/loader.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts +0 -65
- package/dist/node_modules/@evalops/tui/dist/components/markdown.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js +0 -562
- package/dist/node_modules/@evalops/tui/dist/components/markdown.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts +0 -262
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js +0 -575
- package/dist/node_modules/@evalops/tui/dist/components/scroll-container.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts +0 -131
- package/dist/node_modules/@evalops/tui/dist/components/select-list.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js +0 -257
- package/dist/node_modules/@evalops/tui/dist/components/select-list.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts +0 -11
- package/dist/node_modules/@evalops/tui/dist/components/spacer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js +0 -19
- package/dist/node_modules/@evalops/tui/dist/components/spacer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts +0 -22
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/components/status-bar.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts +0 -26
- package/dist/node_modules/@evalops/tui/dist/components/text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/text.js +0 -181
- package/dist/node_modules/@evalops/tui/dist/components/text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts +0 -15
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js +0 -84
- package/dist/node_modules/@evalops/tui/dist/components/truncated-text.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.d.ts +0 -87
- package/dist/node_modules/@evalops/tui/dist/index.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/index.js +0 -85
- package/dist/node_modules/@evalops/tui/dist/index.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts +0 -189
- package/dist/node_modules/@evalops/tui/dist/keymap.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/keymap.js +0 -363
- package/dist/node_modules/@evalops/tui/dist/keymap.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts +0 -25
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js +0 -828
- package/dist/node_modules/@evalops/tui/dist/mermaid-renderer.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts +0 -40
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js +0 -474
- package/dist/node_modules/@evalops/tui/dist/style/code-highlighter.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts +0 -201
- package/dist/node_modules/@evalops/tui/dist/terminal.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/terminal.js +0 -241
- package/dist/node_modules/@evalops/tui/dist/terminal.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts +0 -263
- package/dist/node_modules/@evalops/tui/dist/tui.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/tui.js +0 -694
- package/dist/node_modules/@evalops/tui/dist/tui.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts +0 -14
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js +0 -44
- package/dist/node_modules/@evalops/tui/dist/utils/terminal-features.js.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts +0 -32
- package/dist/node_modules/@evalops/tui/dist/utils.d.ts.map +0 -1
- package/dist/node_modules/@evalops/tui/dist/utils.js +0 -556
- package/dist/node_modules/@evalops/tui/dist/utils.js.map +0 -1
- package/dist/node_modules/@evalops/tui/package.json +0 -58
- package/dist/skills/artifact-metadata.d.ts +0 -16
- package/dist/skills/artifact-metadata.d.ts.map +0 -1
- package/dist/skills/artifact-metadata.js +0 -86
- package/dist/skills/artifact-metadata.js.map +0 -1
- package/dist/skills/composer-diagnostics.d.ts +0 -69
- package/dist/skills/composer-diagnostics.d.ts.map +0 -1
- package/dist/skills/composer-diagnostics.js +0 -78
- package/dist/skills/composer-diagnostics.js.map +0 -1
- package/dist/skills/composer.d.ts +0 -19
- package/dist/skills/composer.d.ts.map +0 -1
- package/dist/skills/composer.js +0 -52
- package/dist/skills/composer.js.map +0 -1
- package/dist/skills/eval-harness.d.ts +0 -38
- package/dist/skills/eval-harness.d.ts.map +0 -1
- package/dist/skills/eval-harness.js +0 -112
- package/dist/skills/eval-harness.js.map +0 -1
- package/dist/skills/index.d.ts +0 -40
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/skills/index.js +0 -40
- package/dist/skills/index.js.map +0 -1
- package/dist/skills/linter.d.ts +0 -36
- package/dist/skills/linter.d.ts.map +0 -1
- package/dist/skills/linter.js +0 -399
- package/dist/skills/linter.js.map +0 -1
- package/dist/skills/loader.d.ts +0 -252
- package/dist/skills/loader.d.ts.map +0 -1
- package/dist/skills/loader.js +0 -957
- package/dist/skills/loader.js.map +0 -1
- package/dist/skills/package-contract.d.ts +0 -45
- package/dist/skills/package-contract.d.ts.map +0 -1
- package/dist/skills/package-contract.js +0 -153
- package/dist/skills/package-contract.js.map +0 -1
- package/dist/skills/runtime-activation.d.ts +0 -68
- package/dist/skills/runtime-activation.d.ts.map +0 -1
- package/dist/skills/runtime-activation.js +0 -228
- package/dist/skills/runtime-activation.js.map +0 -1
- package/dist/skills/scaffold-from-template.d.ts +0 -58
- package/dist/skills/scaffold-from-template.d.ts.map +0 -1
- package/dist/skills/scaffold-from-template.js +0 -72
- package/dist/skills/scaffold-from-template.js.map +0 -1
- package/dist/skills/scaffolder.d.ts +0 -65
- package/dist/skills/scaffolder.d.ts.map +0 -1
- package/dist/skills/scaffolder.js +0 -167
- package/dist/skills/scaffolder.js.map +0 -1
- package/dist/skills/service-client.d.ts +0 -56
- package/dist/skills/service-client.d.ts.map +0 -1
- package/dist/skills/service-client.js +0 -266
- package/dist/skills/service-client.js.map +0 -1
- package/dist/skills/skill-templates.d.ts +0 -70
- package/dist/skills/skill-templates.d.ts.map +0 -1
- package/dist/skills/skill-templates.js +0 -154
- package/dist/skills/skill-templates.js.map +0 -1
- package/dist/skills/tool.d.ts +0 -21
- package/dist/skills/tool.d.ts.map +0 -1
- package/dist/skills/tool.js +0 -334
- package/dist/skills/tool.js.map +0 -1
- package/dist/skills/trust-cache.d.ts +0 -58
- package/dist/skills/trust-cache.d.ts.map +0 -1
- package/dist/skills/trust-cache.js +0 -130
- package/dist/skills/trust-cache.js.map +0 -1
- package/dist/skills/types.d.ts +0 -91
- package/dist/skills/types.d.ts.map +0 -1
- package/dist/skills/types.js +0 -8
- package/dist/skills/types.js.map +0 -1
- /package/dist/{cli-tui → runtime}/prompt-queue.d.ts +0 -0
- /package/dist/{cli-tui → runtime}/prompt-queue.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-bootstrap.js","sourceRoot":"","sources":["../../src/evalops/agent-bootstrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { hostname } from \"node:os\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { CallToolResult } from \"@modelcontextprotocol/sdk/types.js\";\nimport { getOAuthToken, hasOAuthCredentials, login } from \"../oauth/index.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { getPackageVersion } from \"../package-metadata.js\";\nimport { getEnvValue, normalizeBaseUrl } from \"../platform/client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nexport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredEvalOpsAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nconst DEFAULT_AGENT_MCP_BASE_URL = \"https://app.evalops.dev\";\nconst DEFAULT_IDENTITY_BASE_URL = \"https://identity.evalops.dev\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\nconst DEFAULT_AGENT_TYPE = \"maestro\";\nconst DEFAULT_SURFACE = \"cli\";\nconst DEFAULT_AGENT_NEUTRAL_CAPABILITIES = [\n\t\"mcp\",\n\t\"tool.use\",\n\t\"responses:create\",\n];\nconst DEFAULT_MAESTRO_AGENT_CAPABILITIES = [\n\t\"maestro:init\",\n\t\"maestro:cli\",\n\t\"conversation:manage\",\n\t\"workflow:orchestrate\",\n\t\"code:write\",\n\t\"code:review\",\n\t\"code:test\",\n\t\"shell\",\n\t\"git\",\n\t\"fs\",\n\t\"mcp\",\n\t\"tool.use\",\n\t\"research\",\n\t\"responses:create\",\n];\nconst DEFAULT_API_KEY_SCOPES = [\n\t\"agent:register\",\n\t\"agent:heartbeat\",\n\t\"governance:evaluate\",\n\t\"llm_gateway:invoke\",\n\t\"memories:read\",\n\t\"memories:write\",\n\t\"meter:record\",\n];\n\nexport interface EvalOpsInitOptions {\n\tagentType?: string;\n\tapiKeyScopes?: string[];\n\tcapabilities?: string[];\n\texpiresInDays?: number;\n\tforceLogin?: boolean;\n\tintegrationProfile?: string;\n\tjson?: boolean;\n\tkeyName?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tmcpUrl?: string;\n\tregisterScopes?: string[];\n\trotateKey?: boolean;\n\truntimeOwner?: string;\n\tshimType?: string;\n\tsurface?: string;\n\ttraceMode?: string;\n\tttlSeconds?: number;\n\tworkspaceId?: string;\n}\n\nexport interface EvalOpsInitResult {\n\tagentId?: string;\n\tapiKeyCreated: boolean;\n\tapprovalPolicyAttached?: boolean;\n\tauthenticatedAs?: string;\n\tconsoleUrl?: string;\n\tendpoint: string;\n\tevidenceEventPublished?: boolean;\n\tevidenceEvents?: number;\n\tgovernedActionsLoaded?: number;\n\tgovernedInferenceCheckRan?: boolean;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\torganizationId?: string;\n\tregistryVisible?: boolean;\n\triskFindings?: number;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopesGranted?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tstored: boolean;\n\ttraceIngestionStarted?: boolean;\n\ttraceMode?: string;\n}\n\nexport interface EvalOpsInitStatus {\n\tmessage: string;\n}\n\nexport interface EvalOpsInitDependencies {\n\tcreateMcpClient?: (endpoint: string, bearerToken: string) => EvalOpsMcpClient;\n\tfetch?: typeof fetch;\n\tgetOAuthToken?: typeof getOAuthToken;\n\thasOAuthCredentials?: typeof hasOAuthCredentials;\n\tloadCredentials?: typeof loadOAuthCredentials;\n\tlogin?: typeof login;\n\tnow?: () => Date;\n\tonAuthUrl?: (url: string) => void;\n\tonStatus?: (status: EvalOpsInitStatus) => void;\n\tsaveCredentials?: typeof saveOAuthCredentials;\n}\n\nexport interface EvalOpsMcpClient {\n\tcallTool(\n\t\tname: string,\n\t\targs: Record<string, unknown>,\n\t): Promise<CallToolResult>;\n\tclose(): Promise<void>;\n\tconnect(): Promise<void>;\n}\n\ninterface CreateAPIKeyOutput {\n\tapi_key: string;\n\texpires_at?: string;\n\tkey_id?: string;\n\tname?: string;\n\tprefix?: string;\n\tscopes?: string[];\n}\n\ninterface CreateAPIKeyHTTPOutput extends Partial<CreateAPIKeyOutput> {\n\terror?: string;\n\tkey?: Record<string, unknown>;\n\tscopes_granted?: unknown;\n}\n\ninterface RegisterOutput {\n\tagent_id?: string;\n\texpires_at?: string;\n\tintegration_profile?: string;\n\tmemory_mode?: string;\n\tregistered?: boolean;\n\tregistry_visible?: boolean;\n\trun_id?: string;\n\truntime_owner?: string;\n\tscopes_denied?: string[];\n\tscopes_granted?: string[];\n\tshim_type?: string;\n\ttrace_mode?: string;\n}\n\ninterface CheckActionOutput {\n\tdecision?: string;\n\trisk_level?: string;\n\treasons?: string[];\n}\n\ninterface ControlPlaneSummaryOutput {\n\tevidence?: unknown[];\n\tfindings?: unknown[];\n\tmetrics?: {\n\t\tapproval_required_tools?: number;\n\t\thigh_risk_tools?: number;\n\t\ttotal_tools?: number;\n\t};\n\tpolicy_controls?: unknown[];\n\ttools?: unknown[];\n}\n\ninterface AgentMcpEndpoint {\n\tendpoint: string;\n\tidentityBaseUrl?: string;\n\tmanifestUrl?: string;\n\tpreferDerivedIdentity?: boolean;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nfunction positiveInteger(value: number | undefined): number | undefined {\n\treturn typeof value === \"number\" && Number.isInteger(value) && value > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction normalizeMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (\n\t\tparsed.pathname === \"\" ||\n\t\tparsed.pathname === \"/\" ||\n\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t) {\n\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t}\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nfunction normalizeManifestUrl(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (parsed.pathname === \"\" || parsed.pathname === \"/\") {\n\t\tparsed.pathname = AGENT_MCP_MANIFEST_PATH;\n\t}\n\treturn parsed.toString();\n}\n\nfunction resolveIdentityBaseUrl(\n\tcredentials: OAuthCredentials | null,\n\tendpoint?: AgentMcpEndpoint,\n): string {\n\tconst configured = getEnvValue([\n\t\t\"MAESTRO_IDENTITY_URL\",\n\t\t\"EVALOPS_IDENTITY_URL\",\n\t\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\t\"EVALOPS_BASE_URL\",\n\t]);\n\tconst stored =\n\t\ttypeof credentials?.metadata?.identityBaseUrl === \"string\"\n\t\t\t? credentials.metadata.identityBaseUrl\n\t\t\t: undefined;\n\tconst derived = identityBaseUrlFromMcpEndpoint(endpoint?.endpoint);\n\tconst storedBeforeDerived = endpoint\n\t\t? !endpoint.preferDerivedIdentity && isCustomMcpEndpoint(endpoint.endpoint)\n\t\t: false;\n\treturn normalizeBaseUrl(\n\t\tconfigured ??\n\t\t\tendpoint?.identityBaseUrl ??\n\t\t\t(endpoint?.preferDerivedIdentity ? derived : undefined) ??\n\t\t\t(storedBeforeDerived ? stored : undefined) ??\n\t\t\tderived ??\n\t\t\tstored ??\n\t\t\tDEFAULT_IDENTITY_BASE_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction isCustomMcpEndpoint(endpoint: string): boolean {\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\treturn (\n\t\tparsed.hostname !== \"app.evalops.dev\" &&\n\t\tparsed.hostname !== \"staging.evalops.dev\"\n\t);\n}\n\nfunction identityBaseUrlFromMcpEndpoint(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) {\n\t\treturn undefined;\n\t}\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\tif (parsed.hostname === \"app.evalops.dev\") {\n\t\treturn DEFAULT_IDENTITY_BASE_URL;\n\t}\n\tif (parsed.hostname === \"staging.evalops.dev\") {\n\t\treturn \"https://api.staging.evalops.dev\";\n\t}\n\tif (parsed.hostname.startsWith(\"app.\")) {\n\t\tparsed.hostname = `identity.${parsed.hostname.slice(\"app.\".length)}`;\n\t}\n\tparsed.pathname = \"\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nasync function resolveEndpointFromManifest(\n\tmanifestUrl: string,\n\tfetchImpl: typeof fetch,\n): Promise<AgentMcpEndpoint> {\n\tconst response = await fetchImpl(manifestUrl, {\n\t\theaders: { accept: \"application/json\" },\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`Failed to fetch EvalOps MCP manifest (${response.status} ${response.statusText})`,\n\t\t);\n\t}\n\tconst payload = (await response.json()) as unknown;\n\tconst payloadRecord = isRecord(payload) ? payload : undefined;\n\tconst protocol =\n\t\tpayloadRecord && isRecord(payloadRecord.protocol)\n\t\t\t? payloadRecord.protocol\n\t\t\t: undefined;\n\tconst endpoint = nonEmptyString(protocol?.endpoint);\n\tif (!endpoint) {\n\t\tthrow new Error(\"EvalOps MCP manifest did not include protocol.endpoint\");\n\t}\n\tconst identity = payloadRecord?.identity;\n\tconst identityBaseUrl =\n\t\tnonEmptyString(isRecord(identity) ? identity.base_url : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.baseUrl : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.url : undefined) ??\n\t\tnonEmptyString(payloadRecord?.identity_base_url) ??\n\t\tnonEmptyString(payloadRecord?.identityBaseUrl);\n\treturn {\n\t\tendpoint: normalizeMcpEndpoint(endpoint),\n\t\tidentityBaseUrl,\n\t\tmanifestUrl,\n\t\tpreferDerivedIdentity: true,\n\t};\n}\n\nasync function resolveAgentMcpEndpoint(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<Pick<EvalOpsInitDependencies, \"fetch\" | \"loadCredentials\">>,\n): Promise<AgentMcpEndpoint> {\n\tif (options.mcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(options.mcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\tif (options.manifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(options.manifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst configuredMcpUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\t\"MAESTRO_AGENT_MCP_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n\t]);\n\tif (configuredMcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(configuredMcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\n\tconst configuredManifestUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n\t]);\n\tif (configuredManifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(configuredManifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst stored = getStoredAgentMcpMetadata(deps.loadCredentials(\"evalops\"));\n\tif (stored?.endpoint) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(stored.endpoint),\n\t\t\tmanifestUrl: stored.manifestUrl,\n\t\t};\n\t}\n\n\treturn resolveEndpointFromManifest(\n\t\t`${DEFAULT_AGENT_MCP_BASE_URL}${AGENT_MCP_MANIFEST_PATH}`,\n\t\tdeps.fetch,\n\t);\n}\n\nfunction createDefaultMcpClient(\n\tendpoint: string,\n\tbearerToken: string,\n): EvalOpsMcpClient {\n\tconst client = new Client(\n\t\t{\n\t\t\tname: \"maestro\",\n\t\t\tversion: getPackageVersion(),\n\t\t},\n\t\t{\n\t\t\tcapabilities: {},\n\t\t},\n\t);\n\tconst headers = {\n\t\taccept: \"application/json, text/event-stream\",\n\t\t\"content-type\": \"application/json\",\n\t\t...(bearerToken ? { authorization: `Bearer ${bearerToken}` } : {}),\n\t};\n\tconst transport = new StreamableHTTPClientTransport(new URL(endpoint), {\n\t\trequestInit: {\n\t\t\theaders,\n\t\t},\n\t});\n\treturn {\n\t\tcallTool: (name, args) =>\n\t\t\tclient.callTool({\n\t\t\t\tname,\n\t\t\t\targuments: args,\n\t\t\t}) as Promise<CallToolResult>,\n\t\tclose: () => client.close(),\n\t\tconnect: () => client.connect(transport),\n\t};\n}\n\nasync function callConnectedMcpTool<T>(\n\tclient: EvalOpsMcpClient,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): Promise<T> {\n\tconst result = await client.callTool(toolName, args);\n\tif (result.isError) {\n\t\tthrow new Error(`${toolName} returned an MCP error`);\n\t}\n\treturn parseToolOutput<T>(toolName, result);\n}\n\nfunction parseToolOutput<T>(toolName: string, result: CallToolResult): T {\n\tconst structuredContent = isRecord(result.structuredContent)\n\t\t? result.structuredContent\n\t\t: undefined;\n\tif (structuredContent) {\n\t\treturn structuredContent as T;\n\t}\n\tconst text = Array.isArray(result.content)\n\t\t? result.content\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tentry.type === \"text\" && typeof entry.text === \"string\"\n\t\t\t\t\t\t? entry.text\n\t\t\t\t\t\t: undefined,\n\t\t\t\t)\n\t\t\t\t.find((entry): entry is string => Boolean(entry))\n\t\t: undefined;\n\tif (text) {\n\t\tconst parsed = JSON.parse(text) as unknown;\n\t\tif (isRecord(parsed)) {\n\t\t\treturn parsed as T;\n\t\t}\n\t}\n\tthrow new Error(`${toolName} did not return structured JSON output`);\n}\n\nasync function ensureEvalOpsLogin(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<\n\t\tPick<\n\t\t\tEvalOpsInitDependencies,\n\t\t\t| \"getOAuthToken\"\n\t\t\t| \"hasOAuthCredentials\"\n\t\t\t| \"login\"\n\t\t\t| \"onAuthUrl\"\n\t\t\t| \"onStatus\"\n\t\t>\n\t>,\n): Promise<string> {\n\tif (options.forceLogin || !deps.hasOAuthCredentials(\"evalops\")) {\n\t\tdeps.onStatus({ message: \"Opening EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t}\n\n\tlet token = await deps.getOAuthToken(\"evalops\");\n\tif (!token) {\n\t\tdeps.onStatus({ message: \"Refreshing EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t\ttoken = await deps.getOAuthToken(\"evalops\");\n\t}\n\tif (!token) {\n\t\tthrow new Error(\"EvalOps login did not produce an access token\");\n\t}\n\treturn token;\n}\n\nfunction buildKeyName(options: EvalOpsInitOptions, now: Date): string {\n\tif (options.keyName?.trim()) {\n\t\treturn options.keyName.trim();\n\t}\n\tconst host = hostname()\n\t\t.replace(/[^a-zA-Z0-9._-]+/gu, \"-\")\n\t\t.slice(0, 48);\n\treturn `maestro-init-${host || \"local\"}-${now.toISOString().slice(0, 10)}`;\n}\n\nfunction integrationProfileForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.integrationProfile) ??\n\t\t(options.agentType && options.agentType !== DEFAULT_AGENT_TYPE\n\t\t\t? \"mcp_otlp\"\n\t\t\t: \"managed_runtime\")\n\t);\n}\n\nfunction shimTypeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.shimType) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"sdk\"\n\t\t\t: \"native_mcp\")\n\t);\n}\n\nfunction traceModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.traceMode) ??\n\t\t(integrationProfileForOptions(options) === \"mcp_only\"\n\t\t\t? \"mcp_events\"\n\t\t\t: \"otlp\")\n\t);\n}\n\nfunction memoryModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.memoryMode) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"durable\"\n\t\t\t: \"none\")\n\t);\n}\n\nfunction runtimeOwnerForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.runtimeOwner) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"evalops\"\n\t\t\t: \"external\")\n\t);\n}\n\nfunction capabilitiesForOptions(options: EvalOpsInitOptions): string[] {\n\tconst requested = stringArray(options.capabilities);\n\tconst defaults =\n\t\t(options.agentType ?? DEFAULT_AGENT_TYPE) === DEFAULT_AGENT_TYPE\n\t\t\t? DEFAULT_MAESTRO_AGENT_CAPABILITIES\n\t\t\t: DEFAULT_AGENT_NEUTRAL_CAPABILITIES;\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const capability of requested ?? defaults) {\n\t\tconst normalized = nonEmptyString(capability);\n\t\tif (!normalized) continue;\n\t\tconst key = normalized.toLowerCase();\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(normalized);\n\t}\n\treturn out;\n}\n\nasync function createAgentAPIKey(\n\toptions: EvalOpsInitOptions,\n\tidentityBaseUrl: string,\n\toauthToken: string,\n\tfetchImpl: typeof fetch,\n\tnow: Date,\n): Promise<CreateAPIKeyOutput> {\n\tconst expiresInDays = positiveInteger(options.expiresInDays);\n\tconst expiresAt = expiresInDays\n\t\t? new Date(\n\t\t\t\tnow.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n\t\t\t).toISOString()\n\t\t: undefined;\n\tconst response = await fetchImpl(\n\t\t`${identityBaseUrl}${PLATFORM_HTTP_ROUTES.identity.apiKeys}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${oauthToken}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tname: buildKeyName(options, now),\n\t\t\t\tscopes: options.apiKeyScopes ?? DEFAULT_API_KEY_SCOPES,\n\t\t\t\t...(expiresAt ? { expires_at: expiresAt } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\tconst output = (await response\n\t\t.json()\n\t\t.catch(() => ({}))) as CreateAPIKeyHTTPOutput;\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\ttypeof output.error === \"string\" && output.error.trim()\n\t\t\t\t? output.error\n\t\t\t\t: `EvalOps API key creation failed (${response.status})`,\n\t\t);\n\t}\n\tconst key = isRecord(output.key) ? output.key : undefined;\n\tconst normalized: CreateAPIKeyOutput = {\n\t\tapi_key: nonEmptyString(output.api_key) ?? \"\",\n\t\texpires_at:\n\t\t\tnonEmptyString(output.expires_at) ?? nonEmptyString(key?.expires_at),\n\t\tkey_id: nonEmptyString(output.key_id) ?? nonEmptyString(key?.id),\n\t\tname: nonEmptyString(output.name) ?? nonEmptyString(key?.name),\n\t\tprefix: nonEmptyString(output.prefix) ?? nonEmptyString(key?.prefix),\n\t\tscopes:\n\t\t\tstringArray(output.scopes) ??\n\t\t\tstringArray(key?.scopes) ??\n\t\t\tstringArray(output.scopes_granted),\n\t};\n\tif (!nonEmptyString(normalized.api_key)) {\n\t\tthrow new Error(\"EvalOps API key creation did not return api_key\");\n\t}\n\treturn normalized;\n}\n\nasync function registerAgent(\n\toptions: EvalOpsInitOptions,\n\tclient: EvalOpsMcpClient,\n): Promise<RegisterOutput> {\n\tconst output = await callConnectedMcpTool<RegisterOutput>(\n\t\tclient,\n\t\t\"evalops_register\",\n\t\t{\n\t\t\tagent_type: options.agentType ?? DEFAULT_AGENT_TYPE,\n\t\t\tcapabilities: capabilitiesForOptions(options),\n\t\t\tintegration_profile: integrationProfileForOptions(options),\n\t\t\tmemory_mode: memoryModeForOptions(options),\n\t\t\truntime_owner: runtimeOwnerForOptions(options),\n\t\t\t...(options.registerScopes?.length\n\t\t\t\t? { scopes: options.registerScopes }\n\t\t\t\t: {}),\n\t\t\tshim_type: shimTypeForOptions(options),\n\t\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\t\ttrace_mode: traceModeForOptions(options),\n\t\t\t...(positiveInteger(options.ttlSeconds)\n\t\t\t\t? { ttl_seconds: options.ttlSeconds }\n\t\t\t\t: {}),\n\t\t\t...(options.workspaceId ? { workspace_id: options.workspaceId } : {}),\n\t\t},\n\t);\n\tif (output.registered !== true || !nonEmptyString(output.agent_id)) {\n\t\tthrow new Error(\"EvalOps agent registration did not return an agent_id\");\n\t}\n\treturn output;\n}\n\nasync function runGovernedInferenceCheck(\n\tclient: EvalOpsMcpClient,\n): Promise<CheckActionOutput> {\n\treturn callConnectedMcpTool<CheckActionOutput>(\n\t\tclient,\n\t\t\"evalops_check_action\",\n\t\t{\n\t\t\taction_type: \"llm_gateway.invoke\",\n\t\t\taction_payload: \"maestro init first governed inference check\",\n\t\t\tdeclared_risk_level: \"low\",\n\t\t},\n\t);\n}\n\nasync function loadControlPlaneSummary(\n\tclient: EvalOpsMcpClient,\n): Promise<ControlPlaneSummaryOutput> {\n\treturn callConnectedMcpTool<ControlPlaneSummaryOutput>(\n\t\tclient,\n\t\t\"evalops_control_plane_summary\",\n\t\t{},\n\t);\n}\n\nfunction organizationIdFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\treturn (\n\t\tnonEmptyString(credentials?.metadata?.organizationId) ??\n\t\tnonEmptyString(credentials?.metadata?.organization_id)\n\t);\n}\n\nfunction authenticatedAsFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst user = isRecord(metadata?.user) ? metadata.user : undefined;\n\treturn (\n\t\tnonEmptyString(metadata?.email) ??\n\t\tnonEmptyString(metadata?.preferred_username) ??\n\t\tnonEmptyString(metadata?.preferredUsername) ??\n\t\tnonEmptyString(metadata?.user) ??\n\t\tnonEmptyString(user?.email) ??\n\t\tnonEmptyString(user?.name)\n\t);\n}\n\nfunction consoleUrlFromEndpoint(endpoint: string): string {\n\tconst parsed = new URL(endpoint);\n\tparsed.pathname = \"/overview\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\tconst env =\n\t\tparsed.hostname === \"app.evalops.dev\"\n\t\t\t? \"production\"\n\t\t\t: parsed.hostname === \"staging.evalops.dev\"\n\t\t\t\t? \"staging\"\n\t\t\t\t: \"local\";\n\tparsed.searchParams.set(\"env\", env);\n\treturn parsed.toString();\n}\n\nfunction countHighRiskFindings(summary: ControlPlaneSummaryOutput): number {\n\tconst findings = Array.isArray(summary.findings) ? summary.findings : [];\n\tconst findingCount = findings.filter((finding) => {\n\t\tconst record = isRecord(finding) ? finding : undefined;\n\t\tconst severity = nonEmptyString(record?.severity)?.toLowerCase();\n\t\treturn severity === \"critical\" || severity === \"high\";\n\t}).length;\n\tconst metricCount = summary.metrics?.high_risk_tools;\n\tif (typeof metricCount === \"number\" && Number.isFinite(metricCount)) {\n\t\treturn Math.max(findingCount, Math.max(0, Math.trunc(metricCount)));\n\t}\n\treturn findingCount;\n}\n\nfunction hasPolicyControl(summary: ControlPlaneSummaryOutput): boolean {\n\tconst approvalRequired = summary.metrics?.approval_required_tools ?? 0;\n\tif (approvalRequired > 0) {\n\t\treturn true;\n\t}\n\tconst controls = Array.isArray(summary.policy_controls)\n\t\t? summary.policy_controls\n\t\t: [];\n\treturn controls.some((control) => {\n\t\tconst record = isRecord(control) ? control : undefined;\n\t\treturn /approval|policy|starter/i.test(\n\t\t\t[\n\t\t\t\tnonEmptyString(record?.label),\n\t\t\t\tnonEmptyString(record?.value),\n\t\t\t\tnonEmptyString(record?.detail),\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t);\n\t});\n}\n\nfunction hasTraceEvidence(summary: ControlPlaneSummaryOutput): boolean {\n\tconst evidence = Array.isArray(summary.evidence) ? summary.evidence : [];\n\treturn evidence.some((entry) => {\n\t\tconst record = isRecord(entry) ? entry : undefined;\n\t\treturn Boolean(\n\t\t\tnonEmptyString(record?.trace) ??\n\t\t\t\tnonEmptyString(record?.trace_id) ??\n\t\t\t\tnonEmptyString(record?.traceId),\n\t\t);\n\t});\n}\n\nfunction governedActionCount(summary: ControlPlaneSummaryOutput): number {\n\tconst metricTotal = summary.metrics?.total_tools;\n\tif (typeof metricTotal === \"number\" && Number.isFinite(metricTotal)) {\n\t\treturn Math.max(0, Math.trunc(metricTotal));\n\t}\n\treturn Array.isArray(summary.tools) ? summary.tools.length : 0;\n}\n\nfunction saveBootstrapMetadata(\n\tcredentials: OAuthCredentials,\n\tagentMcp: EvalOpsAgentMcpMetadata,\n\tsaveCredentials: typeof saveOAuthCredentials,\n): void {\n\tsaveCredentials(\"evalops\", {\n\t\t...credentials,\n\t\tmetadata: {\n\t\t\t...credentials.metadata,\n\t\t\tagentId: agentMcp.agentId ?? credentials.metadata?.agentId,\n\t\t\trunId: agentMcp.runId ?? credentials.metadata?.runId,\n\t\t\tsurface: agentMcp.surface,\n\t\t\tagentMcp,\n\t\t},\n\t});\n}\n\nexport async function bootstrapEvalOpsAgent(\n\toptions: EvalOpsInitOptions = {},\n\tdependencies: EvalOpsInitDependencies = {},\n): Promise<EvalOpsInitResult> {\n\tconst deps = {\n\t\tcreateMcpClient: dependencies.createMcpClient ?? createDefaultMcpClient,\n\t\tfetch: dependencies.fetch ?? fetch,\n\t\tgetOAuthToken: dependencies.getOAuthToken ?? getOAuthToken,\n\t\thasOAuthCredentials:\n\t\t\tdependencies.hasOAuthCredentials ?? hasOAuthCredentials,\n\t\tloadCredentials: dependencies.loadCredentials ?? loadOAuthCredentials,\n\t\tlogin: dependencies.login ?? login,\n\t\tnow: dependencies.now ?? (() => new Date()),\n\t\tonAuthUrl:\n\t\t\tdependencies.onAuthUrl ??\n\t\t\t((url: string) => {\n\t\t\t\tprocess.stdout.write(`${url}\\n`);\n\t\t\t}),\n\t\tonStatus: dependencies.onStatus ?? (() => undefined),\n\t\tsaveCredentials: dependencies.saveCredentials ?? saveOAuthCredentials,\n\t};\n\n\tconst oauthToken = await ensureEvalOpsLogin(options, deps);\n\tconst endpoint = await resolveAgentMcpEndpoint(options, deps);\n\tconst credentialsBeforeKey = deps.loadCredentials(\"evalops\");\n\tconst stored = getStoredAgentMcpMetadata(credentialsBeforeKey);\n\tconst identityBaseUrl = resolveIdentityBaseUrl(\n\t\tcredentialsBeforeKey,\n\t\tendpoint,\n\t);\n\tconst now = deps.now();\n\n\tlet apiKey = stored && !options.rotateKey ? stored.apiKey : undefined;\n\tlet keyOutput: CreateAPIKeyOutput | undefined;\n\tlet apiKeyCreated = false;\n\n\tif (!apiKey) {\n\t\tdeps.onStatus({ message: \"Creating EvalOps agent API key\" });\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\toptions,\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t} else {\n\t\tdeps.onStatus({ message: \"Reusing stored EvalOps agent API key\" });\n\t}\n\n\tdeps.onStatus({ message: \"Registering Maestro with EvalOps agent MCP\" });\n\tlet registerOutput: RegisterOutput;\n\tlet client: EvalOpsMcpClient;\n\tconst openAndRegister = async (token: string) => {\n\t\tconst mcpClient = deps.createMcpClient(endpoint.endpoint, token);\n\t\tawait mcpClient.connect();\n\t\ttry {\n\t\t\tconst output = await registerAgent(options, mcpClient);\n\t\t\treturn { client: mcpClient, registerOutput: output };\n\t\t} catch (error) {\n\t\t\tawait mcpClient.close().catch(() => undefined);\n\t\t\tthrow error;\n\t\t}\n\t};\n\ttry {\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t} catch (error) {\n\t\tif (apiKeyCreated) {\n\t\t\tthrow error;\n\t\t}\n\t\tdeps.onStatus({\n\t\t\tmessage: \"Stored EvalOps agent API key failed; rotating and retrying\",\n\t\t});\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\t{ ...options, rotateKey: true },\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t}\n\n\tlet governedInferenceCheck: CheckActionOutput = {};\n\tlet controlPlaneSummary: ControlPlaneSummaryOutput = {};\n\ttry {\n\t\tdeps.onStatus({ message: \"Running first governed inference check\" });\n\t\tgovernedInferenceCheck = await runGovernedInferenceCheck(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps governed inference check unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t}\n\ttry {\n\t\tdeps.onStatus({ message: \"Loading EvalOps control-plane status\" });\n\t\tcontrolPlaneSummary = await loadControlPlaneSummary(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps control-plane status unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t} finally {\n\t\tawait client.close().catch(() => undefined);\n\t}\n\n\tconst credentials = deps.loadCredentials(\"evalops\");\n\tif (!credentials) {\n\t\tthrow new Error(\"EvalOps OAuth credentials disappeared during init\");\n\t}\n\tconst keyPrefix = nonEmptyString(keyOutput?.prefix) ?? stored?.keyPrefix;\n\tconst scopes = keyOutput?.scopes ?? stored?.scopes;\n\tconst integrationProfile =\n\t\tnonEmptyString(registerOutput.integration_profile) ??\n\t\tintegrationProfileForOptions(options);\n\tconst memoryMode =\n\t\tnonEmptyString(registerOutput.memory_mode) ?? memoryModeForOptions(options);\n\tconst runtimeOwner =\n\t\tnonEmptyString(registerOutput.runtime_owner) ??\n\t\truntimeOwnerForOptions(options);\n\tconst shimType =\n\t\tnonEmptyString(registerOutput.shim_type) ?? shimTypeForOptions(options);\n\tconst traceMode =\n\t\tnonEmptyString(registerOutput.trace_mode) ?? traceModeForOptions(options);\n\tconst agentMcp: EvalOpsAgentMcpMetadata = {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt: (apiKeyCreated\n\t\t\t? now\n\t\t\t: new Date(stored?.createdAt ?? now)\n\t\t).toISOString(),\n\t\tendpoint: endpoint.endpoint,\n\t\tregisteredAt: deps.now().toISOString(),\n\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\tagentId: registerOutput.agent_id,\n\t\texpiresAt: nonEmptyString(keyOutput?.expires_at) ?? stored?.expiresAt,\n\t\tintegrationProfile,\n\t\tkeyId: nonEmptyString(keyOutput?.key_id) ?? stored?.keyId,\n\t\tkeyName: nonEmptyString(keyOutput?.name) ?? stored?.keyName,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopes,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\ttraceMode,\n\t\tworkspaceId:\n\t\t\toptions.workspaceId ?? organizationIdFromCredentials(credentials),\n\t};\n\tsaveBootstrapMetadata(credentials, agentMcp, deps.saveCredentials);\n\n\treturn {\n\t\tagentId: registerOutput.agent_id,\n\t\tapiKeyCreated,\n\t\tapprovalPolicyAttached: hasPolicyControl(controlPlaneSummary),\n\t\tauthenticatedAs: authenticatedAsFromCredentials(credentials),\n\t\tconsoleUrl: consoleUrlFromEndpoint(endpoint.endpoint),\n\t\tendpoint: endpoint.endpoint,\n\t\tevidenceEventPublished: (controlPlaneSummary.evidence ?? []).length > 0,\n\t\tevidenceEvents: (controlPlaneSummary.evidence ?? []).length,\n\t\tgovernedActionsLoaded: governedActionCount(controlPlaneSummary),\n\t\tgovernedInferenceCheckRan: Boolean(governedInferenceCheck.decision),\n\t\tintegrationProfile,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\torganizationId: organizationIdFromCredentials(credentials),\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\triskFindings: countHighRiskFindings(controlPlaneSummary),\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopesGranted: registerOutput.scopes_granted,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\tstored: true,\n\t\ttraceIngestionStarted: hasTraceEvidence(controlPlaneSummary),\n\t\ttraceMode,\n\t};\n}\n"]}
|
|
1
|
+
{"version":3,"file":"agent-bootstrap.js","sourceRoot":"","sources":["../../src/evalops/agent-bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAEN,oBAAoB,EACpB,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAEN,yBAAyB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAEN,gCAAgC,GAChC,MAAM,yBAAyB,CAAC;AAEjC,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AAC7D,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AACjE,MAAM,uBAAuB,GAAG,qCAAqC,CAAC;AACtE,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9B,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,eAAe,GAAG,KAAK,CAAC;AAC9B,MAAM,kCAAkC,GAAG;IAC1C,KAAK;IACL,UAAU;IACV,kBAAkB;CAClB,CAAC;AACF,MAAM,kCAAkC,GAAG;IAC1C,cAAc;IACd,aAAa;IACb,qBAAqB;IACrB,sBAAsB;IACtB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,UAAU;IACV,UAAU;IACV,kBAAkB;CAClB,CAAC;AACF,MAAM,sBAAsB,GAAG;IAC9B,gBAAgB;IAChB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,cAAc;CACd,CAAC;AAqIF,SAAS,cAAc,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAC1D,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,KAAK;SAClB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SACrC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,KAAyB;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACvE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,IACC,MAAM,CAAC,QAAQ,KAAK,EAAE;QACtB,MAAM,CAAC,QAAQ,KAAK,GAAG;QACvB,MAAM,CAAC,QAAQ,KAAK,uBAAuB,EAC1C,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC;QACjC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACxC,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,GAAG,uBAAuB,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAC9B,WAAoC,EACpC,QAA2B;IAE3B,MAAM,UAAU,GAAG,WAAW,CAAC;QAC9B,sBAAsB;QACtB,sBAAsB;QACtB,2BAA2B;QAC3B,0BAA0B;QAC1B,kBAAkB;KAClB,CAAC,CAAC;IACH,MAAM,MAAM,GACX,OAAO,WAAW,EAAE,QAAQ,EAAE,eAAe,KAAK,QAAQ;QACzD,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe;QACtC,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,OAAO,GAAG,8BAA8B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,QAAQ;QACnC,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3E,CAAC,CAAC,KAAK,CAAC;IACT,OAAO,gBAAgB,CACtB,UAAU;QACT,QAAQ,EAAE,eAAe;QACzB,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1C,OAAO;QACP,MAAM;QACN,yBAAyB,EAC1B,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAC5C,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,OAAO,CACN,MAAM,CAAC,QAAQ,KAAK,iBAAiB;QACrC,MAAM,CAAC,QAAQ,KAAK,qBAAqB,CACzC,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACtC,QAA4B;IAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QAC3C,OAAO,yBAAyB,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,qBAAqB,EAAE,CAAC;QAC/C,OAAO,iCAAiC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,QAAQ,GAAG,YAAY,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,OAAO,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,2BAA2B,CACzC,WAAmB,EACnB,SAAuB;IAEvB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE;QAC7C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,yCAAyC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,GAAG,CAClF,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,QAAQ,GACb,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChD,CAAC,CAAC,aAAa,CAAC,QAAQ;QACxB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,CAAC;IACzC,MAAM,eAAe,GACpB,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAClE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,cAAc,CAAC,aAAa,EAAE,iBAAiB,CAAC;QAChD,cAAc,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAChD,OAAO;QACN,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,CAAC;QACxC,eAAe;QACf,WAAW;QACX,qBAAqB,EAAE,IAAI;KAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,OAA2B,EAC3B,IAA0E;IAE1E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO;YACN,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,qBAAqB,EAAE,IAAI;SAC3B,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,2BAA2B,CACjC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,EACzC,IAAI,CAAC,KAAK,CACV,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACpC,0BAA0B;QAC1B,uBAAuB;QACvB,+BAA+B;KAC/B,CAAC,CAAC;IACH,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO;YACN,QAAQ,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;YAChD,qBAAqB,EAAE,IAAI;SAC3B,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,WAAW,CAAC;QACzC,mCAAmC;QACnC,gCAAgC;QAChC,wCAAwC;KACxC,CAAC,CAAC;IACH,IAAI,qBAAqB,EAAE,CAAC;QAC3B,OAAO,2BAA2B,CACjC,oBAAoB,CAAC,qBAAqB,CAAC,EAC3C,IAAI,CAAC,KAAK,CACV,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAC1E,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;QACtB,OAAO;YACN,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW;SAC/B,CAAC;IACH,CAAC;IAED,OAAO,2BAA2B,CACjC,GAAG,0BAA0B,GAAG,uBAAuB,EAAE,EACzD,IAAI,CAAC,KAAK,CACV,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC9B,QAAgB,EAChB,WAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,MAAM,CACxB;QACC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,iBAAiB,EAAE;KAC5B,EACD;QACC,YAAY,EAAE,EAAE;KAChB,CACD,CAAC;IACF,MAAM,OAAO,GAAG;QACf,MAAM,EAAE,qCAAqC;QAC7C,cAAc,EAAE,kBAAkB;QAClC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE;QACtE,WAAW,EAAE;YACZ,OAAO;SACP;KACD,CAAC,CAAC;IACH,OAAO;QACN,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACxB,MAAM,CAAC,QAAQ,CAAC;YACf,IAAI;YACJ,SAAS,EAAE,IAAI;SACf,CAA4B;QAC9B,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;KACxC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,MAAwB,EACxB,QAAgB,EAChB,IAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,wBAAwB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,eAAe,CAAI,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAI,QAAgB,EAAE,MAAsB;IACnE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC3D,CAAC,CAAC,MAAM,CAAC,iBAAiB;QAC1B,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,iBAAiB,EAAE,CAAC;QACvB,OAAO,iBAAsB,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QACzC,CAAC,CAAC,MAAM,CAAC,OAAO;aACb,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACd,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YACtD,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,SAAS,CACZ;aACA,IAAI,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,MAAW,CAAC;QACpB,CAAC;IACF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,wCAAwC,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,OAA2B,EAC3B,IASC;IAED,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;SACjD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B,EAAE,GAAS;IAC3D,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,EAAE;SACrB,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;SAClC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACf,OAAO,gBAAgB,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,4BAA4B,CAAC,OAA2B;IAChE,OAAO,CACN,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAC1C,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,kBAAkB;YAC7D,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,iBAAiB,CAAC,CACrB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA2B;IACtD,OAAO,CACN,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChC,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,iBAAiB;YAC3D,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,YAAY,CAAC,CAChB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA2B;IACvD,OAAO,CACN,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;QACjC,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,UAAU;YACpD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,MAAM,CAAC,CACV,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA2B;IACxD,OAAO,CACN,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;QAClC,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,iBAAiB;YAC3D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,CAAC,CACV,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA2B;IAC1D,OAAO,CACN,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;QACpC,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,iBAAiB;YAC3D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,CACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA2B;IAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,QAAQ,GACb,CAAC,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC,KAAK,kBAAkB;QAC/D,CAAC,CAAC,kCAAkC;QACpC,CAAC,CAAC,kCAAkC,CAAC;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,UAAU,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC/B,OAA2B,EAC3B,eAAuB,EACvB,UAAkB,EAClB,SAAuB,EACvB,GAAS;IAET,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,aAAa;QAC9B,CAAC,CAAC,IAAI,IAAI,CACR,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CACnD,CAAC,WAAW,EAAE;QAChB,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC/B,GAAG,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,EAAE,EAC5D;QACC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACR,aAAa,EAAE,UAAU,UAAU,EAAE;YACrC,cAAc,EAAE,kBAAkB;SAClC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACpB,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC;YAChC,MAAM,EAAE,OAAO,CAAC,YAAY,IAAI,sBAAsB;YACtD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;KACF,CACD,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ;SAC5B,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA2B,CAAC;IAC/C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;YACtD,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,oCAAoC,QAAQ,CAAC,MAAM,GAAG,CACzD,CAAC;IACH,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,MAAM,UAAU,GAAuB;QACtC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;QAC7C,UAAU,EACT,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,UAAU,CAAC;QACrE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC;QAChE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;QAC9D,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;QACpE,MAAM,EACL,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1B,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;KACnC,CAAC;IACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,aAAa,CAC3B,OAA2B,EAC3B,MAAwB;IAExB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC,MAAM,EACN,kBAAkB,EAClB;QACC,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,kBAAkB;QACnD,YAAY,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAC7C,mBAAmB,EAAE,4BAA4B,CAAC,OAAO,CAAC;QAC1D,WAAW,EAAE,oBAAoB,CAAC,OAAO,CAAC;QAC1C,aAAa,EAAE,sBAAsB,CAAC,OAAO,CAAC;QAC9C,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM;YACjC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;YACpC,CAAC,CAAC,EAAE,CAAC;QACN,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;QAC3C,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC;QACxC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;YACtC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE;YACrC,CAAC,CAAC,EAAE,CAAC;QACN,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CACD,CAAC;IACF,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,KAAK,UAAU,yBAAyB,CACvC,MAAwB;IAExB,OAAO,oBAAoB,CAC1B,MAAM,EACN,sBAAsB,EACtB;QACC,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,6CAA6C;QAC7D,mBAAmB,EAAE,KAAK;KAC1B,CACD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,MAAwB;IAExB,OAAO,oBAAoB,CAC1B,MAAM,EACN,+BAA+B,EAC/B,EAAE,CACF,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACrC,WAAoC;IAEpC,OAAO,CACN,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;QACrD,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,CAAC,CACtD,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACtC,WAAoC;IAEpC,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAClE,OAAO,CACN,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC/B,cAAc,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC5C,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QAC3C,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC9B,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;QAC3B,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAC1B,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC;IAC9B,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,GAAG,GACR,MAAM,CAAC,QAAQ,KAAK,iBAAiB;QACpC,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,qBAAqB;YAC1C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,CAAC;IACb,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAkC;IAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;QACjE,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM,CAAC;IACvD,CAAC,CAAC,CAAC,MAAM,CAAC;IACV,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;IACrD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAkC;IAC3D,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,uBAAuB,IAAI,CAAC,CAAC;IACvE,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QACtD,CAAC,CAAC,OAAO,CAAC,eAAe;QACzB,CAAC,CAAC,EAAE,CAAC;IACN,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,OAAO,0BAA0B,CAAC,IAAI,CACrC;YACC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7B,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;YAC7B,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;SAC9B;aACC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CACX,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAkC;IAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACnD,OAAO,OAAO,CACb,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC;YAC5B,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;YAChC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAChC,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAkC;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC;IACjD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,qBAAqB,CAC7B,WAA6B,EAC7B,QAAiC,EACjC,eAA4C;IAE5C,eAAe,CAAC,SAAS,EAAE;QAC1B,GAAG,WAAW;QACd,QAAQ,EAAE;YACT,GAAG,WAAW,CAAC,QAAQ;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO;YAC1D,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK;YACpD,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ;SACR;KACD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,UAA8B,EAAE,EAChC,eAAwC,EAAE;IAE1C,MAAM,IAAI,GAAG;QACZ,eAAe,EAAE,YAAY,CAAC,eAAe,IAAI,sBAAsB;QACvE,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,KAAK;QAClC,aAAa,EAAE,YAAY,CAAC,aAAa,IAAI,aAAa;QAC1D,mBAAmB,EAClB,YAAY,CAAC,mBAAmB,IAAI,mBAAmB;QACxD,eAAe,EAAE,YAAY,CAAC,eAAe,IAAI,oBAAoB;QACrE,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,KAAK;QAClC,GAAG,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3C,SAAS,EACR,YAAY,CAAC,SAAS;YACtB,CAAC,CAAC,GAAW,EAAE,EAAE;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YAClC,CAAC,CAAC;QACH,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACpD,eAAe,EAAE,YAAY,CAAC,eAAe,IAAI,oBAAoB;KACrE,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,sBAAsB,CAC7C,oBAAoB,EACpB,QAAQ,CACR,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACtE,IAAI,SAAyC,CAAC;IAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;QAC7D,SAAS,GAAG,MAAM,iBAAiB,CAClC,OAAO,EACP,eAAe,EACf,UAAU,EACV,IAAI,CAAC,KAAK,EACV,GAAG,CACH,CAAC;QACF,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC;IACtB,CAAC;SAAM,CAAC;QACP,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;IACzE,IAAI,cAA8B,CAAC;IACnC,IAAI,MAAwB,CAAC;IAC7B,MAAM,eAAe,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjE,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;QAC1B,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC,CAAC;IACF,IAAI,CAAC;QACJ,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,aAAa,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QACb,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC;YACb,OAAO,EAAE,4DAA4D;SACrE,CAAC,CAAC;QACH,SAAS,GAAG,MAAM,iBAAiB,CAClC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,EAC/B,eAAe,EACf,UAAU,EACV,IAAI,CAAC,KAAK,EACV,GAAG,CACH,CAAC;QACF,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC;QACrB,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,sBAAsB,GAAsB,EAAE,CAAC;IACnD,IAAI,mBAAmB,GAA8B,EAAE,CAAC;IACxD,IAAI,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;QACrE,sBAAsB,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC;YACb,OAAO,EAAE,uEAAuE,MAAM,GAAG;SACzF,CAAC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACnE,mBAAmB,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC;YACb,OAAO,EAAE,mEAAmE,MAAM,GAAG;SACrF,CAAC,CAAC;IACJ,CAAC;YAAS,CAAC;QACV,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,SAAS,CAAC;IACzE,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,CAAC;IACnD,MAAM,kBAAkB,GACvB,cAAc,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAClD,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,UAAU,GACf,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,YAAY,GACjB,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC;QAC5C,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,QAAQ,GACb,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzE,MAAM,SAAS,GACd,cAAc,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAA4B;QACzC,IAAI,EAAE,WAAW;QACjB,MAAM;QACN,SAAS,EAAE,CAAC,aAAa;YACxB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC,CACpC,CAAC,WAAW,EAAE;QACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;QAC3C,OAAO,EAAE,cAAc,CAAC,QAAQ;QAChC,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,SAAS;QACrE,kBAAkB;QAClB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,EAAE,KAAK;QACzD,OAAO,EAAE,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,MAAM,EAAE,OAAO;QAC3D,SAAS;QACT,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU;QACV,eAAe,EAAE,cAAc,CAAC,gBAAgB;QAChD,KAAK,EAAE,cAAc,CAAC,MAAM;QAC5B,YAAY;QACZ,MAAM;QACN,gBAAgB,EAAE,cAAc,CAAC,UAAU;QAC3C,QAAQ;QACR,SAAS;QACT,WAAW,EACV,OAAO,CAAC,WAAW,IAAI,6BAA6B,CAAC,WAAW,CAAC;KAClE,CAAC;IACF,qBAAqB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAEnE,OAAO;QACN,OAAO,EAAE,cAAc,CAAC,QAAQ;QAChC,aAAa;QACb,sBAAsB,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;QAC7D,eAAe,EAAE,8BAA8B,CAAC,WAAW,CAAC;QAC5D,UAAU,EAAE,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACrD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,sBAAsB,EAAE,CAAC,mBAAmB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QACvE,cAAc,EAAE,CAAC,mBAAmB,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM;QAC3D,qBAAqB,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;QAC/D,yBAAyB,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC;QACnE,kBAAkB;QAClB,SAAS;QACT,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU;QACV,cAAc,EAAE,6BAA6B,CAAC,WAAW,CAAC;QAC1D,eAAe,EAAE,cAAc,CAAC,gBAAgB;QAChD,YAAY,EAAE,qBAAqB,CAAC,mBAAmB,CAAC;QACxD,KAAK,EAAE,cAAc,CAAC,MAAM;QAC5B,YAAY;QACZ,aAAa,EAAE,cAAc,CAAC,cAAc;QAC5C,gBAAgB,EAAE,cAAc,CAAC,UAAU;QAC3C,QAAQ;QACR,MAAM,EAAE,IAAI;QACZ,qBAAqB,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;QAC5D,SAAS;KACT,CAAC;AACH,CAAC","sourcesContent":["import { hostname } from \"node:os\";\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { StreamableHTTPClientTransport } from \"@modelcontextprotocol/sdk/client/streamableHttp.js\";\nimport type { CallToolResult } from \"@modelcontextprotocol/sdk/types.js\";\nimport { getOAuthToken, hasOAuthCredentials, login } from \"../oauth/index.js\";\nimport {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n\tsaveOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { getPackageVersion } from \"../package-metadata.js\";\nimport { getEnvValue, normalizeBaseUrl } from \"../platform/client.js\";\nimport { PLATFORM_HTTP_ROUTES } from \"../platform/core-services.js\";\nimport { isRecord } from \"../utils/json.js\";\nimport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nexport {\n\ttype EvalOpsAgentMcpMetadata,\n\tgetStoredEvalOpsAgentMcpMetadata,\n} from \"./agent-mcp-metadata.js\";\n\nconst DEFAULT_AGENT_MCP_BASE_URL = \"https://app.evalops.dev\";\nconst DEFAULT_IDENTITY_BASE_URL = \"https://identity.evalops.dev\";\nconst AGENT_MCP_MANIFEST_PATH = \"/.well-known/evalops/agent-mcp.json\";\nconst AGENT_MCP_PATH = \"/mcp\";\nconst DEFAULT_AGENT_TYPE = \"maestro\";\nconst DEFAULT_SURFACE = \"cli\";\nconst DEFAULT_AGENT_NEUTRAL_CAPABILITIES = [\n\t\"mcp\",\n\t\"tool.use\",\n\t\"responses:create\",\n];\nconst DEFAULT_MAESTRO_AGENT_CAPABILITIES = [\n\t\"maestro:init\",\n\t\"maestro:cli\",\n\t\"conversation:manage\",\n\t\"workflow:orchestrate\",\n\t\"code:write\",\n\t\"code:review\",\n\t\"code:test\",\n\t\"shell\",\n\t\"git\",\n\t\"fs\",\n\t\"mcp\",\n\t\"tool.use\",\n\t\"research\",\n\t\"responses:create\",\n];\nconst DEFAULT_API_KEY_SCOPES = [\n\t\"agent:register\",\n\t\"agent:heartbeat\",\n\t\"governance:evaluate\",\n\t\"llm_gateway:invoke\",\n\t\"memories:read\",\n\t\"memories:write\",\n\t\"meter:record\",\n];\n\nexport interface EvalOpsInitOptions {\n\tagentType?: string;\n\tapiKeyScopes?: string[];\n\tcapabilities?: string[];\n\texpiresInDays?: number;\n\tforceLogin?: boolean;\n\tintegrationProfile?: string;\n\tjson?: boolean;\n\tkeyName?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tmcpUrl?: string;\n\tregisterScopes?: string[];\n\trotateKey?: boolean;\n\truntimeOwner?: string;\n\tshimType?: string;\n\tsurface?: string;\n\ttraceMode?: string;\n\tttlSeconds?: number;\n\tworkspaceId?: string;\n}\n\nexport interface EvalOpsInitResult {\n\tagentId?: string;\n\tapiKeyCreated: boolean;\n\tapprovalPolicyAttached?: boolean;\n\tauthenticatedAs?: string;\n\tconsoleUrl?: string;\n\tendpoint: string;\n\tevidenceEventPublished?: boolean;\n\tevidenceEvents?: number;\n\tgovernedActionsLoaded?: number;\n\tgovernedInferenceCheckRan?: boolean;\n\tintegrationProfile?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\torganizationId?: string;\n\tregistryVisible?: boolean;\n\triskFindings?: number;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopesGranted?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tstored: boolean;\n\ttraceIngestionStarted?: boolean;\n\ttraceMode?: string;\n}\n\nexport interface EvalOpsInitStatus {\n\tmessage: string;\n}\n\nexport interface EvalOpsInitDependencies {\n\tcreateMcpClient?: (endpoint: string, bearerToken: string) => EvalOpsMcpClient;\n\tfetch?: typeof fetch;\n\tgetOAuthToken?: typeof getOAuthToken;\n\thasOAuthCredentials?: typeof hasOAuthCredentials;\n\tloadCredentials?: typeof loadOAuthCredentials;\n\tlogin?: typeof login;\n\tnow?: () => Date;\n\tonAuthUrl?: (url: string) => void;\n\tonStatus?: (status: EvalOpsInitStatus) => void;\n\tsaveCredentials?: typeof saveOAuthCredentials;\n}\n\nexport interface EvalOpsMcpClient {\n\tcallTool(\n\t\tname: string,\n\t\targs: Record<string, unknown>,\n\t): Promise<CallToolResult>;\n\tclose(): Promise<void>;\n\tconnect(): Promise<void>;\n}\n\ninterface CreateAPIKeyOutput {\n\tapi_key: string;\n\texpires_at?: string;\n\tkey_id?: string;\n\tname?: string;\n\tprefix?: string;\n\tscopes?: string[];\n}\n\ninterface CreateAPIKeyHTTPOutput extends Partial<CreateAPIKeyOutput> {\n\terror?: string;\n\tkey?: Record<string, unknown>;\n\tscopes_granted?: unknown;\n}\n\ninterface RegisterOutput {\n\tagent_id?: string;\n\texpires_at?: string;\n\tintegration_profile?: string;\n\tmemory_mode?: string;\n\tregistered?: boolean;\n\tregistry_visible?: boolean;\n\trun_id?: string;\n\truntime_owner?: string;\n\tscopes_denied?: string[];\n\tscopes_granted?: string[];\n\tshim_type?: string;\n\ttrace_mode?: string;\n}\n\ninterface CheckActionOutput {\n\tdecision?: string;\n\trisk_level?: string;\n\treasons?: string[];\n}\n\ninterface ControlPlaneSummaryOutput {\n\tevidence?: unknown[];\n\tfindings?: unknown[];\n\tmetrics?: {\n\t\tapproval_required_tools?: number;\n\t\thigh_risk_tools?: number;\n\t\ttotal_tools?: number;\n\t};\n\tpolicy_controls?: unknown[];\n\ttools?: unknown[];\n}\n\ninterface AgentMcpEndpoint {\n\tendpoint: string;\n\tidentityBaseUrl?: string;\n\tmanifestUrl?: string;\n\tpreferDerivedIdentity?: boolean;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nfunction positiveInteger(value: number | undefined): number | undefined {\n\treturn typeof value === \"number\" && Number.isInteger(value) && value > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction normalizeMcpEndpoint(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (\n\t\tparsed.pathname === \"\" ||\n\t\tparsed.pathname === \"/\" ||\n\t\tparsed.pathname === AGENT_MCP_MANIFEST_PATH\n\t) {\n\t\tparsed.pathname = AGENT_MCP_PATH;\n\t\tparsed.search = \"\";\n\t\tparsed.hash = \"\";\n\t}\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nfunction normalizeManifestUrl(url: string): string {\n\tconst normalized = normalizeBaseUrl(url);\n\tconst parsed = new URL(normalized);\n\tif (parsed.pathname === \"\" || parsed.pathname === \"/\") {\n\t\tparsed.pathname = AGENT_MCP_MANIFEST_PATH;\n\t}\n\treturn parsed.toString();\n}\n\nfunction resolveIdentityBaseUrl(\n\tcredentials: OAuthCredentials | null,\n\tendpoint?: AgentMcpEndpoint,\n): string {\n\tconst configured = getEnvValue([\n\t\t\"MAESTRO_IDENTITY_URL\",\n\t\t\"EVALOPS_IDENTITY_URL\",\n\t\t\"MAESTRO_PLATFORM_BASE_URL\",\n\t\t\"MAESTRO_EVALOPS_BASE_URL\",\n\t\t\"EVALOPS_BASE_URL\",\n\t]);\n\tconst stored =\n\t\ttypeof credentials?.metadata?.identityBaseUrl === \"string\"\n\t\t\t? credentials.metadata.identityBaseUrl\n\t\t\t: undefined;\n\tconst derived = identityBaseUrlFromMcpEndpoint(endpoint?.endpoint);\n\tconst storedBeforeDerived = endpoint\n\t\t? !endpoint.preferDerivedIdentity && isCustomMcpEndpoint(endpoint.endpoint)\n\t\t: false;\n\treturn normalizeBaseUrl(\n\t\tconfigured ??\n\t\t\tendpoint?.identityBaseUrl ??\n\t\t\t(endpoint?.preferDerivedIdentity ? derived : undefined) ??\n\t\t\t(storedBeforeDerived ? stored : undefined) ??\n\t\t\tderived ??\n\t\t\tstored ??\n\t\t\tDEFAULT_IDENTITY_BASE_URL,\n\t\tObject.values(PLATFORM_HTTP_ROUTES.identity),\n\t);\n}\n\nfunction isCustomMcpEndpoint(endpoint: string): boolean {\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\treturn (\n\t\tparsed.hostname !== \"app.evalops.dev\" &&\n\t\tparsed.hostname !== \"staging.evalops.dev\"\n\t);\n}\n\nfunction identityBaseUrlFromMcpEndpoint(\n\tendpoint: string | undefined,\n): string | undefined {\n\tif (!endpoint) {\n\t\treturn undefined;\n\t}\n\tconst parsed = new URL(normalizeBaseUrl(endpoint));\n\tif (parsed.hostname === \"app.evalops.dev\") {\n\t\treturn DEFAULT_IDENTITY_BASE_URL;\n\t}\n\tif (parsed.hostname === \"staging.evalops.dev\") {\n\t\treturn \"https://api.staging.evalops.dev\";\n\t}\n\tif (parsed.hostname.startsWith(\"app.\")) {\n\t\tparsed.hostname = `identity.${parsed.hostname.slice(\"app.\".length)}`;\n\t}\n\tparsed.pathname = \"\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\treturn normalizeBaseUrl(parsed.toString());\n}\n\nasync function resolveEndpointFromManifest(\n\tmanifestUrl: string,\n\tfetchImpl: typeof fetch,\n): Promise<AgentMcpEndpoint> {\n\tconst response = await fetchImpl(manifestUrl, {\n\t\theaders: { accept: \"application/json\" },\n\t});\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\t`Failed to fetch EvalOps MCP manifest (${response.status} ${response.statusText})`,\n\t\t);\n\t}\n\tconst payload = (await response.json()) as unknown;\n\tconst payloadRecord = isRecord(payload) ? payload : undefined;\n\tconst protocol =\n\t\tpayloadRecord && isRecord(payloadRecord.protocol)\n\t\t\t? payloadRecord.protocol\n\t\t\t: undefined;\n\tconst endpoint = nonEmptyString(protocol?.endpoint);\n\tif (!endpoint) {\n\t\tthrow new Error(\"EvalOps MCP manifest did not include protocol.endpoint\");\n\t}\n\tconst identity = payloadRecord?.identity;\n\tconst identityBaseUrl =\n\t\tnonEmptyString(isRecord(identity) ? identity.base_url : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.baseUrl : undefined) ??\n\t\tnonEmptyString(isRecord(identity) ? identity.url : undefined) ??\n\t\tnonEmptyString(payloadRecord?.identity_base_url) ??\n\t\tnonEmptyString(payloadRecord?.identityBaseUrl);\n\treturn {\n\t\tendpoint: normalizeMcpEndpoint(endpoint),\n\t\tidentityBaseUrl,\n\t\tmanifestUrl,\n\t\tpreferDerivedIdentity: true,\n\t};\n}\n\nasync function resolveAgentMcpEndpoint(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<Pick<EvalOpsInitDependencies, \"fetch\" | \"loadCredentials\">>,\n): Promise<AgentMcpEndpoint> {\n\tif (options.mcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(options.mcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\tif (options.manifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(options.manifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst configuredMcpUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_URL\",\n\t\t\"MAESTRO_AGENT_MCP_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_URL\",\n\t]);\n\tif (configuredMcpUrl) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(configuredMcpUrl),\n\t\t\tpreferDerivedIdentity: true,\n\t\t};\n\t}\n\n\tconst configuredManifestUrl = getEnvValue([\n\t\t\"MAESTRO_PLATFORM_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_AGENT_MCP_MANIFEST_URL\",\n\t\t\"MAESTRO_EVALOPS_AGENT_MCP_MANIFEST_URL\",\n\t]);\n\tif (configuredManifestUrl) {\n\t\treturn resolveEndpointFromManifest(\n\t\t\tnormalizeManifestUrl(configuredManifestUrl),\n\t\t\tdeps.fetch,\n\t\t);\n\t}\n\n\tconst stored = getStoredAgentMcpMetadata(deps.loadCredentials(\"evalops\"));\n\tif (stored?.endpoint) {\n\t\treturn {\n\t\t\tendpoint: normalizeMcpEndpoint(stored.endpoint),\n\t\t\tmanifestUrl: stored.manifestUrl,\n\t\t};\n\t}\n\n\treturn resolveEndpointFromManifest(\n\t\t`${DEFAULT_AGENT_MCP_BASE_URL}${AGENT_MCP_MANIFEST_PATH}`,\n\t\tdeps.fetch,\n\t);\n}\n\nfunction createDefaultMcpClient(\n\tendpoint: string,\n\tbearerToken: string,\n): EvalOpsMcpClient {\n\tconst client = new Client(\n\t\t{\n\t\t\tname: \"maestro\",\n\t\t\tversion: getPackageVersion(),\n\t\t},\n\t\t{\n\t\t\tcapabilities: {},\n\t\t},\n\t);\n\tconst headers = {\n\t\taccept: \"application/json, text/event-stream\",\n\t\t\"content-type\": \"application/json\",\n\t\t...(bearerToken ? { authorization: `Bearer ${bearerToken}` } : {}),\n\t};\n\tconst transport = new StreamableHTTPClientTransport(new URL(endpoint), {\n\t\trequestInit: {\n\t\t\theaders,\n\t\t},\n\t});\n\treturn {\n\t\tcallTool: (name, args) =>\n\t\t\tclient.callTool({\n\t\t\t\tname,\n\t\t\t\targuments: args,\n\t\t\t}) as Promise<CallToolResult>,\n\t\tclose: () => client.close(),\n\t\tconnect: () => client.connect(transport),\n\t};\n}\n\nasync function callConnectedMcpTool<T>(\n\tclient: EvalOpsMcpClient,\n\ttoolName: string,\n\targs: Record<string, unknown>,\n): Promise<T> {\n\tconst result = await client.callTool(toolName, args);\n\tif (result.isError) {\n\t\tthrow new Error(`${toolName} returned an MCP error`);\n\t}\n\treturn parseToolOutput<T>(toolName, result);\n}\n\nfunction parseToolOutput<T>(toolName: string, result: CallToolResult): T {\n\tconst structuredContent = isRecord(result.structuredContent)\n\t\t? result.structuredContent\n\t\t: undefined;\n\tif (structuredContent) {\n\t\treturn structuredContent as T;\n\t}\n\tconst text = Array.isArray(result.content)\n\t\t? result.content\n\t\t\t\t.map((entry) =>\n\t\t\t\t\tentry.type === \"text\" && typeof entry.text === \"string\"\n\t\t\t\t\t\t? entry.text\n\t\t\t\t\t\t: undefined,\n\t\t\t\t)\n\t\t\t\t.find((entry): entry is string => Boolean(entry))\n\t\t: undefined;\n\tif (text) {\n\t\tconst parsed = JSON.parse(text) as unknown;\n\t\tif (isRecord(parsed)) {\n\t\t\treturn parsed as T;\n\t\t}\n\t}\n\tthrow new Error(`${toolName} did not return structured JSON output`);\n}\n\nasync function ensureEvalOpsLogin(\n\toptions: EvalOpsInitOptions,\n\tdeps: Required<\n\t\tPick<\n\t\t\tEvalOpsInitDependencies,\n\t\t\t| \"getOAuthToken\"\n\t\t\t| \"hasOAuthCredentials\"\n\t\t\t| \"login\"\n\t\t\t| \"onAuthUrl\"\n\t\t\t| \"onStatus\"\n\t\t>\n\t>,\n): Promise<string> {\n\tif (options.forceLogin || !deps.hasOAuthCredentials(\"evalops\")) {\n\t\tdeps.onStatus({ message: \"Opening EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t}\n\n\tlet token = await deps.getOAuthToken(\"evalops\");\n\tif (!token) {\n\t\tdeps.onStatus({ message: \"Refreshing EvalOps login\" });\n\t\tawait deps.login(\"evalops\", {\n\t\t\tonAuthUrl: deps.onAuthUrl,\n\t\t\tonStatus: (message) => deps.onStatus({ message }),\n\t\t});\n\t\ttoken = await deps.getOAuthToken(\"evalops\");\n\t}\n\tif (!token) {\n\t\tthrow new Error(\"EvalOps login did not produce an access token\");\n\t}\n\treturn token;\n}\n\nfunction buildKeyName(options: EvalOpsInitOptions, now: Date): string {\n\tif (options.keyName?.trim()) {\n\t\treturn options.keyName.trim();\n\t}\n\tconst host = hostname()\n\t\t.replace(/[^a-zA-Z0-9._-]+/gu, \"-\")\n\t\t.slice(0, 48);\n\treturn `maestro-init-${host || \"local\"}-${now.toISOString().slice(0, 10)}`;\n}\n\nfunction integrationProfileForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.integrationProfile) ??\n\t\t(options.agentType && options.agentType !== DEFAULT_AGENT_TYPE\n\t\t\t? \"mcp_otlp\"\n\t\t\t: \"managed_runtime\")\n\t);\n}\n\nfunction shimTypeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.shimType) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"sdk\"\n\t\t\t: \"native_mcp\")\n\t);\n}\n\nfunction traceModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.traceMode) ??\n\t\t(integrationProfileForOptions(options) === \"mcp_only\"\n\t\t\t? \"mcp_events\"\n\t\t\t: \"otlp\")\n\t);\n}\n\nfunction memoryModeForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.memoryMode) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"durable\"\n\t\t\t: \"none\")\n\t);\n}\n\nfunction runtimeOwnerForOptions(options: EvalOpsInitOptions): string {\n\treturn (\n\t\tnonEmptyString(options.runtimeOwner) ??\n\t\t(integrationProfileForOptions(options) === \"managed_runtime\"\n\t\t\t? \"evalops\"\n\t\t\t: \"external\")\n\t);\n}\n\nfunction capabilitiesForOptions(options: EvalOpsInitOptions): string[] {\n\tconst requested = stringArray(options.capabilities);\n\tconst defaults =\n\t\t(options.agentType ?? DEFAULT_AGENT_TYPE) === DEFAULT_AGENT_TYPE\n\t\t\t? DEFAULT_MAESTRO_AGENT_CAPABILITIES\n\t\t\t: DEFAULT_AGENT_NEUTRAL_CAPABILITIES;\n\tconst out: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const capability of requested ?? defaults) {\n\t\tconst normalized = nonEmptyString(capability);\n\t\tif (!normalized) continue;\n\t\tconst key = normalized.toLowerCase();\n\t\tif (seen.has(key)) continue;\n\t\tseen.add(key);\n\t\tout.push(normalized);\n\t}\n\treturn out;\n}\n\nasync function createAgentAPIKey(\n\toptions: EvalOpsInitOptions,\n\tidentityBaseUrl: string,\n\toauthToken: string,\n\tfetchImpl: typeof fetch,\n\tnow: Date,\n): Promise<CreateAPIKeyOutput> {\n\tconst expiresInDays = positiveInteger(options.expiresInDays);\n\tconst expiresAt = expiresInDays\n\t\t? new Date(\n\t\t\t\tnow.getTime() + expiresInDays * 24 * 60 * 60 * 1000,\n\t\t\t).toISOString()\n\t\t: undefined;\n\tconst response = await fetchImpl(\n\t\t`${identityBaseUrl}${PLATFORM_HTTP_ROUTES.identity.apiKeys}`,\n\t\t{\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${oauthToken}`,\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tname: buildKeyName(options, now),\n\t\t\t\tscopes: options.apiKeyScopes ?? DEFAULT_API_KEY_SCOPES,\n\t\t\t\t...(expiresAt ? { expires_at: expiresAt } : {}),\n\t\t\t}),\n\t\t},\n\t);\n\tconst output = (await response\n\t\t.json()\n\t\t.catch(() => ({}))) as CreateAPIKeyHTTPOutput;\n\tif (!response.ok) {\n\t\tthrow new Error(\n\t\t\ttypeof output.error === \"string\" && output.error.trim()\n\t\t\t\t? output.error\n\t\t\t\t: `EvalOps API key creation failed (${response.status})`,\n\t\t);\n\t}\n\tconst key = isRecord(output.key) ? output.key : undefined;\n\tconst normalized: CreateAPIKeyOutput = {\n\t\tapi_key: nonEmptyString(output.api_key) ?? \"\",\n\t\texpires_at:\n\t\t\tnonEmptyString(output.expires_at) ?? nonEmptyString(key?.expires_at),\n\t\tkey_id: nonEmptyString(output.key_id) ?? nonEmptyString(key?.id),\n\t\tname: nonEmptyString(output.name) ?? nonEmptyString(key?.name),\n\t\tprefix: nonEmptyString(output.prefix) ?? nonEmptyString(key?.prefix),\n\t\tscopes:\n\t\t\tstringArray(output.scopes) ??\n\t\t\tstringArray(key?.scopes) ??\n\t\t\tstringArray(output.scopes_granted),\n\t};\n\tif (!nonEmptyString(normalized.api_key)) {\n\t\tthrow new Error(\"EvalOps API key creation did not return api_key\");\n\t}\n\treturn normalized;\n}\n\nasync function registerAgent(\n\toptions: EvalOpsInitOptions,\n\tclient: EvalOpsMcpClient,\n): Promise<RegisterOutput> {\n\tconst output = await callConnectedMcpTool<RegisterOutput>(\n\t\tclient,\n\t\t\"evalops_register\",\n\t\t{\n\t\t\tagent_type: options.agentType ?? DEFAULT_AGENT_TYPE,\n\t\t\tcapabilities: capabilitiesForOptions(options),\n\t\t\tintegration_profile: integrationProfileForOptions(options),\n\t\t\tmemory_mode: memoryModeForOptions(options),\n\t\t\truntime_owner: runtimeOwnerForOptions(options),\n\t\t\t...(options.registerScopes?.length\n\t\t\t\t? { scopes: options.registerScopes }\n\t\t\t\t: {}),\n\t\t\tshim_type: shimTypeForOptions(options),\n\t\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\t\ttrace_mode: traceModeForOptions(options),\n\t\t\t...(positiveInteger(options.ttlSeconds)\n\t\t\t\t? { ttl_seconds: options.ttlSeconds }\n\t\t\t\t: {}),\n\t\t\t...(options.workspaceId ? { workspace_id: options.workspaceId } : {}),\n\t\t},\n\t);\n\tif (output.registered !== true || !nonEmptyString(output.agent_id)) {\n\t\tthrow new Error(\"EvalOps agent registration did not return an agent_id\");\n\t}\n\treturn output;\n}\n\nasync function runGovernedInferenceCheck(\n\tclient: EvalOpsMcpClient,\n): Promise<CheckActionOutput> {\n\treturn callConnectedMcpTool<CheckActionOutput>(\n\t\tclient,\n\t\t\"evalops_check_action\",\n\t\t{\n\t\t\taction_type: \"llm_gateway.invoke\",\n\t\t\taction_payload: \"maestro init first governed inference check\",\n\t\t\tdeclared_risk_level: \"low\",\n\t\t},\n\t);\n}\n\nasync function loadControlPlaneSummary(\n\tclient: EvalOpsMcpClient,\n): Promise<ControlPlaneSummaryOutput> {\n\treturn callConnectedMcpTool<ControlPlaneSummaryOutput>(\n\t\tclient,\n\t\t\"evalops_control_plane_summary\",\n\t\t{},\n\t);\n}\n\nfunction organizationIdFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\treturn (\n\t\tnonEmptyString(credentials?.metadata?.organizationId) ??\n\t\tnonEmptyString(credentials?.metadata?.organization_id)\n\t);\n}\n\nfunction authenticatedAsFromCredentials(\n\tcredentials: OAuthCredentials | null,\n): string | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst user = isRecord(metadata?.user) ? metadata.user : undefined;\n\treturn (\n\t\tnonEmptyString(metadata?.email) ??\n\t\tnonEmptyString(metadata?.preferred_username) ??\n\t\tnonEmptyString(metadata?.preferredUsername) ??\n\t\tnonEmptyString(metadata?.user) ??\n\t\tnonEmptyString(user?.email) ??\n\t\tnonEmptyString(user?.name)\n\t);\n}\n\nfunction consoleUrlFromEndpoint(endpoint: string): string {\n\tconst parsed = new URL(endpoint);\n\tparsed.pathname = \"/overview\";\n\tparsed.search = \"\";\n\tparsed.hash = \"\";\n\tconst env =\n\t\tparsed.hostname === \"app.evalops.dev\"\n\t\t\t? \"production\"\n\t\t\t: parsed.hostname === \"staging.evalops.dev\"\n\t\t\t\t? \"staging\"\n\t\t\t\t: \"local\";\n\tparsed.searchParams.set(\"env\", env);\n\treturn parsed.toString();\n}\n\nfunction countHighRiskFindings(summary: ControlPlaneSummaryOutput): number {\n\tconst findings = Array.isArray(summary.findings) ? summary.findings : [];\n\tconst findingCount = findings.filter((finding) => {\n\t\tconst record = isRecord(finding) ? finding : undefined;\n\t\tconst severity = nonEmptyString(record?.severity)?.toLowerCase();\n\t\treturn severity === \"critical\" || severity === \"high\";\n\t}).length;\n\tconst metricCount = summary.metrics?.high_risk_tools;\n\tif (typeof metricCount === \"number\" && Number.isFinite(metricCount)) {\n\t\treturn Math.max(findingCount, Math.max(0, Math.trunc(metricCount)));\n\t}\n\treturn findingCount;\n}\n\nfunction hasPolicyControl(summary: ControlPlaneSummaryOutput): boolean {\n\tconst approvalRequired = summary.metrics?.approval_required_tools ?? 0;\n\tif (approvalRequired > 0) {\n\t\treturn true;\n\t}\n\tconst controls = Array.isArray(summary.policy_controls)\n\t\t? summary.policy_controls\n\t\t: [];\n\treturn controls.some((control) => {\n\t\tconst record = isRecord(control) ? control : undefined;\n\t\treturn /approval|policy|starter/i.test(\n\t\t\t[\n\t\t\t\tnonEmptyString(record?.label),\n\t\t\t\tnonEmptyString(record?.value),\n\t\t\t\tnonEmptyString(record?.detail),\n\t\t\t]\n\t\t\t\t.filter(Boolean)\n\t\t\t\t.join(\" \"),\n\t\t);\n\t});\n}\n\nfunction hasTraceEvidence(summary: ControlPlaneSummaryOutput): boolean {\n\tconst evidence = Array.isArray(summary.evidence) ? summary.evidence : [];\n\treturn evidence.some((entry) => {\n\t\tconst record = isRecord(entry) ? entry : undefined;\n\t\treturn Boolean(\n\t\t\tnonEmptyString(record?.trace) ??\n\t\t\t\tnonEmptyString(record?.trace_id) ??\n\t\t\t\tnonEmptyString(record?.traceId),\n\t\t);\n\t});\n}\n\nfunction governedActionCount(summary: ControlPlaneSummaryOutput): number {\n\tconst metricTotal = summary.metrics?.total_tools;\n\tif (typeof metricTotal === \"number\" && Number.isFinite(metricTotal)) {\n\t\treturn Math.max(0, Math.trunc(metricTotal));\n\t}\n\treturn Array.isArray(summary.tools) ? summary.tools.length : 0;\n}\n\nfunction saveBootstrapMetadata(\n\tcredentials: OAuthCredentials,\n\tagentMcp: EvalOpsAgentMcpMetadata,\n\tsaveCredentials: typeof saveOAuthCredentials,\n): void {\n\tsaveCredentials(\"evalops\", {\n\t\t...credentials,\n\t\tmetadata: {\n\t\t\t...credentials.metadata,\n\t\t\tagentId: agentMcp.agentId ?? credentials.metadata?.agentId,\n\t\t\trunId: agentMcp.runId ?? credentials.metadata?.runId,\n\t\t\tsurface: agentMcp.surface,\n\t\t\tagentMcp,\n\t\t},\n\t});\n}\n\nexport async function bootstrapEvalOpsAgent(\n\toptions: EvalOpsInitOptions = {},\n\tdependencies: EvalOpsInitDependencies = {},\n): Promise<EvalOpsInitResult> {\n\tconst deps = {\n\t\tcreateMcpClient: dependencies.createMcpClient ?? createDefaultMcpClient,\n\t\tfetch: dependencies.fetch ?? fetch,\n\t\tgetOAuthToken: dependencies.getOAuthToken ?? getOAuthToken,\n\t\thasOAuthCredentials:\n\t\t\tdependencies.hasOAuthCredentials ?? hasOAuthCredentials,\n\t\tloadCredentials: dependencies.loadCredentials ?? loadOAuthCredentials,\n\t\tlogin: dependencies.login ?? login,\n\t\tnow: dependencies.now ?? (() => new Date()),\n\t\tonAuthUrl:\n\t\t\tdependencies.onAuthUrl ??\n\t\t\t((url: string) => {\n\t\t\t\tprocess.stdout.write(`${url}\\n`);\n\t\t\t}),\n\t\tonStatus: dependencies.onStatus ?? (() => undefined),\n\t\tsaveCredentials: dependencies.saveCredentials ?? saveOAuthCredentials,\n\t};\n\n\tconst oauthToken = await ensureEvalOpsLogin(options, deps);\n\tconst endpoint = await resolveAgentMcpEndpoint(options, deps);\n\tconst credentialsBeforeKey = deps.loadCredentials(\"evalops\");\n\tconst stored = getStoredAgentMcpMetadata(credentialsBeforeKey);\n\tconst identityBaseUrl = resolveIdentityBaseUrl(\n\t\tcredentialsBeforeKey,\n\t\tendpoint,\n\t);\n\tconst now = deps.now();\n\n\tlet apiKey = stored && !options.rotateKey ? stored.apiKey : undefined;\n\tlet keyOutput: CreateAPIKeyOutput | undefined;\n\tlet apiKeyCreated = false;\n\n\tif (!apiKey) {\n\t\tdeps.onStatus({ message: \"Creating EvalOps agent API key\" });\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\toptions,\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t} else {\n\t\tdeps.onStatus({ message: \"Reusing stored EvalOps agent API key\" });\n\t}\n\n\tdeps.onStatus({ message: \"Registering Maestro with EvalOps agent MCP\" });\n\tlet registerOutput: RegisterOutput;\n\tlet client: EvalOpsMcpClient;\n\tconst openAndRegister = async (token: string) => {\n\t\tconst mcpClient = deps.createMcpClient(endpoint.endpoint, token);\n\t\tawait mcpClient.connect();\n\t\ttry {\n\t\t\tconst output = await registerAgent(options, mcpClient);\n\t\t\treturn { client: mcpClient, registerOutput: output };\n\t\t} catch (error) {\n\t\t\tawait mcpClient.close().catch(() => undefined);\n\t\t\tthrow error;\n\t\t}\n\t};\n\ttry {\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t} catch (error) {\n\t\tif (apiKeyCreated) {\n\t\t\tthrow error;\n\t\t}\n\t\tdeps.onStatus({\n\t\t\tmessage: \"Stored EvalOps agent API key failed; rotating and retrying\",\n\t\t});\n\t\tkeyOutput = await createAgentAPIKey(\n\t\t\t{ ...options, rotateKey: true },\n\t\t\tidentityBaseUrl,\n\t\t\toauthToken,\n\t\t\tdeps.fetch,\n\t\t\tnow,\n\t\t);\n\t\tapiKey = keyOutput.api_key;\n\t\tapiKeyCreated = true;\n\t\t({ client, registerOutput } = await openAndRegister(apiKey));\n\t}\n\n\tlet governedInferenceCheck: CheckActionOutput = {};\n\tlet controlPlaneSummary: ControlPlaneSummaryOutput = {};\n\ttry {\n\t\tdeps.onStatus({ message: \"Running first governed inference check\" });\n\t\tgovernedInferenceCheck = await runGovernedInferenceCheck(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps governed inference check unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t}\n\ttry {\n\t\tdeps.onStatus({ message: \"Loading EvalOps control-plane status\" });\n\t\tcontrolPlaneSummary = await loadControlPlaneSummary(client);\n\t} catch (error) {\n\t\tconst reason = error instanceof Error ? error.message : String(error);\n\t\tdeps.onStatus({\n\t\t\tmessage: `EvalOps control-plane status unavailable; continuing bootstrap (${reason})`,\n\t\t});\n\t} finally {\n\t\tawait client.close().catch(() => undefined);\n\t}\n\n\tconst credentials = deps.loadCredentials(\"evalops\");\n\tif (!credentials) {\n\t\tthrow new Error(\"EvalOps OAuth credentials disappeared during init\");\n\t}\n\tconst keyPrefix = nonEmptyString(keyOutput?.prefix) ?? stored?.keyPrefix;\n\tconst scopes = keyOutput?.scopes ?? stored?.scopes;\n\tconst integrationProfile =\n\t\tnonEmptyString(registerOutput.integration_profile) ??\n\t\tintegrationProfileForOptions(options);\n\tconst memoryMode =\n\t\tnonEmptyString(registerOutput.memory_mode) ?? memoryModeForOptions(options);\n\tconst runtimeOwner =\n\t\tnonEmptyString(registerOutput.runtime_owner) ??\n\t\truntimeOwnerForOptions(options);\n\tconst shimType =\n\t\tnonEmptyString(registerOutput.shim_type) ?? shimTypeForOptions(options);\n\tconst traceMode =\n\t\tnonEmptyString(registerOutput.trace_mode) ?? traceModeForOptions(options);\n\tconst agentMcp: EvalOpsAgentMcpMetadata = {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt: (apiKeyCreated\n\t\t\t? now\n\t\t\t: new Date(stored?.createdAt ?? now)\n\t\t).toISOString(),\n\t\tendpoint: endpoint.endpoint,\n\t\tregisteredAt: deps.now().toISOString(),\n\t\tsurface: options.surface ?? DEFAULT_SURFACE,\n\t\tagentId: registerOutput.agent_id,\n\t\texpiresAt: nonEmptyString(keyOutput?.expires_at) ?? stored?.expiresAt,\n\t\tintegrationProfile,\n\t\tkeyId: nonEmptyString(keyOutput?.key_id) ?? stored?.keyId,\n\t\tkeyName: nonEmptyString(keyOutput?.name) ?? stored?.keyName,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopes,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\ttraceMode,\n\t\tworkspaceId:\n\t\t\toptions.workspaceId ?? organizationIdFromCredentials(credentials),\n\t};\n\tsaveBootstrapMetadata(credentials, agentMcp, deps.saveCredentials);\n\n\treturn {\n\t\tagentId: registerOutput.agent_id,\n\t\tapiKeyCreated,\n\t\tapprovalPolicyAttached: hasPolicyControl(controlPlaneSummary),\n\t\tauthenticatedAs: authenticatedAsFromCredentials(credentials),\n\t\tconsoleUrl: consoleUrlFromEndpoint(endpoint.endpoint),\n\t\tendpoint: endpoint.endpoint,\n\t\tevidenceEventPublished: (controlPlaneSummary.evidence ?? []).length > 0,\n\t\tevidenceEvents: (controlPlaneSummary.evidence ?? []).length,\n\t\tgovernedActionsLoaded: governedActionCount(controlPlaneSummary),\n\t\tgovernedInferenceCheckRan: Boolean(governedInferenceCheck.decision),\n\t\tintegrationProfile,\n\t\tkeyPrefix,\n\t\tmanifestUrl: endpoint.manifestUrl,\n\t\tmemoryMode,\n\t\torganizationId: organizationIdFromCredentials(credentials),\n\t\tregistryVisible: registerOutput.registry_visible,\n\t\triskFindings: countHighRiskFindings(controlPlaneSummary),\n\t\trunId: registerOutput.run_id,\n\t\truntimeOwner,\n\t\tscopesGranted: registerOutput.scopes_granted,\n\t\tsessionExpiresAt: registerOutput.expires_at,\n\t\tshimType,\n\t\tstored: true,\n\t\ttraceIngestionStarted: hasTraceEvidence(controlPlaneSummary),\n\t\ttraceMode,\n\t};\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-mcp-metadata.d.ts","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-mcp-metadata.d.ts","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EAErB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,uBAAuB;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAkBD,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAClC,uBAAuB,GAAG,SAAS,CAsCrC;AAED,wBAAgB,gCAAgC,IAC7C,uBAAuB,GACvB,SAAS,CAEX"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { loadOAuthCredentials, } from "../oauth/storage.js";
|
|
2
|
-
|
|
3
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
4
|
-
}
|
|
2
|
+
import { isRecord } from "../utils/json.js";
|
|
5
3
|
function nonEmptyString(value) {
|
|
6
4
|
return typeof value === "string" && value.trim().length > 0
|
|
7
5
|
? value.trim()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-mcp-metadata.js","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,oBAAoB,GACpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-mcp-metadata.js","sourceRoot":"","sources":["../../src/evalops/agent-mcp-metadata.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype OAuthCredentials,\n\tloadOAuthCredentials,\n} from \"../oauth/storage.js\";\nimport { isRecord } from \"../utils/json.js\";\n\nexport interface EvalOpsAgentMcpMetadata {\n\tagentId?: string;\n\tapiKey?: string;\n\tcreatedAt: string;\n\tendpoint: string;\n\texpiresAt?: string;\n\tintegrationProfile?: string;\n\tkeyId?: string;\n\tkeyName?: string;\n\tkeyPrefix?: string;\n\tmanifestUrl?: string;\n\tmemoryMode?: string;\n\tregisteredAt: string;\n\tregistryVisible?: boolean;\n\trunId?: string;\n\truntimeOwner?: string;\n\tscopes?: string[];\n\tsessionExpiresAt?: string;\n\tshimType?: string;\n\tsurface: string;\n\ttraceMode?: string;\n\ttype: \"agent-mcp\";\n\tworkspaceId?: string;\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value.trim()\n\t\t: undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n\tif (!Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst values = value\n\t\t.map((entry) => nonEmptyString(entry))\n\t\t.filter((entry): entry is string => Boolean(entry));\n\treturn values.length > 0 ? values : undefined;\n}\n\nexport function getStoredAgentMcpMetadata(\n\tcredentials: OAuthCredentials | null,\n): EvalOpsAgentMcpMetadata | undefined {\n\tconst metadata = credentials?.metadata;\n\tconst agentMcp = isRecord(metadata?.agentMcp) ? metadata.agentMcp : undefined;\n\tconst apiKey = nonEmptyString(agentMcp?.apiKey);\n\tconst endpoint = nonEmptyString(agentMcp?.endpoint);\n\tconst registeredAt = nonEmptyString(agentMcp?.registeredAt);\n\tconst createdAt = nonEmptyString(agentMcp?.createdAt);\n\tconst surface = nonEmptyString(agentMcp?.surface);\n\tif (!apiKey || !endpoint || !registeredAt || !createdAt || !surface) {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\ttype: \"agent-mcp\",\n\t\tapiKey,\n\t\tcreatedAt,\n\t\tendpoint,\n\t\tregisteredAt,\n\t\tsurface,\n\t\tagentId: nonEmptyString(agentMcp?.agentId),\n\t\texpiresAt: nonEmptyString(agentMcp?.expiresAt),\n\t\tintegrationProfile: nonEmptyString(agentMcp?.integrationProfile),\n\t\tkeyId: nonEmptyString(agentMcp?.keyId),\n\t\tkeyName: nonEmptyString(agentMcp?.keyName),\n\t\tkeyPrefix: nonEmptyString(agentMcp?.keyPrefix),\n\t\tmanifestUrl: nonEmptyString(agentMcp?.manifestUrl),\n\t\tmemoryMode: nonEmptyString(agentMcp?.memoryMode),\n\t\tregistryVisible:\n\t\t\ttypeof agentMcp?.registryVisible === \"boolean\"\n\t\t\t\t? agentMcp.registryVisible\n\t\t\t\t: undefined,\n\t\trunId: nonEmptyString(agentMcp?.runId),\n\t\truntimeOwner: nonEmptyString(agentMcp?.runtimeOwner),\n\t\tscopes: stringArray(agentMcp?.scopes),\n\t\tsessionExpiresAt: nonEmptyString(agentMcp?.sessionExpiresAt),\n\t\tshimType: nonEmptyString(agentMcp?.shimType),\n\t\ttraceMode: nonEmptyString(agentMcp?.traceMode),\n\t\tworkspaceId: nonEmptyString(agentMcp?.workspaceId),\n\t};\n}\n\nexport function getStoredEvalOpsAgentMcpMetadata():\n\t| EvalOpsAgentMcpMetadata\n\t| undefined {\n\treturn getStoredAgentMcpMetadata(loadOAuthCredentials(\"evalops\"));\n}\n"]}
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
* - WezTerm
|
|
19
19
|
* - Windows Terminal
|
|
20
20
|
*/
|
|
21
|
+
import type { SkillArtifactMetadata } from "../agent/skill-artifact-metadata.js";
|
|
21
22
|
import type { AgentEvent, AppMessage } from "../agent/types.js";
|
|
22
|
-
import type { SkillArtifactMetadata } from "../skills/artifact-metadata.js";
|
|
23
23
|
import type { SessionHookService } from "./session-integration.js";
|
|
24
24
|
export type NotificationEventType = "turn-complete" | "session-start" | "session-end" | "tool-execution" | "error";
|
|
25
25
|
export interface NotificationPayload {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"notification-hooks.d.ts","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Notification hooks for agent events.\n *\n * Allows external programs to be notified when agent events occur,\n * enabling CI/automation integration and custom workflows.\n *\n * Configuration via environment variable or config file:\n * MAESTRO_NOTIFY_PROGRAM=/path/to/script\n * MAESTRO_NOTIFY_EVENTS=turn-complete,session-end (comma-separated, or \"all\")\n * MAESTRO_NOTIFY_TERMINAL=true (enables OSC 9 terminal notifications)\n * MAESTRO_NOTIFY_IDLE_MS=6000 (delay completion notifications until user idle)\n *\n * The program receives a JSON payload as its first argument with event details.\n *\n * Terminal notifications use OSC 9 escape sequences supported by:\n * - iTerm2\n * - Ghostty\n * - WezTerm\n * - Windows Terminal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { AgentEvent, AppMessage } from \"../agent/types.js\";\nimport { PATHS } from \"../config/constants.js\";\nimport { getTimeSinceLastUserInteraction } from \"../interaction/user-interaction.js\";\nimport type { SkillArtifactMetadata } from \"../skills/artifact-metadata.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport type { SessionHookService } from \"./session-integration.js\";\n\nconst logger = createLogger(\"hooks:notify\");\nconst DEFAULT_IDLE_THRESHOLD_MS = 6_000;\n\nexport type NotificationEventType =\n\t| \"turn-complete\"\n\t| \"session-start\"\n\t| \"session-end\"\n\t| \"tool-execution\"\n\t| \"error\";\n\nexport interface NotificationPayload {\n\ttype: NotificationEventType;\n\ttimestamp: string;\n\tthreadId?: string;\n\tturnId?: string;\n\tcwd: string;\n\tinputMessages?: string[];\n\tlastAssistantMessage?: string;\n\ttoolName?: string;\n\ttoolResult?: string;\n\ttoolErrorCode?: string;\n\tapprovalRequestId?: string;\n\tgovernedOutcome?: string;\n\tskillMetadata?: SkillArtifactMetadata;\n\terror?: string;\n}\n\ntype NotificationDispatchLogger = {\n\twarn: (message: string, data?: Record<string, unknown>) => void;\n};\n\nexport interface NotificationHooksConfig {\n\tprogram?: string;\n\tevents?: NotificationEventType[];\n\ttimeout?: number;\n\tidleThresholdMs?: number;\n\t/** Enable OSC 9 terminal notifications (iTerm2, Ghostty, WezTerm, Windows Terminal) */\n\tterminalNotify?: boolean;\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\nlet cachedConfig: NotificationHooksConfig | null = null;\n\n/**\n * Load notification hooks configuration from environment or config file.\n */\nexport function loadNotificationConfig(): NotificationHooksConfig {\n\tif (cachedConfig) return cachedConfig;\n\n\tconst config: NotificationHooksConfig = {\n\t\tevents: [],\n\t\ttimeout: DEFAULT_TIMEOUT_MS,\n\t\tidleThresholdMs: DEFAULT_IDLE_THRESHOLD_MS,\n\t};\n\n\t// Check environment variables first\n\tconst envProgram = process.env.MAESTRO_NOTIFY_PROGRAM;\n\tif (envProgram) {\n\t\tconfig.program = envProgram;\n\t}\n\n\tconst envEvents = process.env.MAESTRO_NOTIFY_EVENTS;\n\tif (envEvents) {\n\t\tif (envEvents === \"all\") {\n\t\t\tconfig.events = [\n\t\t\t\t\"turn-complete\",\n\t\t\t\t\"session-start\",\n\t\t\t\t\"session-end\",\n\t\t\t\t\"tool-execution\",\n\t\t\t\t\"error\",\n\t\t\t];\n\t\t} else {\n\t\t\tconfig.events = envEvents\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim() as NotificationEventType)\n\t\t\t\t.filter((e) =>\n\t\t\t\t\t[\n\t\t\t\t\t\t\"turn-complete\",\n\t\t\t\t\t\t\"session-start\",\n\t\t\t\t\t\t\"session-end\",\n\t\t\t\t\t\t\"tool-execution\",\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t].includes(e),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tconst envTimeout = process.env.MAESTRO_NOTIFY_TIMEOUT;\n\tif (envTimeout) {\n\t\tconst parsed = Number.parseInt(envTimeout, 10);\n\t\tif (!Number.isNaN(parsed) && parsed > 0) {\n\t\t\tconfig.timeout = parsed;\n\t\t}\n\t}\n\n\tconst envIdleThreshold = process.env.MAESTRO_NOTIFY_IDLE_MS;\n\tif (envIdleThreshold) {\n\t\tconst parsed = Number.parseInt(envIdleThreshold, 10);\n\t\tif (!Number.isNaN(parsed) && parsed >= 0) {\n\t\t\tconfig.idleThresholdMs = parsed;\n\t\t}\n\t}\n\n\t// Terminal notifications via OSC 9\n\tconst envTerminal = process.env.MAESTRO_NOTIFY_TERMINAL;\n\tif (envTerminal === \"true\" || envTerminal === \"1\") {\n\t\tconfig.terminalNotify = true;\n\t}\n\n\t// Check config file if no environment override\n\tif (!config.program) {\n\t\tconst configPath = join(PATHS.MAESTRO_HOME, \"hooks.json\");\n\t\tif (existsSync(configPath)) {\n\t\t\ttry {\n\t\t\t\tconst fileConfig = JSON.parse(readFileSync(configPath, \"utf-8\"));\n\t\t\t\tif (fileConfig.notify?.program) {\n\t\t\t\t\tconfig.program = fileConfig.notify.program;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.events) {\n\t\t\t\t\tconfig.events = fileConfig.notify.events;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.timeout) {\n\t\t\t\t\tconfig.timeout = fileConfig.notify.timeout;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.idleThresholdMs !== undefined) {\n\t\t\t\t\tconfig.idleThresholdMs = fileConfig.notify.idleThresholdMs;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tfileConfig.notify?.terminalNotify !== undefined &&\n\t\t\t\t\tconfig.terminalNotify === undefined\n\t\t\t\t) {\n\t\t\t\t\tconfig.terminalNotify = Boolean(fileConfig.notify.terminalNotify);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to parse hooks.json\", { error });\n\t\t\t}\n\t\t}\n\t}\n\n\tcachedConfig = config;\n\treturn config;\n}\n\n/**\n * Clear cached configuration (useful for testing).\n */\nexport function clearNotificationConfigCache(): void {\n\tcachedConfig = null;\n}\n\n/**\n * Check if notifications are enabled for a given event type.\n */\nexport function isNotificationEnabled(\n\teventType: NotificationEventType,\n): boolean {\n\tconst config = loadNotificationConfig();\n\treturn Boolean(\n\t\t(config.program || config.terminalNotify) &&\n\t\t\tconfig.events &&\n\t\t\tconfig.events.includes(eventType),\n\t);\n}\n\n/**\n * Send a notification to the configured external program.\n * This runs asynchronously and does not block the main flow.\n */\nexport async function sendNotification(\n\tpayload: NotificationPayload,\n): Promise<void> {\n\tconst config = loadNotificationConfig();\n\n\tif (!config.events?.includes(payload.type)) {\n\t\treturn;\n\t}\n\n\tif (!config.program && !config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst shouldSend = await waitForIdleWindow(payload, config.idleThresholdMs);\n\tif (!shouldSend) {\n\t\tlogger.debug(\"Skipped notification due to recent user interaction\", {\n\t\t\ttype: payload.type,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summarizeNotificationPayload(payload));\n\t}\n\n\tif (!config.program) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executeNotifyProgram(\n\t\t\tconfig.program,\n\t\t\tJSON.stringify(payload),\n\t\t\tconfig.timeout,\n\t\t);\n\t\tlogger.debug(\"Notification sent\", { type: payload.type });\n\t} catch (error) {\n\t\tlogger.warn(\"Notification hook failed\", {\n\t\t\tprogram: config.program,\n\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t),\n\t\t});\n\t}\n}\n\n/**\n * Send a terminal notification using OSC 9 escape sequence.\n * Supported by iTerm2, Ghostty, WezTerm, Windows Terminal, and others.\n *\n * @param title - Notification title\n * @param body - Notification body (optional)\n */\nexport function sendTerminalNotification(title: string, body?: string): void {\n\tconst config = loadNotificationConfig();\n\tif (!config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst message = body ? `${title}: ${body}` : title;\n\t// OSC 9 is the escape sequence for desktop notifications\n\t// Format: ESC ] 9 ; message BEL\n\tconst osc9 = `\\x1b]9;${message}\\x07`;\n\tprocess.stdout.write(osc9);\n\tlogger.debug(\"Terminal notification sent\", { title });\n}\n\n/**\n * Send notification on turn complete.\n * Combines external program and terminal notifications.\n */\nexport function notifyTurnComplete(summary: string): void {\n\tconst config = loadNotificationConfig();\n\n\t// Send terminal notification\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summary);\n\t}\n\n\t// External program is handled by sendNotification with full payload\n}\n\nexport function summarizeNotificationPayload(\n\tpayload: NotificationPayload,\n): string | undefined {\n\tswitch (payload.type) {\n\t\tcase \"turn-complete\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Turn complete\";\n\t\tcase \"session-start\":\n\t\t\treturn `Session started in ${payload.cwd}`;\n\t\tcase \"session-end\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Session complete\";\n\t\tcase \"tool-execution\":\n\t\t\treturn payload.toolName\n\t\t\t\t? `${payload.toolName} finished`\n\t\t\t\t: \"Tool execution complete\";\n\t\tcase \"error\":\n\t\t\treturn payload.error ?? \"Agent error\";\n\t}\n}\n\nfunction requiresIdleWindow(type: NotificationEventType): boolean {\n\treturn type === \"turn-complete\" || type === \"session-end\";\n}\n\nasync function waitForIdleWindow(\n\tpayload: NotificationPayload,\n\tidleThresholdMs = DEFAULT_IDLE_THRESHOLD_MS,\n): Promise<boolean> {\n\tif (!requiresIdleWindow(payload.type) || idleThresholdMs <= 0) {\n\t\treturn true;\n\t}\n\n\tconst remainingDelay = idleThresholdMs - getTimeSinceLastUserInteraction();\n\tif (remainingDelay <= 0) {\n\t\treturn true;\n\t}\n\n\tawait new Promise((resolve) => setTimeout(resolve, remainingDelay));\n\treturn getTimeSinceLastUserInteraction() >= idleThresholdMs;\n}\n\n/**\n * Execute the notification program with the given payload.\n */\nfunction executeNotifyProgram(\n\tprogram: string,\n\tpayload: string,\n\ttimeout = DEFAULT_TIMEOUT_MS,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst child = spawn(program, [payload], {\n\t\t\tstdio: [\"ignore\", \"ignore\", \"pipe\"],\n\t\t\ttimeout,\n\t\t\tshell: false,\n\t\t});\n\n\t\tlet stderr = \"\";\n\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\tstderr += data.toString();\n\t\t});\n\n\t\tchild.on(\"error\", (error) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\treject(error);\n\t\t});\n\n\t\tchild.on(\"close\", (code) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\tif (code === 0) {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\treject(new Error(`Notify program exited with code ${code}: ${stderr}`));\n\t\t\t}\n\t\t});\n\n\t\t// Safety timeout\n\t\tconst safetyTimer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\treject(new Error(\"Notify program timed out\"));\n\t\t}, timeout + 1000);\n\t});\n}\n\n/**\n * Create notification payload from agent event.\n */\nexport function createNotificationFromAgentEvent(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n): NotificationPayload | null {\n\tconst base = {\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: context.cwd,\n\t\tthreadId: context.sessionId,\n\t};\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-start\",\n\t\t\t};\n\n\t\tcase \"agent_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-end\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? event.messages),\n\t\t\t\tlastAssistantMessage: extractLastAssistantMessage(event.messages),\n\t\t\t};\n\n\t\tcase \"turn_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"turn-complete\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? []),\n\t\t\t\tlastAssistantMessage: extractAssistantText(event.message),\n\t\t\t};\n\n\t\tcase \"tool_execution_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"tool-execution\",\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolResult: extractToolResultText(event.result),\n\t\t\t\ttoolErrorCode: event.errorCode,\n\t\t\t\tapprovalRequestId: event.approvalRequestId,\n\t\t\t\tgovernedOutcome: event.governedOutcome,\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t};\n\n\t\tcase \"error\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: event.message,\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function dispatchAgentNotification(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n\toptions?: {\n\t\tsessionHookService?: Pick<\n\t\t\tSessionHookService,\n\t\t\t\"hasHooks\" | \"runNotificationHooks\"\n\t\t>;\n\t\tlogger?: NotificationDispatchLogger;\n\t},\n): NotificationPayload | null {\n\tconst payload = createNotificationFromAgentEvent(event, context);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\n\tif (options?.sessionHookService?.hasHooks(\"Notification\")) {\n\t\tvoid options.sessionHookService\n\t\t\t.runNotificationHooks(\n\t\t\t\tpayload.type,\n\t\t\t\tsummarizeNotificationPayload(payload) ?? payload.type,\n\t\t\t)\n\t\t\t.catch((error) => {\n\t\t\t\toptions.logger?.warn(\"Notification hooks failed\", {\n\t\t\t\t\ttype: payload.type,\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif (isNotificationEnabled(payload.type)) {\n\t\tvoid sendNotification(payload);\n\t}\n\n\treturn payload;\n}\n\nfunction extractUserMessages(messages: AppMessage[]): string[] {\n\treturn messages\n\t\t.filter((m) => m.role === \"user\")\n\t\t.map((m) => {\n\t\t\tif (typeof m.content === \"string\") return m.content;\n\t\t\tif (Array.isArray(m.content)) {\n\t\t\t\treturn m.content\n\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.filter(Boolean);\n}\n\nfunction extractLastAssistantMessage(\n\tmessages: AppMessage[],\n): string | undefined {\n\tconst assistantMessages = messages.filter((m) => m.role === \"assistant\");\n\tconst lastMessage = assistantMessages[assistantMessages.length - 1];\n\tif (!lastMessage) return undefined;\n\treturn extractAssistantText(lastMessage);\n}\n\nfunction extractAssistantText(message: AppMessage): string | undefined {\n\tif (message.role !== \"assistant\") return undefined;\n\tconst textParts = message.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text);\n\treturn textParts.join(\"\\n\") || undefined;\n}\n\nfunction extractToolResultText(\n\tresult: { content: Array<{ type: string; text?: string }> } | undefined,\n): string | undefined {\n\tif (!result?.content) return undefined;\n\treturn result.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\")\n\t\t.slice(0, 1000); // Truncate for payload size\n}\n"]}
|
|
1
|
+
{"version":3,"file":"notification-hooks.js","sourceRoot":"","sources":["../../src/hooks/notification-hooks.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Notification hooks for agent events.\n *\n * Allows external programs to be notified when agent events occur,\n * enabling CI/automation integration and custom workflows.\n *\n * Configuration via environment variable or config file:\n * MAESTRO_NOTIFY_PROGRAM=/path/to/script\n * MAESTRO_NOTIFY_EVENTS=turn-complete,session-end (comma-separated, or \"all\")\n * MAESTRO_NOTIFY_TERMINAL=true (enables OSC 9 terminal notifications)\n * MAESTRO_NOTIFY_IDLE_MS=6000 (delay completion notifications until user idle)\n *\n * The program receives a JSON payload as its first argument with event details.\n *\n * Terminal notifications use OSC 9 escape sequences supported by:\n * - iTerm2\n * - Ghostty\n * - WezTerm\n * - Windows Terminal\n */\n\nimport { spawn } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport type { SkillArtifactMetadata } from \"../agent/skill-artifact-metadata.js\";\nimport type { AgentEvent, AppMessage } from \"../agent/types.js\";\nimport { PATHS } from \"../config/constants.js\";\nimport { getTimeSinceLastUserInteraction } from \"../interaction/user-interaction.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { sanitizeWithStaticMask } from \"../utils/secret-redactor.js\";\nimport type { SessionHookService } from \"./session-integration.js\";\n\nconst logger = createLogger(\"hooks:notify\");\nconst DEFAULT_IDLE_THRESHOLD_MS = 6_000;\n\nexport type NotificationEventType =\n\t| \"turn-complete\"\n\t| \"session-start\"\n\t| \"session-end\"\n\t| \"tool-execution\"\n\t| \"error\";\n\nexport interface NotificationPayload {\n\ttype: NotificationEventType;\n\ttimestamp: string;\n\tthreadId?: string;\n\tturnId?: string;\n\tcwd: string;\n\tinputMessages?: string[];\n\tlastAssistantMessage?: string;\n\ttoolName?: string;\n\ttoolResult?: string;\n\ttoolErrorCode?: string;\n\tapprovalRequestId?: string;\n\tgovernedOutcome?: string;\n\tskillMetadata?: SkillArtifactMetadata;\n\terror?: string;\n}\n\ntype NotificationDispatchLogger = {\n\twarn: (message: string, data?: Record<string, unknown>) => void;\n};\n\nexport interface NotificationHooksConfig {\n\tprogram?: string;\n\tevents?: NotificationEventType[];\n\ttimeout?: number;\n\tidleThresholdMs?: number;\n\t/** Enable OSC 9 terminal notifications (iTerm2, Ghostty, WezTerm, Windows Terminal) */\n\tterminalNotify?: boolean;\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\n\nlet cachedConfig: NotificationHooksConfig | null = null;\n\n/**\n * Load notification hooks configuration from environment or config file.\n */\nexport function loadNotificationConfig(): NotificationHooksConfig {\n\tif (cachedConfig) return cachedConfig;\n\n\tconst config: NotificationHooksConfig = {\n\t\tevents: [],\n\t\ttimeout: DEFAULT_TIMEOUT_MS,\n\t\tidleThresholdMs: DEFAULT_IDLE_THRESHOLD_MS,\n\t};\n\n\t// Check environment variables first\n\tconst envProgram = process.env.MAESTRO_NOTIFY_PROGRAM;\n\tif (envProgram) {\n\t\tconfig.program = envProgram;\n\t}\n\n\tconst envEvents = process.env.MAESTRO_NOTIFY_EVENTS;\n\tif (envEvents) {\n\t\tif (envEvents === \"all\") {\n\t\t\tconfig.events = [\n\t\t\t\t\"turn-complete\",\n\t\t\t\t\"session-start\",\n\t\t\t\t\"session-end\",\n\t\t\t\t\"tool-execution\",\n\t\t\t\t\"error\",\n\t\t\t];\n\t\t} else {\n\t\t\tconfig.events = envEvents\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((e) => e.trim() as NotificationEventType)\n\t\t\t\t.filter((e) =>\n\t\t\t\t\t[\n\t\t\t\t\t\t\"turn-complete\",\n\t\t\t\t\t\t\"session-start\",\n\t\t\t\t\t\t\"session-end\",\n\t\t\t\t\t\t\"tool-execution\",\n\t\t\t\t\t\t\"error\",\n\t\t\t\t\t].includes(e),\n\t\t\t\t);\n\t\t}\n\t}\n\n\tconst envTimeout = process.env.MAESTRO_NOTIFY_TIMEOUT;\n\tif (envTimeout) {\n\t\tconst parsed = Number.parseInt(envTimeout, 10);\n\t\tif (!Number.isNaN(parsed) && parsed > 0) {\n\t\t\tconfig.timeout = parsed;\n\t\t}\n\t}\n\n\tconst envIdleThreshold = process.env.MAESTRO_NOTIFY_IDLE_MS;\n\tif (envIdleThreshold) {\n\t\tconst parsed = Number.parseInt(envIdleThreshold, 10);\n\t\tif (!Number.isNaN(parsed) && parsed >= 0) {\n\t\t\tconfig.idleThresholdMs = parsed;\n\t\t}\n\t}\n\n\t// Terminal notifications via OSC 9\n\tconst envTerminal = process.env.MAESTRO_NOTIFY_TERMINAL;\n\tif (envTerminal === \"true\" || envTerminal === \"1\") {\n\t\tconfig.terminalNotify = true;\n\t}\n\n\t// Check config file if no environment override\n\tif (!config.program) {\n\t\tconst configPath = join(PATHS.MAESTRO_HOME, \"hooks.json\");\n\t\tif (existsSync(configPath)) {\n\t\t\ttry {\n\t\t\t\tconst fileConfig = JSON.parse(readFileSync(configPath, \"utf-8\"));\n\t\t\t\tif (fileConfig.notify?.program) {\n\t\t\t\t\tconfig.program = fileConfig.notify.program;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.events) {\n\t\t\t\t\tconfig.events = fileConfig.notify.events;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.timeout) {\n\t\t\t\t\tconfig.timeout = fileConfig.notify.timeout;\n\t\t\t\t}\n\t\t\t\tif (fileConfig.notify?.idleThresholdMs !== undefined) {\n\t\t\t\t\tconfig.idleThresholdMs = fileConfig.notify.idleThresholdMs;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\tfileConfig.notify?.terminalNotify !== undefined &&\n\t\t\t\t\tconfig.terminalNotify === undefined\n\t\t\t\t) {\n\t\t\t\t\tconfig.terminalNotify = Boolean(fileConfig.notify.terminalNotify);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.warn(\"Failed to parse hooks.json\", { error });\n\t\t\t}\n\t\t}\n\t}\n\n\tcachedConfig = config;\n\treturn config;\n}\n\n/**\n * Clear cached configuration (useful for testing).\n */\nexport function clearNotificationConfigCache(): void {\n\tcachedConfig = null;\n}\n\n/**\n * Check if notifications are enabled for a given event type.\n */\nexport function isNotificationEnabled(\n\teventType: NotificationEventType,\n): boolean {\n\tconst config = loadNotificationConfig();\n\treturn Boolean(\n\t\t(config.program || config.terminalNotify) &&\n\t\t\tconfig.events &&\n\t\t\tconfig.events.includes(eventType),\n\t);\n}\n\n/**\n * Send a notification to the configured external program.\n * This runs asynchronously and does not block the main flow.\n */\nexport async function sendNotification(\n\tpayload: NotificationPayload,\n): Promise<void> {\n\tconst config = loadNotificationConfig();\n\n\tif (!config.events?.includes(payload.type)) {\n\t\treturn;\n\t}\n\n\tif (!config.program && !config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst shouldSend = await waitForIdleWindow(payload, config.idleThresholdMs);\n\tif (!shouldSend) {\n\t\tlogger.debug(\"Skipped notification due to recent user interaction\", {\n\t\t\ttype: payload.type,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summarizeNotificationPayload(payload));\n\t}\n\n\tif (!config.program) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executeNotifyProgram(\n\t\t\tconfig.program,\n\t\t\tJSON.stringify(payload),\n\t\t\tconfig.timeout,\n\t\t);\n\t\tlogger.debug(\"Notification sent\", { type: payload.type });\n\t} catch (error) {\n\t\tlogger.warn(\"Notification hook failed\", {\n\t\t\tprogram: config.program,\n\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t),\n\t\t});\n\t}\n}\n\n/**\n * Send a terminal notification using OSC 9 escape sequence.\n * Supported by iTerm2, Ghostty, WezTerm, Windows Terminal, and others.\n *\n * @param title - Notification title\n * @param body - Notification body (optional)\n */\nexport function sendTerminalNotification(title: string, body?: string): void {\n\tconst config = loadNotificationConfig();\n\tif (!config.terminalNotify) {\n\t\treturn;\n\t}\n\n\tconst message = body ? `${title}: ${body}` : title;\n\t// OSC 9 is the escape sequence for desktop notifications\n\t// Format: ESC ] 9 ; message BEL\n\tconst osc9 = `\\x1b]9;${message}\\x07`;\n\tprocess.stdout.write(osc9);\n\tlogger.debug(\"Terminal notification sent\", { title });\n}\n\n/**\n * Send notification on turn complete.\n * Combines external program and terminal notifications.\n */\nexport function notifyTurnComplete(summary: string): void {\n\tconst config = loadNotificationConfig();\n\n\t// Send terminal notification\n\tif (config.terminalNotify) {\n\t\tsendTerminalNotification(\"Maestro\", summary);\n\t}\n\n\t// External program is handled by sendNotification with full payload\n}\n\nexport function summarizeNotificationPayload(\n\tpayload: NotificationPayload,\n): string | undefined {\n\tswitch (payload.type) {\n\t\tcase \"turn-complete\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Turn complete\";\n\t\tcase \"session-start\":\n\t\t\treturn `Session started in ${payload.cwd}`;\n\t\tcase \"session-end\":\n\t\t\treturn payload.lastAssistantMessage ?? \"Session complete\";\n\t\tcase \"tool-execution\":\n\t\t\treturn payload.toolName\n\t\t\t\t? `${payload.toolName} finished`\n\t\t\t\t: \"Tool execution complete\";\n\t\tcase \"error\":\n\t\t\treturn payload.error ?? \"Agent error\";\n\t}\n}\n\nfunction requiresIdleWindow(type: NotificationEventType): boolean {\n\treturn type === \"turn-complete\" || type === \"session-end\";\n}\n\nasync function waitForIdleWindow(\n\tpayload: NotificationPayload,\n\tidleThresholdMs = DEFAULT_IDLE_THRESHOLD_MS,\n): Promise<boolean> {\n\tif (!requiresIdleWindow(payload.type) || idleThresholdMs <= 0) {\n\t\treturn true;\n\t}\n\n\tconst remainingDelay = idleThresholdMs - getTimeSinceLastUserInteraction();\n\tif (remainingDelay <= 0) {\n\t\treturn true;\n\t}\n\n\tawait new Promise((resolve) => setTimeout(resolve, remainingDelay));\n\treturn getTimeSinceLastUserInteraction() >= idleThresholdMs;\n}\n\n/**\n * Execute the notification program with the given payload.\n */\nfunction executeNotifyProgram(\n\tprogram: string,\n\tpayload: string,\n\ttimeout = DEFAULT_TIMEOUT_MS,\n): Promise<void> {\n\treturn new Promise((resolve, reject) => {\n\t\tconst child = spawn(program, [payload], {\n\t\t\tstdio: [\"ignore\", \"ignore\", \"pipe\"],\n\t\t\ttimeout,\n\t\t\tshell: false,\n\t\t});\n\n\t\tlet stderr = \"\";\n\t\tchild.stderr?.on(\"data\", (data) => {\n\t\t\tstderr += data.toString();\n\t\t});\n\n\t\tchild.on(\"error\", (error) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\treject(error);\n\t\t});\n\n\t\tchild.on(\"close\", (code) => {\n\t\t\tclearTimeout(safetyTimer);\n\t\t\tif (code === 0) {\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\treject(new Error(`Notify program exited with code ${code}: ${stderr}`));\n\t\t\t}\n\t\t});\n\n\t\t// Safety timeout\n\t\tconst safetyTimer = setTimeout(() => {\n\t\t\tchild.kill(\"SIGTERM\");\n\t\t\treject(new Error(\"Notify program timed out\"));\n\t\t}, timeout + 1000);\n\t});\n}\n\n/**\n * Create notification payload from agent event.\n */\nexport function createNotificationFromAgentEvent(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n): NotificationPayload | null {\n\tconst base = {\n\t\ttimestamp: new Date().toISOString(),\n\t\tcwd: context.cwd,\n\t\tthreadId: context.sessionId,\n\t};\n\n\tswitch (event.type) {\n\t\tcase \"agent_start\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-start\",\n\t\t\t};\n\n\t\tcase \"agent_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"session-end\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? event.messages),\n\t\t\t\tlastAssistantMessage: extractLastAssistantMessage(event.messages),\n\t\t\t};\n\n\t\tcase \"turn_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"turn-complete\",\n\t\t\t\tinputMessages: extractUserMessages(context.messages ?? []),\n\t\t\t\tlastAssistantMessage: extractAssistantText(event.message),\n\t\t\t};\n\n\t\tcase \"tool_execution_end\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"tool-execution\",\n\t\t\t\ttoolName: event.toolName,\n\t\t\t\ttoolResult: extractToolResultText(event.result),\n\t\t\t\ttoolErrorCode: event.errorCode,\n\t\t\t\tapprovalRequestId: event.approvalRequestId,\n\t\t\t\tgovernedOutcome: event.governedOutcome,\n\t\t\t\tskillMetadata: event.skillMetadata,\n\t\t\t};\n\n\t\tcase \"error\":\n\t\t\treturn {\n\t\t\t\t...base,\n\t\t\t\ttype: \"error\",\n\t\t\t\terror: event.message,\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function dispatchAgentNotification(\n\tevent: AgentEvent,\n\tcontext: {\n\t\tcwd: string;\n\t\tsessionId?: string;\n\t\tmessages?: AppMessage[];\n\t},\n\toptions?: {\n\t\tsessionHookService?: Pick<\n\t\t\tSessionHookService,\n\t\t\t\"hasHooks\" | \"runNotificationHooks\"\n\t\t>;\n\t\tlogger?: NotificationDispatchLogger;\n\t},\n): NotificationPayload | null {\n\tconst payload = createNotificationFromAgentEvent(event, context);\n\tif (!payload) {\n\t\treturn null;\n\t}\n\n\tif (options?.sessionHookService?.hasHooks(\"Notification\")) {\n\t\tvoid options.sessionHookService\n\t\t\t.runNotificationHooks(\n\t\t\t\tpayload.type,\n\t\t\t\tsummarizeNotificationPayload(payload) ?? payload.type,\n\t\t\t)\n\t\t\t.catch((error) => {\n\t\t\t\toptions.logger?.warn(\"Notification hooks failed\", {\n\t\t\t\t\ttype: payload.type,\n\t\t\t\t\terror: sanitizeWithStaticMask(\n\t\t\t\t\t\terror instanceof Error ? error.message : String(error),\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tif (isNotificationEnabled(payload.type)) {\n\t\tvoid sendNotification(payload);\n\t}\n\n\treturn payload;\n}\n\nfunction extractUserMessages(messages: AppMessage[]): string[] {\n\treturn messages\n\t\t.filter((m) => m.role === \"user\")\n\t\t.map((m) => {\n\t\t\tif (typeof m.content === \"string\") return m.content;\n\t\t\tif (Array.isArray(m.content)) {\n\t\t\t\treturn m.content\n\t\t\t\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t\t\t\t.map((c) => c.text)\n\t\t\t\t\t.join(\"\\n\");\n\t\t\t}\n\t\t\treturn \"\";\n\t\t})\n\t\t.filter(Boolean);\n}\n\nfunction extractLastAssistantMessage(\n\tmessages: AppMessage[],\n): string | undefined {\n\tconst assistantMessages = messages.filter((m) => m.role === \"assistant\");\n\tconst lastMessage = assistantMessages[assistantMessages.length - 1];\n\tif (!lastMessage) return undefined;\n\treturn extractAssistantText(lastMessage);\n}\n\nfunction extractAssistantText(message: AppMessage): string | undefined {\n\tif (message.role !== \"assistant\") return undefined;\n\tconst textParts = message.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text);\n\treturn textParts.join(\"\\n\") || undefined;\n}\n\nfunction extractToolResultText(\n\tresult: { content: Array<{ type: string; text?: string }> } | undefined,\n): string | undefined {\n\tif (!result?.content) return undefined;\n\treturn result.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\")\n\t\t.slice(0, 1000); // Truncate for payload size\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural terminal-UI surface types for the public hooks API.
|
|
3
|
+
*
|
|
4
|
+
* User hook scripts may reference `Component` / `TUI` via the hooks types
|
|
5
|
+
* module. These are intentionally structural (not imported from the terminal
|
|
6
|
+
* UI package) so hooks types and non-interactive hook runners never take a
|
|
7
|
+
* hard dependency on that package. The interactive TUI implementation remains
|
|
8
|
+
* structurally assignable to these contracts.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Minimal renderable component surface (matches the terminal UI Component
|
|
12
|
+
* interface enough for hook custom UI factories and message renderers).
|
|
13
|
+
*/
|
|
14
|
+
export interface Component {
|
|
15
|
+
render(width: number): string[];
|
|
16
|
+
handleInput?(data: string): void;
|
|
17
|
+
invalidate?(): void;
|
|
18
|
+
onMount?(): void;
|
|
19
|
+
onUnmount?(): void;
|
|
20
|
+
dispose?(): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Minimal TUI host surface passed to hook `ui.custom()` factories.
|
|
24
|
+
* Only the methods hooks commonly need are declared; extra methods on the
|
|
25
|
+
* real host are fine (structural typing).
|
|
26
|
+
*/
|
|
27
|
+
export interface TUI {
|
|
28
|
+
addChild(component: Component): void;
|
|
29
|
+
removeChild?(component: Component): void;
|
|
30
|
+
setFocus(component: Component | null): void;
|
|
31
|
+
requestRender?(priority?: "normal" | "interactive"): void;
|
|
32
|
+
start?(): void;
|
|
33
|
+
stop?(): void;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=tui-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-surface.d.ts","sourceRoot":"","sources":["../../src/hooks/tui-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,IAAI,IAAI,CAAC;IACpB,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,OAAO,CAAC,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,GAAG;IACnB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,WAAW,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;IAC1D,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,IAAI,CAAC,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structural terminal-UI surface types for the public hooks API.
|
|
3
|
+
*
|
|
4
|
+
* User hook scripts may reference `Component` / `TUI` via the hooks types
|
|
5
|
+
* module. These are intentionally structural (not imported from the terminal
|
|
6
|
+
* UI package) so hooks types and non-interactive hook runners never take a
|
|
7
|
+
* hard dependency on that package. The interactive TUI implementation remains
|
|
8
|
+
* structurally assignable to these contracts.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=tui-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-surface.js","sourceRoot":"","sources":["../../src/hooks/tui-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG","sourcesContent":["/**\n * Structural terminal-UI surface types for the public hooks API.\n *\n * User hook scripts may reference `Component` / `TUI` via the hooks types\n * module. These are intentionally structural (not imported from the terminal\n * UI package) so hooks types and non-interactive hook runners never take a\n * hard dependency on that package. The interactive TUI implementation remains\n * structurally assignable to these contracts.\n */\n\n/**\n * Minimal renderable component surface (matches the terminal UI Component\n * interface enough for hook custom UI factories and message renderers).\n */\nexport interface Component {\n\trender(width: number): string[];\n\thandleInput?(data: string): void;\n\tinvalidate?(): void;\n\tonMount?(): void;\n\tonUnmount?(): void;\n\tdispose?(): void;\n}\n\n/**\n * Minimal TUI host surface passed to hook `ui.custom()` factories.\n * Only the methods hooks commonly need are declared; extra methods on the\n * real host are fine (structural typing).\n */\nexport interface TUI {\n\taddChild(component: Component): void;\n\tremoveChild?(component: Component): void;\n\tsetFocus(component: Component | null): void;\n\trequestRender?(priority?: \"normal\" | \"interactive\"): void;\n\tstart?(): void;\n\tstop?(): void;\n}\n"]}
|
package/dist/hooks/types.d.ts
CHANGED
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
* Hooks allow external programs to intercept, modify, or block agent operations
|
|
5
5
|
* at various points in the execution lifecycle.
|
|
6
6
|
*/
|
|
7
|
-
import type { Component, TUI } from "@evalops/tui";
|
|
8
7
|
import type { AgentTool, HookMessage } from "../agent/types.js";
|
|
9
8
|
import type { BranchSummaryEntry, SessionTreeEntry } from "../session/types.js";
|
|
10
9
|
import type { Theme } from "../theme/theme.js";
|
|
10
|
+
import type { Component, TUI } from "./tui-surface.js";
|
|
11
|
+
export type { Component, TUI } from "./tui-surface.js";
|
|
11
12
|
/**
|
|
12
13
|
* All supported hook event types.
|
|
13
14
|
*/
|