@evalops/maestro 0.10.21 → 0.10.23
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/dist/agent/agent.d.ts +1 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +15 -4
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +68 -3
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +3 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +7 -1
- package/dist/agent/transport.js.map +1 -1
- package/dist/audit/logger.d.ts +1 -1
- package/dist/bootstrap/tools-setup.d.ts.map +1 -1
- package/dist/bootstrap/tools-setup.js +3 -2
- package/dist/bootstrap/tools-setup.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +141 -8
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/codex.d.ts.map +1 -1
- package/dist/cli/commands/codex.js +4 -3
- package/dist/cli/commands/codex.js.map +1 -1
- 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 +31 -2
- package/dist/cli/commands/hosted-runner.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +2 -9
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/a2a-handlers.js +55 -0
- package/dist/cli-tui/commands/a2a-handlers.js.map +1 -1
- package/dist/cli.js +3925 -2024
- package/dist/codex/compatibility.d.ts +17 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +57 -1
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/guardian/config.d.ts +8 -6
- package/dist/guardian/config.d.ts.map +1 -1
- package/dist/guardian/config.js +33 -7
- package/dist/guardian/config.js.map +1 -1
- package/dist/guardian/runner.d.ts.map +1 -1
- package/dist/guardian/runner.js +54 -9
- package/dist/guardian/runner.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +2 -0
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/fathom-cua.d.ts +3 -0
- package/dist/mcp/fathom-cua.d.ts.map +1 -0
- package/dist/mcp/fathom-cua.js +158 -0
- package/dist/mcp/fathom-cua.js.map +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -0
- package/dist/mcp/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts +58 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.js +191 -0
- package/dist/node_modules/@evalops/contracts/dist/artifacts.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +10 -10
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +1 -1
- package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +3 -3
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/platform/a2a-cockpit.d.ts +90 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -0
- package/dist/platform/a2a-cockpit.js +302 -0
- package/dist/platform/a2a-cockpit.js.map +1 -0
- package/dist/platform/a2a-fleet.d.ts +14 -0
- package/dist/platform/a2a-fleet.d.ts.map +1 -1
- package/dist/platform/a2a-fleet.js +66 -1
- package/dist/platform/a2a-fleet.js.map +1 -1
- package/dist/platform/a2a-ownership.d.ts +27 -0
- package/dist/platform/a2a-ownership.d.ts.map +1 -0
- package/dist/platform/a2a-ownership.js +149 -0
- package/dist/platform/a2a-ownership.js.map +1 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +29 -5
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/server/agent-trajectory-replay-lab.d.ts +36 -0
- package/dist/server/agent-trajectory-replay-lab.d.ts.map +1 -0
- package/dist/server/agent-trajectory-replay-lab.js +48 -0
- package/dist/server/agent-trajectory-replay-lab.js.map +1 -0
- package/dist/server/any-agent-control-plane-proof.d.ts +42 -0
- package/dist/server/any-agent-control-plane-proof.d.ts.map +1 -0
- package/dist/server/any-agent-control-plane-proof.js +175 -0
- package/dist/server/any-agent-control-plane-proof.js.map +1 -0
- package/dist/server/app-context.d.ts +1 -0
- package/dist/server/app-context.d.ts.map +1 -1
- package/dist/server/app-context.js.map +1 -1
- package/dist/server/handlers/a2a-cockpit.d.ts +3 -0
- package/dist/server/handlers/a2a-cockpit.d.ts.map +1 -0
- package/dist/server/handlers/a2a-cockpit.js +71 -0
- package/dist/server/handlers/a2a-cockpit.js.map +1 -0
- package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
- package/dist/server/handlers/headless-sessions.js +17 -2
- package/dist/server/handlers/headless-sessions.js.map +1 -1
- package/dist/server/handlers/session-artifacts.d.ts.map +1 -1
- package/dist/server/handlers/session-artifacts.js +14 -58
- package/dist/server/handlers/session-artifacts.js.map +1 -1
- package/dist/server/handlers/session-replay-lab.d.ts +13 -0
- package/dist/server/handlers/session-replay-lab.d.ts.map +1 -0
- package/dist/server/handlers/session-replay-lab.js +80 -0
- package/dist/server/handlers/session-replay-lab.js.map +1 -0
- package/dist/server/handlers/stats.js +1 -1
- package/dist/server/handlers/stats.js.map +1 -1
- package/dist/server/handlers/status.d.ts +44 -3
- package/dist/server/handlers/status.d.ts.map +1 -1
- package/dist/server/handlers/status.js +227 -17
- package/dist/server/handlers/status.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +17 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +143 -3
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts +17 -0
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +352 -15
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +14 -0
- package/dist/server/routes.js.map +1 -1
- package/dist/services/intelligent-router/index.d.ts +1 -1
- package/dist/services/intelligent-router/index.d.ts.map +1 -1
- package/dist/services/intelligent-router/index.js +1 -1
- package/dist/services/intelligent-router/index.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts +10 -2
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +20 -1
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/intelligent-router/service.d.ts.map +1 -1
- package/dist/services/intelligent-router/service.js +35 -0
- package/dist/services/intelligent-router/service.js.map +1 -1
- package/dist/services/intelligent-router/types.d.ts +13 -0
- package/dist/services/intelligent-router/types.d.ts.map +1 -1
- package/dist/services/intelligent-router/types.js +1 -0
- package/dist/services/intelligent-router/types.js.map +1 -1
- package/dist/telemetry/cli-command-aggregator.d.ts +1 -0
- package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -1
- package/dist/telemetry/cli-command-aggregator.js +23 -0
- package/dist/telemetry/cli-command-aggregator.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +11 -5
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-event-catalog.d.ts +15 -1
- package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-catalog.js +30 -0
- package/dist/telemetry/maestro-event-catalog.js.map +1 -1
- package/dist/version.json +2 -2
- package/package.json +289 -283
|
@@ -1 +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"]}
|
|
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 compactStringArray(\n\tvalue: string[],\n\tmaxItems = 32,\n): string[] | undefined {\n\tconst compacted = value\n\t\t.map((item) => compactString(item, 160))\n\t\t.filter((item): item is string => Boolean(item))\n\t\t.slice(0, maxItems);\n\treturn compacted.length > 0 ? compacted : undefined;\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 toolResultMetrics(result: {\n\tcontent?: unknown;\n\tdetails?: unknown;\n\tisError?: unknown;\n\ttoolExecutionId?: unknown;\n\tapprovalRequestId?: unknown;\n}): Record<string, unknown> {\n\tconst content = Array.isArray(result.content) ? result.content : [];\n\tconst textBlocks = content.filter(\n\t\t(block): block is { type: \"text\"; text: string } =>\n\t\t\tisRecord(block) &&\n\t\t\tblock.type === \"text\" &&\n\t\t\ttypeof block.text === \"string\",\n\t);\n\tconst imageMimeTypes = content\n\t\t.map((block) =>\n\t\t\tisRecord(block) && block.type === \"image\"\n\t\t\t\t? compactString(block.mimeType, 128)\n\t\t\t\t: undefined,\n\t\t)\n\t\t.filter((mimeType): mimeType is string => Boolean(mimeType));\n\treturn {\n\t\tcontent_block_count: content.length,\n\t\ttext_block_count: textBlocks.length,\n\t\ttext_total_chars: textBlocks.reduce(\n\t\t\t(total, block) => total + block.text.length,\n\t\t\t0,\n\t\t),\n\t\timage_block_count: imageMimeTypes.length,\n\t\timage_mime_types: imageMimeTypes.length > 0 ? imageMimeTypes : undefined,\n\t\tdetails_keys: objectKeys(result.details),\n\t\tresult_error:\n\t\t\ttypeof result.isError === \"boolean\" ? result.isError : undefined,\n\t\tresult_tool_execution_id:\n\t\t\ttypeof result.toolExecutionId === \"string\"\n\t\t\t\t? result.toolExecutionId\n\t\t\t\t: undefined,\n\t\tresult_approval_request_id:\n\t\t\ttypeof result.approvalRequestId === \"string\"\n\t\t\t\t? result.approvalRequestId\n\t\t\t\t: undefined,\n\t};\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 autoRetrySequence = 0;\n\tprivate activeAutoRetrySequence: number | null = null;\n\tprivate lastAutoRetryAttempt = 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\t{\n\t\t\t\t\tconst stepId = this.stepId(\"agent\", `end-${this.turnIndex}`);\n\t\t\t\t\tthis.recordStep({\n\t\t\t\t\t\tid: stepId,\n\t\t\t\t\t\tname: \"Agent run completed\",\n\t\t\t\t\t\tstepKind:\n\t\t\t\t\t\t\tevent.aborted || event.stopReason === \"error\"\n\t\t\t\t\t\t\t\t? PlatformAgentRunStepKindValue.Error\n\t\t\t\t\t\t\t\t: PlatformAgentRunStepKindValue.System,\n\t\t\t\t\t\tstate:\n\t\t\t\t\t\t\tevent.aborted || event.stopReason === \"error\"\n\t\t\t\t\t\t\t\t? PlatformAgentRunStepStateValue.Failed\n\t\t\t\t\t\t\t\t: PlatformAgentRunStepStateValue.Succeeded,\n\t\t\t\t\t\toutput: this.basePayload({\n\t\t\t\t\t\t\tevent_type: event.type,\n\t\t\t\t\t\t\taborted: event.aborted ?? false,\n\t\t\t\t\t\t\tstop_reason: event.stopReason,\n\t\t\t\t\t\t}),\n\t\t\t\t\t});\n\t\t\t\t\tthis.recordFinalStatusEvent(event, stepId);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase \"status\":\n\t\t\t\tthis.recordStatusEvent(event);\n\t\t\t\treturn;\n\t\t\tcase \"compaction\":\n\t\t\t\tthis.recordCompactionEvent(event);\n\t\t\t\treturn;\n\t\t\tcase \"auto_retry_start\":\n\t\t\t\tthis.recordAutoRetryStart(event);\n\t\t\t\treturn;\n\t\t\tcase \"auto_retry_end\":\n\t\t\t\tthis.recordAutoRetryEnd(event);\n\t\t\t\treturn;\n\t\t\tcase \"diagnostic_delta\":\n\t\t\t\tthis.recordDiagnosticDelta(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_batch_summary\":\n\t\t\t\tthis.recordToolBatchSummary(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_phase_summary\":\n\t\t\t\tthis.recordToolPhaseSummary(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_execution_update\":\n\t\t\t\tthis.recordToolExecutionUpdate(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_retry_required\":\n\t\t\t\tthis.recordApprovalWait({\n\t\t\t\t\tid: event.request.id,\n\t\t\t\t\tcallId: event.request.toolCallId,\n\t\t\t\t\ttoolName: event.request.toolName,\n\t\t\t\t\treason: event.request.summary ?? event.request.errorMessage,\n\t\t\t\t\tkind: \"tool_retry\",\n\t\t\t\t});\n\t\t\t\tthis.recordToolRetryEvent(event);\n\t\t\t\treturn;\n\t\t\tcase \"tool_retry_resolved\":\n\t\t\t\tthis.resumeWait({\n\t\t\t\t\tid: event.request.id,\n\t\t\t\t\tkind: \"tool_retry\",\n\t\t\t\t\tresolution: event.decision.action,\n\t\t\t\t\tresolvedBy: event.decision.resolvedBy,\n\t\t\t\t\treason: event.decision.reason,\n\t\t\t\t});\n\t\t\t\tthis.recordToolRetryEvent(event);\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\tthis.recordToolArtifactEvent(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\tprivate recordFinalStatusEvent(\n\t\tevent: Extract<AgentEvent, { type: \"agent_end\" }>,\n\t\tstepId: string,\n\t): void {\n\t\tconst finalStatus =\n\t\t\tevent.aborted || event.stopReason === \"error\" ? \"failed\" : \"succeeded\";\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro agent final status recorded\",\n\t\t\tstepId,\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: \"agent_final_status\",\n\t\t\t\tfinal_status: finalStatus,\n\t\t\t\taborted: event.aborted ?? false,\n\t\t\t\tstop_reason: event.stopReason,\n\t\t\t\tmessage_count: event.messages.length,\n\t\t\t\tpartial_accepted: Boolean(event.partialAccepted),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordStatusEvent(\n\t\tevent: Extract<AgentEvent, { type: \"status\" }>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro status recorded\",\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tstatus: compactString(event.status),\n\t\t\t\tdetail_keys: objectKeys(event.details),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordCompactionEvent(\n\t\tevent: Extract<AgentEvent, { type: \"compaction\" }>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro context compaction recorded\",\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tfirst_kept_entry_index: event.firstKeptEntryIndex,\n\t\t\t\ttokens_before: event.tokensBefore,\n\t\t\t\tauto: event.auto ?? false,\n\t\t\t\tcustom_instructions_present: Boolean(event.customInstructions),\n\t\t\t\tsummary_chars: event.summary.length,\n\t\t\t\ttimestamp: event.timestamp,\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordAutoRetryStart(\n\t\tevent: Extract<AgentEvent, { type: \"auto_retry_start\" }>,\n\t): void {\n\t\tconst sequence = this.resolveAutoRetryStartSequence(event.attempt);\n\t\tthis.recordStep({\n\t\t\tid: this.autoRetryStepId(event.attempt, sequence),\n\t\t\tname: `Auto retry ${event.attempt}`,\n\t\t\tstepKind: PlatformAgentRunStepKindValue.System,\n\t\t\tstate: PlatformAgentRunStepStateValue.Waiting,\n\t\t\tinput: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tattempt: event.attempt,\n\t\t\t\tmax_attempts: event.maxAttempts,\n\t\t\t\tdelay_ms: event.delayMs,\n\t\t\t\terror_message: compactString(event.errorMessage, 512),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordAutoRetryEnd(\n\t\tevent: Extract<AgentEvent, { type: \"auto_retry_end\" }>,\n\t): void {\n\t\tconst sequence = this.resolveAutoRetryEndSequence();\n\t\tthis.recordStep({\n\t\t\tid: this.autoRetryStepId(event.attempt, sequence),\n\t\t\tname: `Auto retry ${event.attempt}`,\n\t\t\tstepKind: event.success\n\t\t\t\t? PlatformAgentRunStepKindValue.System\n\t\t\t\t: PlatformAgentRunStepKindValue.Error,\n\t\t\tstate: event.success\n\t\t\t\t? PlatformAgentRunStepStateValue.Succeeded\n\t\t\t\t: PlatformAgentRunStepStateValue.Failed,\n\t\t\terrorMessage: event.success\n\t\t\t\t? undefined\n\t\t\t\t: compactString(event.finalError, 512),\n\t\t\toutput: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tsuccess: event.success,\n\t\t\t\tattempt: event.attempt,\n\t\t\t\tfinal_error: compactString(event.finalError, 512),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordDiagnosticDelta(\n\t\tevent: Extract<AgentEvent, { type: \"diagnostic_delta\" }>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro diagnostic delta recorded\",\n\t\t\tstepId: this.toolStepId(event.toolCallId),\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_name: event.toolName,\n\t\t\t\tdisplay_path: compactString(event.displayPath, 512),\n\t\t\t\tused_delta: event.usedDelta,\n\t\t\t\tintroduced_count: event.introducedCount,\n\t\t\t\trepaired_count: event.repairedCount,\n\t\t\t\tremaining_count: event.remainingCount,\n\t\t\t\tfingerprint: event.fingerprint,\n\t\t\t\trepair_attempt: event.repairAttempt,\n\t\t\t\tmax_repair_attempts: event.maxRepairAttempts,\n\t\t\t\twill_auto_follow_up: event.willAutoFollowUp,\n\t\t\t\treason: compactString(event.reason),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordToolBatchSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_batch_summary\" }>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro tool batch summary recorded\",\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tsummary: compactString(event.summary, 512),\n\t\t\t\tsummary_labels: compactStringArray(event.summaryLabels),\n\t\t\t\ttool_call_ids: compactStringArray(event.toolCallIds),\n\t\t\t\ttool_names: compactStringArray(event.toolNames),\n\t\t\t\tcalls_succeeded: event.callsSucceeded,\n\t\t\t\tcalls_failed: event.callsFailed,\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordToolPhaseSummary(\n\t\tevent: Extract<AgentEvent, { type: \"tool_phase_summary\" }>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro tool phase summary recorded\",\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\tmodel_tool_call_count: event.modelToolCallCount,\n\t\t\t\tmodel_emitted_tool_call_count: event.modelEmittedToolCallCount,\n\t\t\t\tschedulable_wave_count: event.schedulableWaveCount,\n\t\t\t\tparallelized_call_count: event.parallelizedCallCount,\n\t\t\t\tactually_parallelized_call_count: event.actuallyParallelizedCallCount,\n\t\t\t\tserialized_call_count: event.serializedCallCount,\n\t\t\t\tdelayed_call_count: event.delayedCallCount,\n\t\t\t\tblocked_by_mutation_count: event.blockedByMutationCount,\n\t\t\t\tmcp_opt_in_call_count: event.mcpOptInCallCount,\n\t\t\t\tmcp_opt_in_use_count: event.mcpOptInUseCount,\n\t\t\t\tcache_hit_count: event.cacheHitCount,\n\t\t\t\ttotal_tool_wait_ms: event.totalToolWaitMs,\n\t\t\t\ttool_wait_time_ms: event.toolWaitTimeMs,\n\t\t\t\tserialization_reasons: event.serializationReasons,\n\t\t\t\tbatch_shaping_feedback: event.batchShapingFeedback,\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordToolExecutionUpdate(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_update\" }>,\n\t): void {\n\t\tconst partialToolExecutionId =\n\t\t\tmaterializedToolExecutionId(event) ??\n\t\t\tmaterializedToolExecutionId({\n\t\t\t\ttoolCallId: event.toolCallId,\n\t\t\t\ttoolExecutionId: event.partialResult.toolExecutionId,\n\t\t\t});\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro tool execution update recorded\",\n\t\t\tstepId: this.toolStepId(event.toolCallId),\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: partialToolExecutionId,\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\targ_keys: objectKeys(event.args),\n\t\t\t\t...toolResultMetrics(event.partialResult),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordToolArtifactEvent(\n\t\tevent: Extract<AgentEvent, { type: \"tool_execution_end\" }>,\n\t): void {\n\t\tconst metadata = event.skillMetadata;\n\t\tif (!metadata) {\n\t\t\treturn;\n\t\t}\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro tool artifact evidence recorded\",\n\t\t\tstepId: this.toolStepId(event.toolCallId),\n\t\t\tartifactId: metadata.artifactId,\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: \"tool_artifact_recorded\",\n\t\t\t\ttool_call_id: event.toolCallId,\n\t\t\t\ttool_execution_id: materializedToolExecutionId(event),\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\tskill_name: metadata.name,\n\t\t\t\tskill_hash: metadata.hash,\n\t\t\t\tskill_source: metadata.source,\n\t\t\t\tskill_artifact_id: metadata.artifactId,\n\t\t\t\tskill_version: metadata.version,\n\t\t\t\tskill_scope: metadata.scope,\n\t\t\t\tskill_workspace_id: metadata.workspaceId,\n\t\t\t\tskill_owner_id: metadata.ownerId,\n\t\t\t\tsource_path: compactString(metadata.sourcePath, 512),\n\t\t\t}),\n\t\t});\n\t}\n\n\tprivate recordToolRetryEvent(\n\t\tevent: Extract<\n\t\t\tAgentEvent,\n\t\t\t{ type: \"tool_retry_required\" | \"tool_retry_resolved\" }\n\t\t>,\n\t): void {\n\t\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage:\n\t\t\t\tevent.type === \"tool_retry_required\"\n\t\t\t\t\t? \"Maestro tool retry required\"\n\t\t\t\t\t: \"Maestro tool retry resolved\",\n\t\t\tstepId: this.toolStepId(event.request.toolCallId),\n\t\t\twaitId: this.waitId(event.request.id),\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: event.type,\n\t\t\t\trequest_id: event.request.id,\n\t\t\t\ttool_call_id: event.request.toolCallId,\n\t\t\t\ttool_name: event.request.toolName,\n\t\t\t\terror_message: compactString(event.request.errorMessage, 512),\n\t\t\t\tsummary: compactString(event.request.summary, 512),\n\t\t\t\tattempt: event.request.attempt,\n\t\t\t\tmax_attempts: event.request.maxAttempts,\n\t\t\t\targ_keys: objectKeys(event.request.args),\n\t\t\t\t...(event.type === \"tool_retry_resolved\"\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tresolution: event.decision.action,\n\t\t\t\t\t\t\tresolved_by: event.decision.resolvedBy,\n\t\t\t\t\t\t\treason: compactString(event.decision.reason, 512),\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t}),\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\tconst stepId = this.stepId(\"error\", `${Date.now()}`);\n\t\tthis.recordStep({\n\t\t\tid: stepId,\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\tthis.recordEvent({\n\t\t\ttype: PlatformRuntimeEventTypeValue.AgentProgressRecorded,\n\t\t\tmessage: \"Maestro prompt failure recorded\",\n\t\t\tstepId,\n\t\t\tattributes: this.basePayload({\n\t\t\t\tevent_type: \"prompt_failure\",\n\t\t\t\terror_message: compactString(message, 512),\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 resolveAutoRetryStartSequence(attempt: number): number {\n\t\tif (\n\t\t\tthis.activeAutoRetrySequence === null ||\n\t\t\tattempt <= this.lastAutoRetryAttempt\n\t\t) {\n\t\t\tthis.autoRetrySequence += 1;\n\t\t\tthis.activeAutoRetrySequence = this.autoRetrySequence;\n\t\t}\n\t\tthis.lastAutoRetryAttempt = attempt;\n\t\treturn this.activeAutoRetrySequence;\n\t}\n\n\tprivate resolveAutoRetryEndSequence(): number {\n\t\tif (this.activeAutoRetrySequence === null) {\n\t\t\tthis.autoRetrySequence += 1;\n\t\t\tthis.activeAutoRetrySequence = this.autoRetrySequence;\n\t\t}\n\t\tconst sequence = this.activeAutoRetrySequence;\n\t\tthis.activeAutoRetrySequence = null;\n\t\tthis.lastAutoRetryAttempt = 0;\n\t\treturn sequence;\n\t}\n\n\tprivate autoRetryStepId(attempt: number, sequence: number): string {\n\t\treturn this.stepId(\"retry\", `auto-${sequence}-attempt-${attempt}`);\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"]}
|