@caupulican/pi-adaptative 0.90.2 → 0.90.4

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.
Files changed (162) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/core/agent-session-contracts.d.ts +2 -0
  3. package/dist/core/agent-session-contracts.d.ts.map +1 -1
  4. package/dist/core/agent-session-contracts.js.map +1 -1
  5. package/dist/core/autonomy/bounded-completion.d.ts +10 -1
  6. package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
  7. package/dist/core/autonomy/bounded-completion.js +24 -2
  8. package/dist/core/autonomy/bounded-completion.js.map +1 -1
  9. package/dist/core/autonomy/lane-tracker.d.ts +1 -1
  10. package/dist/core/autonomy/lane-tracker.d.ts.map +1 -1
  11. package/dist/core/autonomy/lane-tracker.js +9 -1
  12. package/dist/core/autonomy/lane-tracker.js.map +1 -1
  13. package/dist/core/background-lane-controller.d.ts +1 -3
  14. package/dist/core/background-lane-controller.d.ts.map +1 -1
  15. package/dist/core/background-lane-controller.js.map +1 -1
  16. package/dist/core/compaction-controller.d.ts.map +1 -1
  17. package/dist/core/compaction-controller.js +0 -1
  18. package/dist/core/compaction-controller.js.map +1 -1
  19. package/dist/core/delegation/managed-lane-controller.d.ts.map +1 -1
  20. package/dist/core/delegation/managed-lane-controller.js +5 -1
  21. package/dist/core/delegation/managed-lane-controller.js.map +1 -1
  22. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +8 -1
  23. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  24. package/dist/core/delegation/worker-agent-control-coordinator.js +94 -36
  25. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  26. package/dist/core/delegation/worker-agent-control.d.ts +1 -0
  27. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
  28. package/dist/core/delegation/worker-agent-control.js.map +1 -1
  29. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  30. package/dist/core/delegation/worker-attempt-executor.js +7 -2
  31. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  32. package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
  33. package/dist/core/delegation/worker-authority-resolver.js +26 -3
  34. package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
  35. package/dist/core/delegation/worker-delegation-controller.d.ts +7 -4
  36. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  37. package/dist/core/delegation/worker-delegation-controller.js +110 -27
  38. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  39. package/dist/core/delegation/worker-fleet-limits.d.ts +9 -2
  40. package/dist/core/delegation/worker-fleet-limits.d.ts.map +1 -1
  41. package/dist/core/delegation/worker-fleet-limits.js +39 -3
  42. package/dist/core/delegation/worker-fleet-limits.js.map +1 -1
  43. package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -1
  44. package/dist/core/delegation/worker-lane-projection.js +4 -0
  45. package/dist/core/delegation/worker-lane-projection.js.map +1 -1
  46. package/dist/core/delegation/worker-lease-heartbeat.d.ts +16 -0
  47. package/dist/core/delegation/worker-lease-heartbeat.d.ts.map +1 -0
  48. package/dist/core/delegation/worker-lease-heartbeat.js +37 -0
  49. package/dist/core/delegation/worker-lease-heartbeat.js.map +1 -0
  50. package/dist/core/delegation/worker-lifecycle.d.ts +1 -0
  51. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  52. package/dist/core/delegation/worker-lifecycle.js +6 -0
  53. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  54. package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
  55. package/dist/core/delegation/worker-notification-coordinator.js +2 -1
  56. package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
  57. package/dist/core/delegation/worker-runner.js +2 -2
  58. package/dist/core/delegation/worker-runner.js.map +1 -1
  59. package/dist/core/delegation/worker-terminal-handoff-coordinator.d.ts +1 -0
  60. package/dist/core/delegation/worker-terminal-handoff-coordinator.d.ts.map +1 -1
  61. package/dist/core/delegation/worker-terminal-handoff-coordinator.js +1 -0
  62. package/dist/core/delegation/worker-terminal-handoff-coordinator.js.map +1 -1
  63. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts +4 -2
  64. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
  65. package/dist/core/delegation/worker-tree-budget-coordinator.js +10 -2
  66. package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
  67. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +14 -0
  68. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -1
  69. package/dist/core/delegation/worker-write-reservation-coordinator.js +121 -33
  70. package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -1
  71. package/dist/core/foreground-terminal-handoff-controller.d.ts +5 -0
  72. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  73. package/dist/core/foreground-terminal-handoff-controller.js +28 -12
  74. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  75. package/dist/core/orchestration/capability-gateway.d.ts +2 -1
  76. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
  77. package/dist/core/orchestration/capability-gateway.js +9 -2
  78. package/dist/core/orchestration/capability-gateway.js.map +1 -1
  79. package/dist/core/orchestration/contracts.d.ts +16 -1
  80. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  81. package/dist/core/orchestration/contracts.js +5 -0
  82. package/dist/core/orchestration/contracts.js.map +1 -1
  83. package/dist/core/orchestration/profile-registry.d.ts.map +1 -1
  84. package/dist/core/orchestration/profile-registry.js +38 -1
  85. package/dist/core/orchestration/profile-registry.js.map +1 -1
  86. package/dist/core/orchestration/risk-budget.d.ts +10 -0
  87. package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
  88. package/dist/core/orchestration/risk-budget.js +14 -0
  89. package/dist/core/orchestration/risk-budget.js.map +1 -1
  90. package/dist/core/orchestration/task-runtime-reducer.d.ts +1 -0
  91. package/dist/core/orchestration/task-runtime-reducer.d.ts.map +1 -1
  92. package/dist/core/orchestration/task-runtime-reducer.js +34 -0
  93. package/dist/core/orchestration/task-runtime-reducer.js.map +1 -1
  94. package/dist/core/orchestration/task-runtime.d.ts +1 -0
  95. package/dist/core/orchestration/task-runtime.d.ts.map +1 -1
  96. package/dist/core/orchestration/task-runtime.js +24 -1
  97. package/dist/core/orchestration/task-runtime.js.map +1 -1
  98. package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
  99. package/dist/core/provider-prompt-contracts.js +2 -1
  100. package/dist/core/provider-prompt-contracts.js.map +1 -1
  101. package/dist/core/reflection-controller.d.ts.map +1 -1
  102. package/dist/core/reflection-controller.js +8 -1
  103. package/dist/core/reflection-controller.js.map +1 -1
  104. package/dist/core/settings-manager.d.ts +2 -2
  105. package/dist/core/settings-manager.d.ts.map +1 -1
  106. package/dist/core/settings-manager.js +2 -2
  107. package/dist/core/settings-manager.js.map +1 -1
  108. package/dist/core/tools/bash.d.ts +3 -0
  109. package/dist/core/tools/bash.d.ts.map +1 -1
  110. package/dist/core/tools/bash.js +13 -2
  111. package/dist/core/tools/bash.js.map +1 -1
  112. package/dist/core/tools/delegate-status.d.ts +1 -0
  113. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  114. package/dist/core/tools/delegate-status.js +19 -1
  115. package/dist/core/tools/delegate-status.js.map +1 -1
  116. package/dist/core/tools/delegate.d.ts +9 -1
  117. package/dist/core/tools/delegate.d.ts.map +1 -1
  118. package/dist/core/tools/delegate.js +198 -64
  119. package/dist/core/tools/delegate.js.map +1 -1
  120. package/dist/core/tools/edit.d.ts.map +1 -1
  121. package/dist/core/tools/edit.js +14 -1
  122. package/dist/core/tools/edit.js.map +1 -1
  123. package/dist/core/tools/file-failure-recovery.d.ts +3 -0
  124. package/dist/core/tools/file-failure-recovery.d.ts.map +1 -1
  125. package/dist/core/tools/file-failure-recovery.js +11 -0
  126. package/dist/core/tools/file-failure-recovery.js.map +1 -1
  127. package/dist/core/tools/orchestration-panel.d.ts +1 -1
  128. package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
  129. package/dist/core/tools/orchestration-panel.js +1 -0
  130. package/dist/core/tools/orchestration-panel.js.map +1 -1
  131. package/dist/core/tools/profile-writer.d.ts.map +1 -1
  132. package/dist/core/tools/profile-writer.js +2 -8
  133. package/dist/core/tools/profile-writer.js.map +1 -1
  134. package/dist/core/tools/search-command-guard.d.ts.map +1 -1
  135. package/dist/core/tools/search-command-guard.js +10 -3
  136. package/dist/core/tools/search-command-guard.js.map +1 -1
  137. package/dist/core/tools/write.d.ts.map +1 -1
  138. package/dist/core/tools/write.js +10 -1
  139. package/dist/core/tools/write.js.map +1 -1
  140. package/dist/modes/interactive/components/activity-lane.d.ts +1 -1
  141. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
  142. package/dist/modes/interactive/components/activity-lane.js +11 -2
  143. package/dist/modes/interactive/components/activity-lane.js.map +1 -1
  144. package/dist/modes/interactive/components/settings-selector.js +1 -1
  145. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  146. package/dist/utils/shell.d.ts +2 -0
  147. package/dist/utils/shell.d.ts.map +1 -1
  148. package/dist/utils/shell.js +3 -1
  149. package/dist/utils/shell.js.map +1 -1
  150. package/docs/harness-architecture.md +6 -3
  151. package/docs/settings.md +8 -6
  152. package/docs/tool-repair.md +1 -1
  153. package/docs/worker-profiles.md +2 -2
  154. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  155. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  156. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  157. package/examples/extensions/sandbox/package-lock.json +2 -2
  158. package/examples/extensions/sandbox/package.json +1 -1
  159. package/examples/extensions/with-deps/package-lock.json +2 -2
  160. package/examples/extensions/with-deps/package.json +1 -1
  161. package/npm-shrinkwrap.json +12 -12
  162. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"managed-lane-controller.js","sourceRoot":"","sources":["../../../src/core/delegation/managed-lane-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SessionManager } from \"@caupulican/pi-agent-core/node\";\nimport type { Usage } from \"@caupulican/pi-ai\";\nimport type { CapabilityEnvelope, WorkerClaim, WorkerClaimStatus, WorkerRequest } from \"../autonomy/contracts.ts\";\nimport { getPrivateLaneDeniedPaths } from \"../autonomy/lane-private-paths.ts\";\nimport { isLaneTerminalStatus, type LaneRecord, type LaneTerminalStatus } from \"../autonomy/lane-tracker.ts\";\nimport { appendLaneRecordSnapshot, getLatestLaneRecordSnapshots } from \"../autonomy/session-lane-record.ts\";\nimport type { ManagedLaneDispatch, ManagedLaneEvent } from \"../extensions/types.ts\";\nimport type { GoalState } from \"../goals/goal-state.ts\";\nimport { validateProviderUsage } from \"../orchestration/attempt-usage.ts\";\nimport type { ExecutionGrant } from \"../orchestration/contracts.ts\";\nimport { registerInFlightWork } from \"../reload-blockers.ts\";\nimport { getActiveSessionBranchEntries } from \"../session-snapshot.ts\";\nimport { getLatestWorkerClaimSnapshot } from \"./session-worker-claim.ts\";\nimport {\n\tnormalizeWorkerClaimForHost,\n\tnormalizeWorkerClaimReasonCode,\n\treviewManagedLaneChangedFiles,\n} from \"./worker-claim.ts\";\nimport { compileManagedProcessExecutionGrant } from \"./worker-execution-policy.ts\";\nimport type { WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport { finalizeWorkerClaim } from \"./worker-terminal-finalizer.ts\";\n\nconst LEGACY_MANAGED_LEASE_TTL_MS = 24 * 60 * 60 * 1_000;\nconst LEGACY_MANAGED_READ_TOOLS = [\"read\", \"grep\", \"find\", \"ls\"] as const;\n\nexport function resolveManagedLaneTerminalStatus(status: string | undefined): LaneTerminalStatus {\n\tif (isLaneTerminalStatus(status)) return status;\n\tswitch (status) {\n\t\tcase \"done\":\n\t\tcase \"completed\":\n\t\t\treturn \"succeeded\";\n\t\tcase \"blocked\":\n\t\t\treturn \"failed\";\n\t\tcase \"dismissed\":\n\t\tcase \"cancelled\":\n\t\t\treturn \"canceled\";\n\t\tdefault:\n\t\t\treturn \"failed\";\n\t}\n}\n\nexport function mapManagedLaneTerminalStatus(status: LaneTerminalStatus): WorkerClaimStatus {\n\tswitch (status) {\n\t\tcase \"succeeded\":\n\t\t\treturn \"completed\";\n\t\tcase \"canceled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"failed\":\n\t\tcase \"timeout\":\n\t\tcase \"budget_exhausted\":\n\t\t\treturn \"failed\";\n\t}\n}\n\nexport interface ManagedLaneControllerDeps {\n\tisDisposed(): boolean;\n\tgetAgentDir(): string;\n\tgetCwd(): string;\n\tgetSessionManager(): SessionManager;\n\tgetGoalStateSnapshot(): GoalState | undefined;\n\tgetCapabilityEnvelope(): CapabilityEnvelope | undefined;\n\tsaveWorkerClaimSnapshot(claim: WorkerClaim, request?: WorkerRequest): string;\n\t/** Optional only for minimal host embeddings; normal AgentSession integration always supplies this. */\n\taddSpawnedUsage?(\n\t\tusage: Usage,\n\t\topts: { label?: string; sourceSessionId?: string; reportId: string },\n\t): string | undefined;\n}\n\n/** Out-of-process adapter over the same durable worker lifecycle used by in-process delegation. */\nexport class ManagedLaneController {\n\tprivate readonly deps: ManagedLaneControllerDeps;\n\tprivate readonly lifecycle: WorkerLifecycle;\n\tprivate readonly recordTerminal: (record: LaneRecord, durableNotificationId: string) => void;\n\tprivate readonly warn: (message: string) => void;\n\tprivate readonly deregisterByLane = new Map<string, () => void>();\n\tprivate hydrated = false;\n\n\tconstructor(\n\t\tdeps: ManagedLaneControllerDeps,\n\t\tlifecycle: WorkerLifecycle,\n\t\trecordTerminal: (record: LaneRecord, durableNotificationId: string) => void,\n\t\twarn: (message: string) => void = () => {},\n\t) {\n\t\tthis.deps = deps;\n\t\tthis.lifecycle = lifecycle;\n\t\tthis.recordTerminal = recordTerminal;\n\t\tthis.warn = warn;\n\t}\n\n\tensureHydrated(): void {\n\t\tif (this.hydrated) return;\n\t\tthis.hydrated = true;\n\t\tconst durableIds = new Set(this.lifecycle.getManagedRecords().map((record) => record.laneId));\n\t\tfor (const legacy of getLatestLaneRecordSnapshots(getActiveSessionBranchEntries(this.deps.getSessionManager()))) {\n\t\t\tif (\n\t\t\t\tlegacy.type !== \"tmux-worker\" ||\n\t\t\t\t(legacy.status !== \"queued\" && legacy.status !== \"running\") ||\n\t\t\t\tdurableIds.has(legacy.laneId)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.lifecycle.prepareManaged({\n\t\t\t\tlaneId: legacy.laneId,\n\t\t\t\tdispatchSequence: 1,\n\t\t\t\tinstructions: legacy.label ?? `Resume externally managed lane ${legacy.laneId}`,\n\t\t\t\tprofileId: legacy.profileId ?? \"legacy-managed-process\",\n\t\t\t\tprovider: \"legacy\",\n\t\t\t\tauthorizationId: `legacy-session-lane:${legacy.laneId}`,\n\t\t\t\trole: \"implementer\",\n\t\t\t\triskBudget: { maxAttempts: 1, maxWallClockMs: LEGACY_MANAGED_LEASE_TTL_MS },\n\t\t\t\tleaseTtlMs: LEGACY_MANAGED_LEASE_TTL_MS,\n\t\t\t\tcompileGrant: (target) =>\n\t\t\t\t\tthis.compileGrant(target, legacy.laneId, {\n\t\t\t\t\t\tsequence: 1,\n\t\t\t\t\t\tinstructions: legacy.label ?? `Resume externally managed lane ${legacy.laneId}`,\n\t\t\t\t\t\tprofileId: legacy.profileId ?? \"legacy-managed-process\",\n\t\t\t\t\t\tprovider: \"legacy\",\n\t\t\t\t\t\tauthorizationId: `legacy-session-lane:${legacy.laneId}`,\n\t\t\t\t\t\tauthorizationKind: \"legacy-recovery\",\n\t\t\t\t\t\tallowedTools: LEGACY_MANAGED_READ_TOOLS,\n\t\t\t\t\t\twritePaths: [],\n\t\t\t\t\t\tleaseTtlMs: LEGACY_MANAGED_LEASE_TTL_MS,\n\t\t\t\t\t}),\n\t\t\t\t...(legacy.worktreeLaneKey ? { worktreeLaneKey: legacy.worktreeLaneKey } : {}),\n\t\t\t});\n\t\t}\n\t\tfor (const record of this.lifecycle.getManagedRecords()) {\n\t\t\tif (record.status === \"queued\" || record.status === \"running\") this.ensureRegistration(record.laneId);\n\t\t}\n\t}\n\n\tresolve(callerLaneId: string): string | undefined {\n\t\tthis.ensureHydrated();\n\t\tconst record = this.lifecycle.getManagedRecord(callerLaneId);\n\t\treturn record && (record.status === \"queued\" || record.status === \"running\") ? callerLaneId : undefined;\n\t}\n\n\trecord(event: ManagedLaneEvent): LaneRecord | undefined {\n\t\tif (this.deps.isDisposed()) return undefined;\n\t\tthis.ensureHydrated();\n\t\tif (event.phase === \"dispatch\") {\n\t\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\t\tconst prepared = this.lifecycle.prepareManaged({\n\t\t\t\tlaneId: event.laneId,\n\t\t\t\tdispatchSequence: event.dispatch.sequence,\n\t\t\t\tinstructions: event.dispatch.instructions,\n\t\t\t\tprofileId: event.dispatch.profileId,\n\t\t\t\tprovider: event.dispatch.provider,\n\t\t\t\tauthorizationId: event.dispatch.authorizationId,\n\t\t\t\tleaseTtlMs: event.dispatch.leaseTtlMs,\n\t\t\t\tcompileGrant: (target) => this.compileGrant(target, event.laneId, event.dispatch),\n\t\t\t\trole: \"implementer\",\n\t\t\t\triskBudget: { maxAttempts: 1, maxWallClockMs: event.dispatch.leaseTtlMs },\n\t\t\t\t...(goal && Array.isArray(goal.requirements) && (!event.goalId || goal.goalId === event.goalId)\n\t\t\t\t\t? { goal }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.goalId ? { goalId: event.goalId } : {}),\n\t\t\t\t...(event.worktreeLaneKey ? { worktreeLaneKey: event.worktreeLaneKey } : {}),\n\t\t\t});\n\t\t\tif (!prepared.created) return undefined;\n\t\t\tthis.ensureRegistration(event.laneId);\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), prepared.record);\n\t\t\treturn prepared.record;\n\t\t}\n\n\t\tconst attempt = this.lifecycle.getManagedAttempt(event.laneId);\n\t\tconst handle = this.lifecycle.getManagedHandle(event.laneId);\n\t\tif (!attempt || !handle || (attempt.status !== \"leased\" && attempt.status !== \"running\")) return undefined;\n\t\tlet usage: Usage | undefined;\n\t\ttry {\n\t\t\tusage = event.usage ? validateProviderUsage(event.usage, \"managed lane usage\") : undefined;\n\t\t} catch (error) {\n\t\t\tthis.warn(\n\t\t\t\t`Rejected terminal report for managed worker ${event.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst resolvedStatus = resolveManagedLaneTerminalStatus(event.status);\n\t\tconst usageReportId = usage && this.deps.addSpawnedUsage ? `managed-worker:${handle.attemptId}` : undefined;\n\t\tlet claim: WorkerClaim;\n\t\ttry {\n\t\t\tclaim = normalizeWorkerClaimForHost({\n\t\t\t\trequestId: event.laneId,\n\t\t\t\tterminalAttemptId: handle.attemptId,\n\t\t\t\tstatus: mapManagedLaneTerminalStatus(resolvedStatus),\n\t\t\t\tsummary: `Managed worker lane ${event.laneId} reported terminal status \"${resolvedStatus}\".`,\n\t\t\t\tchangedFiles: event.changedFiles ?? [],\n\t\t\t\t...(usageReportId ? { usageReportId } : {}),\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.warn(\n\t\t\t\t`Rejected terminal report for managed worker ${event.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst review = reviewManagedLaneChangedFiles({\n\t\t\tchangedFiles: claim.changedFiles,\n\t\t\tenvelope: this.deps.getCapabilityEnvelope() ?? {},\n\t\t\tcwd: this.deps.getCwd(),\n\t\t});\n\t\tclaim = normalizeWorkerClaimForHost({\n\t\t\t...claim,\n\t\t\tsummary: `${claim.summary}${\n\t\t\t\treview.reviewRequired ? ` Changed files require parent review (${review.reasonCode}).` : \"\"\n\t\t\t}`,\n\t\t\tparentReviewRequired: review.reviewRequired,\n\t\t});\n\t\tlet record: LaneRecord | undefined;\n\t\tlet finalized = false;\n\t\ttry {\n\t\t\t// Accounting must commit before the lifecycle terminal transition. A failed append leaves the\n\t\t\t// fenced attempt active so the same terminal event can retry with this stable report id.\n\t\t\tif (usage && usageReportId) {\n\t\t\t\tthis.deps.addSpawnedUsage?.(usage, { label: \"managed-worker\", reportId: usageReportId });\n\t\t\t}\n\t\t\tif (!this.hasPersistedClaimForAttempt(claim)) this.deps.saveWorkerClaimSnapshot(claim);\n\t\t\tconst terminal = finalizeWorkerClaim(this.lifecycle, {\n\t\t\t\thandle,\n\t\t\t\tclaim,\n\t\t\t\taccepted: resolvedStatus === \"succeeded\" && !review.reviewRequired,\n\t\t\t\tcostUsd: usage?.cost.total,\n\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t...(usage\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tinputTokens: usage.input,\n\t\t\t\t\t\t\toutputTokens: usage.output,\n\t\t\t\t\t\t\ttotalTokens: usage.totalTokens,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\twallClockMs: Math.max(0, Date.now() - Date.parse(attempt.createdAt)),\n\t\t\t\ttoolCalls: 0,\n\t\t\t\treasonCode: normalizeWorkerClaimReasonCode(\n\t\t\t\t\treview.reviewRequired ? `parent_review_required:${review.reasonCode}` : event.reasonCode,\n\t\t\t\t\t`managed_worker_${resolvedStatus}`,\n\t\t\t\t),\n\t\t\t});\n\t\t\trecord = terminal.record;\n\t\t\tfinalized = true;\n\t\t\tif (terminal.notification) this.recordTerminal(record, terminal.notification.notificationId);\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), record);\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tif (finalized) {\n\t\t\t\tthis.warn(\n\t\t\t\t\t`Managed worker ${event.laneId} finalized, but terminal projection or handoff failed: ${message}`,\n\t\t\t\t);\n\t\t\t\treturn record;\n\t\t\t}\n\t\t\tthis.warn(`Managed worker ${event.laneId} terminal processing failed and remains retryable: ${message}`);\n\t\t\treturn undefined;\n\t\t} finally {\n\t\t\tif (finalized) this.releaseRegistration(event.laneId);\n\t\t}\n\t\treturn record;\n\t}\n\n\trelease(): void {\n\t\tfor (const deregister of this.deregisterByLane.values()) deregister();\n\t\tthis.deregisterByLane.clear();\n\t}\n\n\tprivate ensureRegistration(laneId: string): void {\n\t\tif (this.deregisterByLane.has(laneId)) return;\n\t\tthis.deregisterByLane.set(laneId, registerInFlightWork(this.deps.getAgentDir(), \"lane\", `tmux:${laneId}`));\n\t}\n\n\tprivate releaseRegistration(laneId: string): void {\n\t\tthis.deregisterByLane.get(laneId)?.();\n\t\tthis.deregisterByLane.delete(laneId);\n\t}\n\n\t/** A replay after a crash between claim append and lifecycle finalization must not duplicate the claim. */\n\tprivate hasPersistedClaimForAttempt(claim: WorkerClaim): boolean {\n\t\tif (!claim.terminalAttemptId) return false;\n\t\tconst latest = getLatestWorkerClaimSnapshot(\n\t\t\tgetActiveSessionBranchEntries(this.deps.getSessionManager()),\n\t\t\tclaim.requestId,\n\t\t);\n\t\treturn latest?.claim.terminalAttemptId === claim.terminalAttemptId;\n\t}\n\n\tprivate compileGrant(\n\t\ttarget: { objectiveId: string; taskId: string; attemptId: string },\n\t\tlaneId: string,\n\t\tdispatch: ManagedLaneDispatch,\n\t): ExecutionGrant {\n\t\tconst compiled = compileManagedProcessExecutionGrant({\n\t\t\ttarget,\n\t\t\tlaneId,\n\t\t\tauthorizationId: dispatch.authorizationId,\n\t\t\trole: \"implementer\",\n\t\t\tallowedTools: dispatch.allowedTools,\n\t\t\twritePaths: dispatch.writePaths,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tdeniedPaths: getPrivateLaneDeniedPaths(this.deps.getCwd(), this.deps.getAgentDir()),\n\t\t\tbudget: {\n\t\t\t\tmaxAttempts: 1,\n\t\t\t\tmaxWallClockMs: dispatch.leaseTtlMs,\n\t\t\t\t...(dispatch.maxCostUsd !== undefined ? { maxCostUsd: dispatch.maxCostUsd } : {}),\n\t\t\t},\n\t\t});\n\t\tif (!compiled.ok) {\n\t\t\tthrow new Error(`Managed worker '${laneId}' execution grant was denied: ${compiled.reasonCodes.join(\", \")}`);\n\t\t}\n\t\treturn compiled.grant;\n\t}\n}\n"]}
