@evalops/maestro 0.10.17 → 0.10.20
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 +56 -1
- package/dist/agent/action-approval.d.ts +12 -2
- package/dist/agent/action-approval.d.ts.map +1 -1
- package/dist/agent/action-approval.js +19 -32
- package/dist/agent/action-approval.js.map +1 -1
- package/dist/agent/agent.d.ts +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +26 -0
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/compaction.d.ts +2 -0
- package/dist/agent/compaction.d.ts.map +1 -1
- package/dist/agent/compaction.js +4 -2
- package/dist/agent/compaction.js.map +1 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/index.js.map +1 -1
- package/dist/agent/modes.d.ts +56 -4
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +163 -2
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/prompt-recovery.d.ts.map +1 -1
- package/dist/agent/prompt-recovery.js +1 -3
- package/dist/agent/prompt-recovery.js.map +1 -1
- package/dist/agent/providers/anthropic.d.ts.map +1 -1
- package/dist/agent/providers/anthropic.js +9 -1
- package/dist/agent/providers/anthropic.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts +12 -0
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -0
- package/dist/agent/providers/codex-app-server.js +788 -0
- package/dist/agent/providers/codex-app-server.js.map +1 -0
- package/dist/agent/providers/google-gemini-cli.js +14 -3
- package/dist/agent/providers/google.js +22 -3
- package/dist/agent/providers/scripted.d.ts +11 -0
- package/dist/agent/providers/scripted.d.ts.map +1 -0
- package/dist/agent/providers/scripted.js +399 -0
- package/dist/agent/providers/scripted.js.map +1 -0
- package/dist/agent/providers/vertex.js +14 -3
- package/dist/agent/scenario-source.d.ts +19 -0
- package/dist/agent/scenario-source.d.ts.map +1 -0
- package/dist/agent/scenario-source.js +112 -0
- package/dist/agent/scenario-source.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +1 -1
- package/dist/agent/subagent-specs.js +1 -1
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/executor.d.ts +25 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +795 -20
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/runtime-events.d.ts +11 -0
- package/dist/agent/swarm/runtime-events.d.ts.map +1 -0
- package/dist/agent/swarm/runtime-events.js +26 -0
- package/dist/agent/swarm/runtime-events.js.map +1 -0
- package/dist/agent/swarm/types.d.ts +78 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/tracing.d.ts +1 -1
- package/dist/agent/tracing.d.ts.map +1 -1
- package/dist/agent/tracing.js +17 -9
- package/dist/agent/tracing.js.map +1 -1
- package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
- package/dist/agent/transport/create-provider-stream.js +14 -0
- package/dist/agent/transport/create-provider-stream.js.map +1 -1
- package/dist/agent/transport/stable-stringify.d.ts +2 -0
- package/dist/agent/transport/stable-stringify.d.ts.map +1 -0
- package/dist/agent/transport/stable-stringify.js +14 -0
- package/dist/agent/transport/stable-stringify.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +2 -15
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts +5 -1
- package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
- package/dist/agent/transport/tool-safety-pipeline.js +184 -36
- package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
- package/dist/agent/transport.d.ts +8 -0
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +1613 -68
- package/dist/agent/transport.js.map +1 -1
- package/dist/agent/types.d.ts +170 -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 +34 -3
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/app-server/in-process-client.d.ts +32 -0
- package/dist/app-server/in-process-client.d.ts.map +1 -0
- package/dist/app-server/in-process-client.js +73 -0
- package/dist/app-server/in-process-client.js.map +1 -0
- package/dist/app-server/session-api.d.ts +36 -0
- package/dist/app-server/session-api.d.ts.map +1 -0
- package/dist/app-server/session-api.js +713 -0
- package/dist/app-server/session-api.js.map +1 -0
- package/dist/approvals/platform-action-approval.d.ts +3 -1
- package/dist/approvals/platform-action-approval.d.ts.map +1 -1
- package/dist/approvals/platform-action-approval.js +16 -9
- package/dist/approvals/platform-action-approval.js.map +1 -1
- package/dist/approvals/service-client.d.ts.map +1 -1
- package/dist/approvals/service-client.js +7 -7
- package/dist/approvals/service-client.js.map +1 -1
- package/dist/audit/logger.d.ts +4 -4
- package/dist/bootstrap/agent-creation-setup.d.ts +4 -0
- package/dist/bootstrap/agent-creation-setup.d.ts.map +1 -1
- package/dist/bootstrap/agent-creation-setup.js +3 -1
- package/dist/bootstrap/agent-creation-setup.js.map +1 -1
- package/dist/bootstrap/auth-setup.js +1 -1
- package/dist/bootstrap/auth-setup.js.map +1 -1
- package/dist/bootstrap/event-subscriptions-setup.d.ts +6 -0
- package/dist/bootstrap/event-subscriptions-setup.d.ts.map +1 -1
- package/dist/bootstrap/event-subscriptions-setup.js +26 -2
- package/dist/bootstrap/event-subscriptions-setup.js.map +1 -1
- package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
- package/dist/bootstrap/model-resolution-setup.js +4 -1
- package/dist/bootstrap/model-resolution-setup.js.map +1 -1
- package/dist/bootstrap/tools-setup.d.ts +2 -1
- package/dist/bootstrap/tools-setup.d.ts.map +1 -1
- package/dist/bootstrap/tools-setup.js +5 -1
- package/dist/bootstrap/tools-setup.js.map +1 -1
- package/dist/cli/args.d.ts +9 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +130 -5
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts +9 -0
- package/dist/cli/commands/a2a.d.ts.map +1 -0
- package/dist/cli/commands/a2a.js +1714 -0
- package/dist/cli/commands/a2a.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +16 -2
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +223 -35
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/codex.d.ts +1 -1
- package/dist/cli/commands/codex.d.ts.map +1 -1
- package/dist/cli/commands/codex.js +145 -39
- package/dist/cli/commands/codex.js.map +1 -1
- package/dist/cli/commands/context.d.ts +10 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +176 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/hosted-runner.d.ts +1 -0
- package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
- package/dist/cli/commands/hosted-runner.js +9 -1
- package/dist/cli/commands/hosted-runner.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/modes.d.ts +8 -0
- package/dist/cli/commands/modes.d.ts.map +1 -0
- package/dist/cli/commands/modes.js +151 -0
- package/dist/cli/commands/modes.js.map +1 -0
- package/dist/cli/commands/operating-plane.d.ts +14 -0
- package/dist/cli/commands/operating-plane.d.ts.map +1 -0
- package/dist/cli/commands/operating-plane.js +160 -0
- package/dist/cli/commands/operating-plane.js.map +1 -0
- package/dist/cli/commands/run.d.ts +87 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +356 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/scenario.d.ts +7 -0
- package/dist/cli/commands/scenario.d.ts.map +1 -0
- package/dist/cli/commands/scenario.js +195 -0
- package/dist/cli/commands/scenario.js.map +1 -0
- package/dist/cli/commands/skill.d.ts +7 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +286 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts +55 -1
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +446 -7
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/headless-runtime-selection.d.ts +38 -0
- package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
- package/dist/cli/headless-runtime-selection.js +48 -0
- package/dist/cli/headless-runtime-selection.js.map +1 -0
- package/dist/cli/headless.d.ts +5 -1
- package/dist/cli/headless.d.ts.map +1 -1
- package/dist/cli/headless.js +11 -1
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/help.d.ts +3 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +136 -30
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/system-prompt.d.ts +22 -4
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +224 -127
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
- package/dist/cli-tui/commands/a2a-handlers.js +160 -0
- package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
- package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
- package/dist/cli-tui/commands/command-catalog.js +15 -0
- package/dist/cli-tui/commands/command-catalog.js.map +1 -1
- package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
- package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
- package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
- package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
- package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
- package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/mcp-handlers.js +6 -5
- package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
- package/dist/cli-tui/commands/types.d.ts +1 -0
- package/dist/cli-tui/commands/types.d.ts.map +1 -1
- package/dist/cli-tui/commands/types.js.map +1 -1
- package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
- package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/utility-handlers.js +45 -6
- package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
- package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/run-shell-command.js +14 -5
- package/dist/cli-tui/run/run-shell-command.js.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
- package/dist/cli-tui/run/streaming-shell-command.js +14 -5
- package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
- package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
- package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
- package/dist/cli-tui/selectors/model-selector.js +6 -2
- package/dist/cli-tui/selectors/model-selector.js.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
- package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
- package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
- package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
- package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
- package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
- package/dist/cli-tui/utils/runtime-badges.js +7 -0
- package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
- package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
- package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
- package/dist/cli-tui/utils/text-formatting.js +5 -0
- package/dist/cli-tui/utils/text-formatting.js.map +1 -1
- package/dist/cli.js +49209 -26165
- package/dist/cli.js.map +1 -1
- package/dist/codex/app-server-client.d.ts +139 -0
- package/dist/codex/app-server-client.d.ts.map +1 -0
- package/dist/codex/app-server-client.js +352 -0
- package/dist/codex/app-server-client.js.map +1 -0
- package/dist/codex/compatibility.d.ts +48 -0
- package/dist/codex/compatibility.d.ts.map +1 -0
- package/dist/codex/compatibility.js +344 -0
- package/dist/codex/compatibility.js.map +1 -0
- package/dist/codex/subagent-dispatch-table.d.ts +66 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
- package/dist/codex/subagent-dispatch-table.js +127 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -0
- package/dist/codex/subagent-workgraph.d.ts +56 -0
- package/dist/codex/subagent-workgraph.d.ts.map +1 -0
- package/dist/codex/subagent-workgraph.js +89 -0
- package/dist/codex/subagent-workgraph.js.map +1 -0
- package/dist/config/constants.d.ts +3 -1
- package/dist/config/constants.d.ts.map +1 -1
- package/dist/config/constants.js +9 -0
- package/dist/config/constants.js.map +1 -1
- package/dist/config/feature-flags.d.ts +10 -1
- package/dist/config/feature-flags.d.ts.map +1 -1
- package/dist/config/feature-flags.js +17 -6
- package/dist/config/feature-flags.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/toml-config.d.ts +32 -0
- package/dist/config/toml-config.d.ts.map +1 -1
- package/dist/config/toml-config.js +152 -43
- package/dist/config/toml-config.js.map +1 -1
- package/dist/connectors/service-client.d.ts.map +1 -1
- package/dist/connectors/service-client.js +4 -7
- package/dist/connectors/service-client.js.map +1 -1
- package/dist/context/manifest-types.d.ts +59 -0
- package/dist/context/manifest-types.d.ts.map +1 -0
- package/dist/context/manifest-types.js +2 -0
- package/dist/context/manifest-types.js.map +1 -0
- package/dist/context/manifest.d.ts +16 -0
- package/dist/context/manifest.d.ts.map +1 -0
- package/dist/context/manifest.js +503 -0
- package/dist/context/manifest.js.map +1 -0
- package/dist/db/schema.d.ts +10 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts +1 -0
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +41 -1
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/env-aliases.d.ts +13 -0
- package/dist/evalops/env-aliases.d.ts.map +1 -0
- package/dist/evalops/env-aliases.js +60 -0
- package/dist/evalops/env-aliases.js.map +1 -0
- package/dist/evalops/managed-context.d.ts.map +1 -1
- package/dist/evalops/managed-context.js +28 -62
- package/dist/evalops/managed-context.js.map +1 -1
- package/dist/guardian/config.d.ts.map +1 -1
- package/dist/guardian/config.js +1 -0
- package/dist/guardian/config.js.map +1 -1
- package/dist/guardian/runner.d.ts +2 -0
- package/dist/guardian/runner.d.ts.map +1 -1
- package/dist/guardian/runner.js +105 -2
- package/dist/guardian/runner.js.map +1 -1
- package/dist/guardian/types.d.ts +1 -0
- package/dist/guardian/types.d.ts.map +1 -1
- package/dist/guardian/types.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +267 -55
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +89 -7
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/manager.d.ts +5 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +159 -4
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/platform-plugin.d.ts.map +1 -1
- package/dist/mcp/platform-plugin.js +9 -26
- package/dist/mcp/platform-plugin.js.map +1 -1
- package/dist/mcp/schema.d.ts +15 -0
- package/dist/mcp/schema.d.ts.map +1 -1
- package/dist/mcp/schema.js +24 -0
- package/dist/mcp/schema.js.map +1 -1
- package/dist/mcp/tool-bridge.d.ts +39 -10
- package/dist/mcp/tool-bridge.d.ts.map +1 -1
- package/dist/mcp/tool-bridge.js +101 -24
- package/dist/mcp/tool-bridge.js.map +1 -1
- package/dist/mcp/types.d.ts +27 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts +10 -0
- package/dist/mcp/workspace-trust.d.ts.map +1 -0
- package/dist/mcp/workspace-trust.js +295 -0
- package/dist/mcp/workspace-trust.js.map +1 -0
- package/dist/memory/service-client.d.ts +1 -0
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +194 -9
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/builtin.d.ts.map +1 -1
- package/dist/models/builtin.js +66 -25
- package/dist/models/builtin.js.map +1 -1
- package/dist/models/config-loader.d.ts +10 -10
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +2 -0
- package/dist/models/config-loader.js.map +1 -1
- package/dist/models/registry.d.ts +1 -0
- package/dist/models/registry.d.ts.map +1 -1
- package/dist/models/registry.js +1 -0
- package/dist/models/registry.js.map +1 -1
- package/dist/oauth/device-identity.d.ts.map +1 -1
- package/dist/oauth/device-identity.js +1 -3
- package/dist/oauth/device-identity.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +2 -5
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/opentelemetry.d.ts.map +1 -1
- package/dist/opentelemetry.js +12 -12
- package/dist/opentelemetry.js.map +1 -1
- package/dist/package-version.d.ts +2 -0
- package/dist/package-version.d.ts.map +1 -0
- package/dist/package-version.js +11 -0
- package/dist/package-version.js.map +1 -0
- package/dist/packages/constants.d.ts +3 -0
- package/dist/packages/constants.d.ts.map +1 -0
- package/dist/packages/constants.js +3 -0
- package/dist/packages/constants.js.map +1 -0
- package/dist/packages/inspection.d.ts.map +1 -1
- package/dist/packages/inspection.js +2 -1
- package/dist/packages/inspection.js.map +1 -1
- package/dist/packages/search.d.ts.map +1 -1
- package/dist/packages/search.js +1 -1
- package/dist/packages/search.js.map +1 -1
- package/dist/platform/a2a-capability-market.d.ts +21 -0
- package/dist/platform/a2a-capability-market.d.ts.map +1 -0
- package/dist/platform/a2a-capability-market.js +176 -0
- package/dist/platform/a2a-capability-market.js.map +1 -0
- package/dist/platform/a2a-client.d.ts +217 -0
- package/dist/platform/a2a-client.d.ts.map +1 -0
- package/dist/platform/a2a-client.js +589 -0
- package/dist/platform/a2a-client.js.map +1 -0
- package/dist/platform/a2a-fleet.d.ts +41 -0
- package/dist/platform/a2a-fleet.d.ts.map +1 -0
- package/dist/platform/a2a-fleet.js +109 -0
- package/dist/platform/a2a-fleet.js.map +1 -0
- package/dist/platform/a2a-maestro-peer.d.ts +20 -0
- package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
- package/dist/platform/a2a-maestro-peer.js +176 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -0
- package/dist/platform/a2a-peer-pairing.d.ts +107 -0
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
- package/dist/platform/a2a-peer-pairing.js +489 -0
- package/dist/platform/a2a-peer-pairing.js.map +1 -0
- package/dist/platform/a2a-peer-registry.d.ts +68 -0
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
- package/dist/platform/a2a-peer-registry.js +320 -0
- package/dist/platform/a2a-peer-registry.js.map +1 -0
- package/dist/platform/a2a-task-ledger.d.ts +86 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
- package/dist/platform/a2a-task-ledger.js +546 -0
- package/dist/platform/a2a-task-ledger.js.map +1 -0
- package/dist/platform/a2a-work-graph.d.ts +43 -0
- package/dist/platform/a2a-work-graph.d.ts.map +1 -0
- package/dist/platform/a2a-work-graph.js +267 -0
- package/dist/platform/a2a-work-graph.js.map +1 -0
- package/dist/platform/agent-registry-client.d.ts +327 -0
- package/dist/platform/agent-registry-client.d.ts.map +1 -0
- package/dist/platform/agent-registry-client.js +803 -0
- package/dist/platform/agent-registry-client.js.map +1 -0
- package/dist/platform/agent-runtime-client.d.ts +135 -1
- package/dist/platform/agent-runtime-client.d.ts.map +1 -1
- package/dist/platform/agent-runtime-client.js +467 -10
- package/dist/platform/agent-runtime-client.js.map +1 -1
- package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
- package/dist/platform/cerebro-facts-client.js +4 -7
- package/dist/platform/cerebro-facts-client.js.map +1 -1
- package/dist/platform/client.d.ts +2 -0
- package/dist/platform/client.d.ts.map +1 -1
- package/dist/platform/client.js +7 -14
- package/dist/platform/client.js.map +1 -1
- package/dist/platform/core-services.d.ts +68 -0
- package/dist/platform/core-services.d.ts.map +1 -1
- package/dist/platform/core-services.js +68 -0
- package/dist/platform/core-services.js.map +1 -1
- package/dist/platform/fermata-eval-client.d.ts +195 -0
- package/dist/platform/fermata-eval-client.d.ts.map +1 -0
- package/dist/platform/fermata-eval-client.js +146 -0
- package/dist/platform/fermata-eval-client.js.map +1 -0
- package/dist/platform/fermata-scenario-suite.d.ts +99 -0
- package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
- package/dist/platform/fermata-scenario-suite.js +459 -0
- package/dist/platform/fermata-scenario-suite.js.map +1 -0
- package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
- package/dist/platform/maestro-timeline-client.js +5 -11
- package/dist/platform/maestro-timeline-client.js.map +1 -1
- package/dist/platform/operating-plane-client.d.ts +156 -0
- package/dist/platform/operating-plane-client.d.ts.map +1 -0
- package/dist/platform/operating-plane-client.js +131 -0
- package/dist/platform/operating-plane-client.js.map +1 -0
- package/dist/platform/operating-plane-summary.d.ts +47 -0
- package/dist/platform/operating-plane-summary.d.ts.map +1 -0
- package/dist/platform/operating-plane-summary.js +209 -0
- package/dist/platform/operating-plane-summary.js.map +1 -0
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +4 -11
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/prompts/service-client.d.ts.map +1 -1
- package/dist/prompts/service-client.js +3 -5
- package/dist/prompts/service-client.js.map +1 -1
- package/dist/prompts/system-prompt.d.ts +3 -0
- package/dist/prompts/system-prompt.d.ts.map +1 -1
- package/dist/prompts/system-prompt.js +13 -3
- package/dist/prompts/system-prompt.js.map +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/types.js.map +1 -1
- package/dist/providers/api-keys.d.ts +1 -1
- package/dist/providers/api-keys.d.ts.map +1 -1
- package/dist/providers/api-keys.js +2 -1
- package/dist/providers/api-keys.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +48 -25
- package/dist/providers/auth.js.map +1 -1
- package/dist/remote-runner/attach-client.d.ts.map +1 -1
- package/dist/remote-runner/attach-client.js +1 -0
- package/dist/remote-runner/attach-client.js.map +1 -1
- package/dist/remote-runner/client.d.ts.map +1 -1
- package/dist/remote-runner/client.js +4 -7
- package/dist/remote-runner/client.js.map +1 -1
- package/dist/rpc/rpc-types.d.ts.map +1 -1
- package/dist/rpc/rpc-types.js +1 -0
- package/dist/rpc/rpc-types.js.map +1 -1
- package/dist/safety/action-firewall.d.ts.map +1 -1
- package/dist/safety/action-firewall.js +69 -6
- package/dist/safety/action-firewall.js.map +1 -1
- package/dist/safety/attack-patterns.d.ts.map +1 -1
- package/dist/safety/attack-patterns.js +31 -14
- package/dist/safety/attack-patterns.js.map +1 -1
- package/dist/safety/bash-parser.d.ts.map +1 -1
- package/dist/safety/bash-parser.js +4 -3
- package/dist/safety/bash-parser.js.map +1 -1
- package/dist/safety/execpolicy.d.ts +15 -3
- package/dist/safety/execpolicy.d.ts.map +1 -1
- package/dist/safety/execpolicy.js +248 -37
- package/dist/safety/execpolicy.js.map +1 -1
- package/dist/safety/governance-service-client.d.ts.map +1 -1
- package/dist/safety/governance-service-client.js +4 -7
- package/dist/safety/governance-service-client.js.map +1 -1
- package/dist/safety/guarded-files.d.ts +34 -0
- package/dist/safety/guarded-files.d.ts.map +1 -0
- package/dist/safety/guarded-files.js +372 -0
- package/dist/safety/guarded-files.js.map +1 -0
- package/dist/safety/loop-detector.d.ts.map +1 -1
- package/dist/safety/loop-detector.js +6 -1
- package/dist/safety/loop-detector.js.map +1 -1
- package/dist/safety/permission-profile.d.ts +47 -0
- package/dist/safety/permission-profile.d.ts.map +1 -0
- package/dist/safety/permission-profile.js +349 -0
- package/dist/safety/permission-profile.js.map +1 -0
- package/dist/safety/safety-middleware.d.ts +5 -1
- package/dist/safety/safety-middleware.d.ts.map +1 -1
- package/dist/safety/safety-middleware.js +3 -2
- package/dist/safety/safety-middleware.js.map +1 -1
- package/dist/safety/suspicious-patterns.d.ts.map +1 -1
- package/dist/safety/suspicious-patterns.js +12 -7
- package/dist/safety/suspicious-patterns.js.map +1 -1
- package/dist/safety/tool-categorization.js +1 -1
- package/dist/safety/tool-categorization.js.map +1 -1
- package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
- package/dist/safety/validators/path-policy-validator.js +7 -0
- package/dist/safety/validators/path-policy-validator.js.map +1 -1
- package/dist/sandbox/index.d.ts +6 -1
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +30 -4
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/native-sandbox.d.ts +3 -0
- package/dist/sandbox/native-sandbox.d.ts.map +1 -1
- package/dist/sandbox/native-sandbox.js +139 -18
- package/dist/sandbox/native-sandbox.js.map +1 -1
- package/dist/sentry.d.ts +17 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +91 -0
- package/dist/sentry.js.map +1 -0
- package/dist/server/agent-runtime-ledger.d.ts +141 -0
- package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
- package/dist/server/agent-runtime-ledger.js +334 -0
- package/dist/server/agent-runtime-ledger.js.map +1 -0
- package/dist/server/agent-trajectory-inspection.d.ts +104 -0
- package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
- package/dist/server/agent-trajectory-inspection.js +168 -0
- package/dist/server/agent-trajectory-inspection.js.map +1 -0
- package/dist/server/agent-trajectory-replay.d.ts +56 -0
- package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
- package/dist/server/agent-trajectory-replay.js +214 -0
- package/dist/server/agent-trajectory-replay.js.map +1 -0
- package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
- package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
- package/dist/server/agent-trajectory-scenarios.js +822 -0
- package/dist/server/agent-trajectory-scenarios.js.map +1 -0
- package/dist/server/agent-trajectory-scorers.d.ts +61 -0
- package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
- package/dist/server/agent-trajectory-scorers.js +162 -0
- package/dist/server/agent-trajectory-scorers.js.map +1 -0
- package/dist/server/agent-trajectory-validation.d.ts +7 -0
- package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
- package/dist/server/agent-trajectory-validation.js +101 -0
- package/dist/server/agent-trajectory-validation.js.map +1 -0
- package/dist/server/agent-trajectory.d.ts +50 -0
- package/dist/server/agent-trajectory.d.ts.map +1 -0
- package/dist/server/agent-trajectory.js +159 -0
- package/dist/server/agent-trajectory.js.map +1 -0
- package/dist/server/app-context.d.ts +18 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
- package/dist/server/handlers/headless-sessions.js +64 -27
- package/dist/server/handlers/headless-sessions.js.map +1 -1
- package/dist/server/handlers/health.d.ts +6 -0
- package/dist/server/handlers/health.d.ts.map +1 -1
- package/dist/server/handlers/health.js +6 -0
- package/dist/server/handlers/health.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +309 -18
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
- package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-identity.js +43 -0
- package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
- package/dist/server/handlers/mode.d.ts.map +1 -1
- package/dist/server/handlers/mode.js +3 -1
- package/dist/server/handlers/mode.js.map +1 -1
- package/dist/server/handlers/pending-requests.d.ts.map +1 -1
- package/dist/server/handlers/pending-requests.js +336 -51
- package/dist/server/handlers/pending-requests.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
- package/dist/server/handlers/platform-a2a-push.js +136 -0
- package/dist/server/handlers/platform-a2a-push.js.map +1 -0
- package/dist/server/handlers/sessions.d.ts.map +1 -1
- package/dist/server/handlers/sessions.js +21 -1
- package/dist/server/handlers/sessions.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +9 -2
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +39 -0
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
- package/dist/server/hosted-agent-runtime-progress.js +1650 -0
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
- package/dist/server/hosted-runner-lease.d.ts +41 -0
- package/dist/server/hosted-runner-lease.d.ts.map +1 -0
- package/dist/server/hosted-runner-lease.js +140 -0
- package/dist/server/hosted-runner-lease.js.map +1 -0
- package/dist/server/hosted-session-manager.d.ts +16 -8
- package/dist/server/hosted-session-manager.d.ts.map +1 -1
- package/dist/server/hosted-session-manager.js +98 -76
- package/dist/server/hosted-session-manager.js.map +1 -1
- package/dist/server/junit-xml.d.ts +2 -0
- package/dist/server/junit-xml.d.ts.map +1 -0
- package/dist/server/junit-xml.js +9 -0
- package/dist/server/junit-xml.js.map +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +6 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/server/scenario-recorder.d.ts +56 -0
- package/dist/server/scenario-recorder.d.ts.map +1 -0
- package/dist/server/scenario-recorder.js +109 -0
- package/dist/server/scenario-recorder.js.map +1 -0
- package/dist/server/scripted-scenario-runner.d.ts +46 -0
- package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
- package/dist/server/scripted-scenario-runner.js +190 -0
- package/dist/server/scripted-scenario-runner.js.map +1 -0
- package/dist/server/server-middlewares.d.ts +6 -2
- package/dist/server/server-middlewares.d.ts.map +1 -1
- package/dist/server/server-middlewares.js +8 -2
- package/dist/server/server-middlewares.js.map +1 -1
- package/dist/server/server-request-manager.d.ts +9 -1
- package/dist/server/server-request-manager.d.ts.map +1 -1
- package/dist/server/server-request-manager.js +49 -4
- package/dist/server/server-request-manager.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts +2 -0
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +4 -0
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/service-authority.d.ts +25 -0
- package/dist/services/service-authority.d.ts.map +1 -0
- package/dist/services/service-authority.js +143 -0
- package/dist/services/service-authority.js.map +1 -0
- package/dist/services/workspace-config/service.d.ts +2 -0
- package/dist/services/workspace-config/service.d.ts.map +1 -1
- package/dist/services/workspace-config/service.js +4 -0
- package/dist/services/workspace-config/service.js.map +1 -1
- package/dist/session/manager.d.ts +8 -2
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +19 -4
- package/dist/session/manager.js.map +1 -1
- package/dist/session/session-branch.d.ts.map +1 -1
- package/dist/session/session-branch.js +5 -1
- package/dist/session/session-branch.js.map +1 -1
- package/dist/session/session-catalog.d.ts +7 -2
- package/dist/session/session-catalog.d.ts.map +1 -1
- package/dist/session/session-catalog.js +13 -2
- package/dist/session/session-catalog.js.map +1 -1
- package/dist/session/session-context.d.ts +6 -2
- package/dist/session/session-context.d.ts.map +1 -1
- package/dist/session/session-context.js +44 -4
- package/dist/session/session-context.js.map +1 -1
- package/dist/session/session-graph-projection.d.ts +32 -0
- package/dist/session/session-graph-projection.d.ts.map +1 -0
- package/dist/session/session-graph-projection.js +133 -0
- package/dist/session/session-graph-projection.js.map +1 -0
- package/dist/session/types.d.ts +18 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +8 -0
- package/dist/session/types.js.map +1 -1
- package/dist/session/wire-format.generated.d.ts +3 -0
- package/dist/session/wire-format.generated.d.ts.map +1 -1
- package/dist/session/wire-format.generated.js +20 -0
- package/dist/session/wire-format.generated.js.map +1 -1
- package/dist/skills/eval-harness.d.ts +38 -0
- package/dist/skills/eval-harness.d.ts.map +1 -0
- package/dist/skills/eval-harness.js +112 -0
- package/dist/skills/eval-harness.js.map +1 -0
- package/dist/skills/index.d.ts +5 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +5 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/linter.d.ts +36 -0
- package/dist/skills/linter.d.ts.map +1 -0
- package/dist/skills/linter.js +398 -0
- package/dist/skills/linter.js.map +1 -0
- package/dist/skills/loader.d.ts +36 -6
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +169 -86
- package/dist/skills/loader.js.map +1 -1
- package/dist/skills/package-contract.d.ts +45 -0
- package/dist/skills/package-contract.d.ts.map +1 -0
- package/dist/skills/package-contract.js +153 -0
- package/dist/skills/package-contract.js.map +1 -0
- package/dist/skills/runtime-activation.d.ts +68 -0
- package/dist/skills/runtime-activation.d.ts.map +1 -0
- package/dist/skills/runtime-activation.js +228 -0
- package/dist/skills/runtime-activation.js.map +1 -0
- package/dist/skills/service-client.d.ts.map +1 -1
- package/dist/skills/service-client.js +3 -4
- package/dist/skills/service-client.js.map +1 -1
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +2 -0
- package/dist/skills/tool.js.map +1 -1
- package/dist/skills/types.d.ts +14 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js.map +1 -1
- package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
- package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
- package/dist/telemetry/agent-operating-plane-context.js +54 -0
- package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
- package/dist/telemetry/beacon.d.ts +24 -0
- package/dist/telemetry/beacon.d.ts.map +1 -0
- package/dist/telemetry/beacon.js +115 -0
- package/dist/telemetry/beacon.js.map +1 -0
- package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
- package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
- package/dist/telemetry/cli-command-aggregator.js +251 -0
- package/dist/telemetry/cli-command-aggregator.js.map +1 -0
- package/dist/telemetry/cli-startup.d.ts +21 -0
- package/dist/telemetry/cli-startup.d.ts.map +1 -0
- package/dist/telemetry/cli-startup.js +83 -0
- package/dist/telemetry/cli-startup.js.map +1 -0
- package/dist/telemetry/disablement.d.ts +13 -0
- package/dist/telemetry/disablement.d.ts.map +1 -0
- package/dist/telemetry/disablement.js +19 -0
- package/dist/telemetry/disablement.js.map +1 -0
- package/dist/telemetry/index.d.ts +6 -2
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +6 -2
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts +52 -0
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +179 -3
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-catalog.js +2 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
- package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
- package/dist/telemetry/mcp-beacon.d.ts +20 -0
- package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
- package/dist/telemetry/mcp-beacon.js +54 -0
- package/dist/telemetry/mcp-beacon.js.map +1 -0
- package/dist/telemetry/metadata-normalization.d.ts +7 -0
- package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
- package/dist/telemetry/metadata-normalization.js +189 -0
- package/dist/telemetry/metadata-normalization.js.map +1 -0
- package/dist/telemetry/meter-service-client.d.ts.map +1 -1
- package/dist/telemetry/meter-service-client.js +5 -10
- package/dist/telemetry/meter-service-client.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +123 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +184 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/turn-tracker.d.ts +1 -0
- package/dist/telemetry/turn-tracker.d.ts.map +1 -1
- package/dist/telemetry/turn-tracker.js +22 -1
- package/dist/telemetry/turn-tracker.js.map +1 -1
- package/dist/telemetry/wide-events.d.ts +31 -1
- package/dist/telemetry/wide-events.d.ts.map +1 -1
- package/dist/telemetry/wide-events.js +229 -1
- package/dist/telemetry/wide-events.js.map +1 -1
- package/dist/telemetry.d.ts +39 -3
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +160 -3
- package/dist/telemetry.js.map +1 -1
- package/dist/testing/test-verification-hook.d.ts.map +1 -1
- package/dist/testing/test-verification-hook.js +34 -21
- package/dist/testing/test-verification-hook.js.map +1 -1
- package/dist/tools/apply-patch-parser.d.ts +26 -0
- package/dist/tools/apply-patch-parser.d.ts.map +1 -0
- package/dist/tools/apply-patch-parser.js +146 -0
- package/dist/tools/apply-patch-parser.js.map +1 -0
- package/dist/tools/apply-patch.d.ts +42 -0
- package/dist/tools/apply-patch.d.ts.map +1 -0
- package/dist/tools/apply-patch.js +648 -0
- package/dist/tools/apply-patch.js.map +1 -0
- package/dist/tools/ask-user.d.ts +1 -0
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/background/tool-handler.d.ts +1 -0
- package/dist/tools/background/tool-handler.d.ts.map +1 -1
- package/dist/tools/bash.d.ts +1 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/codesearch.d.ts +1 -0
- package/dist/tools/codesearch.d.ts.map +1 -1
- package/dist/tools/conductor-client.d.ts +1 -0
- package/dist/tools/conductor-client.d.ts.map +1 -1
- package/dist/tools/conductor-client.js +63 -0
- package/dist/tools/conductor-client.js.map +1 -1
- package/dist/tools/diff.d.ts +1 -0
- package/dist/tools/diff.d.ts.map +1 -1
- package/dist/tools/edit.d.ts +1 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/extract-document.d.ts +1 -0
- package/dist/tools/extract-document.d.ts.map +1 -1
- package/dist/tools/find.d.ts +10 -0
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +236 -27
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/gh.d.ts +3 -0
- package/dist/tools/gh.d.ts.map +1 -1
- package/dist/tools/index.d.ts +50 -0
- 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/list.d.ts +1 -0
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/notebook.d.ts +1 -0
- package/dist/tools/notebook.d.ts.map +1 -1
- package/dist/tools/oracle.d.ts +1 -0
- package/dist/tools/oracle.d.ts.map +1 -1
- package/dist/tools/oracle.js +17 -32
- package/dist/tools/oracle.js.map +1 -1
- package/dist/tools/parallel-execution.d.ts +13 -2
- package/dist/tools/parallel-execution.d.ts.map +1 -1
- package/dist/tools/parallel-execution.js +178 -7
- package/dist/tools/parallel-execution.js.map +1 -1
- package/dist/tools/parallel-ripgrep.d.ts +1 -0
- package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
- package/dist/tools/pipeline.d.ts +4 -0
- package/dist/tools/pipeline.d.ts.map +1 -1
- package/dist/tools/read.d.ts +1 -0
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/search.d.ts +1 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/status.d.ts +1 -0
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/todo.d.ts +1 -0
- package/dist/tools/todo.d.ts.map +1 -1
- package/dist/tools/tool-dsl.d.ts +5 -1
- package/dist/tools/tool-dsl.d.ts.map +1 -1
- package/dist/tools/tool-dsl.js +1 -0
- package/dist/tools/tool-dsl.js.map +1 -1
- package/dist/tools/tool-result-cache.d.ts.map +1 -1
- package/dist/tools/tool-result-cache.js +1 -0
- package/dist/tools/tool-result-cache.js.map +1 -1
- package/dist/tools/typebox-tool.d.ts.map +1 -1
- package/dist/tools/typebox-tool.js +3 -0
- package/dist/tools/typebox-tool.js.map +1 -1
- package/dist/tools/webfetch.d.ts +1 -0
- package/dist/tools/webfetch.d.ts.map +1 -1
- package/dist/tools/websearch.d.ts +1 -0
- package/dist/tools/websearch.d.ts.map +1 -1
- package/dist/tools/write.d.ts +1 -0
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/utils/abort-error.d.ts +2 -0
- package/dist/utils/abort-error.d.ts.map +1 -0
- package/dist/utils/abort-error.js +7 -0
- package/dist/utils/abort-error.js.map +1 -0
- package/dist/utils/downstream.d.ts.map +1 -1
- package/dist/utils/downstream.js +4 -0
- package/dist/utils/downstream.js.map +1 -1
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +14 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/path-containment.d.ts +2 -0
- package/dist/utils/path-containment.d.ts.map +1 -0
- package/dist/utils/path-containment.js +14 -0
- package/dist/utils/path-containment.js.map +1 -0
- package/dist/utils/prompt-safe-text.d.ts +7 -0
- package/dist/utils/prompt-safe-text.d.ts.map +1 -0
- package/dist/utils/prompt-safe-text.js +44 -0
- package/dist/utils/prompt-safe-text.js.map +1 -0
- package/dist/version.json +2 -2
- package/dist/web-server.d.ts.map +1 -1
- package/dist/web-server.js +32 -7
- package/dist/web-server.js.map +1 -1
- package/dist/workspace/root-resolver.d.ts +4 -1
- package/dist/workspace/root-resolver.d.ts.map +1 -1
- package/dist/workspace/root-resolver.js +16 -6
- package/dist/workspace/root-resolver.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
- package/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
- package/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
- package/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
- package/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
- package/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
- package/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +2 -0
- package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +1 -0
- package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +280 -5
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +36 -1
- package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.d.ts +15 -1
- package/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/index.js +6 -0
- package/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
- package/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
- package/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +91 -0
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +92 -61
- package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +3 -0
- package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
- package/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
- package/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +7 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js +2 -0
- package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -1
- package/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
- package/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
- package/node_modules/@evalops/contracts/dist/scenario.js +4 -0
- package/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
- package/node_modules/@evalops/contracts/dist/schemas.d.ts +17 -3
- package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -1
- package/node_modules/@evalops/contracts/dist/schemas.js +16 -0
- package/node_modules/@evalops/contracts/dist/schemas.js.map +1 -1
- package/node_modules/@evalops/contracts/package.json +1 -1
- package/node_modules/@evalops/tui/package.json +1 -1
- package/package.json +41 -7
- package/skills/incident-triage/SKILL.md +40 -0
- package/skills/incident-triage/mcp.json +14 -0
- package/skills/incident-triage/reference/triage.md +20 -0
- package/skills/incident-triage/toolbox/incident-timeline +22 -0
- package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
- package/skills/pr-review/SKILL.md +40 -0
- package/skills/pr-review/mcp.json +14 -0
- package/skills/pr-review/reference/rubric.md +20 -0
- package/skills/pr-review/toolbox/review-summary +20 -0
- package/skills/pr-review/toolbox/review-summary.cmd +14 -0
- package/skills/release-verification/SKILL.md +40 -0
- package/skills/release-verification/mcp.json +15 -0
- package/skills/release-verification/reference/checklist.md +21 -0
- package/skills/release-verification/toolbox/release-readiness +18 -0
- package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-agent-runtime-progress.js","sourceRoot":"","sources":["../../src/server/hosted-agent-runtime-progress.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport type { SwarmEvent, SwarmTask } from \"../agent/swarm/types.js\";\nimport type { AgentEvent, AppMessage, Usage } from \"../agent/types.js\";\nimport {\n\tCODEX_SUBAGENT_TOOL_PREFIX,\n\tcanonicalCodexSubagentTool,\n\tcodexSubagentActiveStatus,\n\tcodexSubagentNextAction as codexSubagentContractNextAction,\n\tcodexSubagentOperationName,\n\tcodexSubagentTerminalSuccessStatus,\n} from \"../codex/subagent-workgraph.js\";\nimport {\n\tPlatformDelegationStatusValue,\n\tdelegateAgentWithPlatform,\n\tresolveAgentDelegationWithPlatform,\n} from \"../platform/agent-registry-client.js\";\nimport {\n\ttype PlatformAgentRunStep,\n\tPlatformAgentRunStepKindValue,\n\tPlatformAgentRunStepStateValue,\n\tPlatformAgentRunWaitTypeValue,\n\ttype PlatformAgentRuntimeRecordRunEventInput,\n\ttype PlatformAgentWorkItem,\n\tPlatformAgentWorkItemKindValue,\n\tPlatformAgentWorkItemStateValue,\n\tPlatformRuntimeEventTypeValue,\n\tcompleteAgentRuntimeRun,\n\tfailAgentRuntimeRun,\n\trecordAgentRuntimeRunCost,\n\trecordAgentRuntimeRunEvent,\n\trecordAgentRuntimeRunStep,\n\trecordAgentRuntimeRunWorkItem,\n\tresumeAgentRuntimeRun,\n\tupdateAgentRuntimeRunWorkItem,\n\twaitAgentRuntimeRun,\n} from \"../platform/agent-runtime-client.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport type { ServerRequestLifecycleEvent } from \"./server-request-manager.js\";\n\nconst logger = createLogger(\"server:hosted-agent-runtime-progress\");\nconst CODEX_THREAD_CHILD_RUN_PREFIX = \"codex-thread:\";\nconst DEFAULT_CODEX_SUBAGENT_DELEGATION_CAPABILITY = \"code:write\";\n\ntype HostedAgentRuntimeTaskSource =\n\t| \"todo\"\n\t| \"background\"\n\t| \"swarm\"\n\t| \"checkpoint\";\n\ntype HostedAgentRuntimeTaskStatus =\n\t| \"pending\"\n\t| \"running\"\n\t| \"waiting\"\n\t| \"blocked\"\n\t| \"succeeded\"\n\t| \"failed\"\n\t| \"cancelled\";\n\nexport interface HostedAgentRuntimeTaskProgressEvent {\n\tsource: HostedAgentRuntimeTaskSource;\n\tid: string;\n\tstatus: HostedAgentRuntimeTaskStatus;\n\ttitle: string;\n\tgoal?: string;\n\tparentId?: string;\n\townerChildRunId?: string;\n\tworkItemKind?: PlatformAgentWorkItemKindValue | string;\n\tstepKind?: PlatformAgentRunStepKindValue | string;\n\tnextAction?: string;\n\tblocker?: string;\n\terrorMessage?: string;\n\ttoolCallId?: string;\n\ttoolExecutionId?: string;\n\tapprovalRequestId?: string;\n\tcompletionGate?: string;\n\tevidenceRefs?: string[];\n\tpayload?: Record<string, unknown>;\n\trecordStep?: boolean;\n}\n\nexport interface HostedAgentRuntimeProgressContext {\n\tenabled: true;\n\tagentRunId?: string;\n\tagentRuntimeLeaseToken?: string;\n\tagentRuntimeWorkerQueue?: string;\n\tagentRuntimeCorrelationPath?: string;\n\tworkspaceId?: string;\n\trunnerSessionId?: string;\n\townerInstanceId?: string;\n\tagentId?: string;\n}\n\ntype ProgressOperation = () => Promise<unknown>;\n\nexport interface HostedAgentRuntimeProgressRecorderOperations {\n\trecordStep?: typeof recordAgentRuntimeRunStep;\n\trecordEvent?: typeof recordAgentRuntimeRunEvent;\n\trecordCost?: typeof recordAgentRuntimeRunCost;\n\trecordWorkItem?: typeof recordAgentRuntimeRunWorkItem;\n\tupdateWorkItem?: typeof updateAgentRuntimeRunWorkItem;\n\twaitRun?: typeof waitAgentRuntimeRun;\n\tresumeRun?: typeof resumeAgentRuntimeRun;\n\tcompleteRun?: typeof completeAgentRuntimeRun;\n\tfailRun?: typeof failAgentRuntimeRun;\n\tdelegateAgent?: typeof delegateAgentWithPlatform;\n\tresolveDelegation?: typeof resolveAgentDelegationWithPlatform;\n}\n\nexport interface HostedAgentRuntimeProgressRecorderOptions {\n\tsessionId: string;\n\thostedRunner?: HostedAgentRuntimeProgressContext;\n\tworkspaceRoot?: string;\n\toperations?: HostedAgentRuntimeProgressRecorderOperations;\n}\n\nexport interface HostedAgentRuntimeCompleteInput {\n\treason?: string;\n\trequestedBy?: string;\n\tflushStatus?: string;\n\tmanifestPath?: string;\n}\n\nexport interface HostedAgentRuntimeFailInput {\n\terrorMessage: string;\n\treason?: string;\n\trequestedBy?: string;\n\tretryable?: boolean;\n\tmanifestPath?: string;\n\tflushStatus?: string;\n}\n\nexport interface HostedAgentRuntimeDrainInput {\n\tstatus: \"drained\" | \"interrupted\" | string;\n\treason?: string;\n\trequestedBy?: string;\n\tflushStatus?: string;\n\tmanifestPath?: string;\n\tplatformEvidence?: unknown;\n\terrorMessage?: string;\n}\n\nfunction safeIdPart(value: string): string {\n\treturn value.replace(/[^A-Za-z0-9_.:-]+/g, \"_\").slice(0, 96) || \"unknown\";\n}\n\nfunction nonEmptyString(value: unknown): string | undefined {\n\treturn typeof value === \"string\" && value.trim().length > 0\n\t\t? value\n\t\t: undefined;\n}\n\nfunction compactString(value: unknown, maxLength = 256): string | undefined {\n\tconst text = nonEmptyString(value)?.trim();\n\tif (!text) {\n\t\treturn undefined;\n\t}\n\tif (text.length <= maxLength) {\n\t\treturn text;\n\t}\n\tif (maxLength <= 0) {\n\t\treturn \"\";\n\t}\n\tif (maxLength <= 3) {\n\t\treturn \".\".repeat(maxLength);\n\t}\n\treturn `${text.slice(0, maxLength - 3)}...`;\n}\n\nfunction isExistingWorkItemCreateError(error: unknown): boolean {\n\tconst message = error instanceof Error ? error.message : String(error);\n\treturn /\\b409\\b|already exists|already_exists|duplicate|unique constraint/i.test(\n\t\tmessage,\n\t);\n}\n\nfunction stableShortHash(value: string): string {\n\treturn createHash(\"sha256\").update(value).digest(\"hex\").slice(0, 12);\n}\n\nfunction goalScopedTodoId(id: string, goal: string | undefined): string {\n\treturn goal ? `goal-${stableShortHash(goal)}:${id}` : id;\n}\n\nfunction swarmCompletionStatus(\n\tevent: Extract<SwarmEvent, { type: \"swarm_complete\" }>,\n): HostedAgentRuntimeTaskStatus {\n\tswitch (event.state.status) {\n\t\tcase \"completed\":\n\t\t\treturn \"succeeded\";\n\t\tcase \"failed\":\n\t\t\treturn \"failed\";\n\t\tcase \"cancelled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"completing\":\n\t\t\treturn \"running\";\n\t\tcase \"initializing\":\n\t\t\treturn \"pending\";\n\t\tcase \"running\":\n\t\t\treturn \"running\";\n\t}\n}\n\nfunction objectKeys(value: unknown): string[] | undefined {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\treturn undefined;\n\t}\n\tconst keys = Object.keys(value).sort();\n\treturn keys.length > 0 ? keys : undefined;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn Boolean(value && typeof value === \"object\" && !Array.isArray(value));\n}\n\nfunction recordArray(value: unknown): Record<string, unknown>[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value.filter(isRecord);\n}\n\nfunction finiteNumber(value: unknown): number {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\n\nfunction stringArray(value: unknown): string[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value.filter(\n\t\t(item): item is string => typeof item === \"string\" && item.length > 0,\n\t);\n}\n\nfunction codexSubagentToolName(toolName: string): string | undefined {\n\tconst tool = toolName.startsWith(CODEX_SUBAGENT_TOOL_PREFIX)\n\t\t? toolName.slice(CODEX_SUBAGENT_TOOL_PREFIX.length)\n\t\t: undefined;\n\treturn tool ? (canonicalCodexSubagentTool(tool) ?? tool) : undefined;\n}\n\nfunction codexThreadChildRunId(threadId: string): string {\n\treturn `${CODEX_THREAD_CHILD_RUN_PREFIX}${threadId}`;\n}\n\nfunction codexSubagentWorkGraph(\n\targs: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined {\n\tconst graph = args?.codexWorkGraph ?? args?.codex_work_graph;\n\treturn isRecord(graph) ? graph : undefined;\n}\n\nfunction codexSubagentWorkGraphChildRuns(\n\targs: Record<string, unknown> | undefined,\n): Record<string, unknown>[] {\n\tconst graph = codexSubagentWorkGraph(args);\n\tconst childRuns = graph?.childRuns ?? graph?.child_runs;\n\tif (!Array.isArray(childRuns)) {\n\t\treturn [];\n\t}\n\treturn childRuns.filter(isRecord);\n}\n\nfunction codexSubagentReceiverThreadIds(\n\targs: Record<string, unknown>,\n): string[] {\n\tconst explicit = stringArray(\n\t\targs.receiverThreadIds ?? args.receiver_thread_ids,\n\t);\n\tif (explicit.length > 0) {\n\t\treturn explicit;\n\t}\n\tconst graphThreadIds = codexSubagentWorkGraphChildRuns(args)\n\t\t.map((childRun) => childRun.threadId ?? childRun.thread_id)\n\t\t.filter(\n\t\t\t(threadId): threadId is string =>\n\t\t\t\ttypeof threadId === \"string\" && threadId.length > 0,\n\t\t);\n\treturn graphThreadIds;\n}\n\nfunction codexSubagentExplicitChildRunIds(\n\targs: Record<string, unknown>,\n): string[] {\n\tconst explicit = stringArray(args.childRunIds ?? args.child_run_ids);\n\tif (explicit.length > 0) {\n\t\treturn explicit;\n\t}\n\tconst graphChildRunIds = codexSubagentWorkGraphChildRuns(args)\n\t\t.map((childRun) => childRun.childRunId ?? childRun.child_run_id)\n\t\t.filter(\n\t\t\t(childRunId): childRunId is string =>\n\t\t\t\ttypeof childRunId === \"string\" && childRunId.length > 0,\n\t\t);\n\tif (graphChildRunIds.length > 0) {\n\t\treturn graphChildRunIds;\n\t}\n\treturn [];\n}\n\nfunction codexSubagentChildRunIds(\n\targs: Record<string, unknown>,\n\treceiverThreadIds: string[],\n): string[] {\n\tconst explicit = codexSubagentExplicitChildRunIds(args);\n\tif (explicit.length > 0) {\n\t\treturn explicit;\n\t}\n\treturn receiverThreadIds.map(codexThreadChildRunId);\n}\n\nfunction codexSubagentNextAction(tool: string): string {\n\treturn (\n\t\tcodexSubagentContractNextAction(tool) ??\n\t\t\"track Codex subagent collaboration\"\n\t);\n}\n\nfunction codexSubagentDelegationTargetAgentId(\n\targs: Record<string, unknown>,\n): string | undefined {\n\treturn (\n\t\tnonEmptyString(args.toAgentId) ??\n\t\tnonEmptyString(args.to_agent_id) ??\n\t\tnonEmptyString(args.targetAgentId) ??\n\t\tnonEmptyString(args.target_agent_id)\n\t);\n}\n\nfunction codexSubagentDelegationRequiredCapability(\n\targs: Record<string, unknown>,\n\ttargetAgentId?: string,\n): string | undefined {\n\tconst explicit =\n\t\tnonEmptyString(args.requiredCapability) ??\n\t\tnonEmptyString(args.required_capability) ??\n\t\tnonEmptyString(args.capability);\n\treturn (\n\t\texplicit ??\n\t\t(targetAgentId ? undefined : DEFAULT_CODEX_SUBAGENT_DELEGATION_CAPABILITY)\n\t);\n}\n\nfunction codexSubagentDelegationA2ASkillID(\n\targs: Record<string, unknown>,\n\trequiredCapability?: string,\n): string | undefined {\n\tconst explicit =\n\t\tnonEmptyString(args.a2aSkillId) ??\n\t\tnonEmptyString(args.a2a_skill_id) ??\n\t\tnonEmptyString(args.agentSkillId) ??\n\t\tnonEmptyString(args.agent_skill_id) ??\n\t\tnonEmptyString(args.subagentSkillId) ??\n\t\tnonEmptyString(args.subagent_skill_id) ??\n\t\tnonEmptyString(args.skillId) ??\n\t\tnonEmptyString(args.skill_id);\n\tif (explicit) {\n\t\treturn explicit.trim();\n\t}\n\tconst subagentType =\n\t\tnonEmptyString(args.agentType) ??\n\t\tnonEmptyString(args.agent_type) ??\n\t\tnonEmptyString(args.subagentType) ??\n\t\tnonEmptyString(args.subagent_type);\n\treturn (\n\t\tcodexSubagentTypeA2ASkillID(subagentType) ??\n\t\tcodexSubagentCapabilityA2ASkillID(requiredCapability)\n\t);\n}\n\nfunction codexSubagentTypeA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\tif (!token) {\n\t\treturn undefined;\n\t}\n\tswitch (token) {\n\t\tcase \"pr-review\":\n\t\tcase \"review\":\n\t\tcase \"reviewer\":\n\t\tcase \"code-review\":\n\t\tcase \"code-reviewer\":\n\t\t\treturn \"maestro.subagent.code-review\";\n\t\tcase \"test\":\n\t\tcase \"qa\":\n\t\tcase \"ci\":\n\t\tcase \"ci-monitor\":\n\t\tcase \"test-runner\":\n\t\t\treturn \"maestro.subagent.test-runner\";\n\t\tcase \"explore\":\n\t\tcase \"explorer\":\n\t\tcase \"repo-explorer\":\n\t\tcase \"research\":\n\t\tcase \"competitive-intel\":\n\t\tcase \"people-research\":\n\t\t\treturn \"maestro.subagent.repo-explorer\";\n\t\tcase \"release\":\n\t\tcase \"release-shepherd\":\n\t\t\treturn \"maestro.subagent.release-shepherd\";\n\t\tcase \"worker\":\n\t\tcase \"coder\":\n\t\tcase \"code\":\n\t\tcase \"code-writer\":\n\t\tcase \"default\":\n\t\t\treturn \"maestro.subagent.code-writer\";\n\t\tdefault:\n\t\t\treturn `maestro.subagent.${token}`;\n\t}\n}\n\nfunction codexSubagentCapabilityA2ASkillID(\n\tvalue: string | undefined,\n): string | undefined {\n\tconst token = codexSubagentSkillToken(value);\n\tif (!token) {\n\t\treturn undefined;\n\t}\n\tswitch (token) {\n\t\tcase \"code-review\":\n\t\t\treturn \"maestro.subagent.code-review\";\n\t\tcase \"code-test\":\n\t\tcase \"test-run\":\n\t\tcase \"test-runner\":\n\t\t\treturn \"maestro.subagent.test-runner\";\n\t\tcase \"repo-explore\":\n\t\tcase \"repo-explorer\":\n\t\tcase \"code-search\":\n\t\t\treturn \"maestro.subagent.repo-explorer\";\n\t\tcase \"release-shepherd\":\n\t\tcase \"release-manage\":\n\t\t\treturn \"maestro.subagent.release-shepherd\";\n\t\tcase \"code-write\":\n\t\tcase \"code-edit\":\n\t\tcase \"code-implement\":\n\t\t\treturn \"maestro.subagent.code-writer\";\n\t\tdefault:\n\t\t\treturn `maestro.subagent.${token}`;\n\t}\n}\n\nfunction codexSubagentSkillToken(\n\tvalue: string | undefined,\n): string | undefined {\n\tconst token = value\n\t\t?.trim()\n\t\t.toLowerCase()\n\t\t.replace(/[:_/. ]+/g, \"-\")\n\t\t.replace(/-{2,}/g, \"-\")\n\t\t.replace(/^-|-$/g, \"\");\n\treturn token || undefined;\n}\n\nfunction codexSubagentDelegationReason(prompt: string | undefined): string {\n\tif (!prompt) {\n\t\treturn \"Codex subagent spawn requested by Maestro\";\n\t}\n\treturn `Codex subagent spawn requested by Maestro: ${prompt}`.slice(0, 512);\n}\n\nfunction codexSubagentOperation(tool: string): string | undefined {\n\treturn codexSubagentOperationName(tool);\n}\n\nfunction activeCodexSubagentEdgeStatus(tool: string): string | undefined {\n\treturn codexSubagentActiveStatus(tool);\n}\n\nfunction terminalCodexSubagentEdgeStatus(\n\ttool: string,\n\tisError: boolean,\n): string | undefined {\n\tif (isError) {\n\t\treturn \"failed\";\n\t}\n\treturn codexSubagentTerminalSuccessStatus(tool);\n}\n\nfunction shouldResolveCodexSubagentDelegation(\n\ttool: string,\n\tisError: boolean,\n): boolean {\n\tif (tool === \"wait\" || tool === \"closeAgent\") {\n\t\treturn true;\n\t}\n\tif (tool === \"spawnAgent\" && isError) {\n\t\treturn true;\n\t}\n\tif (tool === \"resumeAgent\" && isError) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction codexSubagentDelegationFailureMessage(tool: string): string {\n\tswitch (tool) {\n\t\tcase \"spawnAgent\":\n\t\t\treturn \"Codex subagent spawn failed\";\n\t\tcase \"sendInput\":\n\t\t\treturn \"Codex subagent input failed\";\n\t\tcase \"resumeAgent\":\n\t\t\treturn \"Codex subagent resume failed\";\n\t\tcase \"wait\":\n\t\t\treturn \"Codex subagent wait failed\";\n\t\tcase \"closeAgent\":\n\t\t\treturn \"Codex subagent close failed\";\n\t\tdefault:\n\t\t\treturn \"Codex subagent delegation failed\";\n\t}\n}\n\nfunction toolDisplayName(event: {\n\tdisplayName?: string;\n\tsummaryLabel?: string;\n\ttoolName: string;\n}): string {\n\treturn event.displayName ?? event.summaryLabel ?? event.toolName;\n}\n\nfunction materializedToolExecutionId(event: {\n\ttoolCallId: string;\n\ttoolExecutionId?: string;\n}): string | undefined {\n\tconst toolExecutionId = nonEmptyString(event.toolExecutionId)?.trim();\n\tconst toolCallId = nonEmptyString(event.toolCallId)?.trim();\n\tif (!toolExecutionId || toolExecutionId === toolCallId) {\n\t\treturn undefined;\n\t}\n\treturn toolExecutionId;\n}\n\nfunction waitTypeForRequest(\n\tkind: ServerRequestLifecycleEvent[\"request\"][\"kind\"],\n): PlatformAgentRunWaitTypeValue {\n\tswitch (kind) {\n\t\tcase \"approval\":\n\t\tcase \"tool_retry\":\n\t\t\treturn PlatformAgentRunWaitTypeValue.Approval;\n\t\tcase \"client_tool\":\n\t\tcase \"mcp_elicitation\":\n\t\tcase \"user_input\":\n\t\t\treturn PlatformAgentRunWaitTypeValue.Input;\n\t}\n}\n\nfunction taskWorkItemState(\n\tstatus: HostedAgentRuntimeTaskStatus,\n): PlatformAgentWorkItemStateValue {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Pending;\n\t\tcase \"running\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Running;\n\t\tcase \"waiting\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Waiting;\n\t\tcase \"blocked\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Blocked;\n\t\tcase \"succeeded\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Succeeded;\n\t\tcase \"failed\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Failed;\n\t\tcase \"cancelled\":\n\t\t\treturn PlatformAgentWorkItemStateValue.Cancelled;\n\t}\n}\n\nfunction taskStepState(\n\tstatus: HostedAgentRuntimeTaskStatus,\n): PlatformAgentRunStepStateValue {\n\tswitch (status) {\n\t\tcase \"pending\":\n\t\t\treturn PlatformAgentRunStepStateValue.Pending;\n\t\tcase \"running\":\n\t\t\treturn PlatformAgentRunStepStateValue.Running;\n\t\tcase \"waiting\":\n\t\tcase \"blocked\":\n\t\t\treturn PlatformAgentRunStepStateValue.Waiting;\n\t\tcase \"succeeded\":\n\t\t\treturn PlatformAgentRunStepStateValue.Succeeded;\n\t\tcase \"failed\":\n\t\t\treturn PlatformAgentRunStepStateValue.Failed;\n\t\tcase \"cancelled\":\n\t\t\treturn PlatformAgentRunStepStateValue.Cancelled;\n\t}\n}\n\nfunction defaultTaskWorkItemKind(\n\tsource: HostedAgentRuntimeTaskSource,\n): PlatformAgentWorkItemKindValue {\n\tswitch (source) {\n\t\tcase \"background\":\n\t\t\treturn PlatformAgentWorkItemKindValue.ToolCall;\n\t\tcase \"swarm\":\n\t\t\treturn PlatformAgentWorkItemKindValue.ChildRun;\n\t\tcase \"checkpoint\":\n\t\t\treturn PlatformAgentWorkItemKindValue.Recovery;\n\t\tcase \"todo\":\n\t\t\treturn PlatformAgentWorkItemKindValue.Followup;\n\t}\n}\n\nfunction defaultTaskStepKind(\n\tsource: HostedAgentRuntimeTaskSource,\n\tstatus: HostedAgentRuntimeTaskStatus,\n): PlatformAgentRunStepKindValue {\n\tif (status === \"failed\") {\n\t\treturn PlatformAgentRunStepKindValue.Error;\n\t}\n\tif (source === \"background\") {\n\t\treturn status === \"succeeded\" || status === \"cancelled\"\n\t\t\t? PlatformAgentRunStepKindValue.ToolResult\n\t\t\t: PlatformAgentRunStepKindValue.ToolCallIntent;\n\t}\n\treturn PlatformAgentRunStepKindValue.System;\n}\n\nfunction shouldRecordTaskStep(\n\tevent: HostedAgentRuntimeTaskProgressEvent,\n): boolean {\n\tif (event.recordStep !== undefined) {\n\t\treturn event.recordStep;\n\t}\n\treturn event.status !== \"pending\";\n}\n\nfunction backgroundStatusToTaskStatus(\n\tstatus: string | undefined,\n): HostedAgentRuntimeTaskStatus {\n\tswitch (status) {\n\t\tcase \"running\":\n\t\tcase \"restarting\":\n\t\t\treturn \"running\";\n\t\tcase \"stopped\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"exited\":\n\t\t\treturn \"succeeded\";\n\t\tcase \"failed\":\n\t\t\treturn \"failed\";\n\t\tdefault:\n\t\t\treturn \"pending\";\n\t}\n}\n\nfunction todoStatusToTaskStatus(status: unknown): HostedAgentRuntimeTaskStatus {\n\tswitch (status) {\n\t\tcase \"in_progress\":\n\t\t\treturn \"running\";\n\t\tcase \"completed\":\n\t\t\treturn \"succeeded\";\n\t\tdefault:\n\t\t\treturn \"pending\";\n\t}\n}\n\nfunction taskPromptSummary(task: SwarmTask): string {\n\treturn compactString(task.prompt, 160) ?? task.id;\n}\n\nexport class HostedAgentRuntimeProgressRecorder {\n\tprivate readonly sessionId: string;\n\tprivate readonly hostedRunner?: HostedAgentRuntimeProgressContext;\n\tprivate readonly workspaceRoot?: string;\n\tprivate readonly operations: Required<HostedAgentRuntimeProgressRecorderOperations>;\n\tprivate readonly pendingWaitIds = new Map<string, string>();\n\tprivate readonly resumedWaitIds = new Set<string>();\n\tprivate readonly codexSubagentReceiverThreadIds = new Map<string, string[]>();\n\tprivate readonly codexSubagentToolChildRunIds = new Map<string, string[]>();\n\tprivate readonly codexSubagentToolWorkGraphs = new Map<\n\t\tstring,\n\t\tRecord<string, unknown>\n\t>();\n\tprivate readonly codexSubagentThreadWorkItemIds = new Map<string, string>();\n\tprivate readonly codexSubagentDelegationIds = new Map<string, string>();\n\tprivate readonly codexSubagentDelegationIdsByThreadId = new Map<\n\t\tstring,\n\t\tstring\n\t>();\n\tprivate readonly codexSubagentDelegationIdsByChildRunId = new Map<\n\t\tstring,\n\t\tstring\n\t>();\n\tprivate readonly recordedModelUsageTurnIds = new Set<string>();\n\tprivate readonly toolArgsByCallId = new Map<\n\t\tstring,\n\t\tRecord<string, unknown>\n\t>();\n\tprivate readonly recordedTaskWorkItemIds = new Set<string>();\n\tprivate pending: Promise<void> = Promise.resolve();\n\tprivate turnIndex = 0;\n\tprivate terminalRecorded = false;\n\n\tconstructor(options: HostedAgentRuntimeProgressRecorderOptions) {\n\t\tthis.sessionId = options.sessionId;\n\t\tthis.hostedRunner = options.hostedRunner;\n\t\tthis.workspaceRoot = options.workspaceRoot;\n\t\tthis.operations = {\n\t\t\trecordStep: options.operations?.recordStep ?? recordAgentRuntimeRunStep,\n\t\t\trecordEvent:\n\t\t\t\toptions.operations?.recordEvent ?? recordAgentRuntimeRunEvent,\n\t\t\trecordCost: options.operations?.recordCost ?? recordAgentRuntimeRunCost,\n\t\t\trecordWorkItem:\n\t\t\t\toptions.operations?.recordWorkItem ?? recordAgentRuntimeRunWorkItem,\n\t\t\tupdateWorkItem:\n\t\t\t\toptions.operations?.updateWorkItem ?? updateAgentRuntimeRunWorkItem,\n\t\t\twaitRun: options.operations?.waitRun ?? waitAgentRuntimeRun,\n\t\t\tresumeRun: options.operations?.resumeRun ?? resumeAgentRuntimeRun,\n\t\t\tcompleteRun: options.operations?.completeRun ?? completeAgentRuntimeRun,\n\t\t\tfailRun: options.operations?.failRun ?? failAgentRuntimeRun,\n\t\t\tdelegateAgent:\n\t\t\t\toptions.operations?.delegateAgent ?? delegateAgentWithPlatform,\n\t\t\tresolveDelegation:\n\t\t\t\toptions.operations?.resolveDelegation ??\n\t\t\t\tresolveAgentDelegationWithPlatform,\n\t\t};\n\t}\n\n\trecordAgentEvent(event: AgentEvent): void {\n\t\tswitch (event.type) {\n\t\t\tcase \"agent_start\":\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.stepId(\"agent\", `start-${this.turnIndex + 1}`),\n\t\t\t\t\tname: event.continuation ? \"Agent continuation\" : \"Agent run\",\n\t\t\t\t\tstepKind: PlatformAgentRunStepKindValue.System,\n\t\t\t\t\tstate: PlatformAgentRunStepStateValue.Running,\n\t\t\t\t\tinput: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\tcontinuation: event.continuation ?? false,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"agent_end\":\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.stepId(\"agent\", `end-${this.turnIndex}`),\n\t\t\t\t\tname: \"Agent run completed\",\n\t\t\t\t\tstepKind:\n\t\t\t\t\t\tevent.aborted || event.stopReason === \"error\"\n\t\t\t\t\t\t\t? PlatformAgentRunStepKindValue.Error\n\t\t\t\t\t\t\t: PlatformAgentRunStepKindValue.System,\n\t\t\t\t\tstate:\n\t\t\t\t\t\tevent.aborted || event.stopReason === \"error\"\n\t\t\t\t\t\t\t? PlatformAgentRunStepStateValue.Failed\n\t\t\t\t\t\t\t: PlatformAgentRunStepStateValue.Succeeded,\n\t\t\t\t\toutput: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\taborted: event.aborted ?? false,\n\t\t\t\t\t\tstop_reason: event.stopReason,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"turn_start\":\n\t\t\t\tthis.turnIndex += 1;\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.stepId(\"turn\", String(this.turnIndex)),\n\t\t\t\t\tname: `Turn ${this.turnIndex}`,\n\t\t\t\t\tstepKind: PlatformAgentRunStepKindValue.ModelCall,\n\t\t\t\t\tstate: PlatformAgentRunStepStateValue.Running,\n\t\t\t\t\tinput: this.basePayload({ event_type: event.type }),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"turn_end\":\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.stepId(\"turn\", String(this.turnIndex)),\n\t\t\t\t\tname: `Turn ${this.turnIndex}`,\n\t\t\t\t\tstepKind: PlatformAgentRunStepKindValue.ModelCall,\n\t\t\t\t\tstate: PlatformAgentRunStepStateValue.Succeeded,\n\t\t\t\t\toutput: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\ttool_result_count: event.toolResults.length,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\tthis.recordModelUsageEvent(event.message);\n\t\t\t\treturn;\n\t\t\tcase \"tool_execution_start\":\n\t\t\t\tthis.toolArgsByCallId.set(event.toolCallId, event.args);\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.toolStepId(event.toolCallId),\n\t\t\t\t\tname: toolDisplayName(event),\n\t\t\t\t\tstepKind: PlatformAgentRunStepKindValue.ToolCallIntent,\n\t\t\t\t\tstate: PlatformAgentRunStepStateValue.Running,\n\t\t\t\t\tinput: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\t\ttool_execution_id: materializedToolExecutionId(event),\n\t\t\t\t\t\ttool_name: event.toolName,\n\t\t\t\t\t\tdisplay_name: event.displayName,\n\t\t\t\t\t\tsummary_label: event.summaryLabel,\n\t\t\t\t\t\targ_keys: objectKeys(event.args),\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\tthis.recordCodexSubagentWorkItem(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_execution_end\":\n\t\t\t\tthis.recordStep({\n\t\t\t\t\tid: this.toolStepId(event.toolCallId),\n\t\t\t\t\tname: toolDisplayName(event),\n\t\t\t\t\tstepKind: event.isError\n\t\t\t\t\t\t? PlatformAgentRunStepKindValue.Error\n\t\t\t\t\t\t: PlatformAgentRunStepKindValue.ToolResult,\n\t\t\t\t\tstate: event.isError\n\t\t\t\t\t\t? PlatformAgentRunStepStateValue.Failed\n\t\t\t\t\t\t: PlatformAgentRunStepStateValue.Succeeded,\n\t\t\t\t\terrorMessage: event.isError\n\t\t\t\t\t\t? (event.errorCode ?? event.governedOutcome ?? \"tool failed\")\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\toutput: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\t\ttool_execution_id: materializedToolExecutionId(event),\n\t\t\t\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\t\t\t\ttool_name: event.toolName,\n\t\t\t\t\t\tdisplay_name: event.displayName,\n\t\t\t\t\t\tsummary_label: event.summaryLabel,\n\t\t\t\t\t\terror_code: event.errorCode,\n\t\t\t\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\tthis.updateCodexSubagentWorkItem(event);\n\t\t\t\tthis.recordToolDerivedTaskProgress(event);\n\t\t\t\treturn;\n\t\t\tcase \"action_approval_required\":\n\t\t\t\tthis.recordApprovalWait({\n\t\t\t\t\tid: event.request.id,\n\t\t\t\t\tcallId: event.request.id,\n\t\t\t\t\ttoolName: event.request.toolName,\n\t\t\t\t\treason: event.request.reason,\n\t\t\t\t\tdisplayName: event.request.displayName,\n\t\t\t\t\tsummaryLabel: event.request.summaryLabel,\n\t\t\t\t\tstartedAtMs: event.request.startedAtMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"action_approval_resolved\":\n\t\t\t\tthis.resumeWait({\n\t\t\t\t\tid: event.request.id,\n\t\t\t\t\tkind: \"approval\",\n\t\t\t\t\tresolution: event.decision.approved ? \"approved\" : \"denied\",\n\t\t\t\t\tresolvedBy: event.decision.resolvedBy ?? \"user\",\n\t\t\t\t\treason: event.decision.reason,\n\t\t\t\t\tstartedAtMs: event.request.startedAtMs,\n\t\t\t\t\tresolvedAtMs: event.decision.resolvedAtMs,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"error\":\n\t\t\t\tthis.recordPromptFailure(event.message);\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\trecordServerRequestEvent(event: ServerRequestLifecycleEvent): void {\n\t\tif (event.type === \"registered\") {\n\t\t\tthis.recordApprovalWait({\n\t\t\t\tid: event.request.id,\n\t\t\t\tcallId: event.request.callId,\n\t\t\t\ttoolName: event.request.toolName,\n\t\t\t\treason: event.request.reason,\n\t\t\t\tdisplayName: event.request.displayName,\n\t\t\t\tsummaryLabel: event.request.summaryLabel,\n\t\t\t\tkind: event.request.kind,\n\t\t\t\tstartedAtMs: event.request.startedAtMs,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tthis.resumeWait({\n\t\t\tid: event.request.id,\n\t\t\tkind: event.request.kind,\n\t\t\tresolution: event.resolution,\n\t\t\tresolvedBy: event.resolvedBy,\n\t\t\treason: event.reason,\n\t\t\tstartedAtMs: event.request.startedAtMs,\n\t\t\tresolvedAtMs: event.resolvedAtMs,\n\t\t});\n\t}\n\n\trecordPromptFailure(message: string): void {\n\t\tthis.recordStep({\n\t\t\tid: this.stepId(\"error\", `${Date.now()}`),\n\t\t\tname: \"Prompt failed\",\n\t\t\tstepKind: PlatformAgentRunStepKindValue.Error,\n\t\t\tstate: PlatformAgentRunStepStateValue.Failed,\n\t\t\terrorMessage: message,\n\t\t\toutput: this.basePayload({\n\t\t\t\tevent_type: \"prompt_failure\",\n\t\t\t}),\n\t\t});\n\t}\n\n\trecordTaskProgressEvent(event: HostedAgentRuntimeTaskProgressEvent): void {\n\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\tif (!this.hostedRunner?.enabled || !runId) {\n\t\t\treturn;\n\t\t}\n\t\tconst taskId = this.taskProgressId(event.source, event.id);\n\t\tconst parentWorkItemId = event.parentId\n\t\t\t? this.taskProgressId(event.source, event.parentId)\n\t\t\t: undefined;\n\t\tconst evidenceRefs = [\n\t\t\t`maestro-task:${event.source}:${event.id}`,\n\t\t\t...(event.toolCallId ? [`tool-call:${event.toolCallId}`] : []),\n\t\t\t...(event.toolExecutionId\n\t\t\t\t? [`tool-execution:${event.toolExecutionId}`]\n\t\t\t\t: []),\n\t\t\t...(event.evidenceRefs ?? []),\n\t\t];\n\t\tconst state = taskWorkItemState(event.status);\n\t\tconst payload = this.basePayload({\n\t\t\tevent_type: \"maestro_task_progress\",\n\t\t\ttask_source: event.source,\n\t\t\ttask_id: event.id,\n\t\t\ttask_status: event.status,\n\t\t\tparent_task_id: event.parentId,\n\t\t\towner_child_run_id: event.ownerChildRunId,\n\t\t\ttool_call_id: event.toolCallId,\n\t\t\ttool_execution_id: event.toolExecutionId,\n\t\t\tapproval_request_id: event.approvalRequestId,\n\t\t\ttitle: compactString(event.title),\n\t\t\tgoal: compactString(event.goal, 512),\n\t\t\tnext_action: compactString(event.nextAction),\n\t\t\tblocker: compactString(event.blocker),\n\t\t\t...event.payload,\n\t\t});\n\t\tthis.enqueue(async () => {\n\t\t\tconst updateWorkItem = () =>\n\t\t\t\tthis.operations.updateWorkItem({\n\t\t\t\t\trunId,\n\t\t\t\t\tworkItemId: taskId,\n\t\t\t\t\tstate,\n\t\t\t\t\t...(event.nextAction\n\t\t\t\t\t\t? { nextAction: compactString(event.nextAction) }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\t...(event.blocker ? { blocker: compactString(event.blocker) } : {}),\n\t\t\t\t\t...(event.toolExecutionId\n\t\t\t\t\t\t? { toolExecutionId: event.toolExecutionId }\n\t\t\t\t\t\t: {}),\n\t\t\t\t\tevidenceRefs,\n\t\t\t\t\tcompletionGate:\n\t\t\t\t\t\tevent.completionGate ?? \"maestro_task_progress_recorded\",\n\t\t\t\t\tpayload,\n\t\t\t\t});\n\t\t\tif (this.recordedTaskWorkItemIds.has(taskId)) {\n\t\t\t\tawait updateWorkItem();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst workItem = {\n\t\t\t\tid: taskId,\n\t\t\t\trunId,\n\t\t\t\t...(parentWorkItemId ? { parentWorkItemId } : {}),\n\t\t\t\t...(event.ownerChildRunId\n\t\t\t\t\t? { ownerChildRunId: event.ownerChildRunId }\n\t\t\t\t\t: {}),\n\t\t\t\tkind: event.workItemKind ?? defaultTaskWorkItemKind(event.source),\n\t\t\t\tstate,\n\t\t\t\ttitle: compactString(event.title),\n\t\t\t\t...(event.goal ? { goal: compactString(event.goal, 512) } : {}),\n\t\t\t\t...(event.nextAction\n\t\t\t\t\t? { nextAction: compactString(event.nextAction) }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.blocker ? { blocker: compactString(event.blocker) } : {}),\n\t\t\t\t...(event.toolExecutionId\n\t\t\t\t\t? { toolExecutionId: event.toolExecutionId }\n\t\t\t\t\t: {}),\n\t\t\t\tevidenceRefs,\n\t\t\t\tcompletionGate:\n\t\t\t\t\tevent.completionGate ?? \"maestro_task_progress_recorded\",\n\t\t\t\tpayload,\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tawait this.operations.recordWorkItem({\n\t\t\t\t\trunId,\n\t\t\t\t\tworkItem,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (!isExistingWorkItemCreateError(error)) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tawait updateWorkItem();\n\t\t\t}\n\t\t\tthis.recordedTaskWorkItemIds.add(taskId);\n\t\t});\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: `Maestro ${event.source} task ${event.status}`,\n\t\t\tstepId: shouldRecordTaskStep(event) ? taskId : undefined,\n\t\t\tattributes: payload,\n\t\t});\n\t\tif (!shouldRecordTaskStep(event)) {\n\t\t\treturn;\n\t\t}\n\t\tconst stepState = taskStepState(event.status);\n\t\tconst stepKind =\n\t\t\tevent.stepKind ?? defaultTaskStepKind(event.source, event.status);\n\t\tthis.recordStep({\n\t\t\tid: taskId,\n\t\t\tname: compactString(event.title),\n\t\t\tstepKind,\n\t\t\tstate: stepState,\n\t\t\terrorMessage: event.status === \"failed\" ? event.errorMessage : undefined,\n\t\t\t...(stepState === PlatformAgentRunStepStateValue.Running ||\n\t\t\tstepState === PlatformAgentRunStepStateValue.Waiting ||\n\t\t\tstepState === PlatformAgentRunStepStateValue.Pending\n\t\t\t\t? { input: payload }\n\t\t\t\t: { output: payload }),\n\t\t});\n\t}\n\n\trecordSwarmEvent(event: SwarmEvent): void {\n\t\tswitch (event.type) {\n\t\t\tcase \"swarm_start\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: event.swarmId,\n\t\t\t\t\tstatus: \"running\",\n\t\t\t\t\ttitle: `Swarm ${event.swarmId}`,\n\t\t\t\t\tgoal: compactString(event.config.planFile, 512),\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.Root,\n\t\t\t\t\tnextAction: \"coordinate swarm teammates\",\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tteammate_count: event.config.teammateCount,\n\t\t\t\t\t\ttask_count: event.config.tasks.length,\n\t\t\t\t\t\tmode: event.config.mode,\n\t\t\t\t\t\tmodel: event.config.model,\n\t\t\t\t\t\tmodel_provider: event.config.modelProvider,\n\t\t\t\t\t\tsubagent_type: event.config.subagentType,\n\t\t\t\t\t\treasoning_effort: event.config.reasoningEffort,\n\t\t\t\t\t\tcontinue_on_failure: event.config.continueOnFailure,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"task_start\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: `${event.swarmId}:task:${event.task.id}`,\n\t\t\t\t\tparentId: event.swarmId,\n\t\t\t\t\tstatus: \"running\",\n\t\t\t\t\ttitle: `Swarm task ${event.task.id}`,\n\t\t\t\t\tgoal: taskPromptSummary(event.task),\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.ChildRun,\n\t\t\t\t\townerChildRunId: `swarm:${event.swarmId}:teammate:${event.teammateId}`,\n\t\t\t\t\tnextAction: \"wait for teammate task completion\",\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tteammate_id: event.teammateId,\n\t\t\t\t\t\ttask_id: event.task.id,\n\t\t\t\t\t\tfile_count: event.task.files?.length ?? 0,\n\t\t\t\t\t\tdepends_on: event.task.dependsOn,\n\t\t\t\t\t\tmodel: event.task.model,\n\t\t\t\t\t\tsubagent_type: event.task.subagentType,\n\t\t\t\t\t\tpriority: event.task.priority,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"task_complete\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: `${event.swarmId}:task:${event.taskId}`,\n\t\t\t\t\tparentId: event.swarmId,\n\t\t\t\t\tstatus: \"succeeded\",\n\t\t\t\t\ttitle: `Swarm task ${event.taskId}`,\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.ChildRun,\n\t\t\t\t\townerChildRunId: `swarm:${event.swarmId}:teammate:${event.teammateId}`,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tteammate_id: event.teammateId,\n\t\t\t\t\t\ttask_id: event.taskId,\n\t\t\t\t\t\toutput_bytes: Buffer.byteLength(event.output, \"utf8\"),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"task_fail\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: `${event.swarmId}:task:${event.taskId}`,\n\t\t\t\t\tparentId: event.swarmId,\n\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\ttitle: `Swarm task ${event.taskId}`,\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.ChildRun,\n\t\t\t\t\townerChildRunId: `swarm:${event.swarmId}:teammate:${event.teammateId}`,\n\t\t\t\t\terrorMessage: event.error,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tteammate_id: event.teammateId,\n\t\t\t\t\t\ttask_id: event.taskId,\n\t\t\t\t\t\terror: compactString(event.error, 512),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"swarm_complete\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: event.swarmId,\n\t\t\t\t\tstatus: swarmCompletionStatus(event),\n\t\t\t\t\ttitle: `Swarm ${event.swarmId}`,\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.Root,\n\t\t\t\t\terrorMessage: event.state.error,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tswarm_status: event.state.status,\n\t\t\t\t\t\tcompleted_task_count: event.state.completedTasks.size,\n\t\t\t\t\t\tfailed_task_count: event.state.failedTasks.size,\n\t\t\t\t\t\tteammate_count: event.state.teammates.length,\n\t\t\t\t\t\terror: compactString(event.state.error, 512),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"swarm_fail\":\n\t\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\t\tsource: \"swarm\",\n\t\t\t\t\tid: event.swarmId,\n\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\ttitle: `Swarm ${event.swarmId}`,\n\t\t\t\t\tworkItemKind: PlatformAgentWorkItemKindValue.Root,\n\t\t\t\t\terrorMessage: event.error,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\terror: compactString(event.error, 512),\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"teammate_spawn\":\n\t\t\tcase \"teammate_complete\":\n\t\t\t\tthis.recordEvent({\n\t\t\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\t\t\tmessage: `Maestro swarm ${event.type}`,\n\t\t\t\t\tattributes: this.basePayload({\n\t\t\t\t\t\tevent_type: \"maestro_swarm_teammate_progress\",\n\t\t\t\t\t\tswarm_id: event.swarmId,\n\t\t\t\t\t\tswarm_event_type: event.type,\n\t\t\t\t\t\tteammate_id: event.teammate.id,\n\t\t\t\t\t\tteammate_name: compactString(event.teammate.name),\n\t\t\t\t\t\tteammate_status: event.teammate.status,\n\t\t\t\t\t\tcompleted_task_count: event.teammate.completedTasks.length,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\tasync flush(): Promise<void> {\n\t\tawait this.pending;\n\t}\n\n\tasync completeRun(\n\t\tinput: HostedAgentRuntimeCompleteInput = {},\n\t): Promise<void> {\n\t\tif (this.terminalRecorded) {\n\t\t\tawait this.flush();\n\t\t\treturn;\n\t\t}\n\t\tthis.terminalRecorded = true;\n\t\tthis.enqueue(async () => {\n\t\t\tconst handles = this.handles();\n\t\t\tif (!handles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.completeRun({\n\t\t\t\trunId: handles.runId,\n\t\t\t\tleaseToken: handles.leaseToken,\n\t\t\t\tresult: this.basePayload({\n\t\t\t\t\tevent_type: \"hosted_runner_drained\",\n\t\t\t\t\tstatus: \"drained\",\n\t\t\t\t\tflush_status: input.flushStatus,\n\t\t\t\t\treason: input.reason,\n\t\t\t\t\trequested_by: input.requestedBy,\n\t\t\t\t\tmanifest_path: input.manifestPath,\n\t\t\t\t}),\n\t\t\t});\n\t\t});\n\t\tawait this.flush();\n\t}\n\n\tasync failRun(input: HostedAgentRuntimeFailInput): Promise<void> {\n\t\tif (this.terminalRecorded) {\n\t\t\tawait this.flush();\n\t\t\treturn;\n\t\t}\n\t\tthis.terminalRecorded = true;\n\t\tthis.recordStep({\n\t\t\tid: this.stepId(\"terminal\", \"failed\"),\n\t\t\tname: \"Hosted runner drain failed\",\n\t\t\tstepKind: PlatformAgentRunStepKindValue.Error,\n\t\t\tstate: PlatformAgentRunStepStateValue.Failed,\n\t\t\terrorMessage: input.errorMessage,\n\t\t\toutput: this.basePayload({\n\t\t\t\tevent_type: \"hosted_runner_drain_failed\",\n\t\t\t\treason: input.reason,\n\t\t\t\trequested_by: input.requestedBy,\n\t\t\t\tflush_status: input.flushStatus,\n\t\t\t\tmanifest_path: input.manifestPath,\n\t\t\t}),\n\t\t});\n\t\tthis.enqueue(async () => {\n\t\t\tconst handles = this.handles();\n\t\t\tif (!handles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.failRun({\n\t\t\t\trunId: handles.runId,\n\t\t\t\tleaseToken: handles.leaseToken,\n\t\t\t\terrorMessage: input.errorMessage,\n\t\t\t\tretryable: input.retryable ?? false,\n\t\t\t});\n\t\t});\n\t\tawait this.flush();\n\t}\n\n\tasync recordHostedRunnerDrain(\n\t\tinput: HostedAgentRuntimeDrainInput,\n\t): Promise<void> {\n\t\tthis.recordDrainManifestEvent(input);\n\t\tif (input.status === \"drained\") {\n\t\t\tawait this.completeRun({\n\t\t\t\treason: input.reason,\n\t\t\t\trequestedBy: input.requestedBy,\n\t\t\t\tflushStatus: input.flushStatus,\n\t\t\t\tmanifestPath: input.manifestPath,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tawait this.failRun({\n\t\t\terrorMessage:\n\t\t\t\tinput.errorMessage ?? \"Hosted runner drain did not complete cleanly\",\n\t\t\treason: input.reason,\n\t\t\trequestedBy: input.requestedBy,\n\t\t\tretryable: false,\n\t\t\tflushStatus: input.flushStatus,\n\t\t\tmanifestPath: input.manifestPath,\n\t\t});\n\t}\n\n\tprivate recordApprovalWait(input: {\n\t\tid: string;\n\t\tcallId: string;\n\t\ttoolName: string;\n\t\treason: string;\n\t\tdisplayName?: string;\n\t\tsummaryLabel?: string;\n\t\tkind?: ServerRequestLifecycleEvent[\"request\"][\"kind\"];\n\t\tstartedAtMs?: number;\n\t}): void {\n\t\tif (this.pendingWaitIds.has(input.id)) {\n\t\t\treturn;\n\t\t}\n\t\tconst waitId = this.waitId(input.id);\n\t\tthis.pendingWaitIds.set(input.id, waitId);\n\t\tthis.enqueue(async () => {\n\t\t\tconst handles = this.handles();\n\t\t\tif (!handles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.waitRun({\n\t\t\t\trunId: handles.runId,\n\t\t\t\tleaseToken: handles.leaseToken,\n\t\t\t\twait: {\n\t\t\t\t\tid: waitId,\n\t\t\t\t\tstepId: this.toolStepId(input.callId),\n\t\t\t\t\ttype: waitTypeForRequest(input.kind ?? \"approval\"),\n\t\t\t\t\texternalRef: input.id,\n\t\t\t\t\treason: input.reason,\n\t\t\t\t\tpayload: this.basePayload({\n\t\t\t\t\t\trequest_id: input.id,\n\t\t\t\t\t\trequest_type: input.kind ?? \"approval\",\n\t\t\t\t\t\tcall_id: input.callId,\n\t\t\t\t\t\ttool_name: input.toolName,\n\t\t\t\t\t\tdisplay_name: input.displayName,\n\t\t\t\t\t\tsummary_label: input.summaryLabel,\n\t\t\t\t\t\tstarted_at_ms: input.startedAtMs,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\tcheckpoint: {\n\t\t\t\t\tid: this.checkpointId(input.id),\n\t\t\t\t\tstepId: this.toolStepId(input.callId),\n\t\t\t\t\tresumeToken: waitId,\n\t\t\t\t\tpayload: this.basePayload({\n\t\t\t\t\t\trequest_id: input.id,\n\t\t\t\t\t\trequest_type: input.kind ?? \"approval\",\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate resumeWait(input: {\n\t\tid: string;\n\t\tkind: string;\n\t\tresolution: string;\n\t\tresolvedBy: string;\n\t\treason?: string;\n\t\tstartedAtMs?: number;\n\t\tresolvedAtMs?: number;\n\t}): void {\n\t\tif (this.resumedWaitIds.has(input.id)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.resumedWaitIds.add(input.id);\n\t\tconst waitId = this.pendingWaitIds.get(input.id) ?? this.waitId(input.id);\n\t\tthis.pendingWaitIds.delete(input.id);\n\t\tthis.enqueue(async () => {\n\t\t\tconst handles = this.handles();\n\t\t\tif (!handles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.resumeRun({\n\t\t\t\trunId: handles.runId,\n\t\t\t\twaitId,\n\t\t\t\tresumeEventId: this.resumeEventId(input.id),\n\t\t\t\tpayload: this.basePayload({\n\t\t\t\t\trequest_id: input.id,\n\t\t\t\t\trequest_type: input.kind,\n\t\t\t\t\tresolution: input.resolution,\n\t\t\t\t\tresolved_by: input.resolvedBy,\n\t\t\t\t\treason: input.reason,\n\t\t\t\t\tstarted_at_ms: input.startedAtMs,\n\t\t\t\t\tresolved_at_ms: input.resolvedAtMs,\n\t\t\t\t}),\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate recordStep(step: PlatformAgentRunStep): void {\n\t\tthis.enqueue(async () => {\n\t\t\tconst handles = this.handles();\n\t\t\tif (!handles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.recordStep({\n\t\t\t\trunId: handles.runId,\n\t\t\t\tleaseToken: handles.leaseToken,\n\t\t\t\tstep,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate recordModelUsageEvent(message: AppMessage): void {\n\t\tif (message.role !== \"assistant\") {\n\t\t\treturn;\n\t\t}\n\t\tconst usage = message.usage as Usage | undefined;\n\t\tif (!usage) {\n\t\t\treturn;\n\t\t}\n\t\tconst inputTokens = finiteNumber(usage.input);\n\t\tconst outputTokens = finiteNumber(usage.output);\n\t\tconst cacheReadTokens = finiteNumber(usage.cacheRead);\n\t\tconst cacheWriteTokens = finiteNumber(usage.cacheWrite);\n\t\tconst totalTokens =\n\t\t\tinputTokens + outputTokens + cacheReadTokens + cacheWriteTokens;\n\t\tconst estimatedCostMicros = Math.max(\n\t\t\t0,\n\t\t\tMath.round(finiteNumber(usage.cost?.total) * 1_000_000),\n\t\t);\n\t\tif (totalTokens <= 0 && estimatedCostMicros <= 0) {\n\t\t\treturn;\n\t\t}\n\t\tconst turnId = String(this.turnIndex);\n\t\tif (this.recordedModelUsageTurnIds.has(turnId)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.recordedModelUsageTurnIds.add(turnId);\n\t\tconst modelCallId = this.stepId(\"model\", turnId);\n\t\tconst costId = this.costId(turnId);\n\t\tconst stepId = this.stepId(\"turn\", turnId);\n\t\tconst meterRef = this.meterRef(costId);\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.ModelResponseRecorded,\n\t\t\tmessage: \"Maestro model response usage recorded\",\n\t\t\tstepId,\n\t\t\tcostId,\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: \"model_response_recorded\",\n\t\t\t\tsession_kind: \"codex\",\n\t\t\t\tsession_provider: \"maestro\",\n\t\t\t\tmodel_call_id: modelCallId,\n\t\t\t\tcost_id: costId,\n\t\t\t\tprovider: message.provider,\n\t\t\t\tmodel: message.model,\n\t\t\t\tinput_tokens: inputTokens,\n\t\t\t\toutput_tokens: outputTokens,\n\t\t\t\tcache_read_tokens: cacheReadTokens,\n\t\t\t\tcache_write_tokens: cacheWriteTokens,\n\t\t\t\ttotal_tokens: totalTokens,\n\t\t\t\testimated_cost_micros: estimatedCostMicros,\n\t\t\t\tcurrency: \"USD\",\n\t\t\t}),\n\t\t});\n\t\tthis.recordCost({\n\t\t\tid: costId,\n\t\t\tstepId,\n\t\t\tmeterRef,\n\t\t\tprovider: message.provider,\n\t\t\tmodel: message.model,\n\t\t\tinputTokens,\n\t\t\toutputTokens,\n\t\t\ttotalTokens,\n\t\t\tcurrency: estimatedCostMicros > 0 ? \"USD\" : undefined,\n\t\t\testimatedCostMicros,\n\t\t});\n\t}\n\n\tprivate recordDrainManifestEvent(input: HostedAgentRuntimeDrainInput): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage:\n\t\t\t\tinput.status === \"drained\"\n\t\t\t\t\t? \"hosted runner drain manifest recorded\"\n\t\t\t\t\t: \"hosted runner interrupted drain manifest recorded\",\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: \"hosted_runner_drain_manifest_recorded\",\n\t\t\t\tstatus: input.status,\n\t\t\t\tflush_status: input.flushStatus,\n\t\t\t\treason: input.reason,\n\t\t\t\trequested_by: input.requestedBy,\n\t\t\t\tmanifest_path: input.manifestPath,\n\t\t\t\terror: input.errorMessage,\n\t\t\t\tplatform_evidence: input.platformEvidence,\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordEvent(\n\t\tevent: Omit<PlatformAgentRuntimeRecordRunEventInput, \"runId\">,\n\t): void {\n\t\tthis.enqueue(async () => {\n\t\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\t\tif (!this.hostedRunner?.enabled || !runId) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.recordEvent({\n\t\t\t\trunId,\n\t\t\t\t...event,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate recordCost(\n\t\tcost: Parameters<typeof recordAgentRuntimeRunCost>[0][\"cost\"],\n\t): void {\n\t\tthis.enqueue(async () => {\n\t\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\t\tconst leaseToken = nonEmptyString(\n\t\t\t\tthis.hostedRunner?.agentRuntimeLeaseToken,\n\t\t\t);\n\t\t\tif (!this.hostedRunner?.enabled || !runId || !leaseToken) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tawait this.operations.recordCost({\n\t\t\t\trunId,\n\t\t\t\tleaseToken,\n\t\t\t\tcost,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate recordCodexSubagentWorkItem(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>,\n\t): void {\n\t\tconst codexTool = codexSubagentToolName(event.toolName);\n\t\tif (!codexTool) {\n\t\t\treturn;\n\t\t}\n\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\tif (!this.hostedRunner?.enabled || !runId) {\n\t\t\treturn;\n\t\t}\n\t\tconst workGraph = codexSubagentWorkGraph(event.args);\n\t\tconst receiverThreadIds = codexSubagentReceiverThreadIds(event.args);\n\t\tconst childRunIds = codexSubagentChildRunIds(event.args, receiverThreadIds);\n\t\tconst ownerChildRunId = childRunIds[0];\n\t\tconst linkedWorkItemIds =\n\t\t\tthis.codexSubagentLinkedWorkItemIds(receiverThreadIds);\n\t\tconst parentWorkItemId =\n\t\t\tlinkedWorkItemIds.length === 1 ? linkedWorkItemIds[0] : undefined;\n\t\tconst workItemId = this.workItemId(event.toolCallId);\n\t\tthis.codexSubagentReceiverThreadIds.set(\n\t\t\tevent.toolCallId,\n\t\t\treceiverThreadIds,\n\t\t);\n\t\tthis.codexSubagentToolChildRunIds.set(event.toolCallId, childRunIds);\n\t\tif (workGraph) {\n\t\t\tthis.codexSubagentToolWorkGraphs.set(event.toolCallId, workGraph);\n\t\t}\n\t\tif (codexTool === \"spawnAgent\") {\n\t\t\tfor (const threadId of receiverThreadIds) {\n\t\t\t\tthis.codexSubagentThreadWorkItemIds.set(threadId, workItemId);\n\t\t\t}\n\t\t}\n\t\tconst toolExecutionId = materializedToolExecutionId(event);\n\t\tconst prompt = nonEmptyString(event.args.prompt);\n\t\tconst model = nonEmptyString(event.args.model);\n\t\tconst reasoningEffort = nonEmptyString(event.args.reasoningEffort);\n\t\tconst codexSubagentOperationName = codexSubagentOperation(codexTool);\n\t\tconst workItem: PlatformAgentWorkItem = {\n\t\t\tid: workItemId,\n\t\t\trunId,\n\t\t\t...(parentWorkItemId ? { parentWorkItemId } : {}),\n\t\t\t...(ownerChildRunId ? { ownerChildRunId } : {}),\n\t\t\tkind:\n\t\t\t\tcodexTool === \"wait\"\n\t\t\t\t\t? PlatformAgentWorkItemKindValue.Wait\n\t\t\t\t\t: PlatformAgentWorkItemKindValue.ChildRun,\n\t\t\tstate:\n\t\t\t\tcodexTool === \"wait\"\n\t\t\t\t\t? PlatformAgentWorkItemStateValue.Waiting\n\t\t\t\t\t: PlatformAgentWorkItemStateValue.Running,\n\t\t\ttitle: toolDisplayName(event),\n\t\t\t...(prompt ? { goal: prompt } : {}),\n\t\t\tnextAction: codexSubagentNextAction(codexTool),\n\t\t\t...(toolExecutionId ? { toolExecutionId } : {}),\n\t\t\tevidenceRefs: [\n\t\t\t\t`codex-tool-call:${event.toolCallId}`,\n\t\t\t\t...receiverThreadIds.map((id) => `codex-thread:${id}`),\n\t\t\t\t...childRunIds.map((id) => `codex-child-run:${id}`),\n\t\t\t],\n\t\t\tcompletionGate: \"codex_collab_tool_completed\",\n\t\t\tpayload: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tcodex_tool: codexTool,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tdisplay_name: event.displayName,\n\t\t\t\tsummary_label: event.summaryLabel,\n\t\t\t\tcodex_subagent_operation: codexSubagentOperationName,\n\t\t\t\tcodex_subagent_edge_status: activeCodexSubagentEdgeStatus(codexTool),\n\t\t\t\tsender_thread_id: nonEmptyString(event.args.senderThreadId),\n\t\t\t\treceiver_thread_ids: receiverThreadIds,\n\t\t\t\treceiver_thread_count: receiverThreadIds.length,\n\t\t\t\tchild_run_ids: childRunIds,\n\t\t\t\tcodex_work_graph: workGraph,\n\t\t\t\tlinked_work_item_ids: linkedWorkItemIds,\n\t\t\t\tmodel,\n\t\t\t\treasoning_effort: reasoningEffort,\n\t\t\t\targ_keys: objectKeys(event.args),\n\t\t\t}),\n\t\t};\n\t\tthis.enqueue(async () => {\n\t\t\tawait this.operations.recordWorkItem({ runId, workItem });\n\t\t});\n\t\tif (codexTool === \"spawnAgent\") {\n\t\t\tthis.recordCodexSubagentDelegation({\n\t\t\t\tevent,\n\t\t\t\trunId,\n\t\t\t\tworkItemId,\n\t\t\t\tparentWorkItemId,\n\t\t\t\townerChildRunId,\n\t\t\t\treceiverThreadIds,\n\t\t\t\tchildRunIds,\n\t\t\t\tlinkedWorkItemIds,\n\t\t\t\tworkGraph,\n\t\t\t\tprompt,\n\t\t\t\tmodel,\n\t\t\t\treasoningEffort,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate recordCodexSubagentDelegation(input: {\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_start\" }>;\n\t\trunId: string;\n\t\tworkItemId: string;\n\t\tparentWorkItemId?: string;\n\t\townerChildRunId?: string;\n\t\treceiverThreadIds: string[];\n\t\tchildRunIds: string[];\n\t\tlinkedWorkItemIds: string[];\n\t\tworkGraph?: Record<string, unknown>;\n\t\tprompt?: string;\n\t\tmodel?: string;\n\t\treasoningEffort?: string;\n\t}): void {\n\t\tconst fromAgentId = nonEmptyString(this.hostedRunner?.agentId) ?? \"maestro\";\n\t\tconst toAgentId = codexSubagentDelegationTargetAgentId(input.event.args);\n\t\tconst requiredCapability = codexSubagentDelegationRequiredCapability(\n\t\t\tinput.event.args,\n\t\t\ttoAgentId,\n\t\t);\n\t\tconst a2aSkillId = codexSubagentDelegationA2ASkillID(\n\t\t\tinput.event.args,\n\t\t\trequiredCapability,\n\t\t);\n\t\tthis.enqueue(async () => {\n\t\t\tconst result = await this.operations.delegateAgent({\n\t\t\t\tfromAgentId,\n\t\t\t\t...(toAgentId ? { toAgentId } : {}),\n\t\t\t\t...(requiredCapability ? { requiredCapability } : {}),\n\t\t\t\t...(a2aSkillId ? { a2aSkillId } : {}),\n\t\t\t\tcontextPayload: this.basePayload({\n\t\t\t\t\tevent_type: \"codex_subagent_delegation_requested\",\n\t\t\t\t\tcodex_tool: \"spawnAgent\",\n\t\t\t\t\tagent_run_id: input.runId,\n\t\t\t\t\twork_item_id: input.workItemId,\n\t\t\t\t\tparent_work_item_id: input.parentWorkItemId,\n\t\t\t\t\towner_child_run_id: input.ownerChildRunId,\n\t\t\t\t\ttool_call_id: input.event.toolCallId,\n\t\t\t\t\ttool_name: input.event.toolName,\n\t\t\t\t\tdisplay_name: input.event.displayName,\n\t\t\t\t\tsummary_label: input.event.summaryLabel,\n\t\t\t\t\tfrom_agent_id: fromAgentId,\n\t\t\t\t\tto_agent_id: toAgentId,\n\t\t\t\t\trequired_capability: requiredCapability,\n\t\t\t\t\ta2a_skill_id: a2aSkillId,\n\t\t\t\t\tsender_thread_id: nonEmptyString(input.event.args.senderThreadId),\n\t\t\t\t\treceiver_thread_ids: input.receiverThreadIds,\n\t\t\t\t\tchild_run_ids: input.childRunIds,\n\t\t\t\t\tcodex_work_graph: input.workGraph,\n\t\t\t\t\tlinked_work_item_ids: input.linkedWorkItemIds,\n\t\t\t\t\tprompt: input.prompt,\n\t\t\t\t\tmodel: input.model,\n\t\t\t\t\treasoning_effort: input.reasoningEffort,\n\t\t\t\t\targ_keys: objectKeys(input.event.args),\n\t\t\t\t}),\n\t\t\t\treason: codexSubagentDelegationReason(input.prompt),\n\t\t\t});\n\t\t\tconst delegationId = result?.delegation?.id;\n\t\t\tif (delegationId) {\n\t\t\t\tthis.rememberCodexSubagentDelegation({\n\t\t\t\t\tdelegationId,\n\t\t\t\t\ttoolCallId: input.event.toolCallId,\n\t\t\t\t\treceiverThreadIds: input.receiverThreadIds,\n\t\t\t\t\tchildRunIds: input.childRunIds,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updateCodexSubagentWorkItem(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst codexTool = codexSubagentToolName(event.toolName);\n\t\tif (!codexTool) {\n\t\t\treturn;\n\t\t}\n\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\tif (!this.hostedRunner?.enabled || !runId) {\n\t\t\treturn;\n\t\t}\n\t\tconst details =\n\t\t\tevent.result.details &&\n\t\t\ttypeof event.result.details === \"object\" &&\n\t\t\t!Array.isArray(event.result.details)\n\t\t\t\t? (event.result.details as Record<string, unknown>)\n\t\t\t\t: undefined;\n\t\tconst detailWorkGraph = codexSubagentWorkGraph(details);\n\t\tconst workGraph =\n\t\t\tdetailWorkGraph ?? this.codexSubagentToolWorkGraphs.get(event.toolCallId);\n\t\tconst detailReceiverThreadIds = details\n\t\t\t? codexSubagentReceiverThreadIds(details)\n\t\t\t: [];\n\t\tconst receiverThreadIds =\n\t\t\tdetailReceiverThreadIds.length > 0\n\t\t\t\t? detailReceiverThreadIds\n\t\t\t\t: (this.codexSubagentReceiverThreadIds.get(event.toolCallId) ?? []);\n\t\tconst detailChildRunIds = details\n\t\t\t? codexSubagentExplicitChildRunIds(details)\n\t\t\t: [];\n\t\tconst childRunIds =\n\t\t\tdetailChildRunIds.length > 0\n\t\t\t\t? detailChildRunIds\n\t\t\t\t: (this.codexSubagentToolChildRunIds.get(event.toolCallId) ??\n\t\t\t\t\tcodexSubagentChildRunIds({}, receiverThreadIds));\n\t\tconst linkedWorkItemIds =\n\t\t\tthis.codexSubagentLinkedWorkItemIds(receiverThreadIds);\n\t\tthis.codexSubagentReceiverThreadIds.delete(event.toolCallId);\n\t\tthis.codexSubagentToolChildRunIds.delete(event.toolCallId);\n\t\tthis.codexSubagentToolWorkGraphs.delete(event.toolCallId);\n\t\tif (codexTool === \"closeAgent\" && !event.isError) {\n\t\t\tfor (const threadId of receiverThreadIds) {\n\t\t\t\tthis.codexSubagentThreadWorkItemIds.delete(threadId);\n\t\t\t}\n\t\t}\n\t\tconst codexSubagentOperationName = codexSubagentOperation(codexTool);\n\t\tconst codexSubagentEdgeStatus = terminalCodexSubagentEdgeStatus(\n\t\t\tcodexTool,\n\t\t\tevent.isError,\n\t\t);\n\t\tthis.enqueue(async () => {\n\t\t\tconst delegationIds = this.codexSubagentDelegationIdsFor(\n\t\t\t\tevent.toolCallId,\n\t\t\t\treceiverThreadIds,\n\t\t\t\tchildRunIds,\n\t\t\t);\n\t\t\tconst delegationId = delegationIds[0];\n\t\t\tconst delegationEvidenceRefs = delegationIds.map(\n\t\t\t\t(id) => `agent-registry-delegation:${id}`,\n\t\t\t);\n\t\t\tconst shouldResolveDelegation =\n\t\t\t\tdelegationIds.length > 0 &&\n\t\t\t\tshouldResolveCodexSubagentDelegation(codexTool, event.isError);\n\t\t\tconst toolExecutionId = materializedToolExecutionId(event);\n\t\t\tlet updateError: unknown;\n\t\t\ttry {\n\t\t\t\tawait this.operations.updateWorkItem({\n\t\t\t\t\trunId,\n\t\t\t\t\tworkItemId: this.workItemId(event.toolCallId),\n\t\t\t\t\tstate: event.isError\n\t\t\t\t\t\t? PlatformAgentWorkItemStateValue.Failed\n\t\t\t\t\t\t: PlatformAgentWorkItemStateValue.Succeeded,\n\t\t\t\t\t...(toolExecutionId ? { toolExecutionId } : {}),\n\t\t\t\t\tevidenceRefs: [\n\t\t\t\t\t\t`codex-tool-call:${event.toolCallId}`,\n\t\t\t\t\t\t...receiverThreadIds.map((id) => `codex-thread:${id}`),\n\t\t\t\t\t\t...childRunIds.map((id) => `codex-child-run:${id}`),\n\t\t\t\t\t\t...delegationEvidenceRefs,\n\t\t\t\t\t],\n\t\t\t\t\tcompletionGate: event.isError\n\t\t\t\t\t\t? \"codex_collab_tool_failed\"\n\t\t\t\t\t\t: \"codex_collab_tool_completed\",\n\t\t\t\t\tpayload: this.basePayload({\n\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\tcodex_tool: codexTool,\n\t\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\t\ttool_name: event.toolName,\n\t\t\t\t\t\tdisplay_name: event.displayName,\n\t\t\t\t\t\tsummary_label: event.summaryLabel,\n\t\t\t\t\t\tcodex_subagent_operation: codexSubagentOperationName,\n\t\t\t\t\t\tcodex_subagent_edge_status: codexSubagentEdgeStatus,\n\t\t\t\t\t\terror_code: event.errorCode,\n\t\t\t\t\t\tgoverned_outcome: event.governedOutcome,\n\t\t\t\t\t\tresult_error: event.isError,\n\t\t\t\t\t\treceiver_thread_ids: receiverThreadIds,\n\t\t\t\t\t\tchild_run_ids: childRunIds,\n\t\t\t\t\t\tcodex_work_graph: workGraph,\n\t\t\t\t\t\tlinked_work_item_ids: linkedWorkItemIds,\n\t\t\t\t\t\tdelegation_id: delegationId,\n\t\t\t\t\t\tdelegation_ids:\n\t\t\t\t\t\t\tdelegationIds.length > 0 ? delegationIds : undefined,\n\t\t\t\t\t\tdelegation_resolution:\n\t\t\t\t\t\t\tcodexTool === \"spawnAgent\" &&\n\t\t\t\t\t\t\tdelegationIds.length > 0 &&\n\t\t\t\t\t\t\t!event.isError\n\t\t\t\t\t\t\t\t? \"deferred_until_child_terminal_edge\"\n\t\t\t\t\t\t\t\t: shouldResolveDelegation\n\t\t\t\t\t\t\t\t\t? \"resolved_from_child_terminal_edge\"\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\tresult_detail_keys: objectKeys(details),\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tupdateError = error;\n\t\t\t}\n\t\t\tif (shouldResolveDelegation) {\n\t\t\t\tfor (const delegationIdToResolve of delegationIds) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait this.operations.resolveDelegation({\n\t\t\t\t\t\t\tdelegationId: delegationIdToResolve,\n\t\t\t\t\t\t\tstatus: event.isError\n\t\t\t\t\t\t\t\t? PlatformDelegationStatusValue.Failed\n\t\t\t\t\t\t\t\t: PlatformDelegationStatusValue.Completed,\n\t\t\t\t\t\t\tresultPayload: this.basePayload({\n\t\t\t\t\t\t\t\tevent_type: \"codex_subagent_delegation_resolved\",\n\t\t\t\t\t\t\t\tcodex_tool: codexTool,\n\t\t\t\t\t\t\t\tcodex_subagent_operation: codexSubagentOperationName,\n\t\t\t\t\t\t\t\tcodex_subagent_edge_status: codexSubagentEdgeStatus,\n\t\t\t\t\t\t\t\tagent_run_id: runId,\n\t\t\t\t\t\t\t\twork_item_id: this.workItemId(event.toolCallId),\n\t\t\t\t\t\t\t\tresolution_tool_call_id: event.toolCallId,\n\t\t\t\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\t\t\t\ttool_name: event.toolName,\n\t\t\t\t\t\t\t\tresult_error: event.isError,\n\t\t\t\t\t\t\t\treceiver_thread_ids: receiverThreadIds,\n\t\t\t\t\t\t\t\tchild_run_ids: childRunIds,\n\t\t\t\t\t\t\t\tcodex_work_graph: workGraph,\n\t\t\t\t\t\t\t\tlinked_work_item_ids: linkedWorkItemIds,\n\t\t\t\t\t\t\t\tdelegation_ids: delegationIds,\n\t\t\t\t\t\t\t\tresult_detail_keys: objectKeys(details),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\terrorMessage: event.isError\n\t\t\t\t\t\t\t\t? (event.errorCode ??\n\t\t\t\t\t\t\t\t\tevent.governedOutcome ??\n\t\t\t\t\t\t\t\t\tcodexSubagentDelegationFailureMessage(codexTool))\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tlogger.warn(\"Failed to resolve Codex subagent delegation\", {\n\t\t\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\t\t\tsession_id: this.sessionId,\n\t\t\t\t\t\t\tagent_run_id: runId,\n\t\t\t\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\t\t\t\tdelegation_id: delegationIdToResolve,\n\t\t\t\t\t\t});\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.clearCodexSubagentDelegationLinks(delegationIdToResolve);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (updateError !== undefined) {\n\t\t\t\tthrow updateError;\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate rememberCodexSubagentDelegation(input: {\n\t\tdelegationId: string;\n\t\ttoolCallId: string;\n\t\treceiverThreadIds: string[];\n\t\tchildRunIds: string[];\n\t}): void {\n\t\tthis.codexSubagentDelegationIds.set(input.toolCallId, input.delegationId);\n\t\tfor (const threadId of input.receiverThreadIds) {\n\t\t\tthis.codexSubagentDelegationIdsByThreadId.set(\n\t\t\t\tthreadId,\n\t\t\t\tinput.delegationId,\n\t\t\t);\n\t\t}\n\t\tfor (const childRunId of input.childRunIds) {\n\t\t\tthis.codexSubagentDelegationIdsByChildRunId.set(\n\t\t\t\tchildRunId,\n\t\t\t\tinput.delegationId,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate codexSubagentDelegationIdsFor(\n\t\ttoolCallId: string,\n\t\treceiverThreadIds: string[],\n\t\tchildRunIds: string[],\n\t): string[] {\n\t\tconst ids = new Set<string>();\n\t\tconst add = (delegationId: string | undefined) => {\n\t\t\tif (delegationId) {\n\t\t\t\tids.add(delegationId);\n\t\t\t}\n\t\t};\n\t\tadd(this.codexSubagentDelegationIds.get(toolCallId));\n\t\tfor (const childRunId of childRunIds) {\n\t\t\tadd(this.codexSubagentDelegationIdsByChildRunId.get(childRunId));\n\t\t}\n\t\tfor (const threadId of receiverThreadIds) {\n\t\t\tadd(this.codexSubagentDelegationIdsByThreadId.get(threadId));\n\t\t}\n\t\treturn [...ids];\n\t}\n\n\tprivate clearCodexSubagentDelegationLinks(delegationId: string): void {\n\t\tfor (const [toolCallId, linkedDelegationId] of this\n\t\t\t.codexSubagentDelegationIds) {\n\t\t\tif (linkedDelegationId === delegationId) {\n\t\t\t\tthis.codexSubagentDelegationIds.delete(toolCallId);\n\t\t\t}\n\t\t}\n\t\tfor (const [threadId, linkedDelegationId] of this\n\t\t\t.codexSubagentDelegationIdsByThreadId) {\n\t\t\tif (linkedDelegationId === delegationId) {\n\t\t\t\tthis.codexSubagentDelegationIdsByThreadId.delete(threadId);\n\t\t\t}\n\t\t}\n\t\tfor (const [childRunId, linkedDelegationId] of this\n\t\t\t.codexSubagentDelegationIdsByChildRunId) {\n\t\t\tif (linkedDelegationId === delegationId) {\n\t\t\t\tthis.codexSubagentDelegationIdsByChildRunId.delete(childRunId);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate codexSubagentLinkedWorkItemIds(\n\t\treceiverThreadIds: string[],\n\t): string[] {\n\t\tconst linked = receiverThreadIds\n\t\t\t.map((threadId) => this.codexSubagentThreadWorkItemIds.get(threadId))\n\t\t\t.filter((id): id is string => Boolean(id));\n\t\treturn Array.from(new Set(linked));\n\t}\n\n\tprivate recordToolDerivedTaskProgress(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst args = this.toolArgsByCallId.get(event.toolCallId);\n\t\tthis.toolArgsByCallId.delete(event.toolCallId);\n\t\tif (event.isError) {\n\t\t\treturn;\n\t\t}\n\t\tif (event.toolName === \"todo\") {\n\t\t\tthis.recordTodoTaskProgress(event, args);\n\t\t\treturn;\n\t\t}\n\t\tif (event.toolName === \"background_tasks\" || event.toolName === \"bash\") {\n\t\t\tthis.recordBackgroundTaskProgress(event, args);\n\t\t}\n\t}\n\n\tprivate recordTodoTaskProgress(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t\targs: Record<string, unknown> | undefined,\n\t): void {\n\t\tconst details = isRecord(event.result.details)\n\t\t\t? event.result.details\n\t\t\t: undefined;\n\t\tif (!details) {\n\t\t\treturn;\n\t\t}\n\t\tconst rawGoal = nonEmptyString(args?.goal)?.trim();\n\t\tconst goal = compactString(rawGoal, 512);\n\t\tconst goalHash = rawGoal ? stableShortHash(rawGoal) : undefined;\n\t\tfor (const item of recordArray(details.items)) {\n\t\t\tconst id = compactString(item.id, 128);\n\t\t\tconst content = compactString(item.content, 512);\n\t\t\tif (!id || !content) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst scopedId = goalScopedTodoId(id, rawGoal);\n\t\t\tconst blockedBy = stringArray(item.blockedBy);\n\t\t\tconst status = todoStatusToTaskStatus(item.status);\n\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\tsource: \"todo\",\n\t\t\t\tid: scopedId,\n\t\t\t\tstatus,\n\t\t\t\ttitle: content,\n\t\t\t\tgoal,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: materializedToolExecutionId(event),\n\t\t\t\tcompletionGate: \"todo_status_projected\",\n\t\t\t\tnextAction:\n\t\t\t\t\tstatus === \"pending\"\n\t\t\t\t\t\t? \"wait for task to start\"\n\t\t\t\t\t\t: status === \"running\"\n\t\t\t\t\t\t\t? \"complete the active task\"\n\t\t\t\t\t\t\t: \"task completed\",\n\t\t\t\tblocker: blockedBy.length > 0 ? blockedBy.join(\", \") : undefined,\n\t\t\t\tpayload: {\n\t\t\t\t\ttask_id: id,\n\t\t\t\t\ttodo_id: id,\n\t\t\t\t\ttodo_scope: rawGoal ? \"goal\" : \"session\",\n\t\t\t\t\ttodo_goal_hash: goalHash,\n\t\t\t\t\ttodo_status: compactString(item.status),\n\t\t\t\t\tpriority: compactString(item.priority),\n\t\t\t\t\tblocked_by: blockedBy,\n\t\t\t\t\tdue: compactString(item.due),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate recordBackgroundTaskProgress(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t\targs: Record<string, unknown> | undefined,\n\t): void {\n\t\tconst details = event.result.details;\n\t\tconst candidates = Array.isArray(details)\n\t\t\t? recordArray(details)\n\t\t\t: isRecord(details)\n\t\t\t\t? [details]\n\t\t\t\t: [];\n\t\tfor (const detail of candidates) {\n\t\t\tconst id = compactString(detail.id ?? detail.taskId, 128);\n\t\t\tif (!id) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst statusLabel = compactString(detail.status, 64);\n\t\t\tif (!statusLabel) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst command = compactString(detail.command ?? args?.command, 512);\n\t\t\tconst status = backgroundStatusToTaskStatus(statusLabel);\n\t\t\tthis.recordTaskProgressEvent({\n\t\t\t\tsource: \"background\",\n\t\t\t\tid,\n\t\t\t\tstatus,\n\t\t\t\ttitle: command\n\t\t\t\t\t? `Background task: ${command}`\n\t\t\t\t\t: `Background task ${id}`,\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: materializedToolExecutionId(event),\n\t\t\t\tcompletionGate: \"background_task_status_projected\",\n\t\t\t\tnextAction:\n\t\t\t\t\tstatus === \"running\"\n\t\t\t\t\t\t? \"monitor or stop the background task\"\n\t\t\t\t\t\t: \"inspect task result if needed\",\n\t\t\t\terrorMessage: compactString(detail.failureReason, 512),\n\t\t\t\tpayload: {\n\t\t\t\t\tbackground_task_id: id,\n\t\t\t\t\tbackground_task_status: statusLabel,\n\t\t\t\t\tcommand_summary: command,\n\t\t\t\t\tcwd: compactString(detail.cwd, 512),\n\t\t\t\t\tpid: typeof detail.pid === \"number\" ? detail.pid : undefined,\n\t\t\t\t\tshell_mode: compactString(detail.shellMode, 64),\n\t\t\t\t\trestart_attempts: finiteNumber(detail.restartAttempts),\n\t\t\t\t\trestart_max_attempts: finiteNumber(detail.restartMaxAttempts),\n\t\t\t\t\tlog_truncated:\n\t\t\t\t\t\ttypeof detail.logTruncated === \"boolean\"\n\t\t\t\t\t\t\t? detail.logTruncated\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tmonitoring_mode: compactString(detail.monitoringMode, 64),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate enqueue(operation: ProgressOperation): void {\n\t\tthis.pending = this.pending.then(operation, operation).then(\n\t\t\t() => {},\n\t\t\t(error) => {\n\t\t\t\tlogger.warn(\"Failed to record hosted AgentRuntime progress\", {\n\t\t\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\t\t\tsession_id: this.sessionId,\n\t\t\t\t\tagent_run_id: this.hostedRunner?.agentRunId,\n\t\t\t\t});\n\t\t\t},\n\t\t);\n\t}\n\n\tprivate handles(): { runId: string; leaseToken: string } | null {\n\t\tconst runId = nonEmptyString(this.hostedRunner?.agentRunId);\n\t\tconst leaseToken = nonEmptyString(\n\t\t\tthis.hostedRunner?.agentRuntimeLeaseToken,\n\t\t);\n\t\tif (!this.hostedRunner?.enabled || !runId || !leaseToken) {\n\t\t\treturn null;\n\t\t}\n\t\treturn { runId, leaseToken };\n\t}\n\n\tprivate basePayload(\n\t\tvalues: Record<string, unknown>,\n\t): Record<string, unknown> {\n\t\treturn {\n\t\t\tmaestro_session_id: this.sessionId,\n\t\t\t...(this.workspaceRoot ? { workspace_root: this.workspaceRoot } : {}),\n\t\t\t...(this.hostedRunner?.workspaceId\n\t\t\t\t? { workspace_id: this.hostedRunner.workspaceId }\n\t\t\t\t: {}),\n\t\t\t...(this.hostedRunner?.runnerSessionId\n\t\t\t\t? { runner_session_id: this.hostedRunner.runnerSessionId }\n\t\t\t\t: {}),\n\t\t\t...(this.hostedRunner?.ownerInstanceId\n\t\t\t\t? { owner_instance_id: this.hostedRunner.ownerInstanceId }\n\t\t\t\t: {}),\n\t\t\t...(this.hostedRunner?.agentId\n\t\t\t\t? { agent_id: this.hostedRunner.agentId }\n\t\t\t\t: {}),\n\t\t\t...(this.hostedRunner?.agentRuntimeWorkerQueue\n\t\t\t\t? { worker_queue: this.hostedRunner.agentRuntimeWorkerQueue }\n\t\t\t\t: {}),\n\t\t\t...(this.hostedRunner?.agentRuntimeCorrelationPath\n\t\t\t\t? { correlation_path: this.hostedRunner.agentRuntimeCorrelationPath }\n\t\t\t\t: {}),\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries(values).filter(([, value]) => value !== undefined),\n\t\t\t),\n\t\t};\n\t}\n\n\tprivate stepId(kind: string, id: string): string {\n\t\treturn `maestro:${safeIdPart(this.sessionId)}:${kind}:${safeIdPart(id)}`;\n\t}\n\n\tprivate taskProgressId(\n\t\tsource: HostedAgentRuntimeTaskSource,\n\t\tid: string,\n\t): string {\n\t\treturn this.stepId(source, id);\n\t}\n\n\tprivate toolStepId(toolCallId: string): string {\n\t\treturn this.stepId(\"tool\", toolCallId);\n\t}\n\n\tprivate workItemId(toolCallId: string): string {\n\t\treturn this.stepId(\"work\", toolCallId);\n\t}\n\n\tprivate waitId(requestId: string): string {\n\t\treturn this.stepId(\"wait\", requestId);\n\t}\n\n\tprivate checkpointId(requestId: string): string {\n\t\treturn this.stepId(\"checkpoint\", requestId);\n\t}\n\n\tprivate resumeEventId(requestId: string): string {\n\t\treturn this.stepId(\"resume\", requestId);\n\t}\n\n\tprivate costId(turnId: string): string {\n\t\treturn this.stepId(\"cost\", turnId);\n\t}\n\n\tprivate meterRef(costId: string): string {\n\t\treturn `meter://maestro/model-usage/${safeIdPart(costId)}`;\n\t}\n}\n\nexport function createHostedAgentRuntimeProgressRecorder(\n\toptions: HostedAgentRuntimeProgressRecorderOptions,\n): HostedAgentRuntimeProgressRecorder | undefined {\n\tif (!options.hostedRunner?.enabled) {\n\t\treturn undefined;\n\t}\n\treturn new HostedAgentRuntimeProgressRecorder(options);\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { HostedRunnerContext } from "./app-context.js";
|
|
2
|
+
export declare const HOSTED_RUNNER_LEASE_PROTOCOL_VERSION = "evalops.maestro.hosted-runner-lease.v1";
|
|
3
|
+
export type HostedRunnerLeaseState = "unbound" | "bound" | "draining";
|
|
4
|
+
export type HostedRunnerLeaseDecisionReason = "runtime_owned_elsewhere" | "runtime_draining";
|
|
5
|
+
export interface HostedRunnerLeaseSnapshot {
|
|
6
|
+
protocolVersion: typeof HOSTED_RUNNER_LEASE_PROTOCOL_VERSION;
|
|
7
|
+
runnerSessionId: string;
|
|
8
|
+
ownerInstanceId?: string;
|
|
9
|
+
workspaceId?: string;
|
|
10
|
+
agentId?: string;
|
|
11
|
+
agentRunId?: string;
|
|
12
|
+
leaseToken?: string;
|
|
13
|
+
maestroSessionId?: string;
|
|
14
|
+
configuredMaestroSessionId?: string;
|
|
15
|
+
state: HostedRunnerLeaseState;
|
|
16
|
+
generation: number;
|
|
17
|
+
heartbeatAt: string;
|
|
18
|
+
updatedAt: string;
|
|
19
|
+
}
|
|
20
|
+
export type HostedRunnerLeaseDecision = {
|
|
21
|
+
ok: true;
|
|
22
|
+
snapshot: HostedRunnerLeaseSnapshot;
|
|
23
|
+
} | {
|
|
24
|
+
ok: false;
|
|
25
|
+
reason: HostedRunnerLeaseDecisionReason;
|
|
26
|
+
message: string;
|
|
27
|
+
snapshot: HostedRunnerLeaseSnapshot;
|
|
28
|
+
activeSessionId?: string;
|
|
29
|
+
requestedSessionId?: string;
|
|
30
|
+
};
|
|
31
|
+
export declare function hostedRunnerLeaseSnapshot(hostedRunner: HostedRunnerContext, now?: Date): HostedRunnerLeaseSnapshot;
|
|
32
|
+
export declare function refreshHostedRunnerLease(hostedRunner: HostedRunnerContext, now?: Date): HostedRunnerLeaseSnapshot;
|
|
33
|
+
export declare function evaluateHostedRunnerLeaseUse(hostedRunner: HostedRunnerContext, requestedSessionId: string | undefined, now?: Date): HostedRunnerLeaseDecision;
|
|
34
|
+
export declare function claimHostedRunnerLease(hostedRunner: HostedRunnerContext, sessionId: string, now?: Date): HostedRunnerLeaseDecision;
|
|
35
|
+
export declare function markHostedRunnerLeaseDraining(hostedRunner: HostedRunnerContext, now?: Date): HostedRunnerLeaseSnapshot;
|
|
36
|
+
export declare function bindHostedRunnerPlatformLease(hostedRunner: HostedRunnerContext, input: {
|
|
37
|
+
agentRunId?: string;
|
|
38
|
+
agentId?: string;
|
|
39
|
+
leaseToken?: string;
|
|
40
|
+
}, now?: Date): HostedRunnerLeaseSnapshot;
|
|
41
|
+
//# sourceMappingURL=hosted-runner-lease.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-runner-lease.d.ts","sourceRoot":"","sources":["../../src/server/hosted-runner-lease.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,oCAAoC,2CACR,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AACtE,MAAM,MAAM,+BAA+B,GACxC,yBAAyB,GACzB,kBAAkB,CAAC;AAEtB,MAAM,WAAW,yBAAyB;IACzC,eAAe,EAAE,OAAO,oCAAoC,CAAC;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,yBAAyB,GAClC;IACA,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,yBAAyB,CAAC;CACnC,GACD;IACA,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,+BAA+B,CAAC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAUL,wBAAgB,yBAAyB,CACxC,YAAY,EAAE,mBAAmB,EACjC,GAAG,OAAa,GACd,yBAAyB,CAgC3B;AAUD,wBAAgB,wBAAwB,CACvC,YAAY,EAAE,mBAAmB,EACjC,GAAG,OAAa,GACd,yBAAyB,CAQ3B;AAED,wBAAgB,4BAA4B,CAC3C,YAAY,EAAE,mBAAmB,EACjC,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,GAAG,OAAa,GACd,yBAAyB,CAqC3B;AAED,wBAAgB,sBAAsB,CACrC,YAAY,EAAE,mBAAmB,EACjC,SAAS,EAAE,MAAM,EACjB,GAAG,OAAa,GACd,yBAAyB,CAoB3B;AAED,wBAAgB,6BAA6B,CAC5C,YAAY,EAAE,mBAAmB,EACjC,GAAG,OAAa,GACd,yBAAyB,CAS3B;AAED,wBAAgB,6BAA6B,CAC5C,YAAY,EAAE,mBAAmB,EACjC,KAAK,EAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,GAAG,OAAa,GACd,yBAAyB,CAkB3B"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export const HOSTED_RUNNER_LEASE_PROTOCOL_VERSION = "evalops.maestro.hosted-runner-lease.v1";
|
|
2
|
+
function nowIso(now = new Date()) {
|
|
3
|
+
return now.toISOString();
|
|
4
|
+
}
|
|
5
|
+
function currentGeneration(hostedRunner) {
|
|
6
|
+
return hostedRunner.runtimeLease?.generation ?? 0;
|
|
7
|
+
}
|
|
8
|
+
export function hostedRunnerLeaseSnapshot(hostedRunner, now = new Date()) {
|
|
9
|
+
const activeSessionId = hostedRunner.activeMaestroSessionId ??
|
|
10
|
+
hostedRunner.configuredMaestroSessionId;
|
|
11
|
+
const previous = hostedRunner.runtimeLease;
|
|
12
|
+
return {
|
|
13
|
+
protocolVersion: HOSTED_RUNNER_LEASE_PROTOCOL_VERSION,
|
|
14
|
+
runnerSessionId: hostedRunner.runnerSessionId,
|
|
15
|
+
...(hostedRunner.ownerInstanceId
|
|
16
|
+
? { ownerInstanceId: hostedRunner.ownerInstanceId }
|
|
17
|
+
: {}),
|
|
18
|
+
...(hostedRunner.workspaceId
|
|
19
|
+
? { workspaceId: hostedRunner.workspaceId }
|
|
20
|
+
: {}),
|
|
21
|
+
...(hostedRunner.agentId ? { agentId: hostedRunner.agentId } : {}),
|
|
22
|
+
...(hostedRunner.agentRunId ? { agentRunId: hostedRunner.agentRunId } : {}),
|
|
23
|
+
...(hostedRunner.agentRuntimeLeaseToken
|
|
24
|
+
? { leaseToken: hostedRunner.agentRuntimeLeaseToken }
|
|
25
|
+
: {}),
|
|
26
|
+
...(activeSessionId ? { maestroSessionId: activeSessionId } : {}),
|
|
27
|
+
...(hostedRunner.configuredMaestroSessionId
|
|
28
|
+
? { configuredMaestroSessionId: hostedRunner.configuredMaestroSessionId }
|
|
29
|
+
: {}),
|
|
30
|
+
state: hostedRunner.draining
|
|
31
|
+
? "draining"
|
|
32
|
+
: activeSessionId
|
|
33
|
+
? "bound"
|
|
34
|
+
: "unbound",
|
|
35
|
+
generation: previous?.generation ?? 0,
|
|
36
|
+
heartbeatAt: previous?.heartbeatAt ?? nowIso(now),
|
|
37
|
+
updatedAt: previous?.updatedAt ?? nowIso(now),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function persistLeaseSnapshot(hostedRunner, snapshot) {
|
|
41
|
+
hostedRunner.runtimeLease = snapshot;
|
|
42
|
+
return snapshot;
|
|
43
|
+
}
|
|
44
|
+
export function refreshHostedRunnerLease(hostedRunner, now = new Date()) {
|
|
45
|
+
const snapshot = {
|
|
46
|
+
...hostedRunnerLeaseSnapshot(hostedRunner, now),
|
|
47
|
+
heartbeatAt: nowIso(now),
|
|
48
|
+
updatedAt: nowIso(now),
|
|
49
|
+
generation: currentGeneration(hostedRunner) + 1,
|
|
50
|
+
};
|
|
51
|
+
return persistLeaseSnapshot(hostedRunner, snapshot);
|
|
52
|
+
}
|
|
53
|
+
export function evaluateHostedRunnerLeaseUse(hostedRunner, requestedSessionId, now = new Date()) {
|
|
54
|
+
const snapshot = hostedRunnerLeaseSnapshot(hostedRunner, now);
|
|
55
|
+
if (snapshot.state === "draining") {
|
|
56
|
+
return {
|
|
57
|
+
ok: false,
|
|
58
|
+
reason: "runtime_draining",
|
|
59
|
+
message: "Hosted runner is draining and not accepting headless session traffic",
|
|
60
|
+
snapshot,
|
|
61
|
+
activeSessionId: snapshot.maestroSessionId,
|
|
62
|
+
requestedSessionId,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (!snapshot.maestroSessionId) {
|
|
66
|
+
return { ok: true, snapshot };
|
|
67
|
+
}
|
|
68
|
+
if (!requestedSessionId) {
|
|
69
|
+
return {
|
|
70
|
+
ok: false,
|
|
71
|
+
reason: "runtime_owned_elsewhere",
|
|
72
|
+
message: `Hosted runner is already bound to Maestro session ${snapshot.maestroSessionId}`,
|
|
73
|
+
snapshot,
|
|
74
|
+
activeSessionId: snapshot.maestroSessionId,
|
|
75
|
+
requestedSessionId,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (requestedSessionId !== snapshot.maestroSessionId) {
|
|
79
|
+
return {
|
|
80
|
+
ok: false,
|
|
81
|
+
reason: "runtime_owned_elsewhere",
|
|
82
|
+
message: `Hosted runner is bound to Maestro session ${snapshot.maestroSessionId}`,
|
|
83
|
+
snapshot,
|
|
84
|
+
activeSessionId: snapshot.maestroSessionId,
|
|
85
|
+
requestedSessionId,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return { ok: true, snapshot };
|
|
89
|
+
}
|
|
90
|
+
export function claimHostedRunnerLease(hostedRunner, sessionId, now = new Date()) {
|
|
91
|
+
const decision = evaluateHostedRunnerLeaseUse(hostedRunner, sessionId, now);
|
|
92
|
+
if (!decision.ok) {
|
|
93
|
+
return decision;
|
|
94
|
+
}
|
|
95
|
+
const sameSessionReclaim = hostedRunner.runtimeLease?.state === "bound" &&
|
|
96
|
+
hostedRunner.runtimeLease.maestroSessionId === sessionId;
|
|
97
|
+
hostedRunner.activeMaestroSessionId = sessionId;
|
|
98
|
+
const snapshot = {
|
|
99
|
+
...hostedRunnerLeaseSnapshot(hostedRunner, now),
|
|
100
|
+
maestroSessionId: sessionId,
|
|
101
|
+
state: "bound",
|
|
102
|
+
generation: sameSessionReclaim
|
|
103
|
+
? currentGeneration(hostedRunner)
|
|
104
|
+
: currentGeneration(hostedRunner) + 1,
|
|
105
|
+
heartbeatAt: nowIso(now),
|
|
106
|
+
updatedAt: sameSessionReclaim ? decision.snapshot.updatedAt : nowIso(now),
|
|
107
|
+
};
|
|
108
|
+
return { ok: true, snapshot: persistLeaseSnapshot(hostedRunner, snapshot) };
|
|
109
|
+
}
|
|
110
|
+
export function markHostedRunnerLeaseDraining(hostedRunner, now = new Date()) {
|
|
111
|
+
hostedRunner.draining = true;
|
|
112
|
+
const snapshot = {
|
|
113
|
+
...hostedRunnerLeaseSnapshot(hostedRunner, now),
|
|
114
|
+
state: "draining",
|
|
115
|
+
generation: currentGeneration(hostedRunner) + 1,
|
|
116
|
+
updatedAt: nowIso(now),
|
|
117
|
+
};
|
|
118
|
+
return persistLeaseSnapshot(hostedRunner, snapshot);
|
|
119
|
+
}
|
|
120
|
+
export function bindHostedRunnerPlatformLease(hostedRunner, input, now = new Date()) {
|
|
121
|
+
if (input.agentRunId) {
|
|
122
|
+
hostedRunner.agentRunId = input.agentRunId;
|
|
123
|
+
}
|
|
124
|
+
if (input.agentId) {
|
|
125
|
+
hostedRunner.agentId = input.agentId;
|
|
126
|
+
}
|
|
127
|
+
if (input.leaseToken) {
|
|
128
|
+
hostedRunner.agentRuntimeLeaseToken = input.leaseToken;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
delete hostedRunner.agentRuntimeLeaseToken;
|
|
132
|
+
}
|
|
133
|
+
const snapshot = {
|
|
134
|
+
...hostedRunnerLeaseSnapshot(hostedRunner, now),
|
|
135
|
+
generation: currentGeneration(hostedRunner) + 1,
|
|
136
|
+
updatedAt: nowIso(now),
|
|
137
|
+
};
|
|
138
|
+
return persistLeaseSnapshot(hostedRunner, snapshot);
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=hosted-runner-lease.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-runner-lease.js","sourceRoot":"","sources":["../../src/server/hosted-runner-lease.ts"],"names":[],"mappings":"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","sourcesContent":["import type { HostedRunnerContext } from \"./app-context.js\";\n\nexport const HOSTED_RUNNER_LEASE_PROTOCOL_VERSION =\n\t\"evalops.maestro.hosted-runner-lease.v1\";\n\nexport type HostedRunnerLeaseState = \"unbound\" | \"bound\" | \"draining\";\nexport type HostedRunnerLeaseDecisionReason =\n\t| \"runtime_owned_elsewhere\"\n\t| \"runtime_draining\";\n\nexport interface HostedRunnerLeaseSnapshot {\n\tprotocolVersion: typeof HOSTED_RUNNER_LEASE_PROTOCOL_VERSION;\n\trunnerSessionId: string;\n\townerInstanceId?: string;\n\tworkspaceId?: string;\n\tagentId?: string;\n\tagentRunId?: string;\n\tleaseToken?: string;\n\tmaestroSessionId?: string;\n\tconfiguredMaestroSessionId?: string;\n\tstate: HostedRunnerLeaseState;\n\tgeneration: number;\n\theartbeatAt: string;\n\tupdatedAt: string;\n}\n\nexport type HostedRunnerLeaseDecision =\n\t| {\n\t\t\tok: true;\n\t\t\tsnapshot: HostedRunnerLeaseSnapshot;\n\t }\n\t| {\n\t\t\tok: false;\n\t\t\treason: HostedRunnerLeaseDecisionReason;\n\t\t\tmessage: string;\n\t\t\tsnapshot: HostedRunnerLeaseSnapshot;\n\t\t\tactiveSessionId?: string;\n\t\t\trequestedSessionId?: string;\n\t };\n\nfunction nowIso(now = new Date()): string {\n\treturn now.toISOString();\n}\n\nfunction currentGeneration(hostedRunner: HostedRunnerContext): number {\n\treturn hostedRunner.runtimeLease?.generation ?? 0;\n}\n\nexport function hostedRunnerLeaseSnapshot(\n\thostedRunner: HostedRunnerContext,\n\tnow = new Date(),\n): HostedRunnerLeaseSnapshot {\n\tconst activeSessionId =\n\t\thostedRunner.activeMaestroSessionId ??\n\t\thostedRunner.configuredMaestroSessionId;\n\tconst previous = hostedRunner.runtimeLease;\n\treturn {\n\t\tprotocolVersion: HOSTED_RUNNER_LEASE_PROTOCOL_VERSION,\n\t\trunnerSessionId: hostedRunner.runnerSessionId,\n\t\t...(hostedRunner.ownerInstanceId\n\t\t\t? { ownerInstanceId: hostedRunner.ownerInstanceId }\n\t\t\t: {}),\n\t\t...(hostedRunner.workspaceId\n\t\t\t? { workspaceId: hostedRunner.workspaceId }\n\t\t\t: {}),\n\t\t...(hostedRunner.agentId ? { agentId: hostedRunner.agentId } : {}),\n\t\t...(hostedRunner.agentRunId ? { agentRunId: hostedRunner.agentRunId } : {}),\n\t\t...(hostedRunner.agentRuntimeLeaseToken\n\t\t\t? { leaseToken: hostedRunner.agentRuntimeLeaseToken }\n\t\t\t: {}),\n\t\t...(activeSessionId ? { maestroSessionId: activeSessionId } : {}),\n\t\t...(hostedRunner.configuredMaestroSessionId\n\t\t\t? { configuredMaestroSessionId: hostedRunner.configuredMaestroSessionId }\n\t\t\t: {}),\n\t\tstate: hostedRunner.draining\n\t\t\t? \"draining\"\n\t\t\t: activeSessionId\n\t\t\t\t? \"bound\"\n\t\t\t\t: \"unbound\",\n\t\tgeneration: previous?.generation ?? 0,\n\t\theartbeatAt: previous?.heartbeatAt ?? nowIso(now),\n\t\tupdatedAt: previous?.updatedAt ?? nowIso(now),\n\t};\n}\n\nfunction persistLeaseSnapshot(\n\thostedRunner: HostedRunnerContext,\n\tsnapshot: HostedRunnerLeaseSnapshot,\n): HostedRunnerLeaseSnapshot {\n\thostedRunner.runtimeLease = snapshot;\n\treturn snapshot;\n}\n\nexport function refreshHostedRunnerLease(\n\thostedRunner: HostedRunnerContext,\n\tnow = new Date(),\n): HostedRunnerLeaseSnapshot {\n\tconst snapshot = {\n\t\t...hostedRunnerLeaseSnapshot(hostedRunner, now),\n\t\theartbeatAt: nowIso(now),\n\t\tupdatedAt: nowIso(now),\n\t\tgeneration: currentGeneration(hostedRunner) + 1,\n\t};\n\treturn persistLeaseSnapshot(hostedRunner, snapshot);\n}\n\nexport function evaluateHostedRunnerLeaseUse(\n\thostedRunner: HostedRunnerContext,\n\trequestedSessionId: string | undefined,\n\tnow = new Date(),\n): HostedRunnerLeaseDecision {\n\tconst snapshot = hostedRunnerLeaseSnapshot(hostedRunner, now);\n\tif (snapshot.state === \"draining\") {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"runtime_draining\",\n\t\t\tmessage:\n\t\t\t\t\"Hosted runner is draining and not accepting headless session traffic\",\n\t\t\tsnapshot,\n\t\t\tactiveSessionId: snapshot.maestroSessionId,\n\t\t\trequestedSessionId,\n\t\t};\n\t}\n\tif (!snapshot.maestroSessionId) {\n\t\treturn { ok: true, snapshot };\n\t}\n\tif (!requestedSessionId) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"runtime_owned_elsewhere\",\n\t\t\tmessage: `Hosted runner is already bound to Maestro session ${snapshot.maestroSessionId}`,\n\t\t\tsnapshot,\n\t\t\tactiveSessionId: snapshot.maestroSessionId,\n\t\t\trequestedSessionId,\n\t\t};\n\t}\n\tif (requestedSessionId !== snapshot.maestroSessionId) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"runtime_owned_elsewhere\",\n\t\t\tmessage: `Hosted runner is bound to Maestro session ${snapshot.maestroSessionId}`,\n\t\t\tsnapshot,\n\t\t\tactiveSessionId: snapshot.maestroSessionId,\n\t\t\trequestedSessionId,\n\t\t};\n\t}\n\treturn { ok: true, snapshot };\n}\n\nexport function claimHostedRunnerLease(\n\thostedRunner: HostedRunnerContext,\n\tsessionId: string,\n\tnow = new Date(),\n): HostedRunnerLeaseDecision {\n\tconst decision = evaluateHostedRunnerLeaseUse(hostedRunner, sessionId, now);\n\tif (!decision.ok) {\n\t\treturn decision;\n\t}\n\tconst sameSessionReclaim =\n\t\thostedRunner.runtimeLease?.state === \"bound\" &&\n\t\thostedRunner.runtimeLease.maestroSessionId === sessionId;\n\thostedRunner.activeMaestroSessionId = sessionId;\n\tconst snapshot = {\n\t\t...hostedRunnerLeaseSnapshot(hostedRunner, now),\n\t\tmaestroSessionId: sessionId,\n\t\tstate: \"bound\" as const,\n\t\tgeneration: sameSessionReclaim\n\t\t\t? currentGeneration(hostedRunner)\n\t\t\t: currentGeneration(hostedRunner) + 1,\n\t\theartbeatAt: nowIso(now),\n\t\tupdatedAt: sameSessionReclaim ? decision.snapshot.updatedAt : nowIso(now),\n\t};\n\treturn { ok: true, snapshot: persistLeaseSnapshot(hostedRunner, snapshot) };\n}\n\nexport function markHostedRunnerLeaseDraining(\n\thostedRunner: HostedRunnerContext,\n\tnow = new Date(),\n): HostedRunnerLeaseSnapshot {\n\thostedRunner.draining = true;\n\tconst snapshot = {\n\t\t...hostedRunnerLeaseSnapshot(hostedRunner, now),\n\t\tstate: \"draining\" as const,\n\t\tgeneration: currentGeneration(hostedRunner) + 1,\n\t\tupdatedAt: nowIso(now),\n\t};\n\treturn persistLeaseSnapshot(hostedRunner, snapshot);\n}\n\nexport function bindHostedRunnerPlatformLease(\n\thostedRunner: HostedRunnerContext,\n\tinput: {\n\t\tagentRunId?: string;\n\t\tagentId?: string;\n\t\tleaseToken?: string;\n\t},\n\tnow = new Date(),\n): HostedRunnerLeaseSnapshot {\n\tif (input.agentRunId) {\n\t\thostedRunner.agentRunId = input.agentRunId;\n\t}\n\tif (input.agentId) {\n\t\thostedRunner.agentId = input.agentId;\n\t}\n\tif (input.leaseToken) {\n\t\thostedRunner.agentRuntimeLeaseToken = input.leaseToken;\n\t} else {\n\t\tdelete hostedRunner.agentRuntimeLeaseToken;\n\t}\n\tconst snapshot = {\n\t\t...hostedRunnerLeaseSnapshot(hostedRunner, now),\n\t\tgeneration: currentGeneration(hostedRunner) + 1,\n\t\tupdatedAt: nowIso(now),\n\t};\n\treturn persistLeaseSnapshot(hostedRunner, snapshot);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentState, AppMessage } from "../agent/types.js";
|
|
2
2
|
import { type SessionContextSnapshot } from "../session/session-context.js";
|
|
3
3
|
import type { SessionMetadata } from "../session/types.js";
|
|
4
|
-
import { type SessionEntry, type SessionHeaderEntry, type SessionModelMetadata, type SessionSummary } from "../session/types.js";
|
|
4
|
+
import { type SessionEntry, type SessionHeaderEntry, type SessionMessagesView, type SessionMetaEntry, type SessionModelMetadata, type SessionSummary } from "../session/types.js";
|
|
5
5
|
export interface HostedSessionMetadataUpdate {
|
|
6
6
|
title?: string;
|
|
7
7
|
favorite?: boolean;
|
|
@@ -29,8 +29,10 @@ export declare class HostedSessionManager {
|
|
|
29
29
|
private enqueue;
|
|
30
30
|
private rebuildIndex;
|
|
31
31
|
private currentMessageCount;
|
|
32
|
+
private resolveSessionId;
|
|
32
33
|
private ensureSessionRow;
|
|
33
34
|
private appendEntry;
|
|
35
|
+
private appendSessionMetaEntry;
|
|
34
36
|
private loadRow;
|
|
35
37
|
private loadEntriesForSession;
|
|
36
38
|
loadEntries(sessionId: string): Promise<SessionEntry[] | null>;
|
|
@@ -41,17 +43,22 @@ export declare class HostedSessionManager {
|
|
|
41
43
|
limit?: number;
|
|
42
44
|
offset?: number;
|
|
43
45
|
}): Promise<SessionSummary[]>;
|
|
44
|
-
loadSession(sessionId: string
|
|
46
|
+
loadSession(sessionId: string, options?: {
|
|
47
|
+
messagesView?: SessionMessagesView;
|
|
48
|
+
}): Promise<{
|
|
45
49
|
id: string;
|
|
46
50
|
subject?: string;
|
|
47
51
|
title?: string;
|
|
52
|
+
summary?: string;
|
|
48
53
|
resumeSummary?: string;
|
|
54
|
+
memoryExtractionHash?: string;
|
|
49
55
|
messages: AppMessage[];
|
|
50
56
|
createdAt: string;
|
|
51
57
|
updatedAt: string;
|
|
52
58
|
messageCount: number;
|
|
53
59
|
favorite: boolean;
|
|
54
60
|
tags?: string[];
|
|
61
|
+
messagesView: SessionMessagesView;
|
|
55
62
|
} | null>;
|
|
56
63
|
createSession(options?: {
|
|
57
64
|
title?: string;
|
|
@@ -79,12 +86,13 @@ export declare class HostedSessionManager {
|
|
|
79
86
|
firstKeptEntryId?: string;
|
|
80
87
|
}): void;
|
|
81
88
|
saveAttachmentExtraction(sessionRef: string, attachmentId: string, text: string): void;
|
|
82
|
-
saveSessionSummary(summary: string,
|
|
83
|
-
saveSessionResumeSummary(summary: string,
|
|
84
|
-
saveSessionMemoryExtractionHash(hash: string,
|
|
85
|
-
setSessionFavorite(
|
|
86
|
-
setSessionTitle(
|
|
87
|
-
setSessionTags(
|
|
89
|
+
saveSessionSummary(summary: string, sessionRef?: string): void;
|
|
90
|
+
saveSessionResumeSummary(summary: string, sessionRef?: string): void;
|
|
91
|
+
saveSessionMemoryExtractionHash(hash: string, sessionRef?: string): void;
|
|
92
|
+
setSessionFavorite(sessionRef: string, favorite: boolean): void;
|
|
93
|
+
setSessionTitle(sessionRef: string, title: string): void;
|
|
94
|
+
setSessionTags(sessionRef: string, tags: string[]): void;
|
|
95
|
+
setSessionAppServerGoal(sessionRef: string, goal: NonNullable<SessionMetaEntry["appServerGoal"]> | null): void;
|
|
88
96
|
getSessionId(): string;
|
|
89
97
|
getSessionFile(): string;
|
|
90
98
|
getSessionFileById(sessionId: string): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hosted-session-manager.d.ts","sourceRoot":"","sources":["../../src/server/hosted-session-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EACN,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"hosted-session-manager.d.ts","sourceRoot":"","sources":["../../src/server/hosted-session-manager.ts"],"names":[],"mappings":"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"}
|