1
+ {"version":3,"file":"managed-lane-controller.js","sourceRoot":"","sources":["../../../src/core/delegation/managed-lane-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SessionManager } from \"@caupulican/pi-agent-core/node\";\nimport type { Usage } from \"@caupulican/pi-ai\";\nimport type { CapabilityEnvelope, WorkerClaim, WorkerClaimStatus, WorkerRequest } from \"../autonomy/contracts.ts\";\nimport { getPrivateLaneDeniedPaths } from \"../autonomy/lane-private-paths.ts\";\nimport { isLaneTerminalStatus, type LaneRecord, type LaneTerminalStatus } from \"../autonomy/lane-tracker.ts\";\nimport { appendLaneRecordSnapshot, getLatestLaneRecordSnapshots } from \"../autonomy/session-lane-record.ts\";\nimport type { ManagedLaneDispatch, ManagedLaneEvent } from \"../extensions/types.ts\";\nimport type { GoalState } from \"../goals/goal-state.ts\";\nimport { validateProviderUsage } from \"../orchestration/attempt-usage.ts\";\nimport type { ExecutionGrant } from \"../orchestration/contracts.ts\";\nimport { registerInFlightWork } from \"../reload-blockers.ts\";\nimport { getActiveSessionBranchEntries } from \"../session-snapshot.ts\";\nimport { getLatestWorkerClaimSnapshot } from \"./session-worker-claim.ts\";\nimport {\n\tnormalizeWorkerClaimForHost,\n\tnormalizeWorkerClaimReasonCode,\n\treviewManagedLaneChangedFiles,\n} from \"./worker-claim.ts\";\nimport { compileManagedProcessExecutionGrant } from \"./worker-execution-policy.ts\";\nimport type { WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport { finalizeWorkerClaim } from \"./worker-terminal-finalizer.ts\";\n\nconst LEGACY_MANAGED_LEASE_TTL_MS = 24 * 60 * 60 * 1_000;\nconst LEGACY_MANAGED_READ_TOOLS = [\"read\", \"grep\", \"find\", \"ls\"] as const;\n\nexport function resolveManagedLaneTerminalStatus(status: string | undefined): LaneTerminalStatus {\n\tif (isLaneTerminalStatus(status)) return status;\n\tswitch (status) {\n\t\tcase \"done\":\n\t\tcase \"completed\":\n\t\t\treturn \"succeeded\";\n\t\tcase \"blocked\":\n\t\t\treturn \"blocked\";\n\t\tcase \"dismissed\":\n\t\tcase \"cancelled\":\n\t\t\treturn \"canceled\";\n\t\tdefault:\n\t\t\treturn \"failed\";\n\t}\n}\n\nexport function mapManagedLaneTerminalStatus(status: LaneTerminalStatus): WorkerClaimStatus {\n\tswitch (status) {\n\t\tcase \"succeeded\":\n\t\t\treturn \"completed\";\n\t\tcase \"partial\":\n\t\t\treturn \"completed\";\n\t\tcase \"blocked\":\n\t\t\treturn \"blocked\";\n\t\tcase \"canceled\":\n\t\t\treturn \"cancelled\";\n\t\tcase \"failed\":\n\t\tcase \"timeout\":\n\t\tcase \"budget_exhausted\":\n\t\t\treturn \"failed\";\n\t}\n}\n\nexport interface ManagedLaneControllerDeps {\n\tisDisposed(): boolean;\n\tgetAgentDir(): string;\n\tgetCwd(): string;\n\tgetSessionManager(): SessionManager;\n\tgetGoalStateSnapshot(): GoalState | undefined;\n\tgetCapabilityEnvelope(): CapabilityEnvelope | undefined;\n\tsaveWorkerClaimSnapshot(claim: WorkerClaim, request?: WorkerRequest): string;\n\t/** Optional only for minimal host embeddings; normal AgentSession integration always supplies this. */\n\taddSpawnedUsage?(\n\t\tusage: Usage,\n\t\topts: { label?: string; sourceSessionId?: string; reportId: string },\n\t): string | undefined;\n}\n\n/** Out-of-process adapter over the same durable worker lifecycle used by in-process delegation. */\nexport class ManagedLaneController {\n\tprivate readonly deps: ManagedLaneControllerDeps;\n\tprivate readonly lifecycle: WorkerLifecycle;\n\tprivate readonly recordTerminal: (record: LaneRecord, durableNotificationId: string) => void;\n\tprivate readonly warn: (message: string) => void;\n\tprivate readonly deregisterByLane = new Map<string, () => void>();\n\tprivate hydrated = false;\n\n\tconstructor(\n\t\tdeps: ManagedLaneControllerDeps,\n\t\tlifecycle: WorkerLifecycle,\n\t\trecordTerminal: (record: LaneRecord, durableNotificationId: string) => void,\n\t\twarn: (message: string) => void = () => {},\n\t) {\n\t\tthis.deps = deps;\n\t\tthis.lifecycle = lifecycle;\n\t\tthis.recordTerminal = recordTerminal;\n\t\tthis.warn = warn;\n\t}\n\n\tensureHydrated(): void {\n\t\tif (this.hydrated) return;\n\t\tthis.hydrated = true;\n\t\tconst durableIds = new Set(this.lifecycle.getManagedRecords().map((record) => record.laneId));\n\t\tfor (const legacy of getLatestLaneRecordSnapshots(getActiveSessionBranchEntries(this.deps.getSessionManager()))) {\n\t\t\tif (\n\t\t\t\tlegacy.type !== \"tmux-worker\" ||\n\t\t\t\t(legacy.status !== \"queued\" && legacy.status !== \"running\") ||\n\t\t\t\tdurableIds.has(legacy.laneId)\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.lifecycle.prepareManaged({\n\t\t\t\tlaneId: legacy.laneId,\n\t\t\t\tdispatchSequence: 1,\n\t\t\t\tinstructions: legacy.label ?? `Resume externally managed lane ${legacy.laneId}`,\n\t\t\t\tprofileId: legacy.profileId ?? \"legacy-managed-process\",\n\t\t\t\tprovider: \"legacy\",\n\t\t\t\tauthorizationId: `legacy-session-lane:${legacy.laneId}`,\n\t\t\t\trole: \"implementer\",\n\t\t\t\triskBudget: { maxAttempts: 1, maxWallClockMs: LEGACY_MANAGED_LEASE_TTL_MS },\n\t\t\t\tleaseTtlMs: LEGACY_MANAGED_LEASE_TTL_MS,\n\t\t\t\tcompileGrant: (target) =>\n\t\t\t\t\tthis.compileGrant(target, legacy.laneId, {\n\t\t\t\t\t\tsequence: 1,\n\t\t\t\t\t\tinstructions: legacy.label ?? `Resume externally managed lane ${legacy.laneId}`,\n\t\t\t\t\t\tprofileId: legacy.profileId ?? \"legacy-managed-process\",\n\t\t\t\t\t\tprovider: \"legacy\",\n\t\t\t\t\t\tauthorizationId: `legacy-session-lane:${legacy.laneId}`,\n\t\t\t\t\t\tauthorizationKind: \"legacy-recovery\",\n\t\t\t\t\t\tallowedTools: LEGACY_MANAGED_READ_TOOLS,\n\t\t\t\t\t\twritePaths: [],\n\t\t\t\t\t\tleaseTtlMs: LEGACY_MANAGED_LEASE_TTL_MS,\n\t\t\t\t\t}),\n\t\t\t\t...(legacy.worktreeLaneKey ? { worktreeLaneKey: legacy.worktreeLaneKey } : {}),\n\t\t\t});\n\t\t}\n\t\tfor (const record of this.lifecycle.getManagedRecords()) {\n\t\t\tif (record.status === \"queued\" || record.status === \"running\") this.ensureRegistration(record.laneId);\n\t\t}\n\t}\n\n\tresolve(callerLaneId: string): string | undefined {\n\t\tthis.ensureHydrated();\n\t\tconst record = this.lifecycle.getManagedRecord(callerLaneId);\n\t\treturn record && (record.status === \"queued\" || record.status === \"running\") ? callerLaneId : undefined;\n\t}\n\n\trecord(event: ManagedLaneEvent): LaneRecord | undefined {\n\t\tif (this.deps.isDisposed()) return undefined;\n\t\tthis.ensureHydrated();\n\t\tif (event.phase === \"dispatch\") {\n\t\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\t\tconst prepared = this.lifecycle.prepareManaged({\n\t\t\t\tlaneId: event.laneId,\n\t\t\t\tdispatchSequence: event.dispatch.sequence,\n\t\t\t\tinstructions: event.dispatch.instructions,\n\t\t\t\tprofileId: event.dispatch.profileId,\n\t\t\t\tprovider: event.dispatch.provider,\n\t\t\t\tauthorizationId: event.dispatch.authorizationId,\n\t\t\t\tleaseTtlMs: event.dispatch.leaseTtlMs,\n\t\t\t\tcompileGrant: (target) => this.compileGrant(target, event.laneId, event.dispatch),\n\t\t\t\trole: \"implementer\",\n\t\t\t\triskBudget: { maxAttempts: 1, maxWallClockMs: event.dispatch.leaseTtlMs },\n\t\t\t\t...(goal && Array.isArray(goal.requirements) && (!event.goalId || goal.goalId === event.goalId)\n\t\t\t\t\t? { goal }\n\t\t\t\t\t: {}),\n\t\t\t\t...(event.goalId ? { goalId: event.goalId } : {}),\n\t\t\t\t...(event.worktreeLaneKey ? { worktreeLaneKey: event.worktreeLaneKey } : {}),\n\t\t\t});\n\t\t\tif (!prepared.created) return undefined;\n\t\t\tthis.ensureRegistration(event.laneId);\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), prepared.record);\n\t\t\treturn prepared.record;\n\t\t}\n\n\t\tconst attempt = this.lifecycle.getManagedAttempt(event.laneId);\n\t\tconst handle = this.lifecycle.getManagedHandle(event.laneId);\n\t\tif (!attempt || !handle || (attempt.status !== \"leased\" && attempt.status !== \"running\")) return undefined;\n\t\tlet usage: Usage | undefined;\n\t\ttry {\n\t\t\tusage = event.usage ? validateProviderUsage(event.usage, \"managed lane usage\") : undefined;\n\t\t} catch (error) {\n\t\t\tthis.warn(\n\t\t\t\t`Rejected terminal report for managed worker ${event.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst resolvedStatus = resolveManagedLaneTerminalStatus(event.status);\n\t\tconst usageReportId = usage && this.deps.addSpawnedUsage ? `managed-worker:${handle.attemptId}` : undefined;\n\t\tlet claim: WorkerClaim;\n\t\ttry {\n\t\t\tclaim = normalizeWorkerClaimForHost({\n\t\t\t\trequestId: event.laneId,\n\t\t\t\tterminalAttemptId: handle.attemptId,\n\t\t\t\tstatus: mapManagedLaneTerminalStatus(resolvedStatus),\n\t\t\t\tsummary: `Managed worker lane ${event.laneId} reported terminal status \"${resolvedStatus}\".`,\n\t\t\t\tchangedFiles: event.changedFiles ?? [],\n\t\t\t\t...(usageReportId ? { usageReportId } : {}),\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.warn(\n\t\t\t\t`Rejected terminal report for managed worker ${event.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst review = reviewManagedLaneChangedFiles({\n\t\t\tchangedFiles: claim.changedFiles,\n\t\t\tenvelope: this.deps.getCapabilityEnvelope() ?? {},\n\t\t\tcwd: this.deps.getCwd(),\n\t\t});\n\t\tclaim = normalizeWorkerClaimForHost({\n\t\t\t...claim,\n\t\t\tsummary: `${claim.summary}${\n\t\t\t\treview.reviewRequired ? ` Changed files require parent review (${review.reasonCode}).` : \"\"\n\t\t\t}`,\n\t\t\tparentReviewRequired: review.reviewRequired,\n\t\t});\n\t\tlet record: LaneRecord | undefined;\n\t\tlet finalized = false;\n\t\ttry {\n\t\t\t// Accounting must commit before the lifecycle terminal transition. A failed append leaves the\n\t\t\t// fenced attempt active so the same terminal event can retry with this stable report id.\n\t\t\tif (usage && usageReportId) {\n\t\t\t\tthis.deps.addSpawnedUsage?.(usage, { label: \"managed-worker\", reportId: usageReportId });\n\t\t\t}\n\t\t\tif (!this.hasPersistedClaimForAttempt(claim)) this.deps.saveWorkerClaimSnapshot(claim);\n\t\t\tconst terminal = finalizeWorkerClaim(this.lifecycle, {\n\t\t\t\thandle,\n\t\t\t\tclaim,\n\t\t\t\taccepted: resolvedStatus === \"succeeded\" && !review.reviewRequired,\n\t\t\t\tcostUsd: usage?.cost.total,\n\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t...(usage\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tinputTokens: usage.input,\n\t\t\t\t\t\t\toutputTokens: usage.output,\n\t\t\t\t\t\t\ttotalTokens: usage.totalTokens,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t\twallClockMs: Math.max(0, Date.now() - Date.parse(attempt.createdAt)),\n\t\t\t\ttoolCalls: 0,\n\t\t\t\treasonCode: normalizeWorkerClaimReasonCode(\n\t\t\t\t\treview.reviewRequired ? `parent_review_required:${review.reasonCode}` : event.reasonCode,\n\t\t\t\t\t`managed_worker_${resolvedStatus}`,\n\t\t\t\t),\n\t\t\t});\n\t\t\trecord = terminal.record;\n\t\t\tfinalized = true;\n\t\t\tif (terminal.notification) this.recordTerminal(record, terminal.notification.notificationId);\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), record);\n\t\t} catch (error) {\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tif (finalized) {\n\t\t\t\tthis.warn(\n\t\t\t\t\t`Managed worker ${event.laneId} finalized, but terminal projection or handoff failed: ${message}`,\n\t\t\t\t);\n\t\t\t\treturn record;\n\t\t\t}\n\t\t\tthis.warn(`Managed worker ${event.laneId} terminal processing failed and remains retryable: ${message}`);\n\t\t\treturn undefined;\n\t\t} finally {\n\t\t\tif (finalized) this.releaseRegistration(event.laneId);\n\t\t}\n\t\treturn record;\n\t}\n\n\trelease(): void {\n\t\tfor (const deregister of this.deregisterByLane.values()) deregister();\n\t\tthis.deregisterByLane.clear();\n\t}\n\n\tprivate ensureRegistration(laneId: string): void {\n\t\tif (this.deregisterByLane.has(laneId)) return;\n\t\tthis.deregisterByLane.set(laneId, registerInFlightWork(this.deps.getAgentDir(), \"lane\", `tmux:${laneId}`));\n\t}\n\n\tprivate releaseRegistration(laneId: string): void {\n\t\tthis.deregisterByLane.get(laneId)?.();\n\t\tthis.deregisterByLane.delete(laneId);\n\t}\n\n\t/** A replay after a crash between claim append and lifecycle finalization must not duplicate the claim. */\n\tprivate hasPersistedClaimForAttempt(claim: WorkerClaim): boolean {\n\t\tif (!claim.terminalAttemptId) return false;\n\t\tconst latest = getLatestWorkerClaimSnapshot(\n\t\t\tgetActiveSessionBranchEntries(this.deps.getSessionManager()),\n\t\t\tclaim.requestId,\n\t\t);\n\t\treturn latest?.claim.terminalAttemptId === claim.terminalAttemptId;\n\t}\n\n\tprivate compileGrant(\n\t\ttarget: { objectiveId: string; taskId: string; attemptId: string },\n\t\tlaneId: string,\n\t\tdispatch: ManagedLaneDispatch,\n\t): ExecutionGrant {\n\t\tconst compiled = compileManagedProcessExecutionGrant({\n\t\t\ttarget,\n\t\t\tlaneId,\n\t\t\tauthorizationId: dispatch.authorizationId,\n\t\t\trole: \"implementer\",\n\t\t\tallowedTools: dispatch.allowedTools,\n\t\t\twritePaths: dispatch.writePaths,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tdeniedPaths: getPrivateLaneDeniedPaths(this.deps.getCwd(), this.deps.getAgentDir()),\n\t\t\tbudget: {\n\t\t\t\tmaxAttempts: 1,\n\t\t\t\tmaxWallClockMs: dispatch.leaseTtlMs,\n\t\t\t\t...(dispatch.maxCostUsd !== undefined ? { maxCostUsd: dispatch.maxCostUsd } : {}),\n\t\t\t},\n\t\t});\n\t\tif (!compiled.ok) {\n\t\t\tthrow new Error(`Managed worker '${laneId}' execution grant was denied: ${compiled.reasonCodes.join(\", \")}`);\n\t\t}\n\t\treturn compiled.grant;\n\t}\n}\n"]}
@@ -24,9 +24,15 @@ export interface WorkerAgentControlCoordinatorOptions {
24
24
  abortLane(laneId: string, reasonCode: string): void;
25
25
  cancelLane(laneId: string, reasonCode: string): LaneRecord | undefined;
26
26
  taskStartHeadroomSkipReason?(agent: AgentBindingContract): string | undefined;
27
- yieldCapacity?(callerAgentId: string, capacityOwnerAgentId: string): () => void;
27
+ waitBlockedByCaller?(callerAgentId: string, targetAgentIds: readonly string[]): readonly string[];
28
+ /** Yield caller-owned scheduler and mutation resources until the returned restorer succeeds. */
29
+ yieldCallerForWait?(callerAgentId: string): () => boolean | undefined;
28
30
  warn?(message: string): void;
29
31
  }
32
+ export declare function buildWorkerTerminalHandoffContent(args: {
33
+ childAgentId: string;
34
+ record: Pick<LaneRecord, "laneId" | "status" | "reasonCode">;
35
+ }): string;
30
36
  /**
31
37
  * Sole owner of model-facing logical-agent controls and their durable inboxes.
32
38
  *
@@ -122,6 +128,7 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
122
128
  /** Event-driven wait: durable projection plus one shared state notification, never output polling. */
123
129
  waitForWorkerAgent(agentId: string, timeoutMs?: number, scope?: WorkerAgentControlScope): Promise<{
124
130
  status: WorkerAgentActivity;
131
+ timedOut: boolean;
125
132
  }>;
126
133
  /** One event-driven wait set with one shared caller-capacity lease; never per-agent promise polling. */
127
134
  waitForWorkerAgents(agentIds: readonly string[], mode: WorkerAgentWaitMode, timeoutMs?: number, scope?: WorkerAgentControlScope): ReturnType<WorkerAgentControlPort["waitForWorkerAgents"]>;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-agent-control-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-agent-control-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACN,KAAK,oBAAoB,EAGzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAyB,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAG/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEN,KAAK,oCAAoC,EACzC,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAG5B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE5B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAGxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEN,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,WAAW,oCAAoC;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,eAAe,CAAC;IAChC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,uBAAuB,CAAC;IACxE,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC/F,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC;IACvF,aAAa,IAAI,IAAI,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACvE,2BAA2B,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9E,mBAAmB,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;IAClG,gGAAgG;IAChG,kBAAkB,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;IACtE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAMD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC;CAC7D,GAAG,MAAM,CAuBT;AAiBD;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,sBAAsB;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAqB;IACpE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6B;IAC/E,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6B;IAE/E,YAAY,OAAO,EAAE,oCAAoC,EAQxD;IAED,iBAAiB,IAAI,MAAM,CAE1B;IAED,gBAAgB,CAAC,KAAK,GAAE,uBAA4B,GAAG,eAAe,EAAE,CAgBvE;IAED,wBAAwB,IAAI,UAAU,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC,CAGzF;IAED,0GAA0G;IAC1G,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,mBAAmB,CAQhG;IAED,yBAAyB,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,4BAAiC,GACxC,UAAU,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAC,CA0BjE;IAED,sBAAsB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACrC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAQrC;IAED,2BAA2B,CAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,GAClC,0BAA0B,CA4C5B;IAED,mBAAmB,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACrC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAItG;IAED,iCAAiC,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oCAAyC,GAChD;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAOrC;IAED,8BAA8B,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oCAAyC,GAChD;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAOtG;IAED,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CA6ClH;IAED,sBAAsB,CAAC,KAAK,GAAE,qBAA0B,GAAG,gBAAgB,EAAE,CAI5E;IAED,yBAAyB,CAAC,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAIxG;IAED,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CASxE;IAED,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,qBAAqB;IA6B7B;;;OAGG;IACH,oBAAoB,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,2BAAgC,GACvC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAyBpG;IAED,OAAO,CAAC,qBAAqB;IAwF7B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,+BAA+B;IAmBvC,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,uBAAuB;IAqJ/B,OAAO,CAAC,6BAA6B;IAoDrC,OAAO,CAAC,4CAA4C;IAsBpD,OAAO,CAAC,0CAA0C;IAWlD,OAAO,CAAC,mCAAmC;IAsB3C,OAAO,CAAC,0BAA0B;IA6BlC,2BAA2B,IAAI,IAAI,CAalC;IAED,OAAO,CAAC,yBAAyB;IAqEjC,OAAO,CAAC,sCAAsC;IAiB9C,OAAO,CAAC,yCAAyC;IAYjD,OAAO,CAAC,4BAA4B;IASpC,oBAAoB,CACnB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,uBAA4B,GACjC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAa3C;IAED,iBAAiB,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,uBAA4B,GACjC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CA0BhE;IAED,iBAAiB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,SAAoB,EAC9B,KAAK,GAAE,uBAA4B,GACjC,UAAU,GAAG,SAAS,CAOxB;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,uBAAuB,CA+B/F;IAED,sGAAsG;IACtG,kBAAkB,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,SAAS,EAClB,KAAK,GAAE,uBAA4B,GACjC,OAAO,CAAC;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAK7D;IAED,wGAAwG;IACxG,mBAAmB,CAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,mBAAmB,EACzB,SAAS,SAAS,EAClB,KAAK,GAAE,uBAA4B,GACjC,UAAU,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CA0I3D;IAED,qGAAqG;IACrG,8BAA8B,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,OAAO,GACtB,YAAY,EAAE,CAkBhB;IAED,2FAA2F;IAC3F,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAI5F;IAED,sFAAsF;IACtF,kBAAkB,IAAI,IAAI,CAGzB;IAED,+FAA+F;IAC/F,gCAAgC,IAAI,IAAI,CAIvC;IAED,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,sCAAsC;IAY9C,OAAO,CAAC,oCAAoC;IAqC5C,OAAO,CAAC,sCAAsC;IAiB9C,OAAO,CAAC,4CAA4C;IAWpD,OAAO,CAAC,oBAAoB;IAU5B,oGAAoG;IACpG,4BAA4B,CAAC,IAAI,EAAE;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,UAAU,CAAC;KACnB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAmDlF;IAED,OAAO,CAAC,2BAA2B;IAoHnC,OAAO,CAAC,6CAA6C;IASrD,OAAO,CAAC,sCAAsC;IAM9C,OAAO,CAAC,gCAAgC;IA4BxC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,oCAAoC;IAU5C,OAAO,CAAC,0BAA0B;IAsBlC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,kCAAkC;IAoB1C,OAAO,CAAC,+BAA+B;IAiCvC,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,cAAc;CAatB"}
@@ -5,7 +5,32 @@ import { normalizeWorkerAgentDependencyTaskIds, WorkerAgentMailbox, workerAgentB
5
5
  import { MAX_WORKER_TRANSCRIPT_PAGE_MESSAGES, WorkerConversationStore, } from "./worker-conversation-store.js";
6
6
  import { evaluateReusableWorkerTaskAdmission } from "./worker-fleet-limits.js";
7
7
  import { projectWorkerTaskSessionView } from "./worker-task-view.js";
8
+ import { WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE } from "./worker-terminal-handoff-coordinator.js";
8
9
  const MAX_BROADCAST_ERROR_CHARS = 512;
10
+ export function buildWorkerTerminalHandoffContent(args) {
11
+ return [
12
+ "Worker terminal handoff",
13
+ `childAgentId=${args.childAgentId}`,
14
+ `laneId=${args.record.laneId}`,
15
+ `status=${args.record.status}`,
16
+ ...(args.record.reasonCode ? [`reasonCode=${args.record.reasonCode}`] : []),
17
+ "CAVEMAN MODE - MANDATORY: terminal handoff means worker state was retained. Read the full transcript, verify the claim, then continue or replan within the admitted grant. Do not call this lost state or harness failure.",
18
+ "MANDATORY: read every transcript page before judging this result.",
19
+ `Start with delegate action="transcript" agentId="${args.childAgentId}" cursor=0.`,
20
+ "Entries complete only after pagination ends. omittedMessages means whole entries were left out of that page. While nextCursor exists, call transcript again with cursor=nextCursor. Stop only when nextCursor is absent.",
21
+ ...(args.record.reasonCode === "worker_blocked"
22
+ ? [
23
+ "worker_blocked means the durable claim has blockers; it does not mean worker state or transcript was lost.",
24
+ ]
25
+ : []),
26
+ ...(args.record.status === "budget_exhausted"
27
+ ? [
28
+ "CAVEMAN MODE - MANDATORY: budget_exhausted means an admitted limit ended work, not harness failure. Terminal reasonCode is authoritative; never replace it with earlier transcript errors. Read evidence, then replan only within remaining authority.",
29
+ ]
30
+ : []),
31
+ ...(args.record.reasonCode === "completion_error" ? [WORKER_COMPLETION_ERROR_CAVEMAN_GUIDANCE] : []),
32
+ ].join("\n");
33
+ }
9
34
  /**
10
35
  * Sole owner of model-facing logical-agent controls and their durable inboxes.
11
36
  *
@@ -853,6 +878,7 @@ export class WorkerAgentControlCoordinator {
853
878
  waitForWorkerAgent(agentId, timeoutMs = 30_000, scope = {}) {
854
879
  return this.waitForWorkerAgents([agentId], "all", timeoutMs, scope).then((result) => ({
855
880
  status: result.statuses[0]?.status ?? "unknown",
881
+ timedOut: result.timedOut,
856
882
  }));
857
883
  }
858
884
  /** One event-driven wait set with one shared caller-capacity lease; never per-agent promise polling. */
@@ -862,8 +888,9 @@ export class WorkerAgentControlCoordinator {
862
888
  throw new TypeError("Worker wait mode must be 'any' or 'all'.");
863
889
  const canonicalAgentIds = this.canonicalAgentIdSet(agentIds, "Worker wait");
864
890
  const baselineSnapshot = this.options.getLifecycle().getTaskRuntimeSnapshot();
891
+ let callerAgentId;
865
892
  if (scope.callerAgentId) {
866
- const callerAgentId = scope.callerAgentId.trim();
893
+ callerAgentId = scope.callerAgentId.trim();
867
894
  if (!callerAgentId || !baselineSnapshot.agents[callerAgentId]) {
868
895
  throw new Error(`Unknown logical worker agent '${callerAgentId}'.`);
869
896
  }
@@ -905,58 +932,96 @@ export class WorkerAgentControlCoordinator {
905
932
  });
906
933
  if (waitSatisfied(baselineStatuses))
907
934
  return Promise.resolve(result(baselineStatuses, false));
908
- return new Promise((resolve) => {
935
+ if (callerAgentId) {
936
+ const activeAgentIds = new Set(baselineStatuses.filter(({ status }) => status === "active").map(({ agentId }) => agentId));
937
+ if (activeAgentIds.has(callerAgentId)) {
938
+ throw new Error(`Worker wait would deadlock: logical worker '${callerAgentId}' cannot wait for itself. Finish the caller task instead.`);
939
+ }
940
+ }
941
+ return new Promise((resolve, reject) => {
909
942
  let settled = false;
910
- let releaseYield;
943
+ let completionTimedOut;
944
+ let failure;
945
+ let hasFailure = false;
946
+ let yieldInitialized = callerAgentId === undefined;
947
+ let restoreYield;
911
948
  let unsubscribeState = () => undefined;
912
949
  let timeout;
913
950
  const cleanup = () => {
914
951
  unsubscribeState();
915
952
  if (timeout)
916
953
  clearTimeout(timeout);
917
- const release = releaseYield;
918
- releaseYield = undefined;
919
- release?.();
954
+ };
955
+ const restoreCaller = () => {
956
+ if (!restoreYield)
957
+ return true;
958
+ const restored = restoreYield();
959
+ if (restored === false)
960
+ return false;
961
+ restoreYield = undefined;
962
+ return true;
920
963
  };
921
964
  const settle = () => {
922
- if (settled)
965
+ if (settled || !yieldInitialized)
923
966
  return;
924
967
  const statuses = currentStatuses();
925
968
  recordUpdates(statuses);
926
- if (!waitSatisfied(statuses))
927
- return;
969
+ if (!hasFailure && completionTimedOut === undefined) {
970
+ if (!waitSatisfied(statuses))
971
+ return;
972
+ completionTimedOut = false;
973
+ if (timeout) {
974
+ clearTimeout(timeout);
975
+ timeout = undefined;
976
+ }
977
+ }
978
+ try {
979
+ if (!restoreCaller())
980
+ return;
981
+ }
982
+ catch (error) {
983
+ failure = error;
984
+ hasFailure = true;
985
+ }
928
986
  settled = true;
929
987
  cleanup();
930
- resolve(result(statuses, false));
988
+ if (hasFailure)
989
+ reject(failure);
990
+ else
991
+ resolve(result(statuses, completionTimedOut ?? false));
931
992
  };
932
993
  unsubscribeState = this.subscribeStateChanges(settle);
933
994
  timeout = setTimeout(() => {
934
995
  if (settled)
935
996
  return;
936
- settled = true;
937
- const statuses = currentStatuses();
938
- recordUpdates(statuses);
939
- cleanup();
940
- resolve(result(statuses, true));
997
+ timeout = undefined;
998
+ if (completionTimedOut === undefined)
999
+ completionTimedOut = true;
1000
+ settle();
941
1001
  }, boundedTimeoutMs);
942
1002
  if (typeof timeout === "object" && "unref" in timeout)
943
1003
  timeout.unref();
944
- if (scope.callerAgentId && this.options.yieldCapacity) {
945
- // Capacity belongs to the waiting caller. Passing that identity through both slots keeps
946
- // legacy controller adapters from treating an independent peer as the capacity owner.
947
- try {
948
- const yielded = this.options.yieldCapacity(scope.callerAgentId, scope.callerAgentId);
949
- if (settled)
950
- yielded();
951
- else
952
- releaseYield = yielded;
1004
+ try {
1005
+ if (callerAgentId && this.options.yieldCallerForWait) {
1006
+ restoreYield = this.options.yieldCallerForWait(callerAgentId);
953
1007
  }
954
- catch (error) {
955
- settled = true;
956
- cleanup();
957
- throw error;
1008
+ yieldInitialized = true;
1009
+ if (callerAgentId) {
1010
+ const statuses = currentStatuses();
1011
+ const activeAgentIds = new Set(statuses.filter(({ status }) => status === "active").map(({ agentId }) => agentId));
1012
+ const blockedAgentIdSet = new Set(this.options.waitBlockedByCaller?.(callerAgentId, canonicalAgentIds) ?? []);
1013
+ const blockedAgentIds = canonicalAgentIds.filter((agentId) => activeAgentIds.has(agentId) && blockedAgentIdSet.has(agentId));
1014
+ if (blockedAgentIds.length > 0) {
1015
+ hasFailure = true;
1016
+ failure = new Error(`Worker wait would deadlock: ${blockedAgentIds.join(", ")} ${blockedAgentIds.length === 1 ? "is" : "are"} blocked by the caller's write reservation after caller resources were yielded.`);
1017
+ }
958
1018
  }
959
1019
  }
1020
+ catch (error) {
1021
+ yieldInitialized = true;
1022
+ hasFailure = true;
1023
+ failure = error;
1024
+ }
960
1025
  settle();
961
1026
  });
962
1027
  }
@@ -1087,14 +1152,7 @@ export class WorkerAgentControlCoordinator {
1087
1152
  const parent = this.requireKnownAgent(args.parentAgentId);
1088
1153
  const latest = this.latestAgentAttempt(parent);
1089
1154
  const active = latest?.status === "queued" || latest?.status === "leased" || latest?.status === "running";
1090
- const content = [
1091
- "Worker terminal handoff",
1092
- `childAgentId=${args.childAgentId}`,
1093
- `laneId=${args.record.laneId}`,
1094
- `status=${args.record.status}`,
1095
- ...(args.record.reasonCode ? [`reasonCode=${args.record.reasonCode}`] : []),
1096
- `Transcript: delegate action="transcript" agentId="${args.childAgentId}". Entries complete; omittedMessages marks whole omissions; empty page may continue via nextCursor.`,
1097
- ].join("\n");
1155
+ const content = buildWorkerTerminalHandoffContent(args);
1098
1156
  const idempotencyKey = `terminal-handoff:${args.terminalAttemptId}`;
1099
1157
  const transcriptInput = {
1100
1158
  idempotencyKey,