@caupulican/pi-adaptative 0.93.11 → 0.93.13

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 (139) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/core/agent-paths.d.ts +6 -0
  3. package/dist/core/agent-paths.d.ts.map +1 -1
  4. package/dist/core/agent-paths.js +15 -0
  5. package/dist/core/agent-paths.js.map +1 -1
  6. package/dist/core/agent-session.d.ts.map +1 -1
  7. package/dist/core/agent-session.js +2 -0
  8. package/dist/core/agent-session.js.map +1 -1
  9. package/dist/core/background-lane-controller.d.ts +2 -0
  10. package/dist/core/background-lane-controller.d.ts.map +1 -1
  11. package/dist/core/background-lane-controller.js +3 -0
  12. package/dist/core/background-lane-controller.js.map +1 -1
  13. package/dist/core/background-tool-task-controller.d.ts +4 -0
  14. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  15. package/dist/core/background-tool-task-controller.js +22 -19
  16. package/dist/core/background-tool-task-controller.js.map +1 -1
  17. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +3 -1
  18. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  19. package/dist/core/delegation/worker-agent-control-coordinator.js +8 -0
  20. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  21. package/dist/core/delegation/worker-attempt-executor.d.ts +2 -1
  22. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  23. package/dist/core/delegation/worker-attempt-executor.js +14 -1
  24. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  25. package/dist/core/delegation/worker-claim.d.ts +4 -1
  26. package/dist/core/delegation/worker-claim.d.ts.map +1 -1
  27. package/dist/core/delegation/worker-claim.js +20 -2
  28. package/dist/core/delegation/worker-claim.js.map +1 -1
  29. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  30. package/dist/core/delegation/worker-delegation-controller.js +2 -0
  31. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  32. package/dist/core/delegation/worker-lifecycle.d.ts +1 -0
  33. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  34. package/dist/core/delegation/worker-lifecycle.js +3 -0
  35. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  36. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  37. package/dist/core/delegation/worker-runner.js +15 -9
  38. package/dist/core/delegation/worker-runner.js.map +1 -1
  39. package/dist/core/delegation/worker-terminal-output-artifact.d.ts +14 -0
  40. package/dist/core/delegation/worker-terminal-output-artifact.d.ts.map +1 -0
  41. package/dist/core/delegation/worker-terminal-output-artifact.js +49 -0
  42. package/dist/core/delegation/worker-terminal-output-artifact.js.map +1 -0
  43. package/dist/core/foreground-terminal-handoff-controller.d.ts +3 -0
  44. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  45. package/dist/core/foreground-terminal-handoff-controller.js +6 -0
  46. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  47. package/dist/core/goals/goal-session-controller.d.ts +2 -2
  48. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  49. package/dist/core/goals/goal-session-controller.js +2 -11
  50. package/dist/core/goals/goal-session-controller.js.map +1 -1
  51. package/dist/core/orchestration/contracts.d.ts +2 -0
  52. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  53. package/dist/core/orchestration/contracts.js +3 -0
  54. package/dist/core/orchestration/contracts.js.map +1 -1
  55. package/dist/core/orchestration/task-runtime-codecs.d.ts.map +1 -1
  56. package/dist/core/orchestration/task-runtime-codecs.js +11 -2
  57. package/dist/core/orchestration/task-runtime-codecs.js.map +1 -1
  58. package/dist/core/orchestration/worker-result-adapter.d.ts +2 -1
  59. package/dist/core/orchestration/worker-result-adapter.d.ts.map +1 -1
  60. package/dist/core/orchestration/worker-result-adapter.js +41 -7
  61. package/dist/core/orchestration/worker-result-adapter.js.map +1 -1
  62. package/dist/core/runtime-builder.d.ts +5 -2
  63. package/dist/core/runtime-builder.d.ts.map +1 -1
  64. package/dist/core/runtime-builder.js +26 -8
  65. package/dist/core/runtime-builder.js.map +1 -1
  66. package/dist/core/secrets/bitwarden-credential-storage-router.d.ts +22 -0
  67. package/dist/core/secrets/bitwarden-credential-storage-router.d.ts.map +1 -0
  68. package/dist/core/secrets/bitwarden-credential-storage-router.js +59 -0
  69. package/dist/core/secrets/bitwarden-credential-storage-router.js.map +1 -0
  70. package/dist/core/secrets/bitwarden-credential-storage.d.ts +2 -8
  71. package/dist/core/secrets/bitwarden-credential-storage.d.ts.map +1 -1
  72. package/dist/core/secrets/bitwarden-credential-storage.js +23 -134
  73. package/dist/core/secrets/bitwarden-credential-storage.js.map +1 -1
  74. package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts +46 -0
  75. package/dist/core/secrets/bitwarden-secrets-manager-storage.d.ts.map +1 -0
  76. package/dist/core/secrets/bitwarden-secrets-manager-storage.js +379 -0
  77. package/dist/core/secrets/bitwarden-secrets-manager-storage.js.map +1 -0
  78. package/dist/core/secrets/credential-cli-command.d.ts +22 -0
  79. package/dist/core/secrets/credential-cli-command.d.ts.map +1 -0
  80. package/dist/core/secrets/credential-cli-command.js +82 -0
  81. package/dist/core/secrets/credential-cli-command.js.map +1 -0
  82. package/dist/core/secrets/credential-exposure-guard.d.ts +1 -1
  83. package/dist/core/secrets/credential-exposure-guard.d.ts.map +1 -1
  84. package/dist/core/secrets/credential-exposure-guard.js +5 -1
  85. package/dist/core/secrets/credential-exposure-guard.js.map +1 -1
  86. package/dist/core/secrets/credential-machine-session.d.ts +13 -0
  87. package/dist/core/secrets/credential-machine-session.d.ts.map +1 -0
  88. package/dist/core/secrets/credential-machine-session.js +139 -0
  89. package/dist/core/secrets/credential-machine-session.js.map +1 -0
  90. package/dist/core/secrets/credential-manager.d.ts +11 -1
  91. package/dist/core/secrets/credential-manager.d.ts.map +1 -1
  92. package/dist/core/secrets/credential-manager.js +44 -9
  93. package/dist/core/secrets/credential-manager.js.map +1 -1
  94. package/dist/core/secrets/credential-profile-envelope.d.ts +10 -0
  95. package/dist/core/secrets/credential-profile-envelope.d.ts.map +1 -0
  96. package/dist/core/secrets/credential-profile-envelope.js +78 -0
  97. package/dist/core/secrets/credential-profile-envelope.js.map +1 -0
  98. package/dist/core/secrets/credential-session-connection.d.ts.map +1 -1
  99. package/dist/core/secrets/credential-session-connection.js +2 -1
  100. package/dist/core/secrets/credential-session-connection.js.map +1 -1
  101. package/dist/core/secrets/credential-source-discovery.d.ts +7 -3
  102. package/dist/core/secrets/credential-source-discovery.d.ts.map +1 -1
  103. package/dist/core/secrets/credential-source-discovery.js +48 -9
  104. package/dist/core/secrets/credential-source-discovery.js.map +1 -1
  105. package/dist/core/tools/delegate-status.d.ts +4 -0
  106. package/dist/core/tools/delegate-status.d.ts.map +1 -1
  107. package/dist/core/tools/delegate-status.js +20 -4
  108. package/dist/core/tools/delegate-status.js.map +1 -1
  109. package/dist/core/tools/goal.d.ts +2 -2
  110. package/dist/core/tools/goal.d.ts.map +1 -1
  111. package/dist/core/tools/goal.js +30 -11
  112. package/dist/core/tools/goal.js.map +1 -1
  113. package/dist/core/tools/secret-store.d.ts.map +1 -1
  114. package/dist/core/tools/secret-store.js +6 -15
  115. package/dist/core/tools/secret-store.js.map +1 -1
  116. package/dist/core/tools/tool-task.d.ts.map +1 -1
  117. package/dist/core/tools/tool-task.js +6 -3
  118. package/dist/core/tools/tool-task.js.map +1 -1
  119. package/dist/core/util/bounded-value.d.ts +2 -0
  120. package/dist/core/util/bounded-value.d.ts.map +1 -1
  121. package/dist/core/util/bounded-value.js +13 -0
  122. package/dist/core/util/bounded-value.js.map +1 -1
  123. package/dist/index.d.ts +3 -1
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +2 -0
  126. package/dist/index.js.map +1 -1
  127. package/dist/utils/tools-manager.d.ts +2 -1
  128. package/dist/utils/tools-manager.d.ts.map +1 -1
  129. package/dist/utils/tools-manager.js +29 -0
  130. package/dist/utils/tools-manager.js.map +1 -1
  131. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  132. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  133. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  134. package/examples/extensions/sandbox/package-lock.json +2 -2
  135. package/examples/extensions/sandbox/package.json +1 -1
  136. package/examples/extensions/with-deps/package-lock.json +2 -2
  137. package/examples/extensions/with-deps/package.json +1 -1
  138. package/npm-shrinkwrap.json +12 -12
  139. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"worker-delegation-controller.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-delegation-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type { AgentMessage } from \"@caupulican/pi-agent-core\";\nimport type { SessionManager } from \"@caupulican/pi-agent-core/node\";\nimport type { Api, Model, Usage } from \"@caupulican/pi-ai\";\nimport { getProcessWorkRun } from \"../agent-paths.ts\";\nimport type {\n\tAgentSessionEvent,\n\tIsolatedCompletionOptions,\n\tIsolatedCompletionResult,\n\tWorkerDelegationRunOutcome,\n} from \"../agent-session-contracts.ts\";\nimport type { CapabilityEnvelope, WorkerClaim, WorkerRequest } from \"../autonomy/contracts.ts\";\nimport { getPrivateLaneDeniedPaths } from \"../autonomy/lane-private-paths.ts\";\nimport { createLaneToolSurface } from \"../autonomy/lane-tool-surface.ts\";\nimport { isLaneTerminalStatus, type LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { appendLaneRecordSnapshot } from \"../autonomy/session-lane-record.ts\";\nimport { AUTONOMY_TELEMETRY_EVENT_TYPES, type AutonomyTelemetryEvent } from \"../autonomy/telemetry-events.ts\";\nimport { STABLE_SHELL_TOOL_NAME } from \"../default-tool-surface.ts\";\nimport { type GoalState, isGoalExecutionActive } from \"../goals/goal-state.ts\";\nimport { deriveModelCapabilityProfile, type ModelCapabilityProfile } from \"../model-capability.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport { isLoopbackModelEndpoint } from \"../models/model-endpoint.ts\";\nimport { providerUsageFromAttemptUsage } from \"../orchestration/attempt-usage.ts\";\nimport {\n\ttype AttemptUsageSnapshot,\n\ttype ExecutionGrant,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\ttype OrchestrationProfile,\n\ttype ResourcePointer,\n\ttype WorkerExecutionContract,\n\ttype WorkerRole,\n} from \"../orchestration/contracts.ts\";\nimport type { StartedDelegationAttempt } from \"../orchestration/delegation-ledger.ts\";\nimport { SessionTaskProfileStore } from \"../orchestration/session-task-profile-store.ts\";\nimport {\n\ttype TaskProfileCreateInput,\n\ttype TaskProfileCreateResult,\n\ttype TaskProfileInspection,\n\tTaskProfileWriter,\n} from \"../orchestration/task-profile-writer.ts\";\nimport type { AttemptRuntimeState, TaskRuntimeProjection } from \"../orchestration/task-runtime.ts\";\nimport type { WorkerContextForkReference } from \"../orchestration/worker-context-fork-reference.ts\";\nimport {\n\tcreateWorkerExecutionContract,\n\tverifierWorkerExecutionContract,\n} from \"../orchestration/worker-execution-contract.ts\";\nimport { resolveWorkerModelPin, type WorkerModelPinPolicy } from \"../orchestration/worker-model-pins.ts\";\nimport { registerInFlightWork } from \"../reload-blockers.ts\";\nimport type { ResourceLoader } from \"../resource-loader.ts\";\nimport { getActiveSessionBranchEntries } from \"../session-snapshot.ts\";\nimport type { ResolvedWorkerDelegationSettings, SettingsManager } from \"../settings-manager.ts\";\nimport { createDelegateToolDefinition } from \"../tools/delegate.ts\";\nimport { disposePersistentShellSession } from \"../tools/shell-session.ts\";\nimport { wrapToolDefinition } from \"../tools/tool-definition-wrapper.ts\";\nimport { selectSanitizedContextFork } from \"./sanitized-context-fork.ts\";\nimport { getLatestWorkerClaimSnapshot } from \"./session-worker-claim.ts\";\nimport { applyWorkerActions } from \"./worker-actions.ts\";\nimport type { WorkerAgentControlPort } from \"./worker-agent-control.ts\";\nimport { WorkerAgentControlCoordinator } from \"./worker-agent-control-coordinator.ts\";\nimport { createWorkerAttemptExecutor } from \"./worker-attempt-executor.ts\";\nimport { resolveWorkerAuthority } from \"./worker-authority-resolver.ts\";\nimport { WorkerContextForkStore, WorkerContextForkStoreError } from \"./worker-context-fork-store.ts\";\nimport { resolveWorkerContextInheritanceMode } from \"./worker-context-inheritance-policy.ts\";\nimport {\n\ttype WorkerConversation,\n\ttype WorkerConversationRetentionPolicy,\n\tWorkerConversationStore,\n} from \"./worker-conversation-store.ts\";\nimport { parseWorkerDelegationAuthorityRequest, type WorkerDelegationRequest } from \"./worker-delegation-request.ts\";\nimport { type WorkerDispatchAdmission, WorkerDispatchScheduler } from \"./worker-dispatch-scheduler.ts\";\nimport {\n\tbuildWorkerExecutionPlan,\n\tcompileWorkerExecutionGrant,\n\tnarrowWorkerExecutionPlan,\n\ttype WorkerExecutionPlan,\n\tworkerExecutionAuthorityFromPlan,\n} from \"./worker-execution-policy.ts\";\nimport {\n\tDEFAULT_WORKER_FLEET_LIMITS,\n\tevaluateNewWorkerAdmission,\n\tintersectWorkerDelegationLimits,\n\tpendingVerifierSubjectTaskIds,\n\tresolveWorkerFleetLimits,\n} from \"./worker-fleet-limits.ts\";\nimport { WorkerLeaseHeartbeat } from \"./worker-lease-heartbeat.ts\";\nimport type { PendingVerificationRecovery, WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport type { WorkerNotificationCoordinator, WorkerTerminalHandoffRecord } from \"./worker-notification-coordinator.ts\";\nimport { createLocalWorkerProcessOwnerId } from \"./worker-process-owner.ts\";\nimport {\n\ttype ResolvedWorkerProfile,\n\ttype ResolvedWorkerProfilePreset,\n\tWorkerProfileResolver,\n} from \"./worker-profile-resolver.ts\";\nimport { WorkerRecoveryCoordinator, type WorkerRecoveryDispatchResult } from \"./worker-recovery-coordinator.ts\";\nimport { selectWorkerResourcePointers } from \"./worker-resource-catalog.ts\";\nimport { materializeWorkerResourceBundle } from \"./worker-resource-materializer.ts\";\nimport type { WorkerRunOutcome } from \"./worker-runner.ts\";\nimport { finalizeWorkerClaim } from \"./worker-terminal-finalizer.ts\";\nimport {\n\ttype WorkerTerminalHandoff,\n\tWorkerTerminalHandoffCoordinator,\n\ttype WorkerTerminalHandoffDelivery,\n} from \"./worker-terminal-handoff-coordinator.ts\";\nimport {\n\tcollectWorkerTreeBudgetSeeds,\n\tWorkerTreeBudgetCoordinator,\n\tworkerTreeCanAdmitAttempt,\n} from \"./worker-tree-budget-coordinator.ts\";\nimport {\n\tWorkerWriteReservationCoordinator,\n\ttype WorkerWriteReservationWaitYield,\n} from \"./worker-write-reservation-coordinator.ts\";\n\nexport function isLocalExecutionModel(model: Pick<Model<Api>, \"provider\" | \"baseUrl\">): boolean {\n\tif (model.provider === \"ollama\" || model.provider === \"transformers\" || model.provider === \"llama-cpp\") {\n\t\treturn true;\n\t}\n\treturn isLoopbackModelEndpoint(model.baseUrl);\n}\n\nfunction workerConversationRetentionPolicy(\n\tmodel: Model<Api>,\n\tsettingsManager: SettingsManager,\n): WorkerConversationRetentionPolicy | undefined {\n\tconst settings = settingsManager.getCompactionSettings();\n\tconst contextWindow = Math.floor(model.contextWindow ?? 0);\n\tif (!settings.enabled || contextWindow < 4) return undefined;\n\tconst reserveTokens = Math.min(settings.reserveTokens, Math.floor(contextWindow * 0.25));\n\tconst reserveTrigger = contextWindow - reserveTokens;\n\tconst fractionalTrigger =\n\t\tsettings.triggerPercent > 0 && settings.triggerPercent < 1\n\t\t\t? Math.floor(contextWindow * settings.triggerPercent)\n\t\t\t: reserveTrigger;\n\tconst modelTrigger =\n\t\tmodel.autoCompactionTriggerTokens && model.autoCompactionTriggerTokens > 0\n\t\t\t? Math.floor(model.autoCompactionTriggerTokens)\n\t\t\t: reserveTrigger;\n\tconst maxContextTokens = Math.min(reserveTrigger, fractionalTrigger, modelTrigger);\n\tif (maxContextTokens < 2) return undefined;\n\treturn {\n\t\tmaxContextTokens,\n\t\tkeepRecentTokens: Math.max(\n\t\t\t1,\n\t\t\tMath.min(settings.keepRecentTokens, Math.floor(contextWindow * 0.5), maxContextTokens - 1),\n\t\t),\n\t};\n}\n\nexport interface WorkerDelegationControllerDeps {\n\tisDisposed(): boolean;\n\tgetSessionId(): string;\n\tgetCwd(): string;\n\tgetAgentDir(): string;\n\tgetSessionManager(): SessionManager;\n\tgetSettingsManager(): SettingsManager;\n\tgetResourceLoader(): ResourceLoader;\n\tgetActiveOrchestrationProfile?(): OrchestrationProfile | undefined;\n\tgetModelRegistry(): ModelRegistry;\n\tisModelExhausted(model: Model<Api>): boolean;\n\tgetModel(): Model<Api> | undefined;\n\tisDelegateToolActive(): boolean;\n\tgetCapabilityEnvelope(): CapabilityEnvelope | undefined;\n\temit(event: AgentSessionEvent): void;\n\tnotifyWorkerTerminalHandoff(records: readonly WorkerTerminalHandoffRecord[]): Promise<void>;\n\temitAutonomyTelemetry(event: AutonomyTelemetryEvent): void;\n\tgetGoalStateSnapshot(): GoalState | undefined;\n\tsaveWorkerClaimSnapshot(claim: WorkerClaim, request?: WorkerRequest): string;\n\treadMemoryForLane(query: string): Promise<string>;\n\taddSpawnedUsage(\n\t\tusage: Usage,\n\t\topts: { label?: string; sourceSessionId?: string; reportId: string },\n\t): string | undefined;\n\trunIsolatedCompletion(opts: IsolatedCompletionOptions): Promise<IsolatedCompletionResult>;\n}\n\ntype WorkerAdmission =\n\t| {\n\t\t\tok: true;\n\t\t\tinstructions: string;\n\t\t\tsettings: ResolvedWorkerDelegationSettings;\n\t\t\tshipment: ResolvedWorkerProfile;\n\t\t\tverifierShipment?: ResolvedWorkerProfile;\n\t\t\t/** Exact pointer selection persisted when this request is admitted. */\n\t\t\tresourcePointerIds: readonly string[];\n\t\t\texecutionContract: WorkerExecutionContract;\n\t\t\texecutionPlan: WorkerExecutionPlan;\n\t\t\t/**\n\t\t\t * Set when a pin policy is active, the effective role has no pin (a roles-only config\n\t\t\t * with no `default` leaves it unpinned), and the caller requested an explicit model —\n\t\t\t * i.e. the owner's pin was evaded, not just inapplicable. Diagnostics only: admission is\n\t\t\t * never blocked on this. Value is the effective role that bypassed the policy.\n\t\t\t */\n\t\t\tmodelPinBypass?: WorkerRole;\n\t }\n\t| { ok: false; skipReason: string };\n\ninterface PreparedWorkerAttempt {\n\texecutionPlan: WorkerExecutionPlan;\n\tlifecycle: WorkerLifecycle;\n\trecord: LaneRecord;\n\tattempt?: AttemptRuntimeState;\n}\n\ninterface PreparedWorkerAgent {\n\tconversation: WorkerConversation;\n\tresources: readonly ResourcePointer[];\n\tresourceSystemPrompt: string;\n}\n\ntype QueuedWorkerAttemptOutcome =\n\t| { started: false; skipReason: string }\n\t| { started: true; record: LaneRecord; modelPinBypass?: WorkerRole };\n\ninterface WorkerContextForkSource {\n\tmodel: { provider: string; model: string };\n\tmessages: readonly AgentMessage[];\n}\n\nfunction workerContextModelIdentity(modelRef: string | undefined): { provider: string; model: string } {\n\tif (!modelRef) throw new Error(\"Worker parent resume model is missing.\");\n\tconst separator = modelRef.indexOf(\"/\");\n\tif (separator <= 0 || separator === modelRef.length - 1) {\n\t\tthrow new Error(\"Worker parent resume model is invalid.\");\n\t}\n\treturn { provider: modelRef.slice(0, separator), model: modelRef.slice(separator + 1) };\n}\n\nexport class WorkerDelegationController {\n\tprivate readonly deps: WorkerDelegationControllerDeps;\n\tprivate readonly workerAbort = new AbortController();\n\tprivate readonly lifecycle: WorkerLifecycle;\n\tprivate profileResolver: WorkerProfileResolver | undefined;\n\tprivate taskProfileStore: SessionTaskProfileStore | undefined;\n\tprivate taskProfileWriter: TaskProfileWriter | undefined;\n\tprivate readonly recovery: WorkerRecoveryCoordinator;\n\tprivate readonly notifications: WorkerNotificationCoordinator;\n\tprivate readonly scheduler: WorkerDispatchScheduler;\n\tprivate readonly laneAbortControllers = new Map<string, AbortController>();\n\tprivate readonly shellSessionKeys = new Set<string>();\n\t/** Sole logical-agent control/mailbox owner; execution only calls its narrow delivery hooks. */\n\tprivate readonly agentControl: WorkerAgentControlCoordinator;\n\tprivate readonly publishedTerminalAttemptIds = new Set<string>();\n\tprivate readonly yieldedCapacityAttemptIds = new Map<string, number>();\n\tprivate readonly yieldedWriteReservations = new Map<string, WorkerWriteReservationWaitYield>();\n\tprivate readonly conversations = new WorkerConversationStore();\n\tprivate readonly contextForks: WorkerContextForkStore;\n\tprivate readonly terminalHandoffs: WorkerTerminalHandoffCoordinator;\n\tprivate readonly treeBudgets = new WorkerTreeBudgetCoordinator();\n\tprivate readonly writeReservations: WorkerWriteReservationCoordinator;\n\tprivate readonly inFlightLedgers = new Map<\n\t\tstring,\n\t\t{\n\t\t\tchangedFiles: Set<string>;\n\t\t\tgetUsage: () => AttemptUsageSnapshot;\n\t\t\trequest: WorkerRequest;\n\t\t\thandle: StartedDelegationAttempt;\n\t\t}\n\t>();\n\n\tconstructor(\n\t\tdeps: WorkerDelegationControllerDeps,\n\t\tnotifications: WorkerNotificationCoordinator,\n\t\tlifecycle: WorkerLifecycle,\n\t) {\n\t\tthis.deps = deps;\n\t\tthis.notifications = notifications;\n\t\tthis.lifecycle = lifecycle;\n\t\tthis.contextForks = new WorkerContextForkStore({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t});\n\t\tthis.scheduler = new WorkerDispatchScheduler({\n\t\t\tagentDir: this.deps.getAgentDir?.() ?? \"\",\n\t\t\tisDisposed: () => this.deps.isDisposed(),\n\t\t\tadmit: (request, record) => this.workerDispatchAdmission(request, record),\n\t\t\tgetRecord: (laneId) => this.getWorkerLifecycle().getRecord(laneId),\n\t\t\trun: (request, record) => this.runOnce(request, undefined, record),\n\t\t\tcancel: (laneId, reasonCode) => this.cancelScheduledWorker(laneId, reasonCode),\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.recovery = new WorkerRecoveryCoordinator({\n\t\t\tlifecycle: this.lifecycle,\n\t\t\tscheduler: this.scheduler,\n\t\t\trecoverWriteReservations: () => this.writeReservations.recoverProvenStale(),\n\t\t\tpublishTerminalRecord: (record) => this.publishTerminalRecord(record),\n\t\t\tpublishTerminalRecords: (records) => this.publishRecoveredTerminalRecords(records),\n\t\t\tdispatchVerification: (recovery) => this.dispatchRecoveredVerification(recovery),\n\t\t\trecoverTaskBearingMailboxTurns: () => this.agentControl.reconcileTaskBearingMailboxTurns(),\n\t\t\trecoverSessionRootReplies: () => this.agentControl.reconcileSessionRootReplies(),\n\t\t\tretryReady: () => {\n\t\t\t\tif (this.deps.isDisposed()) return;\n\t\t\t\tthis.scheduler.drain();\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t\tthis.notifications.statusChanged();\n\t\t\t},\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.agentControl = new WorkerAgentControlCoordinator({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tprocessOwnerId: createLocalWorkerProcessOwnerId(process.pid, randomUUID()),\n\t\t\tconversationStore: this.conversations,\n\t\t\tisControlAvailable: () => this.deps.isDelegateToolActive(),\n\t\t\tgetLifecycle: () => this.getWorkerLifecycle(),\n\t\t\trecoveredRequest: (attempt) => this.recovery.recoveredRequest(attempt),\n\t\t\trun: (request, record) => this.runOnce(request, undefined, record),\n\t\t\tscheduler: this.scheduler,\n\t\t\tstatusChanged: () => {\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t\tthis.notifications.statusChanged();\n\t\t\t},\n\t\t\tgetWorkerClaimSnapshot: (laneId) =>\n\t\t\t\tgetLatestWorkerClaimSnapshot(getActiveSessionBranchEntries(this.deps.getSessionManager()), laneId),\n\t\t\tabortLane: (laneId, reasonCode) => this.laneAbortControllers.get(laneId)?.abort(reasonCode),\n\t\t\tcancelLane: (laneId, reasonCode) => {\n\t\t\t\tthis.scheduler.dropQueued(laneId);\n\t\t\t\tthis.writeReservations.release(laneId);\n\t\t\t\tconst terminal = this.getWorkerLifecycle().cancel(laneId, reasonCode);\n\t\t\t\tif (terminal) this.publishTerminalRecord(terminal);\n\t\t\t\tif (terminal && !this.deps.isDisposed()) this.scheduler.drain();\n\t\t\t\treturn terminal;\n\t\t\t},\n\t\t\ttaskStartHeadroomSkipReason: (agent) => {\n\t\t\t\tconst contract = this.lifecycle.getLatestAgentAttempt(agent.agentId)?.dispatch.executionContract;\n\t\t\t\treturn contract\n\t\t\t\t\t? this.workerProjectionHeadroomSkipReason(contract)\n\t\t\t\t\t: \"orchestration_execution_contract_missing\";\n\t\t\t},\n\t\t\twaitBlockedByCaller: (callerAgentId, targetAgentIds) =>\n\t\t\t\tthis.waitTargetsBlockedByCaller(callerAgentId, targetAgentIds),\n\t\t\tyieldCallerForWait: (callerAgentId) => this.yieldWorkerForWait(callerAgentId),\n\t\t\tsubscribeReservationAvailability: (listener) => this.writeReservations.subscribeAvailability(listener),\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.terminalHandoffs = new WorkerTerminalHandoffCoordinator({\n\t\t\tdeliver: (handoff) => this.deliverTerminalHandoff(handoff),\n\t\t\tonDeliveryError: (handoff, error) => {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff for ${handoff.record.laneId} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t\tthis.agentControl.reconcileSessionRootReplies();\n\t\tthis.writeReservations = new WorkerWriteReservationCoordinator({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tgetCwd: () => this.deps.getCwd(),\n\t\t\tgetParentSessionId: () => this.deps.getSessionId(),\n\t\t\townerId: this.agentControl.getProcessOwnerId(),\n\t\t\tdrainQueuedWorkers: () => {\n\t\t\t\tif (this.deps.isDisposed()) return;\n\t\t\t\tthis.scheduler.drain(true);\n\t\t\t\tthis.agentControl.signalStateChanged();\n\t\t\t},\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t}\n\n\tprivate safeWarn(message: string): void {\n\t\ttry {\n\t\t\tthis.deps.emit({ type: \"warning\", message });\n\t\t} catch {\n\t\t\t// Disposal and recovery diagnostics must never throw.\n\t\t}\n\t}\n\n\tprivate cancelScheduledWorker(laneId: string, reasonCode: string): void {\n\t\ttry {\n\t\t\tthis.writeReservations.release(laneId);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to release worker ${laneId} before cancellation: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t\tlet terminal: LaneRecord | undefined;\n\t\ttry {\n\t\t\tterminal = this.getWorkerLifecycle().cancel(laneId, reasonCode);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to cancel durable worker ${laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t\tif (!terminal) return;\n\t\ttry {\n\t\t\tthis.publishTerminalRecord(terminal);\n\t\t} catch (error) {\n\t\t\t// The durable cancellation is authoritative. Publication remains recoverable from its\n\t\t\t// pending notification and must not make the scheduler requeue a terminal attempt.\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to publish canceled worker ${laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** Narrow model-facing control port. It owns control state; this controller only composes it. */\n\tgetAgentControl(): WorkerAgentControlPort {\n\t\treturn this.agentControl;\n\t}\n\n\t/** The coordinator's process identity is also the durable execution lease owner. */\n\tgetAgentControlProcessOwnerId(): string {\n\t\treturn this.agentControl.getProcessOwnerId();\n\t}\n\n\trecordTerminal(record: LaneRecord): void {\n\t\tif (record.status === \"queued\" || record.status === \"running\") return;\n\t\tif (record.type === \"worker\") {\n\t\t\tconst notification = this.lifecycle.getTerminalNotification(record.laneId);\n\t\t\tif (notification?.status === \"delivered\") return;\n\t\t\tif (notification) {\n\t\t\t\tthis.notifications.recordTerminal(record, notification.notificationId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.notifications.recordTerminal(record);\n\t}\n\n\tgetRecords(): LaneRecord[] {\n\t\tif (this.deps.isDelegateToolActive?.()) this.recovery.recover();\n\t\treturn this.lifecycle.getRecords();\n\t}\n\n\t/** Process-local worker records for the shared terminal notifier; never triggers durable recovery. */\n\tgetLoadedRecords(): LaneRecord[] {\n\t\treturn this.lifecycle.getRecords();\n\t}\n\n\tmarkNotificationsDelivered(notificationIds: readonly string[]): void {\n\t\tthis.lifecycle.markNotificationsDelivered(notificationIds);\n\t}\n\n\tabort(): void {\n\t\tthis.runTeardownStep(\"abort worker execution\", () => this.workerAbort.abort());\n\t\t// Bound attempts have an authoritative transcript and agent identity. A normal owner-session\n\t\t// shutdown is an execution interruption, not an explicit worker cancellation: fence it into\n\t\t// suspended state before the abort continuation can observe the signal.\n\t\tconst suspendedAttemptIds = new Set<string>();\n\t\ttry {\n\t\t\tfor (const attemptId of this.lifecycle.suspendBoundInProcessAttemptsForRestart(\n\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t)) {\n\t\t\t\tsuspendedAttemptIds.add(attemptId);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to persist worker restart suspension during teardown: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tlet records: LaneRecord[] = [];\n\t\ttry {\n\t\t\trecords = this.lifecycle.getRecords();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to inspect durable worker records during teardown: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tfor (const record of records) {\n\t\t\tif (record.status !== \"queued\" && record.status !== \"running\") continue;\n\t\t\tconst ledger = this.inFlightLedgers.get(record.laneId);\n\t\t\tif (ledger && suspendedAttemptIds.has(ledger.handle.attemptId)) {\n\t\t\t\tthis.inFlightLedgers.delete(record.laneId);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!ledger) {\n\t\t\t\ttry {\n\t\t\t\t\tconst canceled = this.lifecycle.cancel(record.laneId, \"session_disposed\");\n\t\t\t\t\tif (canceled) {\n\t\t\t\t\t\tthis.publishTerminalRecord(canceled);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Failed to cancel durable queued worker ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.inFlightLedgers.delete(record.laneId);\n\t\t\ttry {\n\t\t\t\tconst usage = ledger.getUsage();\n\t\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(usage);\n\t\t\t\tconst reportId = `worker:${this.deps.getSessionId()}:${record.laneId}`;\n\t\t\t\tconst claim: WorkerClaim = {\n\t\t\t\t\trequestId: ledger.request.id,\n\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\tsummary: \"canceled on session dispose\",\n\t\t\t\t\tchangedFiles: [...ledger.changedFiles],\n\t\t\t\t\tusageReportId: reportId,\n\t\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t\t};\n\t\t\t\tconst canceled = finalizeWorkerClaim(this.getWorkerLifecycle(), {\n\t\t\t\t\thandle: ledger.handle,\n\t\t\t\t\tclaim,\n\t\t\t\t\taccepted: false,\n\t\t\t\t\tcostUsd: usage.costUsd,\n\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\tinputTokens: usage.inputTokens,\n\t\t\t\t\toutputTokens: usage.outputTokens,\n\t\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\t\twallClockMs: usage.activeWallClockMs,\n\t\t\t\t\ttoolCalls: usage.toolCalls,\n\t\t\t\t\treasonCode: \"session_disposed\",\n\t\t\t\t}).record;\n\t\t\t\tthis.publishTerminalRecord(canceled);\n\t\t\t\t// The terminal result and owner usage report share the same fenced cumulative snapshot.\n\t\t\t\tthis.deps.saveWorkerClaimSnapshot(claim, ledger.request);\n\t\t\t\tif (reportedUsage.cost.total > 0 || reportedUsage.totalTokens > 0) {\n\t\t\t\t\tthis.deps.addSpawnedUsage(reportedUsage, { label: \"worker-delegation\", reportId });\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Failed to persist canceled worker claim ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.inFlightLedgers.clear();\n\n\t\tthis.runTeardownStep(\"cancel queued worker dispatches\", () => this.scheduler.cancelQueued());\n\t\tthis.runTeardownStep(\"dispose worker recovery\", () => this.recovery.dispose());\n\t\tthis.runTeardownStep(\"dispose worker terminal handoffs\", () => this.terminalHandoffs.dispose());\n\t\tthis.runTeardownStep(\"dispose worker write reservations\", () => this.writeReservations.dispose());\n\t\tfor (const shellSessionKey of this.shellSessionKeys) {\n\t\t\tthis.runTeardownStep(`dispose worker shell ${shellSessionKey}`, () =>\n\t\t\t\tdisposePersistentShellSession(shellSessionKey),\n\t\t\t);\n\t\t}\n\t\tthis.shellSessionKeys.clear();\n\t\tthis.runTeardownStep(\"clear worker conversation cache\", () => this.conversations.clearCache());\n\t}\n\n\tprivate runTeardownStep(label: string, step: () => void): void {\n\t\ttry {\n\t\t\tstep();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(`Failed to ${label}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t}\n\t}\n\n\tprivate getWorkerLifecycle(): WorkerLifecycle {\n\t\treturn this.lifecycle;\n\t}\n\n\tprivate getWorkerProfileResolver(): WorkerProfileResolver {\n\t\tif (this.profileResolver) return this.profileResolver;\n\t\tthis.profileResolver = new WorkerProfileResolver({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tgetSettingsManager: () => this.deps.getSettingsManager(),\n\t\t\tgetResourceLoader: () => this.deps.getResourceLoader(),\n\t\t\tgetModelRegistry: () => this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t\tgetTaskProfileStore: () => this.getTaskProfileStore(),\n\t\t\tonDiagnostic: (message) => this.safeWarn(message),\n\t\t});\n\t\treturn this.profileResolver;\n\t}\n\n\tprivate getTaskProfileStore(): SessionTaskProfileStore {\n\t\tthis.taskProfileStore ??= new SessionTaskProfileStore(this.deps.getSessionManager());\n\t\treturn this.taskProfileStore;\n\t}\n\n\tprivate getTaskProfileWriter(): TaskProfileWriter {\n\t\tthis.taskProfileWriter ??= new TaskProfileWriter({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tstore: this.getTaskProfileStore(),\n\t\t\tgetSettingsManager: () => this.deps.getSettingsManager(),\n\t\t\tgetModelRegistry: () => this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (provider, modelId) => {\n\t\t\t\tconst model = this.deps.getModelRegistry().find(provider, modelId);\n\t\t\t\treturn !model || this.deps.isModelExhausted(model);\n\t\t\t},\n\t\t\tgetActiveOrchestrationProfile: () => this.deps.getActiveOrchestrationProfile?.(),\n\t\t});\n\t\treturn this.taskProfileWriter;\n\t}\n\n\t/** Read-only durable worker projection. Undefined means the delegate capability never loaded. */\n\tgetTaskRuntimeSnapshot(): TaskRuntimeProjection | undefined {\n\t\treturn this.lifecycle.getTaskRuntimeSnapshot();\n\t}\n\n\t/** Reconcile the session goal into an already-loaded worker runtime without defeating lazy UAC. */\n\tsynchronizeGoalState(goal: GoalState): void {\n\t\tthis.publishGoalTerminalRecords(this.lifecycle.synchronizeGoalState(goal));\n\t\tif (isGoalExecutionActive(goal.status) && !this.deps.isDisposed()) this.scheduler.drain();\n\t}\n\n\tprivate publishGoalTerminalRecords(records: readonly LaneRecord[]): void {\n\t\tfor (const record of records) {\n\t\t\tthis.scheduler.dropQueued(record.laneId);\n\t\t\tthis.laneAbortControllers.get(record.laneId)?.abort(\"goal_terminal\");\n\t\t\tthis.publishTerminalRecord(record);\n\t\t}\n\t\tif (records.length > 0 && !this.deps.isDisposed()) this.scheduler.drain();\n\t}\n\n\tprivate dispatchRecoveredVerification(\n\t\trecovery: Extract<PendingVerificationRecovery, { action: \"dispatch\" }>,\n\t): WorkerRecoveryDispatchResult {\n\t\tconst legacyImplementation = recovery.verifierExecutionContract\n\t\t\t? undefined\n\t\t\t: this.resolveWorkerAdmission({\n\t\t\t\t\tinstructions: recovery.summary,\n\t\t\t\t\tprofileId: recovery.implementationProfileId,\n\t\t\t\t});\n\t\tconst verifierProfileId =\n\t\t\trecovery.verifierExecutionContract?.worker.profile.profileId ??\n\t\t\t(legacyImplementation?.ok ? legacyImplementation.verifierShipment?.profile.profileId : undefined);\n\t\treturn verifierProfileId\n\t\t\t? this.startInternal(\n\t\t\t\t\tthis.buildVerifierRequest({\n\t\t\t\t\t\tsubjectTaskId: recovery.subjectTaskId,\n\t\t\t\t\t\tverifierProfileId,\n\t\t\t\t\t\tsummary: recovery.summary,\n\t\t\t\t\t\tartifactUris: recovery.artifactUris,\n\t\t\t\t\t}),\n\t\t\t\t\trecovery.verifierExecutionContract,\n\t\t\t\t)\n\t\t\t: { started: false, skipReason: \"independent_verifier_unavailable\" };\n\t}\n\n\tprivate laneCapabilityProfile(model: Model<Api>): ModelCapabilityProfile {\n\t\treturn deriveModelCapabilityProfile({\n\t\t\tcontextWindow: model.contextWindow,\n\t\t\tmode: this.deps.getSettingsManager().getModelCapabilitySettings().mode,\n\t\t});\n\t}\n\n\tgetProfileCatalog(): Array<{ profileId: string; role: string; description: string }> {\n\t\treturn this.getWorkerProfileResolver().catalog();\n\t}\n\n\tinspectTaskProfileOptions(): TaskProfileInspection {\n\t\treturn this.getTaskProfileWriter().inspectTaskProfileOptions();\n\t}\n\n\tcreateTaskProfile(input: TaskProfileCreateInput): TaskProfileCreateResult {\n\t\treturn this.getTaskProfileWriter().createTaskProfile(input);\n\t}\n\n\tprivate resolveWorkerPreset(\n\t\trequest: WorkerDelegationRequest,\n\t\tsettings: ResolvedWorkerDelegationSettings,\n\t): { ok: true; preset: ResolvedWorkerProfilePreset } | { ok: false; skipReason: string } {\n\t\tconst resolved = this.getWorkerProfileResolver().resolvePreset(request, settings.orchestrationProfile);\n\t\treturn resolved.ok ? { ok: true, preset: resolved.resolved } : { ok: false, skipReason: resolved.reason };\n\t}\n\n\tprivate resolveRequiredVerifier(\n\t\tprofile: OrchestrationProfile,\n\t\tmodelPinPolicy: WorkerModelPinPolicy,\n\t): { ok: true; shipment?: ResolvedWorkerProfile } | { ok: false; skipReason: string } {\n\t\tif (!profile.requireIndependentVerification) return { ok: true };\n\t\tconst preset = this.getWorkerProfileResolver().resolveVerifierPreset(profile);\n\t\tif (!preset.ok) return { ok: false, skipReason: `independent_verifier_unavailable:${preset.reason}` };\n\t\tconst modelPin = resolveWorkerModelPin(modelPinPolicy, \"verifier\");\n\t\tconst resolved = this.getWorkerProfileResolver().bindPreset(preset.resolved, modelPin?.binding);\n\t\tif (!resolved.ok) {\n\t\t\tconst reason = modelPin ? \"worker_model_pin_unavailable:verifier\" : resolved.reason;\n\t\t\treturn { ok: false, skipReason: `independent_verifier_unavailable:${reason}` };\n\t\t}\n\t\t// Fresh verifier profiles pass through the same shipment admission owner as fresh workers.\n\t\t// Recovery-pinned verifier contracts bypass this path and preserve their immutable grant.\n\t\tconst admitted = resolveWorkerAuthority({\n\t\t\tbase: resolved.resolved,\n\t\t\t...(modelPin ? { modelPin: modelPin.binding } : {}),\n\t\t\tmodelRegistry: this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t});\n\t\treturn admitted.ok\n\t\t\t? { ok: true, shipment: admitted.shipment }\n\t\t\t: { ok: false, skipReason: `independent_verifier_unavailable:${admitted.reason}` };\n\t}\n\n\t/**\n\t * A descendant may select a different routing profile, but that preset cannot introduce context or\n\t * recursive authority its ancestor never admitted. Pointer ids alone are insufficient authority:\n\t * retain only pointers whose complete immutable metadata matches the ancestral contract, require\n\t * exact soul text, and intersect durable delegation limits.\n\t */\n\tprivate narrowWorkerShipmentContext(\n\t\tshipment: ResolvedWorkerProfile,\n\t\tboundary: WorkerExecutionContract[\"worker\"],\n\t): { ok: true; shipment: ResolvedWorkerProfile } | { ok: false; skipReason: string } {\n\t\tconst boundaryPointers = new Map(boundary.resourcePointers.map((pointer) => [pointer.id, pointer]));\n\t\tconst resourcePointers: ResourcePointer[] = [];\n\t\tfor (const pointer of shipment.resourcePointers) {\n\t\t\tconst inherited = boundaryPointers.get(pointer.id);\n\t\t\tif (!inherited || !isDeepStrictEqual(inherited, pointer)) {\n\t\t\t\treturn { ok: false, skipReason: \"orchestration_context_authority_exceeded\" };\n\t\t\t}\n\t\t\tresourcePointers.push(structuredClone(inherited));\n\t\t}\n\t\tif (shipment.soul !== undefined && shipment.soul !== boundary.soul) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_context_authority_exceeded\" };\n\t\t}\n\t\tconst delegationLimits = intersectWorkerDelegationLimits(\n\t\t\tshipment.profile.delegationLimits,\n\t\t\tboundary.profile.delegationLimits,\n\t\t);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tshipment: {\n\t\t\t\t...shipment,\n\t\t\t\tprofile: {\n\t\t\t\t\t...shipment.profile,\n\t\t\t\t\t...(delegationLimits ? { delegationLimits } : {}),\n\t\t\t\t},\n\t\t\t\tresourcePointers,\n\t\t\t\t...(shipment.soul ? { soul: shipment.soul } : {}),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate hasExactRecursiveCycle(parentAgentId: string, instructions: string, profileId: string): boolean {\n\t\tconst normalizedInstructions = instructions.trim();\n\t\tconst visited = new Set<string>();\n\t\tlet current = this.lifecycle.getAgent(parentAgentId);\n\t\twhile (current) {\n\t\t\tif (visited.has(current.agentId)) return true;\n\t\t\tvisited.add(current.agentId);\n\t\t\tconst attempt = this.lifecycle.getLatestAgentAttempt(current.agentId);\n\t\t\tif (\n\t\t\t\tattempt?.dispatch.instructions.trim() === normalizedInstructions &&\n\t\t\t\tattempt.dispatch.profileId === profileId\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcurrent = current.parentAgentId ? this.lifecycle.getAgent(current.parentAgentId) : undefined;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Reject a new logical identity before creating its task, transcript, agent, or queue entry. */\n\tprivate newWorkerFleetSkipReason(request: WorkerDelegationRequest, requiredAgentSlots = 1): string | undefined {\n\t\tconst parentAttempt = request.parentAgentId\n\t\t\t? this.lifecycle.getLatestAgentAttempt(request.parentAgentId)\n\t\t\t: undefined;\n\t\tconst limits = resolveWorkerFleetLimits(\n\t\t\tparentAttempt?.dispatch.executionContract?.worker.profile.delegationLimits,\n\t\t);\n\t\tconst decision = evaluateNewWorkerAdmission(\n\t\t\tthis.lifecycle.getTaskRuntimeSnapshot().agents,\n\t\t\trequest.parentAgentId,\n\t\t\tlimits,\n\t\t\trequiredAgentSlots,\n\t\t);\n\t\treturn decision.ok ? undefined : decision.reasonCode;\n\t}\n\n\tprivate requiredAgentSlotsForAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t): number {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (request.verificationOfTaskId) pendingVerifierSubjects.delete(request.verificationOfTaskId);\n\t\treturn 1 + pendingVerifierSubjects.size + (admission.verifierShipment ? 1 : 0);\n\t}\n\n\t/** Single admission contract shared by enqueue, scheduler revalidation, and execution. */\n\tprivate resolveWorkerAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): WorkerAdmission {\n\t\tif (this.deps.isDisposed()) return { ok: false, skipReason: \"session_disposed\" };\n\t\tconst instructions = request.instructions.trim();\n\t\tif (!instructions) return { ok: false, skipReason: \"missing_instructions\" };\n\t\tif (!this.deps.isDelegateToolActive()) return { ok: false, skipReason: \"delegate_tool_inactive\" };\n\t\tconst settings = this.deps.getSettingsManager().getWorkerDelegationSettings();\n\t\tif (!settings.enabled) return { ok: false, skipReason: \"worker_delegation_disabled\" };\n\t\tconst modelPinPolicy = pinnedContract\n\t\t\t? ({ status: \"absent\" } as const)\n\t\t\t: this.deps.getSettingsManager().getWorkerModelPinPolicy();\n\t\tif (modelPinPolicy.status === \"invalid\") {\n\t\t\treturn { ok: false, skipReason: \"worker_model_pins_invalid\" };\n\t\t}\n\t\tconst parentAgent = request.parentAgentId ? this.lifecycle.getAgent(request.parentAgentId) : undefined;\n\t\tif (request.parentAgentId && !parentAgent) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_parent_agent_unknown\" };\n\t\t}\n\t\tconst parentAttempt = parentAgent ? this.lifecycle.getLatestAgentAttempt(parentAgent.agentId) : undefined;\n\t\tconst parentContract = parentAttempt?.dispatch.executionContract;\n\t\tif (parentAgent && !parentContract) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_parent_authority_missing\" };\n\t\t}\n\t\tif (pinnedContract && request.profileId && request.profileId !== pinnedContract.worker.profile.profileId) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_execution_contract_mismatch\" };\n\t\t}\n\t\tlet authority = request.authority;\n\t\tif (!pinnedContract && authority) {\n\t\t\ttry {\n\t\t\t\tauthority = parseWorkerDelegationAuthorityRequest(authority);\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tskipReason: `orchestration_authority_invalid:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tlet baseShipment: ResolvedWorkerProfile | undefined;\n\t\tlet basePreset: ResolvedWorkerProfilePreset | undefined;\n\t\tif (pinnedContract) {\n\t\t\tconst pinned = this.getWorkerProfileResolver().resolveContract(pinnedContract.worker);\n\t\t\tif (!pinned.ok) return { ok: false, skipReason: pinned.reason };\n\t\t\tbaseShipment = pinned.resolved;\n\t\t} else if (!request.profileId && parentContract) {\n\t\t\tconst inherited = this.getWorkerProfileResolver().resolveContract(parentContract.worker);\n\t\t\tif (!inherited.ok) return { ok: false, skipReason: inherited.reason };\n\t\t\tbaseShipment = inherited.resolved;\n\t\t} else if (request.profileId || settings.orchestrationProfile) {\n\t\t\tconst configured = this.resolveWorkerPreset(request, settings);\n\t\t\tif (!configured.ok) return configured;\n\t\t\tbasePreset = configured.preset;\n\t\t}\n\t\tconst effectiveRole: WorkerRole =\n\t\t\tauthority?.role ?? baseShipment?.profile.role ?? basePreset?.profile.role ?? \"orchestrator\";\n\t\tconst modelPin = resolveWorkerModelPin(modelPinPolicy, effectiveRole);\n\t\t// The model itself is authority?.model, not `role` — role selects which pin applies, but a\n\t\t// roles-only policy (no `default`) leaves an unlisted role with no pin at all, so a caller\n\t\t// can name that role plus an explicit model and admission never sees anything to enforce.\n\t\t// Not blocked (the owner may intend adaptive roles); recorded so the evasion is observable.\n\t\tconst modelPinBypass: WorkerRole | undefined =\n\t\t\tmodelPinPolicy.status === \"active\" && !modelPin && authority?.model ? effectiveRole : undefined;\n\t\tif (basePreset) {\n\t\t\tconst bound = this.getWorkerProfileResolver().bindPreset(basePreset, modelPin?.binding);\n\t\t\tif (!bound.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tskipReason: modelPin ? `worker_model_pin_unavailable:${effectiveRole}` : bound.reason,\n\t\t\t\t};\n\t\t\t}\n\t\t\tbaseShipment = bound.resolved;\n\t\t}\n\t\tconst adaptive = pinnedContract\n\t\t\t? { ok: true as const, shipment: baseShipment! }\n\t\t\t: resolveWorkerAuthority({\n\t\t\t\t\tauthority,\n\t\t\t\t\t...(baseShipment ? { base: baseShipment } : {}),\n\t\t\t\t\t...(modelPin ? { modelPin: modelPin.binding } : {}),\n\t\t\t\t\t...(this.deps.getModel() ? { foregroundModel: this.deps.getModel() } : {}),\n\t\t\t\t\tmodelRegistry: this.deps.getModelRegistry(),\n\t\t\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t\t\t});\n\t\tif (!adaptive.ok) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\tskipReason:\n\t\t\t\t\tmodelPin && adaptive.reason === \"orchestration_model_unavailable\"\n\t\t\t\t\t\t? `worker_model_pin_unavailable:${effectiveRole}`\n\t\t\t\t\t\t: adaptive.reason,\n\t\t\t};\n\t\t}\n\t\tlet shipment = adaptive.shipment;\n\t\tif (parentContract) {\n\t\t\tconst narrowed = this.narrowWorkerShipmentContext(shipment, parentContract.worker);\n\t\t\tif (!narrowed.ok) return narrowed;\n\t\t\tshipment = narrowed.shipment;\n\t\t}\n\t\tif (parentAgent && this.hasExactRecursiveCycle(parentAgent.agentId, instructions, shipment.profile.profileId)) {\n\t\t\treturn { ok: false, skipReason: \"recursive_delegation_cycle\" };\n\t\t}\n\t\tif (request.verificationOfTaskId && shipment.profile.role !== \"verifier\") {\n\t\t\treturn { ok: false, skipReason: \"verification_profile_role_mismatch\" };\n\t\t}\n\t\tif (!request.verificationOfTaskId && shipment.profile.role === \"verifier\") {\n\t\t\treturn { ok: false, skipReason: \"verifier_profile_requires_runtime_dispatch\" };\n\t\t}\n\t\tlet verifierShipment: ResolvedWorkerProfile | undefined;\n\t\tif (pinnedContract?.verifier) {\n\t\t\tconst verifier = this.getWorkerProfileResolver().resolveContract(pinnedContract.verifier);\n\t\t\tif (!verifier.ok) {\n\t\t\t\treturn { ok: false, skipReason: `independent_verifier_unavailable:${verifier.reason}` };\n\t\t\t}\n\t\t\tverifierShipment = verifier.resolved;\n\t\t} else {\n\t\t\tconst verifier = this.resolveRequiredVerifier(shipment.profile, modelPinPolicy);\n\t\t\tif (!verifier.ok) return verifier;\n\t\t\tverifierShipment = verifier.shipment;\n\t\t}\n\t\tif (verifierShipment && parentContract) {\n\t\t\tconst verifierBoundary = parentContract.verifier ?? parentContract.worker;\n\t\t\tconst narrowed = this.narrowWorkerShipmentContext(verifierShipment, verifierBoundary);\n\t\t\tif (!narrowed.ok) return narrowed;\n\t\t\tverifierShipment = narrowed.shipment;\n\t\t}\n\t\tif (!this.laneCapabilityProfile(shipment.model).backgroundLanesEnabled) {\n\t\t\treturn { ok: false, skipReason: \"model_delegation_unsupported\" };\n\t\t}\n\t\t// The model-facing delegate surface cannot name profile resources. An absent or empty\n\t\t// runtime selection therefore means \"use the owner-admitted profile set\", not \"drop it\".\n\t\t// Non-empty task metadata is an exact narrowing and remains fail-closed for unknown or\n\t\t// duplicate ids before any durable task or provider request is created.\n\t\tconst requestedResourcePointerIds = request.taskContext?.resourcePointerIds ?? [];\n\t\tconst selectedResources = selectWorkerResourcePointers(\n\t\t\tshipment.resourcePointers,\n\t\t\trequestedResourcePointerIds.length > 0\n\t\t\t\t? requestedResourcePointerIds\n\t\t\t\t: shipment.resourcePointers.map((pointer) => pointer.id),\n\t\t);\n\t\tif (!selectedResources.ok) return { ok: false, skipReason: selectedResources.reason };\n\t\tconst currentExecutionPlan = this.buildWorkerExecutionPlan(\n\t\t\tshipment.profile,\n\t\t\tsettings,\n\t\t\tadaptive.requestedReadPaths,\n\t\t\tadaptive.requestedWritePaths,\n\t\t);\n\t\tconst inheritedAuthority = pinnedContract?.worker.authority ?? parentContract?.worker.authority;\n\t\tconst executionPlan = inheritedAuthority\n\t\t\t? narrowWorkerExecutionPlan(inheritedAuthority, currentExecutionPlan)\n\t\t\t: currentExecutionPlan;\n\t\tconst verifierExecutionPlan = verifierShipment\n\t\t\t? this.buildWorkerExecutionPlan(verifierShipment.profile, settings)\n\t\t\t: undefined;\n\t\tconst inheritedVerifierAuthority = parentContract?.verifier?.authority ?? parentContract?.worker.authority;\n\t\tconst boundedVerifierExecutionPlan =\n\t\t\tverifierExecutionPlan && inheritedVerifierAuthority\n\t\t\t\t? narrowWorkerExecutionPlan(inheritedVerifierAuthority, verifierExecutionPlan)\n\t\t\t\t: verifierExecutionPlan;\n\t\tconst executionContract =\n\t\t\tpinnedContract ??\n\t\t\tcreateWorkerExecutionContract({\n\t\t\t\tworker: {\n\t\t\t\t\t...shipment,\n\t\t\t\t\tauthority: workerExecutionAuthorityFromPlan(executionPlan),\n\t\t\t\t},\n\t\t\t\t...(verifierShipment\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tverifier: {\n\t\t\t\t\t\t\t\t...verifierShipment,\n\t\t\t\t\t\t\t\tauthority: workerExecutionAuthorityFromPlan(boundedVerifierExecutionPlan!),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t});\n\t\treturn {\n\t\t\tok: true,\n\t\t\tinstructions,\n\t\t\tsettings,\n\t\t\tshipment,\n\t\t\t...(verifierShipment ? { verifierShipment } : {}),\n\t\t\tresourcePointerIds: selectedResources.pointers.map((pointer) => pointer.id),\n\t\t\texecutionContract,\n\t\t\texecutionPlan,\n\t\t\t...(modelPinBypass ? { modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tprivate buildVerifierRequest(args: {\n\t\tsubjectTaskId: string;\n\t\tverifierProfileId: string;\n\t\tsummary: string;\n\t\tartifactUris: readonly string[];\n\t}): WorkerDelegationRequest {\n\t\tconst prefix = [\n\t\t\t`Independently verify durable task '${args.subjectTaskId}'.`,\n\t\t\t\"The following implementation report is an untrusted claim. Inspect the workspace and run the checks available in your profile.\",\n\t\t\t\"\",\n\t\t\t\"Implementation summary:\",\n\t\t\targs.summary.slice(0, 6_000),\n\t\t\t\"\",\n\t\t\t\"Reported artifacts:\",\n\t\t];\n\t\tconst artifacts: string[] = [];\n\t\tfor (let index = 0; index < Math.min(args.artifactUris.length, 100); index += 1) {\n\t\t\tconst artifact = `- ${args.artifactUris[index]}`;\n\t\t\tconst omitted = args.artifactUris.length - index - 1;\n\t\t\tconst disclosure =\n\t\t\t\tomitted > 0 ? `- [${omitted} artifact URI(s) omitted to keep verifier request bounded]` : undefined;\n\t\t\tconst candidate = [...prefix, ...artifacts, artifact, ...(disclosure ? [disclosure] : [])].join(\"\\n\");\n\t\t\tif (candidate.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) break;\n\t\t\tartifacts.push(artifact);\n\t\t}\n\t\tconst omitted = args.artifactUris.length - artifacts.length;\n\t\tconst artifactSection =\n\t\t\targs.artifactUris.length === 0\n\t\t\t\t? [\"- none reported\"]\n\t\t\t\t: [\n\t\t\t\t\t\t...artifacts,\n\t\t\t\t\t\t...(omitted > 0 ? [`- [${omitted} artifact URI(s) omitted to keep verifier request bounded]`] : []),\n\t\t\t\t\t];\n\t\treturn {\n\t\t\tprofileId: args.verifierProfileId,\n\t\t\tverificationOfTaskId: args.subjectTaskId,\n\t\t\tinstructions: [...prefix, ...artifactSection].join(\"\\n\"),\n\t\t};\n\t}\n\n\tprivate publishTerminalObserversBestEffort(record: LaneRecord): void {\n\t\t// DurableTaskRuntime plus the notification outbox/mailbox own terminal acceptance. The lane\n\t\t// snapshot is a compatibility projection and telemetry is an observer; neither may reopen an\n\t\t// accepted handoff or suppress its in-process publication fence.\n\t\ttry {\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), record);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal snapshot projection failed for ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tthis.deps.emitAutonomyTelemetry({\n\t\t\t\ttype: AUTONOMY_TELEMETRY_EVENT_TYPES.workerTerminal,\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\tpayload: {\n\t\t\t\t\tlaneId: record.laneId,\n\t\t\t\t\tlaneType: record.type,\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\treasonCode: record.reasonCode ?? null,\n\t\t\t\t\tcostUsd: record.costUsd ?? null,\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal telemetry observer failed for ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate deliverTerminalHandoff(handoff: Readonly<WorkerTerminalHandoff>): WorkerTerminalHandoffDelivery {\n\t\tconst delivery = this.agentControl.deliverWorkerTerminalHandoff(handoff);\n\t\tif (!delivery.accepted) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal handoff for ${handoff.record.laneId} was not accepted${delivery.skipReason ? `: ${delivery.skipReason}` : \".\"}`,\n\t\t\t);\n\t\t\treturn \"retained\";\n\t\t}\n\t\tconst notification = this.lifecycle.getTerminalNotification(handoff.record.laneId);\n\t\tif (notification?.status === \"pending\") {\n\t\t\tthis.lifecycle.markNotificationsDelivered([notification.notificationId]);\n\t\t}\n\t\tthis.publishedTerminalAttemptIds.add(handoff.terminalAttemptId);\n\t\tthis.publishTerminalObserversBestEffort(handoff.record);\n\t\ttry {\n\t\t\tthis.notifications.statusChanged();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal status observer failed for ${handoff.record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tthis.agentControl.signalStateChanged();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal state observer failed for ${handoff.record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\treturn \"delivered\";\n\t}\n\n\tprivate publishRecoveredTerminalRecords(records: readonly LaneRecord[]): void {\n\t\tconst handoffs: WorkerTerminalHandoff[] = [];\n\t\tconst directRecords: LaneRecord[] = [];\n\t\tfor (const record of records) {\n\t\t\tthis.recovery.clearScheduledRetry(record.laneId);\n\t\t\tconst attempt = this.lifecycle.getActiveAttempt(record.laneId);\n\t\t\tif (attempt && this.publishedTerminalAttemptIds.has(attempt.attemptId)) continue;\n\t\t\tconst childAgentId = attempt?.agentId ?? attempt?.dispatch.logicalLaneId ?? record.laneId;\n\t\t\tconst parentAgentId = this.lifecycle.getAgent(childAgentId)?.parentAgentId ?? attempt?.dispatch.parentAgentId;\n\t\t\tif (attempt && parentAgentId) {\n\t\t\t\thandoffs.push({\n\t\t\t\t\tterminalAttemptId: attempt.attemptId,\n\t\t\t\t\tparentAgentId,\n\t\t\t\t\tchildAgentId,\n\t\t\t\t\trecord,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdirectRecords.push(record);\n\t\t\t}\n\t\t}\n\t\tif (handoffs.length > 0) {\n\t\t\ttry {\n\t\t\t\tthis.terminalHandoffs.rehydrate(handoffs);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff recovery batch was retained durably but not adopted: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tfor (const record of directRecords) this.publishTerminalRecord(record);\n\t}\n\n\tprivate publishTerminalRecord(record: LaneRecord): void {\n\t\tif (!isLaneTerminalStatus(record.status)) return;\n\t\tthis.recovery.clearScheduledRetry(record.laneId);\n\t\tconst attempt = this.lifecycle.getActiveAttempt(record.laneId);\n\t\tconst attemptId = attempt?.attemptId;\n\t\tif (attemptId && this.publishedTerminalAttemptIds.has(attemptId)) return;\n\t\tconst childAgentId = attempt?.agentId ?? attempt?.dispatch.logicalLaneId ?? record.laneId;\n\t\tconst parentAgentId = this.lifecycle.getAgent(childAgentId)?.parentAgentId ?? attempt?.dispatch.parentAgentId;\n\t\tif (attemptId && parentAgentId) {\n\t\t\ttry {\n\t\t\t\tthis.terminalHandoffs.retain({\n\t\t\t\t\tparentAgentId,\n\t\t\t\t\tchildAgentId,\n\t\t\t\t\tterminalAttemptId: attemptId,\n\t\t\t\t\trecord,\n\t\t\t\t});\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff retention for ${record.laneId} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.recordTerminal(record);\n\t\tif (attemptId) {\n\t\t\tthis.publishedTerminalAttemptIds.add(attemptId);\n\t\t}\n\t\tthis.publishTerminalObserversBestEffort(record);\n\t\tthis.agentControl.signalStateChanged();\n\t}\n\n\t/**\n\t * A pre-execution denial still owns a prepared durable lane. Publish its terminal projection at\n\t * this boundary: immediate callers have no scheduler promise to observe and must not wait for a\n\t * future recovery read to receive the handoff. Repeated late cancellation paths are inert via\n\t * the attempt-id publication fence above.\n\t */\n\tprivate cancelAndPublish(lifecycle: WorkerLifecycle, laneId: string, reasonCode: string): LaneRecord | undefined {\n\t\tconst record = lifecycle.cancel(laneId, reasonCode);\n\t\tif (record) this.publishTerminalRecord(record);\n\t\tif (record && !this.deps.isDisposed()) this.scheduler.drain();\n\t\treturn record;\n\t}\n\n\tprivate hasWorkerCapacity(settings: ResolvedWorkerDelegationSettings): boolean {\n\t\tconst snapshot = this.getWorkerLifecycle().getTaskRuntimeSnapshot();\n\t\tlet yielded = 0;\n\t\tfor (const attemptId of this.yieldedCapacityAttemptIds.keys()) {\n\t\t\tconst status = snapshot.attempts[attemptId]?.status;\n\t\t\tif (status === \"leased\" || status === \"running\") yielded += 1;\n\t\t\telse {\n\t\t\t\tthis.yieldedCapacityAttemptIds.delete(attemptId);\n\t\t\t\tthis.yieldedWriteReservations.delete(attemptId);\n\t\t\t}\n\t\t}\n\t\treturn Math.max(0, this.getWorkerLifecycle().getRunningCount() - yielded) < settings.maxConcurrent;\n\t}\n\n\tprivate waitTargetsBlockedByCaller(callerAgentId: string, targetAgentIds: readonly string[]): string[] {\n\t\tconst caller = this.lifecycle.getAgent(callerAgentId);\n\t\tconst callerAttempt = caller ? this.lifecycle.getLatestAgentAttempt(caller.agentId) : undefined;\n\t\tif (!callerAttempt || (callerAttempt.status !== \"leased\" && callerAttempt.status !== \"running\")) return [];\n\t\tconst blockedAgentIds: string[] = [];\n\t\tfor (const targetAgentId of targetAgentIds) {\n\t\t\tconst target = this.lifecycle.getAgent(targetAgentId);\n\t\t\tconst targetAttempt = target ? this.lifecycle.getLatestAgentAttempt(target.agentId) : undefined;\n\t\t\tif (\n\t\t\t\ttargetAttempt?.status === \"queued\" &&\n\t\t\t\tthis.writeReservations.isBlockedBy(targetAttempt.taskId, callerAttempt.taskId)\n\t\t\t) {\n\t\t\t\tblockedAgentIds.push(targetAgentId);\n\t\t\t}\n\t\t}\n\t\treturn blockedAgentIds;\n\t}\n\n\tprivate yieldWorkerForWait(callerAgentId: string): () => boolean {\n\t\tconst caller = this.lifecycle.getAgent(callerAgentId);\n\t\tif (!caller) return () => true;\n\t\tconst attempt = this.lifecycle.getLatestAgentAttempt(caller.agentId);\n\t\tif (!attempt || (attempt.status !== \"leased\" && attempt.status !== \"running\")) return () => true;\n\t\tconst existingYields = this.yieldedCapacityAttemptIds.get(attempt.attemptId) ?? 0;\n\t\tif (existingYields === 0 && attempt.lease) {\n\t\t\tconst yieldedReservation = this.writeReservations.yieldForWait(\n\t\t\t\tattempt.taskId,\n\t\t\t\tattempt.attemptId,\n\t\t\t\tattempt.lease.fencingToken,\n\t\t\t);\n\t\t\tif (yieldedReservation) this.yieldedWriteReservations.set(attempt.attemptId, yieldedReservation);\n\t\t}\n\t\tthis.yieldedCapacityAttemptIds.set(attempt.attemptId, existingYields + 1);\n\t\tlet restored = false;\n\t\tconst restore = (): boolean => {\n\t\t\tif (restored) return true;\n\t\t\tconst leases = this.yieldedCapacityAttemptIds.get(attempt.attemptId);\n\t\t\tif (leases === undefined) {\n\t\t\t\trestored = true;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (leases > 1) {\n\t\t\t\tthis.yieldedCapacityAttemptIds.set(attempt.attemptId, leases - 1);\n\t\t\t\trestored = true;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// \"blocked\" is the only nonterminal outcome here: the caller is still legitimately\n\t\t\t// yielded and must retry restore() later, so its bookkeeping must survive. Every other\n\t\t\t// exit — granted, no reservation to restore, or \"denied\" below — is terminal and must\n\t\t\t// always release the yield bookkeeping, even when \"denied\" throws. An entry left behind\n\t\t\t// on that throw path permanently over-counts virtual headroom in hasWorkerCapacity()\n\t\t\t// for the rest of this attempt's life, silently admitting maxConcurrent+1 workers.\n\t\t\tlet stillBlocked = false;\n\t\t\ttry {\n\t\t\t\tconst current = this.lifecycle.getLatestAgentAttempt(caller.agentId);\n\t\t\t\tif (\n\t\t\t\t\t!this.deps.isDisposed() &&\n\t\t\t\t\tcurrent?.attemptId === attempt.attemptId &&\n\t\t\t\t\t(current.status === \"leased\" || current.status === \"running\")\n\t\t\t\t) {\n\t\t\t\t\tconst yieldedReservation = this.yieldedWriteReservations.get(attempt.attemptId);\n\t\t\t\t\tif (yieldedReservation) {\n\t\t\t\t\t\tconst reservation = this.writeReservations.restoreAfterWait(yieldedReservation);\n\t\t\t\t\t\tif (reservation.kind === \"blocked\") {\n\t\t\t\t\t\t\tstillBlocked = true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (reservation.kind === \"denied\") {\n\t\t\t\t\t\t\tthis.laneAbortControllers.get(attempt.taskId)?.abort(reservation.reasonCode);\n\t\t\t\t\t\t\tthrow new Error(`Worker wait could not restore its write reservation: ${reservation.reasonCode}.`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!this.deps.isDisposed()) this.scheduler.drain(true);\n\t\t\t\treturn true;\n\t\t\t} finally {\n\t\t\t\tif (!stillBlocked) {\n\t\t\t\t\tthis.yieldedCapacityAttemptIds.delete(attempt.attemptId);\n\t\t\t\t\tthis.yieldedWriteReservations.delete(attempt.attemptId);\n\t\t\t\t\trestored = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\tthis.scheduler.drain(true);\n\t\t} catch (error) {\n\t\t\tif (!restore()) {\n\t\t\t\tthrow new AggregateError(\n\t\t\t\t\t[error],\n\t\t\t\t\t\"Worker wait dispatch failed before its write reservation could be restored.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\treturn restore;\n\t}\n\n\tprivate workerDispatchAdmission(request: WorkerDelegationRequest, record: LaneRecord): WorkerDispatchAdmission {\n\t\tif (this.recovery.deferRetryIfNeeded(record, request)) return { action: \"wait\" };\n\t\tconst lifecycle = this.getWorkerLifecycle();\n\t\tconst attempt = lifecycle.getActiveAttempt(record.laneId);\n\t\tif (!attempt) return { action: \"cancel\", reasonCode: \"orchestration_attempt_missing\" };\n\t\tif (attempt.status === \"queued\" || attempt.status === \"suspended\") {\n\t\t\tconst readiness = lifecycle.getAttemptDispatchReadiness(attempt.attemptId);\n\t\t\tif (readiness.state === \"waiting\") {\n\t\t\t\treturn {\n\t\t\t\t\taction: \"wait\",\n\t\t\t\t\treason: readiness.reasonCode === \"objective_paused\" ? \"objective\" : \"dependencies\",\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (readiness.state === \"blocked\") return { action: \"cancel\", reasonCode: readiness.reasonCode };\n\t\t}\n\t\tconst contract = attempt.dispatch.executionContract;\n\t\tconst admission = this.resolveWorkerAdmission(request, contract);\n\t\tif (!admission.ok) return { action: \"cancel\", reasonCode: admission.skipReason };\n\t\tif (!this.hasWorkerCapacity(admission.settings)) return { action: \"wait\", reason: \"capacity\" };\n\t\tconst reservation = this.writeReservations.acquire(record.laneId, attempt, admission.executionPlan);\n\t\tif (reservation.kind === \"denied\") return { action: \"cancel\", reasonCode: reservation.reasonCode };\n\t\treturn reservation.kind === \"granted\" ? { action: \"start\" } : { action: \"wait\", reason: \"write_reservation\" };\n\t}\n\n\tprivate workerProjectionHeadroomSkipReason(\n\t\tcontract: WorkerExecutionContract,\n\t\tverificationOfTaskId?: string,\n\t): string | undefined {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (verificationOfTaskId) pendingVerifierSubjects.delete(verificationOfTaskId);\n\t\tconst slots = 1 + pendingVerifierSubjects.size + (contract.verifier ? 1 : 0);\n\t\ttry {\n\t\t\tthis.lifecycle.ledger.runtime.assertProjectionHeadroom({ tasks: slots, attempts: slots });\n\t\t\treturn undefined;\n\t\t} catch {\n\t\t\treturn \"orchestration_projection_capacity_exhausted\";\n\t\t}\n\t}\n\n\tprivate workerQueueReservationSkipReason(\n\t\trequest: WorkerDelegationRequest,\n\t\trequestQueueSlots: 0 | 1,\n\t\tunpersistedVerifierSlots: 0 | 1,\n\t): string | undefined {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (request.verificationOfTaskId) pendingVerifierSubjects.delete(request.verificationOfTaskId);\n\t\tconst remainingQueueSlots = DEFAULT_WORKER_FLEET_LIMITS.maxQueuedDispatches - this.scheduler.queuedCount;\n\t\treturn requestQueueSlots + pendingVerifierSubjects.size + unpersistedVerifierSlots > remainingQueueSlots\n\t\t\t? \"worker_dispatch_queue_full\"\n\t\t\t: undefined;\n\t}\n\n\tprivate workerContextParentModel(request: WorkerDelegationRequest): { provider: string; model: string } {\n\t\tif (request.parentAgentId) {\n\t\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\t\tif (!parent) throw new Error(\"Worker parent logical agent is missing.\");\n\t\t\treturn workerContextModelIdentity(parent.resumeContext.modelRef);\n\t\t}\n\t\tconst parent = this.deps.getModel();\n\t\tif (!parent) throw new Error(\"Foreground parent model is missing.\");\n\t\treturn { provider: parent.provider, model: parent.id };\n\t}\n\n\tprivate workerContextForkSource(request: WorkerDelegationRequest): WorkerContextForkSource {\n\t\tconst model = this.workerContextParentModel(request);\n\t\tif (!request.parentAgentId) {\n\t\t\treturn { model, messages: this.deps.getSessionManager().buildSessionContext().messages };\n\t\t}\n\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\tif (!parent) throw new Error(\"Worker parent logical agent is missing.\");\n\t\tconst conversation = this.conversations.open({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tresumeContext: parent.resumeContext,\n\t\t\texpectedLogicalAgentId: parent.agentId,\n\t\t});\n\t\treturn { model, messages: conversation.getProviderContext().messages };\n\t}\n\n\tprivate workerContextForkMode(\n\t\trequest: WorkerDelegationRequest,\n\t\tcontract: WorkerExecutionContract,\n\t): ReturnType<typeof resolveWorkerContextInheritanceMode> {\n\t\tif (request.verificationOfTaskId) return { kind: \"none\" };\n\t\tconst mode = request.forkTurns ?? \"none\";\n\t\treturn resolveWorkerContextInheritanceMode({\n\t\t\tparent: this.workerContextParentModel(request),\n\t\t\tworker: {\n\t\t\t\tprovider: contract.worker.modelBinding.provider,\n\t\t\t\tmodel: contract.worker.modelBinding.modelId,\n\t\t\t},\n\t\t\t...(mode !== undefined ? { mode } : {}),\n\t\t});\n\t}\n\n\tprivate workerTreeAttemptAdmissionSkipReason(request: WorkerDelegationRequest): string | undefined {\n\t\tif (!request.parentAgentId) return undefined;\n\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\tif (!parent) return undefined;\n\t\tconst rootAttempt = this.lifecycle.getLatestAgentAttempt(parent.rootAgentId);\n\t\tconst maxAttempts = rootAttempt?.dispatch.executionContract?.worker.authority.budget.maxAttempts;\n\t\tconst existingAttempts = collectWorkerTreeBudgetSeeds(\n\t\t\tthis.lifecycle.getTaskRuntimeSnapshot(),\n\t\t\tparent.rootAgentId,\n\t\t).length;\n\t\treturn workerTreeCanAdmitAttempt(existingAttempts, maxAttempts)\n\t\t\t? undefined\n\t\t\t: \"worker_tree_attempt_budget_exhausted\";\n\t}\n\n\tprivate workerContextForkAdmissionSkipReason(\n\t\trequest: WorkerDelegationRequest,\n\t\tcontract: WorkerExecutionContract,\n\t): string | undefined {\n\t\ttry {\n\t\t\tthis.workerContextForkMode(request, contract);\n\t\t\treturn undefined;\n\t\t} catch {\n\t\t\treturn \"worker_context_inheritance_denied\";\n\t\t}\n\t}\n\n\tprivate workerGoalDependencySkipReason(request: WorkerDelegationRequest): string | undefined {\n\t\tif (request.verificationOfTaskId) return undefined;\n\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\tif (!goal || !goal.requirements || goal.requirements.length === 0) return undefined;\n\n\t\tconst reqIds = new Set<string>();\n\t\tfor (const id of request.taskContext?.requirementIds ?? []) {\n\t\t\tif (id.trim()) reqIds.add(id.trim());\n\t\t}\n\n\t\tif (reqIds.size === 0 && request.instructions) {\n\t\t\tfor (const req of goal.requirements) {\n\t\t\t\tif (request.instructions.includes(req.id)) {\n\t\t\t\t\treqIds.add(req.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (reqIds.size > 0) {\n\t\t\tfor (const reqId of reqIds) {\n\t\t\t\tconst req = goal.requirements.find((r) => r.id === reqId);\n\t\t\t\tif (req?.dependencies && req.dependencies.length > 0) {\n\t\t\t\t\tconst unsatisfied = req.dependencies.some((depId) => {\n\t\t\t\t\t\tconst dep = goal.requirements.find((r) => r.id === depId);\n\t\t\t\t\t\treturn !dep || dep.status !== \"satisfied\";\n\t\t\t\t\t});\n\t\t\t\t\tif (unsatisfied) return \"goal_dependency_unsatisfied\";\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst openReqs = goal.requirements.filter((r) => r.status === \"open\");\n\t\t\tconst hasOpenReqWithoutUnsatisfiedDeps = openReqs.some((req) => {\n\t\t\t\tif (!req.dependencies || req.dependencies.length === 0) return true;\n\t\t\t\treturn req.dependencies.every((depId) => {\n\t\t\t\t\tconst dep = goal.requirements.find((r) => r.id === depId);\n\t\t\t\t\treturn dep && dep.status === \"satisfied\";\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (openReqs.length > 0 && !hasOpenReqWithoutUnsatisfiedDeps) {\n\t\t\t\treturn \"goal_dependency_unsatisfied\";\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/** One admission owner for every newly generated logical worker identity. */\n\tprivate admitNewWorkerRequest(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): WorkerAdmission {\n\t\tconst goalDependencySkipReason = this.workerGoalDependencySkipReason(request);\n\t\tif (goalDependencySkipReason) return { ok: false, skipReason: goalDependencySkipReason };\n\t\tconst fleetSkipReason = this.newWorkerFleetSkipReason(request);\n\t\tif (fleetSkipReason) return { ok: false, skipReason: fleetSkipReason };\n\t\tconst treeAttemptSkipReason = this.workerTreeAttemptAdmissionSkipReason(request);\n\t\tif (treeAttemptSkipReason) return { ok: false, skipReason: treeAttemptSkipReason };\n\t\tconst admission = this.resolveWorkerAdmission(request, pinnedContract);\n\t\tif (!admission.ok) return admission;\n\t\tconst contextForkSkipReason = this.workerContextForkAdmissionSkipReason(request, admission.executionContract);\n\t\tif (contextForkSkipReason) return { ok: false, skipReason: contextForkSkipReason };\n\t\tif (!request.verificationOfTaskId) this.recovery.recover();\n\t\tconst headroomSkipReason = this.newWorkerFleetSkipReason(\n\t\t\trequest,\n\t\t\tthis.requiredAgentSlotsForAdmission(request, admission),\n\t\t);\n\t\tif (headroomSkipReason) return { ok: false, skipReason: headroomSkipReason };\n\t\tconst projectionHeadroomSkipReason = this.workerProjectionHeadroomSkipReason(\n\t\t\tadmission.executionContract,\n\t\t\trequest.verificationOfTaskId,\n\t\t);\n\t\tif (projectionHeadroomSkipReason) return { ok: false, skipReason: projectionHeadroomSkipReason };\n\t\tconst queueReservationSkipReason = this.workerQueueReservationSkipReason(\n\t\t\trequest,\n\t\t\t0,\n\t\t\tadmission.verifierShipment ? 1 : 0,\n\t\t);\n\t\treturn queueReservationSkipReason ? { ok: false, skipReason: queueReservationSkipReason } : admission;\n\t}\n\n\tprivate durableWorkerContextForkReferences(): WorkerContextForkReference[] {\n\t\tconst references: WorkerContextForkReference[] = [];\n\t\tfor (const attempt of Object.values(this.lifecycle.getTaskRuntimeSnapshot().attempts)) {\n\t\t\tif (attempt.dispatch.birthContextForkReference) {\n\t\t\t\treferences.push(attempt.dispatch.birthContextForkReference);\n\t\t\t}\n\t\t}\n\t\treturn references;\n\t}\n\n\tprivate buildWorkerExecutionPlan(\n\t\tprofile: OrchestrationProfile,\n\t\tsettings: ResolvedWorkerDelegationSettings,\n\t\trequestedReadPaths?: readonly string[],\n\t\trequestedWritePaths?: readonly string[],\n\t): WorkerExecutionPlan {\n\t\treturn buildWorkerExecutionPlan({\n\t\t\tprofile,\n\t\t\tsettings,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tdeniedPaths: getPrivateLaneDeniedPaths(this.deps.getCwd(), this.deps.getAgentDir()),\n\t\t\tforegroundMaxCostUsd: this.deps.getCapabilityEnvelope()?.maxEstimatedUsd,\n\t\t\tmemoryEnabled: this.deps.getSettingsManager().getMemoryRetrievalSettings().enabled,\n\t\t\t...(requestedReadPaths ? { requestedReadPaths } : {}),\n\t\t\t...(requestedWritePaths ? { requestedWritePaths } : {}),\n\t\t});\n\t}\n\n\t/** One durable preparation path for queued, immediate, and recovered execution. */\n\tprivate prepareWorkerAttempt(\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t\texistingRecord?: LaneRecord,\n\t): PreparedWorkerAttempt {\n\t\tconst lifecycle = this.getWorkerLifecycle();\n\t\tif (existingRecord) {\n\t\t\treturn {\n\t\t\t\texecutionPlan: admission.executionPlan,\n\t\t\t\tlifecycle,\n\t\t\t\trecord: existingRecord,\n\t\t\t\tattempt: lifecycle.getActiveAttempt(existingRecord.laneId),\n\t\t\t};\n\t\t}\n\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\tconst mode = this.workerContextForkMode(request, admission.executionContract);\n\t\tconst messages =\n\t\t\tmode.kind === \"none\" ? [] : selectSanitizedContextFork(this.workerContextForkSource(request).messages, mode);\n\t\tfor (let allocation = 0; allocation < DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession; allocation++) {\n\t\t\tconst laneId = lifecycle.getNextAvailableLaneIdCandidate();\n\t\t\tlet proposedReference: WorkerContextForkReference | undefined;\n\t\t\ttry {\n\t\t\t\tconst captured = this.contextForks.captureAndPrepare({\n\t\t\t\t\tlogicalAgentId: laneId,\n\t\t\t\t\tmessages,\n\t\t\t\t\treadDurableReferences: () => this.durableWorkerContextForkReferences(),\n\t\t\t\t\tisLogicalIdentityClaimed: () => {\n\t\t\t\t\t\tconst snapshot = lifecycle.getTaskRuntimeSnapshot();\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tsnapshot.tasks[laneId]?.attemptIds.some(\n\t\t\t\t\t\t\t\t(attemptId) => snapshot.attempts[attemptId] !== undefined,\n\t\t\t\t\t\t\t) ?? false\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tprepare: (birthContextForkReference) => {\n\t\t\t\t\t\tproposedReference = birthContextForkReference;\n\t\t\t\t\t\treturn lifecycle.prepare(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinstructions: admission.instructions,\n\t\t\t\t\t\t\t\t...(request.parentAgentId ? { parentAgentId: request.parentAgentId } : {}),\n\t\t\t\t\t\t\t\tbirthContextForkReference,\n\t\t\t\t\t\t\t\texecutionContract: admission.executionContract,\n\t\t\t\t\t\t\t\trequiredCapabilities: admission.executionPlan.requiredCapabilities,\n\t\t\t\t\t\t\t\t...(request.verificationOfTaskId ? { verificationOfTaskId: request.verificationOfTaskId } : {}),\n\t\t\t\t\t\t\t\ttaskContext: {\n\t\t\t\t\t\t\t\t\trequirementIds: request.taskContext?.requirementIds ?? [],\n\t\t\t\t\t\t\t\t\tdependsOnTaskIds: request.taskContext?.dependsOnTaskIds ?? [],\n\t\t\t\t\t\t\t\t\tacceptanceCriterionIds: request.taskContext?.acceptanceCriterionIds ?? [],\n\t\t\t\t\t\t\t\t\tresourcePointerIds: admission.resourcePointerIds,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...(goal ? { goal } : {}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlaneId,\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn { executionPlan: admission.executionPlan, lifecycle, ...captured.value };\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof WorkerContextForkStoreError && error.code === \"identity_claimed\") continue;\n\t\t\t\tconst snapshot = lifecycle.getTaskRuntimeSnapshot();\n\t\t\t\tconst candidateTask = snapshot.tasks[laneId];\n\t\t\t\tconst candidateAttempts = candidateTask?.attemptIds.map((attemptId) => snapshot.attempts[attemptId]) ?? [];\n\t\t\t\tconst candidateOwnsDurableAttempt = candidateAttempts.some((attempt) => attempt !== undefined);\n\t\t\t\tconst sameRequestReplay = candidateAttempts.some(\n\t\t\t\t\t(attempt) =>\n\t\t\t\t\t\tattempt !== undefined &&\n\t\t\t\t\t\tattempt.dispatch.instructions === admission.instructions &&\n\t\t\t\t\t\tattempt.dispatch.parentAgentId === request.parentAgentId &&\n\t\t\t\t\t\tisDeepStrictEqual(attempt.dispatch.executionContract, admission.executionContract) &&\n\t\t\t\t\t\t(proposedReference === undefined ||\n\t\t\t\t\t\t\tisDeepStrictEqual(attempt.dispatch.birthContextForkReference, proposedReference)),\n\t\t\t\t);\n\t\t\t\tconst corruptSnapshot =\n\t\t\t\t\terror instanceof WorkerContextForkStoreError &&\n\t\t\t\t\t(error.code === \"snapshot_corrupt\" || error.code === \"snapshot_missing\");\n\t\t\t\tconst generatedIdWasConcurrentlyClaimed =\n\t\t\t\t\tcandidateOwnsDurableAttempt && !sameRequestReplay && !corruptSnapshot;\n\t\t\t\tif (!generatedIdWasConcurrentlyClaimed) throw error;\n\t\t\t}\n\t\t}\n\t\tthrow new Error(\"Worker logical-agent allocation retries were exhausted.\");\n\t}\n\n\tprivate enqueuePreparedWorkerAttempt(\n\t\trecord: LaneRecord,\n\t\trequest: WorkerDelegationRequest,\n\t\tprofileId: string,\n\t\tpriority: boolean,\n\t): string | undefined {\n\t\ttry {\n\t\t\tthis.scheduler.enqueue(record, { ...request, profileId }, false, priority);\n\t\t\treturn undefined;\n\t\t} catch (error) {\n\t\t\tconst reasonCode =\n\t\t\t\terror instanceof Error && error.message === \"worker_dispatch_queue_full\"\n\t\t\t\t\t? \"worker_dispatch_queue_full\"\n\t\t\t\t\t: \"worker_dispatch_enqueue_error\";\n\t\t\tthis.cancelAndPublish(this.lifecycle, record.laneId, reasonCode);\n\t\t\tthis.safeWarn(`Worker dispatch enqueue failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn reasonCode;\n\t\t}\n\t}\n\n\tprivate queuePreparedWorkerAttempt(\n\t\tprepared: PreparedWorkerAttempt,\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t\toptions: {\n\t\t\tensureAgent?: boolean;\n\t\t\tdrain?: boolean;\n\t\t\tonStarted?: (record: LaneRecord) => void;\n\t\t} = {},\n\t): QueuedWorkerAttemptOutcome {\n\t\tif (\n\t\t\tthis.workerQueueReservationSkipReason(request, 1, 0) ||\n\t\t\t!this.scheduler.hasQueueCapacity(request.verificationOfTaskId !== undefined)\n\t\t) {\n\t\t\tthis.cancelAndPublish(prepared.lifecycle, prepared.record.laneId, \"worker_dispatch_queue_full\");\n\t\t\treturn { started: false, skipReason: \"worker_dispatch_queue_full\" };\n\t\t}\n\t\tif (options.ensureAgent !== false) {\n\t\t\ttry {\n\t\t\t\tthis.ensurePreparedAgent(prepared, admission);\n\t\t\t} catch (error) {\n\t\t\t\tthis.cancelAndPublish(prepared.lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker conversation setup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t\t}\n\t\t}\n\t\tconst priority = request.verificationOfTaskId !== undefined;\n\t\tconst enqueueSkipReason = this.enqueuePreparedWorkerAttempt(\n\t\t\tprepared.record,\n\t\t\trequest,\n\t\t\tadmission.shipment.profile.profileId,\n\t\t\tpriority,\n\t\t);\n\t\tif (enqueueSkipReason) return { started: false, skipReason: enqueueSkipReason };\n\t\tthis.notifications.statusChanged();\n\t\toptions.onStarted?.(prepared.record);\n\t\tif (options.drain) this.scheduler.drain();\n\t\treturn {\n\t\t\tstarted: true,\n\t\t\trecord: prepared.record,\n\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tprivate ensurePreparedAgent(\n\t\tprepared: PreparedWorkerAttempt,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t): PreparedWorkerAgent {\n\t\tif (!prepared.attempt) throw new Error(\"Prepared worker attempt is missing.\");\n\t\tconst immutableWorker = prepared.attempt.dispatch.executionContract?.worker;\n\t\tif (!immutableWorker) throw new Error(\"Prepared worker execution contract is missing.\");\n\t\tconst agentId = prepared.attempt.agentId ?? prepared.attempt.dispatch.logicalLaneId ?? prepared.record.laneId;\n\t\tconst birthContextForkReference = prepared.attempt.dispatch.birthContextForkReference;\n\t\tconst existing = prepared.lifecycle.getAgent(agentId);\n\t\tif (existing) {\n\t\t\tconst conversation = this.conversations.open({\n\t\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\t\tresumeContext: existing.resumeContext,\n\t\t\t\texpectedLogicalAgentId: existing.agentId,\n\t\t\t});\n\t\t\tif (!isDeepStrictEqual(conversation.getBirthContextForkReference(), birthContextForkReference)) {\n\t\t\t\tthrow new Error(\"Worker conversation birth context conflicts with its durable attempt.\");\n\t\t\t}\n\t\t\tconst materialized = materializeWorkerResourceBundle(existing.resumeContext.contextPointers);\n\t\t\tif (!materialized.ok) throw new Error(`worker_resource_materialization_${materialized.code}`);\n\t\t\treturn {\n\t\t\t\tconversation,\n\t\t\t\tresources: materialized.pointers,\n\t\t\t\tresourceSystemPrompt: materialized.systemPrompt,\n\t\t\t};\n\t\t}\n\t\tconst selected = selectWorkerResourcePointers(immutableWorker.resourcePointers, admission.resourcePointerIds);\n\t\tif (!selected.ok) throw new Error(selected.reason);\n\t\tconst materialized = materializeWorkerResourceBundle(selected.pointers);\n\t\tif (!materialized.ok) throw new Error(`worker_resource_materialization_${materialized.code}`);\n\t\tconst conversation = this.conversations.ensure({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tlogicalAgentId: agentId,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\torchestrationProfileId: immutableWorker.profile.profileId,\n\t\t\tmodelRef: `${immutableWorker.modelBinding.provider}/${immutableWorker.modelBinding.modelId}`,\n\t\t\tresourceProfileNames: immutableWorker.profile.resourceProfileNames,\n\t\t\tcontextPointers: materialized.pointers,\n\t\t\t...(birthContextForkReference ? { birthContextForkReference } : {}),\n\t\t});\n\t\tprepared.lifecycle.ensureAgent({\n\t\t\tagentId,\n\t\t\t...(prepared.attempt.dispatch.parentAgentId ? { parentAgentId: prepared.attempt.dispatch.parentAgentId } : {}),\n\t\t\trole: immutableWorker.profile.role,\n\t\t\tresumeContext: conversation.getResumeContext(),\n\t\t});\n\t\treturn {\n\t\t\tconversation,\n\t\t\tresources: materialized.pointers,\n\t\t\tresourceSystemPrompt: materialized.systemPrompt,\n\t\t};\n\t}\n\n\tstart(\n\t\trequest: WorkerDelegationRequest,\n\t): { started: false; skipReason: string } | { started: true; record: LaneRecord; modelPinBypass?: WorkerRole } {\n\t\treturn this.startInternal(request);\n\t}\n\n\tprivate startInternal(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): { started: false; skipReason: string } | { started: true; record: LaneRecord; modelPinBypass?: WorkerRole } {\n\t\tconst admission = this.admitNewWorkerRequest(request, pinnedContract);\n\t\tif (!admission.ok) return { started: false, skipReason: admission.skipReason };\n\t\tconst { settings, shipment } = admission;\n\n\t\tconst foreground = this.deps.getModel();\n\t\tconst contendsWithLocalForeground =\n\t\t\tforeground !== undefined && isLocalExecutionModel(foreground) && isLocalExecutionModel(shipment.model);\n\t\tconst dependencyGated = (request.taskContext?.dependsOnTaskIds.length ?? 0) > 0;\n\t\tif (dependencyGated || contendsWithLocalForeground || !this.hasWorkerCapacity(settings)) {\n\t\t\t// A mandatory verifier is the continuation of an already admitted implementation, not a\n\t\t\t// new owner request. Reserve its queue admission so a burst of ordinary work cannot strand\n\t\t\t// the subject behind `independent_verification_required` with no terminal handoff.\n\t\t\tconst priority = request.verificationOfTaskId !== undefined;\n\t\t\tif (\n\t\t\t\tthis.workerQueueReservationSkipReason(request, 1, admission.verifierShipment ? 1 : 0) ||\n\t\t\t\t!this.scheduler.hasQueueCapacity(priority)\n\t\t\t) {\n\t\t\t\treturn { started: false, skipReason: \"worker_dispatch_queue_full\" };\n\t\t\t}\n\t\t\tlet prepared: PreparedWorkerAttempt;\n\t\t\ttry {\n\t\t\t\tprepared = this.prepareWorkerAttempt(request, admission);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker dispatch was not persisted: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"orchestration_ledger_error\" };\n\t\t\t}\n\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, {\n\t\t\t\tdrain: dependencyGated,\n\t\t\t});\n\t\t}\n\t\tlet startedRecord: LaneRecord | undefined;\n\t\tconst promise = this.runOnceWithAdmission(\n\t\t\trequest,\n\t\t\t(record) => {\n\t\t\t\tstartedRecord = record;\n\t\t\t},\n\t\t\tundefined,\n\t\t\tadmission,\n\t\t\ttrue,\n\t\t);\n\t\tif (!startedRecord) {\n\t\t\t// Preparation is synchronous up to the first isolated completion await. A promise that\n\t\t\t// rejected before producing a lane is still observed below, so it cannot become unhandled.\n\t\t\tvoid promise.catch(() => undefined);\n\t\t\treturn { started: false, skipReason: \"worker_not_started\" };\n\t\t}\n\t\tthis.scheduler.track(startedRecord.laneId, promise);\n\t\treturn {\n\t\t\tstarted: true,\n\t\t\trecord: startedRecord,\n\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tasync runOnce(\n\t\trequest: WorkerDelegationRequest,\n\t\tonStarted?: (record: LaneRecord) => void,\n\t\texistingRecord?: LaneRecord,\n\t): Promise<WorkerDelegationRunOutcome> {\n\t\treturn this.runOnceWithAdmission(request, onStarted, existingRecord);\n\t}\n\n\tprivate async runOnceWithAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tonStarted?: (record: LaneRecord) => void,\n\t\texistingRecord?: LaneRecord,\n\t\tpreparedAdmission?: Extract<WorkerAdmission, { ok: true }>,\n\t\tnewWorkerAdmissionChecked = false,\n\t): Promise<WorkerDelegationRunOutcome> {\n\t\tconst pinnedContract = existingRecord\n\t\t\t? this.getWorkerLifecycle().getActiveAttempt(existingRecord.laneId)?.dispatch.executionContract\n\t\t\t: undefined;\n\t\tconst admission = existingRecord\n\t\t\t? this.resolveWorkerAdmission(request, pinnedContract)\n\t\t\t: preparedAdmission && newWorkerAdmissionChecked\n\t\t\t\t? preparedAdmission\n\t\t\t\t: this.admitNewWorkerRequest(request, pinnedContract);\n\t\tif (!admission.ok) return { started: false, skipReason: admission.skipReason };\n\t\tif (existingRecord && !request.verificationOfTaskId) this.recovery.recover();\n\t\tconst { instructions, settings, verifierShipment } = admission;\n\t\tconst { model, modelBinding, profile: orchestrationProfile, soul } = admission.shipment;\n\t\tif (!this.hasWorkerCapacity(settings)) {\n\t\t\treturn { started: false, skipReason: \"worker_delegation_already_running\" };\n\t\t}\n\t\tconst laneCapability = this.laneCapabilityProfile(model);\n\t\tconst retentionPolicy = workerConversationRetentionPolicy(model, this.deps.getSettingsManager());\n\t\tconst prepared = this.prepareWorkerAttempt(request, admission, existingRecord);\n\t\tconst { executionPlan, lifecycle } = prepared;\n\t\tif (!prepared.attempt) return { started: false, skipReason: \"orchestration_attempt_missing\" };\n\t\tif (prepared.attempt.status === \"queued\") {\n\t\t\tconst readiness = lifecycle.getAttemptDispatchReadiness(prepared.attempt.attemptId);\n\t\t\tif (readiness.state === \"blocked\") {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, readiness.reasonCode);\n\t\t\t\treturn { started: false, skipReason: readiness.reasonCode };\n\t\t\t}\n\t\t\tif (readiness.state === \"waiting\") {\n\t\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, { onStarted });\n\t\t\t}\n\t\t}\n\t\tlet preparedAgent: PreparedWorkerAgent;\n\t\ttry {\n\t\t\tpreparedAgent = this.ensurePreparedAgent(prepared, admission);\n\t\t} catch (error) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\tthis.safeWarn(`Worker conversation setup failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t}\n\t\tconst durableTask = lifecycle.getTask(prepared.record.laneId);\n\t\tif (!durableTask) return { started: false, skipReason: \"orchestration_task_missing\" };\n\t\tconst immutableWorker = prepared.attempt.dispatch.executionContract?.worker;\n\t\tif (!immutableWorker) return { started: false, skipReason: \"orchestration_execution_contract_missing\" };\n\t\tlet grant: ExecutionGrant;\n\t\tconst workerResourceSystemPrompt = preparedAgent.resourceSystemPrompt;\n\t\tif (prepared.attempt.grant) {\n\t\t\tif (\n\t\t\t\t!this.recovery.durableGrantIsStillPermitted(prepared.attempt.grant, executionPlan, preparedAgent.resources)\n\t\t\t) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"recovered_grant_revoked\");\n\t\t\t\treturn { started: false, skipReason: \"recovered_grant_revoked\" };\n\t\t\t}\n\t\t\tgrant = prepared.attempt.grant;\n\t\t} else {\n\t\t\tconst compiled = compileWorkerExecutionGrant({\n\t\t\t\ttarget: {\n\t\t\t\t\tobjectiveId: durableTask.task.objectiveId,\n\t\t\t\t\ttaskId: prepared.attempt.taskId,\n\t\t\t\t\tattemptId: prepared.attempt.attemptId,\n\t\t\t\t},\n\t\t\t\tprofile: orchestrationProfile,\n\t\t\t\tplan: executionPlan,\n\t\t\t\tresources: preparedAgent.resources,\n\t\t\t});\n\t\t\tif (!compiled.ok) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, compiled.reasonCodes.join(\",\"));\n\t\t\t\treturn { started: false, skipReason: `execution_policy_denied:${compiled.reasonCodes.join(\",\")}` };\n\t\t\t}\n\t\t\tlifecycle.bindGrant(prepared.attempt.attemptId, compiled.grant);\n\t\t\tgrant = compiled.grant;\n\t\t}\n\t\tconst immutableProfile = immutableWorker.profile;\n\t\t// Follow-up tasks deliberately receive unique task ids while retaining the original logical\n\t\t// agent id in dispatch metadata. Never derive a new agent identity from a follow-up task id.\n\t\tconst agentId = prepared.attempt.agentId ?? prepared.attempt.dispatch.logicalLaneId ?? prepared.record.laneId;\n\t\tconst registeredAgent = lifecycle.getAgent(agentId);\n\t\tif (prepared.attempt.agentId && !registeredAgent) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"orchestration_agent_missing\");\n\t\t\treturn { started: false, skipReason: \"orchestration_agent_missing\" };\n\t\t}\n\t\tconst conversation = preparedAgent.conversation;\n\t\tif (prepared.attempt.status === \"queued\" || conversation.usesAttemptUsageBoundaries()) {\n\t\t\ttry {\n\t\t\t\tconversation.beginAttemptUsage(prepared.attempt.attemptId);\n\t\t\t} catch (error) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker usage boundary setup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t\t}\n\t\t}\n\t\tif (prepared.attempt.status === \"suspended\") this.recovery.repairInterruptedToolResults(conversation);\n\t\tconst reservation = this.writeReservations.acquire(prepared.record.laneId, prepared.attempt, executionPlan);\n\t\tif (reservation.kind === \"denied\") {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, reservation.reasonCode);\n\t\t\treturn { started: false, skipReason: reservation.reasonCode };\n\t\t}\n\t\tif (reservation.kind === \"blocked\") {\n\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, {\n\t\t\t\tensureAgent: false,\n\t\t\t\tonStarted,\n\t\t\t});\n\t\t}\n\t\tlet durableHandle: StartedDelegationAttempt;\n\t\ttry {\n\t\t\tdurableHandle =\n\t\t\t\tregisteredAgent && prepared.attempt.status === \"suspended\"\n\t\t\t\t\t? lifecycle.resumeAgent(\n\t\t\t\t\t\t\tprepared.record.laneId,\n\t\t\t\t\t\t\tregisteredAgent.agentId,\n\t\t\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t\t\t\t)\n\t\t\t\t\t: lifecycle.startAgent(\n\t\t\t\t\t\t\tprepared.record.laneId,\n\t\t\t\t\t\t\tagentId,\n\t\t\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t\t\t\t);\n\t\t} catch (error) {\n\t\t\tthis.writeReservations.release(prepared.record.laneId);\n\t\t\tif (prepared.attempt.status !== \"suspended\")\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_start_unavailable\");\n\t\t\tthis.safeWarn(`Worker start failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn { started: false, skipReason: \"worker_start_unavailable\" };\n\t\t}\n\t\tconst startedRecord = lifecycle.getRecord(prepared.record.laneId);\n\t\tif (!startedRecord) {\n\t\t\tthis.writeReservations.release(prepared.record.laneId);\n\t\t\treturn { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\t}\n\t\tif (\n\t\t\tthis.writeReservations.hasFenceMismatch(\n\t\t\t\tstartedRecord.laneId,\n\t\t\t\tdurableHandle.attemptId,\n\t\t\t\tdurableHandle.fencingToken,\n\t\t\t)\n\t\t) {\n\t\t\tthis.writeReservations.release(startedRecord.laneId);\n\t\t\tconst record = this.cancelAndPublish(lifecycle, startedRecord.laneId, \"write_reservation_fence_mismatch\");\n\t\t\tthis.safeWarn(\"Worker write reservation fence did not match the durable attempt lease.\");\n\t\t\treturn { started: false, skipReason: record?.reasonCode ?? \"write_reservation_fence_mismatch\" };\n\t\t}\n\t\tconst recoveredTerminal =\n\t\t\tprepared.attempt.status === \"suspended\"\n\t\t\t\t? this.recovery.recoveredTerminalCompletion(conversation, durableHandle.attemptId)\n\t\t\t\t: undefined;\n\t\tconst checkpointUsage = lifecycle.getAttemptUsage(startedRecord.laneId);\n\t\tconst initialUsage = this.recovery.initialUsage(conversation, checkpointUsage, durableHandle.attemptId);\n\t\tonStarted?.(startedRecord);\n\t\tconst maxUsd = grant.budget.maxCostUsd;\n\t\tconst executionPolicy = orchestrationProfile.executionPolicy;\n\t\tconst recursiveDelegateTool = wrapToolDefinition(\n\t\t\tcreateDelegateToolDefinition({\n\t\t\t\tstartWorkerDelegation: (childRequest) => this.start({ ...childRequest, parentAgentId: agentId }),\n\t\t\t\trunWorkerDelegation: (childRequest) => this.runOnce({ ...childRequest, parentAgentId: agentId }),\n\t\t\t\torchestrationProfiles: this.getProfileCatalog(),\n\t\t\t\tworkerModelPinPolicy: this.deps.getSettingsManager().getWorkerModelPinPolicy(),\n\t\t\t\tworkerAgentControl: this.agentControl,\n\t\t\t\tcaller: { kind: \"worker\", agentId },\n\t\t\t\twarn: (message) => this.safeWarn(message),\n\t\t\t\tresolveMessageReplayScope: () => ({\n\t\t\t\t\tsessionId: this.deps.getSessionId(),\n\t\t\t\t\tbranchId: durableHandle.attemptId,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t\tconst agentBinding = lifecycle.getAgent(agentId);\n\t\tif (!agentBinding) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"orchestration_agent_missing\");\n\t\t\treturn { started: false, skipReason: \"orchestration_agent_missing\" };\n\t\t}\n\t\tconst rootAttempt = lifecycle.getLatestAgentAttempt(agentBinding.rootAgentId);\n\t\tconst rootBudget = rootAttempt?.dispatch.executionContract?.worker.authority.budget ?? grant.budget;\n\t\tconst sharedBudget = this.treeBudgets.createPort({\n\t\t\trootAgentId: agentBinding.rootAgentId,\n\t\t\tattemptId: durableHandle.attemptId,\n\t\t\tbudget: rootBudget,\n\t\t\tseeds: collectWorkerTreeBudgetSeeds(lifecycle.getTaskRuntimeSnapshot(), agentBinding.rootAgentId),\n\t\t\tinitialUsage,\n\t\t});\n\t\tconst shellGranted = executionPlan.toolManifests.some((manifest) => manifest.toolName === STABLE_SHELL_TOOL_NAME);\n\t\tconst shellSessionKey = shellGranted ? `worker:${this.deps.getSessionId()}:${agentId}` : undefined;\n\t\tconst shellOutputDirectory = shellGranted\n\t\t\t? getProcessWorkRun(this.deps.getAgentDir(), \"outputs\", \"tool-streams\").path\n\t\t\t: undefined;\n\t\tif (shellSessionKey) this.shellSessionKeys.add(shellSessionKey);\n\t\tconst toolSurface = createLaneToolSurface({\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\treadMemory: executionPlan.readMemory ? (query) => this.deps.readMemoryForLane(query) : undefined,\n\t\t\twriteEnabled: executionPlan.writeEnabled,\n\t\t\twritePaths: executionPlan.writePaths,\n\t\t\t...(executionPlan.processEnabled && executionPolicy ? { executionPolicy } : {}),\n\t\t\tprocessMaxWallClockMs: grant.budget.maxWallClockMs ?? 0,\n\t\t\t...(shellSessionKey ? { shellSessionKey } : {}),\n\t\t\t...(shellOutputDirectory ? { shellOutputDirectory } : {}),\n\t\t\tgrant,\n\t\t\ttoolManifests: executionPlan.toolManifests,\n\t\t\tadditionalTools: [recursiveDelegateTool],\n\t\t\tinitialUsage,\n\t\t\tsharedBudget,\n\t\t});\n\t\tconst writeGranted =\n\t\t\texecutionPlan.writeEnabled &&\n\t\t\ttoolSurface.gateway !== undefined &&\n\t\t\ttoolSurface.allowedTools.some((name) => name === \"write\" || name === \"edit\");\n\t\tconst workerRequest: WorkerRequest = {\n\t\t\tid: startedRecord.laneId,\n\t\t\tinstructions,\n\t\t\troute: {\n\t\t\t\ttier: \"cheap\",\n\t\t\t\trisk: writeGranted ? \"scoped-write\" : \"read-only\",\n\t\t\t\tconfidence: 1,\n\t\t\t\treasonCode: \"profile_worker\",\n\t\t\t\treasons: [writeGranted ? \"Path-scoped worker delegation\" : \"Read-only worker delegation\"],\n\t\t\t},\n\t\t\tenvelope: {\n\t\t\t\tid: `worker-${this.deps.getSessionId()}-${startedRecord.laneId}`,\n\t\t\t\tprofileId: orchestrationProfile.profileId,\n\t\t\t\t// filesystem.write requires BOTH the opt-in AND an explicit non-empty path scope —\n\t\t\t\t// an unscoped write grant is refused here, not discovered at validation time.\n\t\t\t\tcapabilities: [...grant.capabilities],\n\t\t\t\t...(writeGranted ? { allowedPaths: [...grant.writePaths] } : {}),\n\t\t\t\tdeniedPaths: [...grant.deniedPaths],\n\t\t\t\tallowedTools: [...toolSurface.allowedTools],\n\t\t\t\tdeniedTools: [...toolSurface.deniedTools],\n\t\t\t\t...(maxUsd !== undefined ? { maxEstimatedUsd: maxUsd } : {}),\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t},\n\t\t\t...(maxUsd !== undefined ? { maxEstimatedUsd: maxUsd } : {}),\n\t\t\tcreatedAt: new Date().toISOString(),\n\t\t};\n\t\t// Worker delegation START. Routing/scope codes + budget only — never the instructions text.\n\t\tthis.deps.emitAutonomyTelemetry({\n\t\t\ttype: AUTONOMY_TELEMETRY_EVENT_TYPES.workerRequest,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tpayload: {\n\t\t\t\tid: workerRequest.id,\n\t\t\t\ttier: workerRequest.route.tier,\n\t\t\t\tcapabilities: [...workerRequest.envelope.capabilities],\n\t\t\t\tmaxEstimatedUsd: workerRequest.maxEstimatedUsd ?? null,\n\t\t\t},\n\t\t});\n\t\tconst usageReportId = `worker:${this.deps.getSessionId()}:${startedRecord.laneId}`;\n\t\tconst laneAbortController = new AbortController();\n\t\tthis.laneAbortControllers.set(startedRecord.laneId, laneAbortController);\n\t\tconst workerSignal = AbortSignal.any([this.workerAbort.signal, laneAbortController.signal]);\n\t\t// Fenced to the exact attemptId/leaseId/fencingToken captured here, at heartbeat start —\n\t\t// never re-resolved by laneId. `lifecycle.renewLease(laneId, ...)` looks up whatever attempt\n\t\t// is CURRENTLY active for that lane, so a heartbeat left running past its own attempt's life\n\t\t// (e.g. after a retry replaced it under a fresh fence) would trivially \"renew\" a lease it\n\t\t// does not own, defeating lease expiry as the abandonment signal for the attempt that\n\t\t// actually owns it.\n\t\tconst heartbeatAttemptId = durableHandle.attemptId;\n\t\tconst heartbeatLeaseId = durableHandle.leaseId;\n\t\tconst heartbeatFencingToken = durableHandle.fencingToken;\n\t\tconst leaseHeartbeat = new WorkerLeaseHeartbeat({\n\t\t\tleaseTtlMs: immutableProfile.leaseTtlMs,\n\t\t\trenew: () => {\n\t\t\t\tlifecycle.ledger.runtime.renewAttemptLease(\n\t\t\t\t\theartbeatAttemptId,\n\t\t\t\t\theartbeatLeaseId,\n\t\t\t\t\theartbeatFencingToken,\n\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t);\n\t\t\t},\n\t\t\tonFailure: (error) => {\n\t\t\t\tthis.safeWarn(`Worker ${startedRecord.laneId} lease renewal failed: ${error.message}`);\n\t\t\t\tlaneAbortController.abort(error);\n\t\t\t},\n\t\t});\n\n\t\t// Registered for the lane's full run so the reload gate waits it out; deregistered in the\n\t\t// finally below no matter how this lane terminates (success, disposal, or a thrown error).\n\t\t// registerInFlightWork is a pure sync map op (cannot throw), so placing it as the last\n\t\t// statement before `try` still guarantees the matching finally always runs.\n\t\tconst deregisterInFlight = registerInFlightWork(\n\t\t\tthis.deps.getAgentDir(),\n\t\t\t\"lane\",\n\t\t\t`worker:${startedRecord.laneId}`,\n\t\t);\n\t\tconst executor = createWorkerAttemptExecutor({\n\t\t\trequest: workerRequest,\n\t\t\tgrant,\n\t\t\texecutionPlan,\n\t\t\ttoolSurface,\n\t\t\tconversation,\n\t\t\tlifecycle,\n\t\t\tlaneId: startedRecord.laneId,\n\t\t\tagentId,\n\t\t\tdurableHandle,\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tmodel,\n\t\t\tthinkingLevel: modelBinding.thinkingLevel,\n\t\t\tlaneCapability,\n\t\t\t...(soul ? { soul } : {}),\n\t\t\tworkerResourceSystemPrompt,\n\t\t\tinitialUsage,\n\t\t\thasPersistedUsageCheckpoint: checkpointUsage !== undefined,\n\t\t\tusageReportId,\n\t\t\tprocessCapable: executionPlan.processEnabled,\n\t\t\t...(request.verificationOfTaskId ? { verificationSubjectTaskId: request.verificationOfTaskId } : {}),\n\t\t\t...(recoveredTerminal ? { recoveredTerminal } : {}),\n\t\t\t...(retentionPolicy ? { retentionPolicy } : {}),\n\t\t\tsignal: workerSignal,\n\t\t\trunIsolatedCompletion: (options) => this.deps.runIsolatedCompletion(options),\n\t\t\tagentControl: this.agentControl,\n\t\t\tapplyActions: workerRequest.envelope.capabilities.includes(\"filesystem.write\")\n\t\t\t\t? (actions, actionJournal) =>\n\t\t\t\t\t\tapplyWorkerActions({\n\t\t\t\t\t\t\tactions,\n\t\t\t\t\t\t\tgateway: toolSurface.gateway!,\n\t\t\t\t\t\t\ttoolManifests: executionPlan.toolManifests,\n\t\t\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\t\t\t...(actionJournal ? { actionJournal } : {}),\n\t\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\ttry {\n\t\t\t// Register before the first execution await: disposal sees the live mutable ledger.\n\t\t\tthis.inFlightLedgers.set(startedRecord.laneId, {\n\t\t\t\tchangedFiles: executor.ledger.changedFiles,\n\t\t\t\tgetUsage: executor.ledger.getUsage,\n\t\t\t\trequest: workerRequest,\n\t\t\t\thandle: durableHandle,\n\t\t\t});\n\t\t\tleaseHeartbeat.start();\n\t\t\tconst executionResult = await executor.run();\n\t\t\t// Stop the instant the run returns, before any post-run finalization (finalizeWorkerClaim,\n\t\t\t// verifier dispatch, handoff persistence —~190 lines) can run: a tick landing in that\n\t\t\t// window renews an attempt that has already reached a terminal status, throws, and would\n\t\t\t// otherwise abort a lane whose work already succeeded. The `finally` below still calls\n\t\t\t// stop() too (idempotent) to cover every other exit path (thrown errors, early returns).\n\t\t\tleaseHeartbeat.stop();\n\t\t\tleaseHeartbeat.assertHealthy();\n\t\t\tconst rawOutcome = executionResult.rawOutcome;\n\t\t\t// Attempt ladder: a retryable bounded failure suspends and re-enqueues instead of\n\t\t\t// terminalizing, resuming from the persisted transcript under a fresh fence.\n\t\t\tif (rawOutcome.laneStatus === \"failed\" && !this.deps.isDisposed() && !workerSignal.aborted) {\n\t\t\t\tconst retry = this.recovery.scheduleAttemptRetry({\n\t\t\t\t\tlaneId: startedRecord.laneId,\n\t\t\t\t\tagentId,\n\t\t\t\t\townerId: this.agentControl.getProcessOwnerId(),\n\t\t\t\t\trequest: { ...request, profileId: admission.shipment.profile.profileId },\n\t\t\t\t\toutcome: rawOutcome,\n\t\t\t\t\tprovider: modelBinding.provider,\n\t\t\t\t\t...(grant.budget.maxAttempts !== undefined ? { maxAttempts: grant.budget.maxAttempts } : {}),\n\t\t\t\t});\n\t\t\t\tif (retry.scheduled) {\n\t\t\t\t\tthis.notifications.statusChanged();\n\t\t\t\t\treturn { started: true, record: retry.record };\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst verificationRequired =\n\t\t\t\torchestrationProfile.requireIndependentVerification &&\n\t\t\t\torchestrationProfile.role !== \"verifier\" &&\n\t\t\t\trawOutcome.claim.status === \"completed\";\n\t\t\tconst outcome: WorkerRunOutcome = {\n\t\t\t\t...(verificationRequired\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...rawOutcome,\n\t\t\t\t\t\t\taccepted: false,\n\t\t\t\t\t\t\treasonCode: \"independent_verification_required\",\n\t\t\t\t\t\t\tacceptance: {\n\t\t\t\t\t\t\t\toutcome: \"ask-user\" as const,\n\t\t\t\t\t\t\t\tgate: \"independent_verification\",\n\t\t\t\t\t\t\t\treasonCode: \"independent_verification_required\",\n\t\t\t\t\t\t\t\tmessage: \"The owner-authored profile requires an independent verifier before acceptance.\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclaim: {\n\t\t\t\t\t\t\t\t...rawOutcome.claim,\n\t\t\t\t\t\t\t\tparentReviewRequired: true,\n\t\t\t\t\t\t\t\tblockers: [\n\t\t\t\t\t\t\t\t\t...(rawOutcome.claim.blockers ?? []),\n\t\t\t\t\t\t\t\t\t\"independent verification is required before acceptance\",\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: rawOutcome),\n\t\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t\t};\n\n\t\t\t// Never persist against a disposed session. When disposal raced this\n\t\t\t// await, `abortInFlightLanes()`'s synchronous cutoff already completed this lane, persisted\n\t\t\t// its durable lane record + bounded WorkerClaim, and consumed (deleted) the ledger —\n\t\t\t// `.complete()` below is then a no-op (the lane is already terminal, so it returns\n\t\t\t// undefined) and no double persistence or duplicate terminal notification can happen here.\n\t\t\tif (this.deps.isDisposed()) {\n\t\t\t\tconst record = lifecycle.getRecord(startedRecord.laneId);\n\t\t\t\treturn { started: true, record, outcome };\n\t\t\t}\n\n\t\t\tconst verificationSubject = request.verificationOfTaskId\n\t\t\t\t? lifecycle.getTask(request.verificationOfTaskId)\n\t\t\t\t: undefined;\n\t\t\tconst finalUsage = executionResult.usage;\n\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(finalUsage);\n\t\t\tlet record = finalizeWorkerClaim(lifecycle, {\n\t\t\t\thandle: durableHandle,\n\t\t\t\tclaim: outcome.claim,\n\t\t\t\taccepted: outcome.accepted,\n\t\t\t\tcostUsd: finalUsage.costUsd,\n\t\t\t\treasonCode: outcome.reasonCode,\n\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\tinputTokens: finalUsage.inputTokens,\n\t\t\t\toutputTokens: finalUsage.outputTokens,\n\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\twallClockMs: finalUsage.activeWallClockMs,\n\t\t\t\ttoolCalls: finalUsage.toolCalls,\n\t\t\t\tverificationRequired,\n\t\t\t\tverificationCriterionIds: verificationSubject?.task.acceptanceCriterionIds,\n\t\t\t\tnotify: !verificationRequired,\n\t\t\t}).record;\n\t\t\ttry {\n\t\t\t\tthis.deps.saveWorkerClaimSnapshot(outcome.claim, workerRequest);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Failed to persist worker claim ${startedRecord.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (reportedUsage.cost.total > 0 || reportedUsage.totalTokens > 0) {\n\t\t\t\tthis.deps.addSpawnedUsage(reportedUsage, { label: \"worker-delegation\", reportId: usageReportId });\n\t\t\t}\n\n\t\t\tconst terminalRecords: LaneRecord[] = [record];\n\t\t\tif (request.verificationOfTaskId) {\n\t\t\t\tconst decision = outcome.accepted ? outcome.claim.verification : undefined;\n\t\t\t\tconst subject = lifecycle.reconcileVerification({\n\t\t\t\t\tsubjectTaskId: request.verificationOfTaskId,\n\t\t\t\t\tverifierTaskId: startedRecord.laneId,\n\t\t\t\t\tverifierAttemptId: durableHandle.attemptId,\n\t\t\t\t\tverdict: decision?.verdict ?? \"inconclusive\",\n\t\t\t\t\treasonCode: decision\n\t\t\t\t\t\t? decision.verdict === \"accepted\"\n\t\t\t\t\t\t\t? \"independent_verification_accepted\"\n\t\t\t\t\t\t\t: `independent_verification_rejected:${decision.reasonCodes.join(\",\")}`\n\t\t\t\t\t\t: `independent_verification_inconclusive:${outcome.reasonCode}`,\n\t\t\t\t});\n\t\t\t\tterminalRecords.push(subject);\n\t\t\t} else if (verificationRequired) {\n\t\t\t\tconst verifierStart = verifierShipment\n\t\t\t\t\t? this.startInternal(\n\t\t\t\t\t\t\tthis.buildVerifierRequest({\n\t\t\t\t\t\t\t\tsubjectTaskId: startedRecord.laneId,\n\t\t\t\t\t\t\t\tverifierProfileId: verifierShipment.profile.profileId,\n\t\t\t\t\t\t\t\tsummary: rawOutcome.claim.summary,\n\t\t\t\t\t\t\t\tartifactUris: rawOutcome.claim.changedFiles,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tverifierWorkerExecutionContract(admission.executionContract),\n\t\t\t\t\t\t)\n\t\t\t\t\t: { started: false as const, skipReason: \"independent_verifier_unavailable\" };\n\t\t\t\tif (verifierStart.started) {\n\t\t\t\t\t// The durable verifier dispatch is now the terminal-work owner. The subject remains\n\t\t\t\t\t// blocked and emits no compatibility terminal snapshot until reconciliation.\n\t\t\t\t\tterminalRecords.length = 0;\n\t\t\t\t\tthis.scheduler.drain();\n\t\t\t\t} else {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Independent verifier for ${startedRecord.laneId} did not start: ${verifierStart.skipReason}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// parent_review_required is a parent-agent verdict via terminal handoff, not an owner UI interrupt.\n\t\t\tfor (const terminalRecord of terminalRecords) {\n\t\t\t\tthis.publishTerminalRecord(terminalRecord);\n\t\t\t}\n\t\t\tif (request.verificationOfTaskId) {\n\t\t\t\trecord = lifecycle.getRecord(startedRecord.laneId) ?? record;\n\t\t\t}\n\t\t\treturn { started: true, record, outcome };\n\t\t} catch (error) {\n\t\t\tconst durableState = lifecycle.ledger.runtime.getSnapshot().attempts[durableHandle.attemptId];\n\t\t\tif (durableState?.status === \"suspended\") {\n\t\t\t\t// Disposal/reload fences agent-bound work before its aborted completion unwinds. Do not\n\t\t\t\t// convert that resumable interruption into a terminal claim or cancellation.\n\t\t\t\treturn { started: true, record: lifecycle.getRecord(startedRecord.laneId) };\n\t\t\t}\n\t\t\tif (durableState?.status === \"cancelled\" && (laneAbortController.signal.aborted || this.deps.isDisposed())) {\n\t\t\t\treturn { started: true, record: lifecycle.getRecord(startedRecord.laneId) };\n\t\t\t}\n\t\t\tif (durableState?.status === \"running\" || durableState?.status === \"leased\") {\n\t\t\t\tconst failureClaim: WorkerClaim = {\n\t\t\t\t\trequestId: startedRecord.laneId,\n\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\tsummary: `Worker delegation failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\tchangedFiles: [],\n\t\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst failureUsage = executor.checkpointUsage(\n\t\t\t\t\t\t\"Persisted cumulative usage while recording worker failure.\",\n\t\t\t\t\t);\n\t\t\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(failureUsage);\n\t\t\t\t\tfinalizeWorkerClaim(lifecycle, {\n\t\t\t\t\t\thandle: durableHandle,\n\t\t\t\t\t\tclaim: failureClaim,\n\t\t\t\t\t\taccepted: false,\n\t\t\t\t\t\tcostUsd: failureUsage.costUsd,\n\t\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\t\tinputTokens: failureUsage.inputTokens,\n\t\t\t\t\t\toutputTokens: failureUsage.outputTokens,\n\t\t\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\t\t\twallClockMs: failureUsage.activeWallClockMs,\n\t\t\t\t\t\ttoolCalls: failureUsage.toolCalls,\n\t\t\t\t\t\treasonCode: \"worker_delegation_error\",\n\t\t\t\t\t});\n\t\t\t\t} catch (persistError) {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Failed to persist durable worker failure ${startedRecord.laneId}: ${persistError instanceof Error ? persistError.message : String(persistError)}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet record = lifecycle.getRecord(startedRecord.laneId);\n\t\t\tif (record?.status === \"queued\" || record?.status === \"running\") {\n\t\t\t\trecord = this.cancelAndPublish(lifecycle, startedRecord.laneId, \"worker_delegation_error\");\n\t\t\t}\n\t\t\tif (record && !this.deps.isDisposed()) this.publishTerminalRecord(record);\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthis.deps.emit({ type: \"warning\", message: `Worker delegation failed: ${message}` });\n\t\t\treturn { started: true, record };\n\t\t} finally {\n\t\t\tleaseHeartbeat.stop();\n\t\t\tthis.writeReservations.release(startedRecord.laneId, durableHandle.attemptId, durableHandle.fencingToken);\n\t\t\tthis.yieldedCapacityAttemptIds.delete(durableHandle.attemptId);\n\t\t\tthis.yieldedWriteReservations.delete(durableHandle.attemptId);\n\t\t\tthis.inFlightLedgers.delete(startedRecord.laneId);\n\t\t\tthis.laneAbortControllers.delete(startedRecord.laneId);\n\t\t\ttry {\n\t\t\t\tawait toolSurface.dispose();\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker mutation payload cleanup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.agentControl.signalStateChanged();\n\t\t\tderegisterInFlight();\n\t\t\tif (!this.deps.isDisposed()) this.scheduler.drain(true);\n\t\t}\n\t}\n\n\t/** Start every capacity-eligible queued worker at the owner session's foreground-idle boundary. */\n\tdrain(): void {\n\t\tthis.recovery.recover();\n\t\tthis.scheduler.drain();\n\t\tthis.terminalHandoffs.signal();\n\t}\n}\n"]}
1
+ {"version":3,"file":"worker-delegation-controller.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-delegation-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { isDeepStrictEqual } from \"node:util\";\nimport type { AgentMessage } from \"@caupulican/pi-agent-core\";\nimport type { SessionManager } from \"@caupulican/pi-agent-core/node\";\nimport type { Api, Model, Usage } from \"@caupulican/pi-ai\";\nimport { getProcessWorkRun } from \"../agent-paths.ts\";\nimport type {\n\tAgentSessionEvent,\n\tIsolatedCompletionOptions,\n\tIsolatedCompletionResult,\n\tWorkerDelegationRunOutcome,\n} from \"../agent-session-contracts.ts\";\nimport type { CapabilityEnvelope, WorkerClaim, WorkerRequest } from \"../autonomy/contracts.ts\";\nimport { getPrivateLaneDeniedPaths } from \"../autonomy/lane-private-paths.ts\";\nimport { createLaneToolSurface } from \"../autonomy/lane-tool-surface.ts\";\nimport { isLaneTerminalStatus, type LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { appendLaneRecordSnapshot } from \"../autonomy/session-lane-record.ts\";\nimport { AUTONOMY_TELEMETRY_EVENT_TYPES, type AutonomyTelemetryEvent } from \"../autonomy/telemetry-events.ts\";\nimport { STABLE_SHELL_TOOL_NAME } from \"../default-tool-surface.ts\";\nimport { type GoalState, isGoalExecutionActive } from \"../goals/goal-state.ts\";\nimport { deriveModelCapabilityProfile, type ModelCapabilityProfile } from \"../model-capability.ts\";\nimport type { ModelRegistry } from \"../model-registry.ts\";\nimport { isLoopbackModelEndpoint } from \"../models/model-endpoint.ts\";\nimport { providerUsageFromAttemptUsage } from \"../orchestration/attempt-usage.ts\";\nimport {\n\ttype AttemptUsageSnapshot,\n\ttype ExecutionGrant,\n\tMAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH,\n\ttype OrchestrationProfile,\n\ttype ResourcePointer,\n\ttype WorkerExecutionContract,\n\ttype WorkerRole,\n} from \"../orchestration/contracts.ts\";\nimport type { StartedDelegationAttempt } from \"../orchestration/delegation-ledger.ts\";\nimport { SessionTaskProfileStore } from \"../orchestration/session-task-profile-store.ts\";\nimport {\n\ttype TaskProfileCreateInput,\n\ttype TaskProfileCreateResult,\n\ttype TaskProfileInspection,\n\tTaskProfileWriter,\n} from \"../orchestration/task-profile-writer.ts\";\nimport type { AttemptRuntimeState, TaskRuntimeProjection } from \"../orchestration/task-runtime.ts\";\nimport type { WorkerContextForkReference } from \"../orchestration/worker-context-fork-reference.ts\";\nimport {\n\tcreateWorkerExecutionContract,\n\tverifierWorkerExecutionContract,\n} from \"../orchestration/worker-execution-contract.ts\";\nimport { resolveWorkerModelPin, type WorkerModelPinPolicy } from \"../orchestration/worker-model-pins.ts\";\nimport { registerInFlightWork } from \"../reload-blockers.ts\";\nimport type { ResourceLoader } from \"../resource-loader.ts\";\nimport { getActiveSessionBranchEntries } from \"../session-snapshot.ts\";\nimport type { ResolvedWorkerDelegationSettings, SettingsManager } from \"../settings-manager.ts\";\nimport { createDelegateToolDefinition } from \"../tools/delegate.ts\";\nimport { disposePersistentShellSession } from \"../tools/shell-session.ts\";\nimport { wrapToolDefinition } from \"../tools/tool-definition-wrapper.ts\";\nimport { selectSanitizedContextFork } from \"./sanitized-context-fork.ts\";\nimport { getLatestWorkerClaimSnapshot } from \"./session-worker-claim.ts\";\nimport { applyWorkerActions } from \"./worker-actions.ts\";\nimport type { WorkerAgentControlPort } from \"./worker-agent-control.ts\";\nimport { WorkerAgentControlCoordinator } from \"./worker-agent-control-coordinator.ts\";\nimport { createWorkerAttemptExecutor } from \"./worker-attempt-executor.ts\";\nimport { resolveWorkerAuthority } from \"./worker-authority-resolver.ts\";\nimport { WorkerContextForkStore, WorkerContextForkStoreError } from \"./worker-context-fork-store.ts\";\nimport { resolveWorkerContextInheritanceMode } from \"./worker-context-inheritance-policy.ts\";\nimport {\n\ttype WorkerConversation,\n\ttype WorkerConversationRetentionPolicy,\n\tWorkerConversationStore,\n} from \"./worker-conversation-store.ts\";\nimport { parseWorkerDelegationAuthorityRequest, type WorkerDelegationRequest } from \"./worker-delegation-request.ts\";\nimport { type WorkerDispatchAdmission, WorkerDispatchScheduler } from \"./worker-dispatch-scheduler.ts\";\nimport {\n\tbuildWorkerExecutionPlan,\n\tcompileWorkerExecutionGrant,\n\tnarrowWorkerExecutionPlan,\n\ttype WorkerExecutionPlan,\n\tworkerExecutionAuthorityFromPlan,\n} from \"./worker-execution-policy.ts\";\nimport {\n\tDEFAULT_WORKER_FLEET_LIMITS,\n\tevaluateNewWorkerAdmission,\n\tintersectWorkerDelegationLimits,\n\tpendingVerifierSubjectTaskIds,\n\tresolveWorkerFleetLimits,\n} from \"./worker-fleet-limits.ts\";\nimport { WorkerLeaseHeartbeat } from \"./worker-lease-heartbeat.ts\";\nimport type { PendingVerificationRecovery, WorkerLifecycle } from \"./worker-lifecycle.ts\";\nimport type { WorkerNotificationCoordinator, WorkerTerminalHandoffRecord } from \"./worker-notification-coordinator.ts\";\nimport { createLocalWorkerProcessOwnerId } from \"./worker-process-owner.ts\";\nimport {\n\ttype ResolvedWorkerProfile,\n\ttype ResolvedWorkerProfilePreset,\n\tWorkerProfileResolver,\n} from \"./worker-profile-resolver.ts\";\nimport { WorkerRecoveryCoordinator, type WorkerRecoveryDispatchResult } from \"./worker-recovery-coordinator.ts\";\nimport { selectWorkerResourcePointers } from \"./worker-resource-catalog.ts\";\nimport { materializeWorkerResourceBundle } from \"./worker-resource-materializer.ts\";\nimport type { WorkerRunOutcome } from \"./worker-runner.ts\";\nimport { finalizeWorkerClaim } from \"./worker-terminal-finalizer.ts\";\nimport {\n\ttype WorkerTerminalHandoff,\n\tWorkerTerminalHandoffCoordinator,\n\ttype WorkerTerminalHandoffDelivery,\n} from \"./worker-terminal-handoff-coordinator.ts\";\nimport {\n\tcollectWorkerTreeBudgetSeeds,\n\tWorkerTreeBudgetCoordinator,\n\tworkerTreeCanAdmitAttempt,\n} from \"./worker-tree-budget-coordinator.ts\";\nimport {\n\tWorkerWriteReservationCoordinator,\n\ttype WorkerWriteReservationWaitYield,\n} from \"./worker-write-reservation-coordinator.ts\";\n\nexport function isLocalExecutionModel(model: Pick<Model<Api>, \"provider\" | \"baseUrl\">): boolean {\n\tif (model.provider === \"ollama\" || model.provider === \"transformers\" || model.provider === \"llama-cpp\") {\n\t\treturn true;\n\t}\n\treturn isLoopbackModelEndpoint(model.baseUrl);\n}\n\nfunction workerConversationRetentionPolicy(\n\tmodel: Model<Api>,\n\tsettingsManager: SettingsManager,\n): WorkerConversationRetentionPolicy | undefined {\n\tconst settings = settingsManager.getCompactionSettings();\n\tconst contextWindow = Math.floor(model.contextWindow ?? 0);\n\tif (!settings.enabled || contextWindow < 4) return undefined;\n\tconst reserveTokens = Math.min(settings.reserveTokens, Math.floor(contextWindow * 0.25));\n\tconst reserveTrigger = contextWindow - reserveTokens;\n\tconst fractionalTrigger =\n\t\tsettings.triggerPercent > 0 && settings.triggerPercent < 1\n\t\t\t? Math.floor(contextWindow * settings.triggerPercent)\n\t\t\t: reserveTrigger;\n\tconst modelTrigger =\n\t\tmodel.autoCompactionTriggerTokens && model.autoCompactionTriggerTokens > 0\n\t\t\t? Math.floor(model.autoCompactionTriggerTokens)\n\t\t\t: reserveTrigger;\n\tconst maxContextTokens = Math.min(reserveTrigger, fractionalTrigger, modelTrigger);\n\tif (maxContextTokens < 2) return undefined;\n\treturn {\n\t\tmaxContextTokens,\n\t\tkeepRecentTokens: Math.max(\n\t\t\t1,\n\t\t\tMath.min(settings.keepRecentTokens, Math.floor(contextWindow * 0.5), maxContextTokens - 1),\n\t\t),\n\t};\n}\n\nexport interface WorkerDelegationControllerDeps {\n\tisDisposed(): boolean;\n\tgetSessionId(): string;\n\tgetCwd(): string;\n\tgetAgentDir(): string;\n\tgetSessionManager(): SessionManager;\n\tgetSettingsManager(): SettingsManager;\n\tgetResourceLoader(): ResourceLoader;\n\tgetActiveOrchestrationProfile?(): OrchestrationProfile | undefined;\n\tgetModelRegistry(): ModelRegistry;\n\tisModelExhausted(model: Model<Api>): boolean;\n\tgetModel(): Model<Api> | undefined;\n\tisDelegateToolActive(): boolean;\n\tgetCapabilityEnvelope(): CapabilityEnvelope | undefined;\n\temit(event: AgentSessionEvent): void;\n\tnotifyWorkerTerminalHandoff(records: readonly WorkerTerminalHandoffRecord[]): Promise<void>;\n\temitAutonomyTelemetry(event: AutonomyTelemetryEvent): void;\n\tgetGoalStateSnapshot(): GoalState | undefined;\n\tsaveWorkerClaimSnapshot(claim: WorkerClaim, request?: WorkerRequest): string;\n\treadMemoryForLane(query: string): Promise<string>;\n\taddSpawnedUsage(\n\t\tusage: Usage,\n\t\topts: { label?: string; sourceSessionId?: string; reportId: string },\n\t): string | undefined;\n\trunIsolatedCompletion(opts: IsolatedCompletionOptions): Promise<IsolatedCompletionResult>;\n}\n\ntype WorkerAdmission =\n\t| {\n\t\t\tok: true;\n\t\t\tinstructions: string;\n\t\t\tsettings: ResolvedWorkerDelegationSettings;\n\t\t\tshipment: ResolvedWorkerProfile;\n\t\t\tverifierShipment?: ResolvedWorkerProfile;\n\t\t\t/** Exact pointer selection persisted when this request is admitted. */\n\t\t\tresourcePointerIds: readonly string[];\n\t\t\texecutionContract: WorkerExecutionContract;\n\t\t\texecutionPlan: WorkerExecutionPlan;\n\t\t\t/**\n\t\t\t * Set when a pin policy is active, the effective role has no pin (a roles-only config\n\t\t\t * with no `default` leaves it unpinned), and the caller requested an explicit model —\n\t\t\t * i.e. the owner's pin was evaded, not just inapplicable. Diagnostics only: admission is\n\t\t\t * never blocked on this. Value is the effective role that bypassed the policy.\n\t\t\t */\n\t\t\tmodelPinBypass?: WorkerRole;\n\t }\n\t| { ok: false; skipReason: string };\n\ninterface PreparedWorkerAttempt {\n\texecutionPlan: WorkerExecutionPlan;\n\tlifecycle: WorkerLifecycle;\n\trecord: LaneRecord;\n\tattempt?: AttemptRuntimeState;\n}\n\ninterface PreparedWorkerAgent {\n\tconversation: WorkerConversation;\n\tresources: readonly ResourcePointer[];\n\tresourceSystemPrompt: string;\n}\n\ntype QueuedWorkerAttemptOutcome =\n\t| { started: false; skipReason: string }\n\t| { started: true; record: LaneRecord; modelPinBypass?: WorkerRole };\n\ninterface WorkerContextForkSource {\n\tmodel: { provider: string; model: string };\n\tmessages: readonly AgentMessage[];\n}\n\nfunction workerContextModelIdentity(modelRef: string | undefined): { provider: string; model: string } {\n\tif (!modelRef) throw new Error(\"Worker parent resume model is missing.\");\n\tconst separator = modelRef.indexOf(\"/\");\n\tif (separator <= 0 || separator === modelRef.length - 1) {\n\t\tthrow new Error(\"Worker parent resume model is invalid.\");\n\t}\n\treturn { provider: modelRef.slice(0, separator), model: modelRef.slice(separator + 1) };\n}\n\nexport class WorkerDelegationController {\n\tprivate readonly deps: WorkerDelegationControllerDeps;\n\tprivate readonly workerAbort = new AbortController();\n\tprivate readonly lifecycle: WorkerLifecycle;\n\tprivate profileResolver: WorkerProfileResolver | undefined;\n\tprivate taskProfileStore: SessionTaskProfileStore | undefined;\n\tprivate taskProfileWriter: TaskProfileWriter | undefined;\n\tprivate readonly recovery: WorkerRecoveryCoordinator;\n\tprivate readonly notifications: WorkerNotificationCoordinator;\n\tprivate readonly scheduler: WorkerDispatchScheduler;\n\tprivate readonly laneAbortControllers = new Map<string, AbortController>();\n\tprivate readonly shellSessionKeys = new Set<string>();\n\t/** Sole logical-agent control/mailbox owner; execution only calls its narrow delivery hooks. */\n\tprivate readonly agentControl: WorkerAgentControlCoordinator;\n\tprivate readonly publishedTerminalAttemptIds = new Set<string>();\n\tprivate readonly yieldedCapacityAttemptIds = new Map<string, number>();\n\tprivate readonly yieldedWriteReservations = new Map<string, WorkerWriteReservationWaitYield>();\n\tprivate readonly conversations = new WorkerConversationStore();\n\tprivate readonly contextForks: WorkerContextForkStore;\n\tprivate readonly terminalHandoffs: WorkerTerminalHandoffCoordinator;\n\tprivate readonly treeBudgets = new WorkerTreeBudgetCoordinator();\n\tprivate readonly writeReservations: WorkerWriteReservationCoordinator;\n\tprivate readonly inFlightLedgers = new Map<\n\t\tstring,\n\t\t{\n\t\t\tchangedFiles: Set<string>;\n\t\t\tgetUsage: () => AttemptUsageSnapshot;\n\t\t\trequest: WorkerRequest;\n\t\t\thandle: StartedDelegationAttempt;\n\t\t}\n\t>();\n\n\tconstructor(\n\t\tdeps: WorkerDelegationControllerDeps,\n\t\tnotifications: WorkerNotificationCoordinator,\n\t\tlifecycle: WorkerLifecycle,\n\t) {\n\t\tthis.deps = deps;\n\t\tthis.notifications = notifications;\n\t\tthis.lifecycle = lifecycle;\n\t\tthis.contextForks = new WorkerContextForkStore({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t});\n\t\tthis.scheduler = new WorkerDispatchScheduler({\n\t\t\tagentDir: this.deps.getAgentDir?.() ?? \"\",\n\t\t\tisDisposed: () => this.deps.isDisposed(),\n\t\t\tadmit: (request, record) => this.workerDispatchAdmission(request, record),\n\t\t\tgetRecord: (laneId) => this.getWorkerLifecycle().getRecord(laneId),\n\t\t\trun: (request, record) => this.runOnce(request, undefined, record),\n\t\t\tcancel: (laneId, reasonCode) => this.cancelScheduledWorker(laneId, reasonCode),\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.recovery = new WorkerRecoveryCoordinator({\n\t\t\tlifecycle: this.lifecycle,\n\t\t\tscheduler: this.scheduler,\n\t\t\trecoverWriteReservations: () => this.writeReservations.recoverProvenStale(),\n\t\t\tpublishTerminalRecord: (record) => this.publishTerminalRecord(record),\n\t\t\tpublishTerminalRecords: (records) => this.publishRecoveredTerminalRecords(records),\n\t\t\tdispatchVerification: (recovery) => this.dispatchRecoveredVerification(recovery),\n\t\t\trecoverTaskBearingMailboxTurns: () => this.agentControl.reconcileTaskBearingMailboxTurns(),\n\t\t\trecoverSessionRootReplies: () => this.agentControl.reconcileSessionRootReplies(),\n\t\t\tretryReady: () => {\n\t\t\t\tif (this.deps.isDisposed()) return;\n\t\t\t\tthis.scheduler.drain();\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t\tthis.notifications.statusChanged();\n\t\t\t},\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.agentControl = new WorkerAgentControlCoordinator({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tprocessOwnerId: createLocalWorkerProcessOwnerId(process.pid, randomUUID()),\n\t\t\tconversationStore: this.conversations,\n\t\t\tisControlAvailable: () => this.deps.isDelegateToolActive(),\n\t\t\tgetLifecycle: () => this.getWorkerLifecycle(),\n\t\t\trecoveredRequest: (attempt) => this.recovery.recoveredRequest(attempt),\n\t\t\trun: (request, record) => this.runOnce(request, undefined, record),\n\t\t\tscheduler: this.scheduler,\n\t\t\tstatusChanged: () => {\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t\tthis.notifications.statusChanged();\n\t\t\t},\n\t\t\tgetWorkerClaimSnapshot: (laneId) =>\n\t\t\t\tgetLatestWorkerClaimSnapshot(getActiveSessionBranchEntries(this.deps.getSessionManager()), laneId),\n\t\t\tgetWorkerResult: (laneId) => this.getWorkerLifecycle().getResult(laneId),\n\t\t\tabortLane: (laneId, reasonCode) => this.laneAbortControllers.get(laneId)?.abort(reasonCode),\n\t\t\tcancelLane: (laneId, reasonCode) => {\n\t\t\t\tthis.scheduler.dropQueued(laneId);\n\t\t\t\tthis.writeReservations.release(laneId);\n\t\t\t\tconst terminal = this.getWorkerLifecycle().cancel(laneId, reasonCode);\n\t\t\t\tif (terminal) this.publishTerminalRecord(terminal);\n\t\t\t\tif (terminal && !this.deps.isDisposed()) this.scheduler.drain();\n\t\t\t\treturn terminal;\n\t\t\t},\n\t\t\ttaskStartHeadroomSkipReason: (agent) => {\n\t\t\t\tconst contract = this.lifecycle.getLatestAgentAttempt(agent.agentId)?.dispatch.executionContract;\n\t\t\t\treturn contract\n\t\t\t\t\t? this.workerProjectionHeadroomSkipReason(contract)\n\t\t\t\t\t: \"orchestration_execution_contract_missing\";\n\t\t\t},\n\t\t\twaitBlockedByCaller: (callerAgentId, targetAgentIds) =>\n\t\t\t\tthis.waitTargetsBlockedByCaller(callerAgentId, targetAgentIds),\n\t\t\tyieldCallerForWait: (callerAgentId) => this.yieldWorkerForWait(callerAgentId),\n\t\t\tsubscribeReservationAvailability: (listener) => this.writeReservations.subscribeAvailability(listener),\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\tthis.terminalHandoffs = new WorkerTerminalHandoffCoordinator({\n\t\t\tdeliver: (handoff) => this.deliverTerminalHandoff(handoff),\n\t\t\tonDeliveryError: (handoff, error) => {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff for ${handoff.record.laneId} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t\tthis.agentControl.reconcileSessionRootReplies();\n\t\tthis.writeReservations = new WorkerWriteReservationCoordinator({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tgetCwd: () => this.deps.getCwd(),\n\t\t\tgetParentSessionId: () => this.deps.getSessionId(),\n\t\t\townerId: this.agentControl.getProcessOwnerId(),\n\t\t\tdrainQueuedWorkers: () => {\n\t\t\t\tif (this.deps.isDisposed()) return;\n\t\t\t\tthis.scheduler.drain(true);\n\t\t\t\tthis.agentControl.signalStateChanged();\n\t\t\t},\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t}\n\n\tprivate safeWarn(message: string): void {\n\t\ttry {\n\t\t\tthis.deps.emit({ type: \"warning\", message });\n\t\t} catch {\n\t\t\t// Disposal and recovery diagnostics must never throw.\n\t\t}\n\t}\n\n\tprivate cancelScheduledWorker(laneId: string, reasonCode: string): void {\n\t\ttry {\n\t\t\tthis.writeReservations.release(laneId);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to release worker ${laneId} before cancellation: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t\tlet terminal: LaneRecord | undefined;\n\t\ttry {\n\t\t\tterminal = this.getWorkerLifecycle().cancel(laneId, reasonCode);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to cancel durable worker ${laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t\tthrow error;\n\t\t}\n\t\tif (!terminal) return;\n\t\ttry {\n\t\t\tthis.publishTerminalRecord(terminal);\n\t\t} catch (error) {\n\t\t\t// The durable cancellation is authoritative. Publication remains recoverable from its\n\t\t\t// pending notification and must not make the scheduler requeue a terminal attempt.\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to publish canceled worker ${laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/** Narrow model-facing control port. It owns control state; this controller only composes it. */\n\tgetAgentControl(): WorkerAgentControlPort {\n\t\treturn this.agentControl;\n\t}\n\n\t/** The coordinator's process identity is also the durable execution lease owner. */\n\tgetAgentControlProcessOwnerId(): string {\n\t\treturn this.agentControl.getProcessOwnerId();\n\t}\n\n\trecordTerminal(record: LaneRecord): void {\n\t\tif (record.status === \"queued\" || record.status === \"running\") return;\n\t\tif (record.type === \"worker\") {\n\t\t\tconst notification = this.lifecycle.getTerminalNotification(record.laneId);\n\t\t\tif (notification?.status === \"delivered\") return;\n\t\t\tif (notification) {\n\t\t\t\tthis.notifications.recordTerminal(record, notification.notificationId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.notifications.recordTerminal(record);\n\t}\n\n\tgetRecords(): LaneRecord[] {\n\t\tif (this.deps.isDelegateToolActive?.()) this.recovery.recover();\n\t\treturn this.lifecycle.getRecords();\n\t}\n\n\t/** Process-local worker records for the shared terminal notifier; never triggers durable recovery. */\n\tgetLoadedRecords(): LaneRecord[] {\n\t\treturn this.lifecycle.getRecords();\n\t}\n\n\tmarkNotificationsDelivered(notificationIds: readonly string[]): void {\n\t\tthis.lifecycle.markNotificationsDelivered(notificationIds);\n\t}\n\n\tabort(): void {\n\t\tthis.runTeardownStep(\"abort worker execution\", () => this.workerAbort.abort());\n\t\t// Bound attempts have an authoritative transcript and agent identity. A normal owner-session\n\t\t// shutdown is an execution interruption, not an explicit worker cancellation: fence it into\n\t\t// suspended state before the abort continuation can observe the signal.\n\t\tconst suspendedAttemptIds = new Set<string>();\n\t\ttry {\n\t\t\tfor (const attemptId of this.lifecycle.suspendBoundInProcessAttemptsForRestart(\n\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t)) {\n\t\t\t\tsuspendedAttemptIds.add(attemptId);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to persist worker restart suspension during teardown: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tlet records: LaneRecord[] = [];\n\t\ttry {\n\t\t\trecords = this.lifecycle.getRecords();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Failed to inspect durable worker records during teardown: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tfor (const record of records) {\n\t\t\tif (record.status !== \"queued\" && record.status !== \"running\") continue;\n\t\t\tconst ledger = this.inFlightLedgers.get(record.laneId);\n\t\t\tif (ledger && suspendedAttemptIds.has(ledger.handle.attemptId)) {\n\t\t\t\tthis.inFlightLedgers.delete(record.laneId);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!ledger) {\n\t\t\t\ttry {\n\t\t\t\t\tconst canceled = this.lifecycle.cancel(record.laneId, \"session_disposed\");\n\t\t\t\t\tif (canceled) {\n\t\t\t\t\t\tthis.publishTerminalRecord(canceled);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Failed to cancel durable queued worker ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.inFlightLedgers.delete(record.laneId);\n\t\t\ttry {\n\t\t\t\tconst usage = ledger.getUsage();\n\t\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(usage);\n\t\t\t\tconst reportId = `worker:${this.deps.getSessionId()}:${record.laneId}`;\n\t\t\t\tconst claim: WorkerClaim = {\n\t\t\t\t\trequestId: ledger.request.id,\n\t\t\t\t\tstatus: \"cancelled\",\n\t\t\t\t\tsummary: \"canceled on session dispose\",\n\t\t\t\t\tchangedFiles: [...ledger.changedFiles],\n\t\t\t\t\tusageReportId: reportId,\n\t\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t\t};\n\t\t\t\tconst canceled = finalizeWorkerClaim(this.getWorkerLifecycle(), {\n\t\t\t\t\thandle: ledger.handle,\n\t\t\t\t\tclaim,\n\t\t\t\t\taccepted: false,\n\t\t\t\t\tcostUsd: usage.costUsd,\n\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\tinputTokens: usage.inputTokens,\n\t\t\t\t\toutputTokens: usage.outputTokens,\n\t\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\t\twallClockMs: usage.activeWallClockMs,\n\t\t\t\t\ttoolCalls: usage.toolCalls,\n\t\t\t\t\treasonCode: \"session_disposed\",\n\t\t\t\t}).record;\n\t\t\t\tthis.publishTerminalRecord(canceled);\n\t\t\t\t// The terminal result and owner usage report share the same fenced cumulative snapshot.\n\t\t\t\tthis.deps.saveWorkerClaimSnapshot(claim, ledger.request);\n\t\t\t\tif (reportedUsage.cost.total > 0 || reportedUsage.totalTokens > 0) {\n\t\t\t\t\tthis.deps.addSpawnedUsage(reportedUsage, { label: \"worker-delegation\", reportId });\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Failed to persist canceled worker claim ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.inFlightLedgers.clear();\n\n\t\tthis.runTeardownStep(\"cancel queued worker dispatches\", () => this.scheduler.cancelQueued());\n\t\tthis.runTeardownStep(\"dispose worker recovery\", () => this.recovery.dispose());\n\t\tthis.runTeardownStep(\"dispose worker terminal handoffs\", () => this.terminalHandoffs.dispose());\n\t\tthis.runTeardownStep(\"dispose worker write reservations\", () => this.writeReservations.dispose());\n\t\tfor (const shellSessionKey of this.shellSessionKeys) {\n\t\t\tthis.runTeardownStep(`dispose worker shell ${shellSessionKey}`, () =>\n\t\t\t\tdisposePersistentShellSession(shellSessionKey),\n\t\t\t);\n\t\t}\n\t\tthis.shellSessionKeys.clear();\n\t\tthis.runTeardownStep(\"clear worker conversation cache\", () => this.conversations.clearCache());\n\t}\n\n\tprivate runTeardownStep(label: string, step: () => void): void {\n\t\ttry {\n\t\t\tstep();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(`Failed to ${label}: ${error instanceof Error ? error.message : String(error)}`);\n\t\t}\n\t}\n\n\tprivate getWorkerLifecycle(): WorkerLifecycle {\n\t\treturn this.lifecycle;\n\t}\n\n\tprivate getWorkerProfileResolver(): WorkerProfileResolver {\n\t\tif (this.profileResolver) return this.profileResolver;\n\t\tthis.profileResolver = new WorkerProfileResolver({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tgetSettingsManager: () => this.deps.getSettingsManager(),\n\t\t\tgetResourceLoader: () => this.deps.getResourceLoader(),\n\t\t\tgetModelRegistry: () => this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t\tgetTaskProfileStore: () => this.getTaskProfileStore(),\n\t\t\tonDiagnostic: (message) => this.safeWarn(message),\n\t\t});\n\t\treturn this.profileResolver;\n\t}\n\n\tprivate getTaskProfileStore(): SessionTaskProfileStore {\n\t\tthis.taskProfileStore ??= new SessionTaskProfileStore(this.deps.getSessionManager());\n\t\treturn this.taskProfileStore;\n\t}\n\n\tprivate getTaskProfileWriter(): TaskProfileWriter {\n\t\tthis.taskProfileWriter ??= new TaskProfileWriter({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tstore: this.getTaskProfileStore(),\n\t\t\tgetSettingsManager: () => this.deps.getSettingsManager(),\n\t\t\tgetModelRegistry: () => this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (provider, modelId) => {\n\t\t\t\tconst model = this.deps.getModelRegistry().find(provider, modelId);\n\t\t\t\treturn !model || this.deps.isModelExhausted(model);\n\t\t\t},\n\t\t\tgetActiveOrchestrationProfile: () => this.deps.getActiveOrchestrationProfile?.(),\n\t\t});\n\t\treturn this.taskProfileWriter;\n\t}\n\n\t/** Read-only durable worker projection. Undefined means the delegate capability never loaded. */\n\tgetTaskRuntimeSnapshot(): TaskRuntimeProjection | undefined {\n\t\treturn this.lifecycle.getTaskRuntimeSnapshot();\n\t}\n\n\t/** Reconcile the session goal into an already-loaded worker runtime without defeating lazy UAC. */\n\tsynchronizeGoalState(goal: GoalState): void {\n\t\tthis.publishGoalTerminalRecords(this.lifecycle.synchronizeGoalState(goal));\n\t\tif (isGoalExecutionActive(goal.status) && !this.deps.isDisposed()) this.scheduler.drain();\n\t}\n\n\tprivate publishGoalTerminalRecords(records: readonly LaneRecord[]): void {\n\t\tfor (const record of records) {\n\t\t\tthis.scheduler.dropQueued(record.laneId);\n\t\t\tthis.laneAbortControllers.get(record.laneId)?.abort(\"goal_terminal\");\n\t\t\tthis.publishTerminalRecord(record);\n\t\t}\n\t\tif (records.length > 0 && !this.deps.isDisposed()) this.scheduler.drain();\n\t}\n\n\tprivate dispatchRecoveredVerification(\n\t\trecovery: Extract<PendingVerificationRecovery, { action: \"dispatch\" }>,\n\t): WorkerRecoveryDispatchResult {\n\t\tconst legacyImplementation = recovery.verifierExecutionContract\n\t\t\t? undefined\n\t\t\t: this.resolveWorkerAdmission({\n\t\t\t\t\tinstructions: recovery.summary,\n\t\t\t\t\tprofileId: recovery.implementationProfileId,\n\t\t\t\t});\n\t\tconst verifierProfileId =\n\t\t\trecovery.verifierExecutionContract?.worker.profile.profileId ??\n\t\t\t(legacyImplementation?.ok ? legacyImplementation.verifierShipment?.profile.profileId : undefined);\n\t\treturn verifierProfileId\n\t\t\t? this.startInternal(\n\t\t\t\t\tthis.buildVerifierRequest({\n\t\t\t\t\t\tsubjectTaskId: recovery.subjectTaskId,\n\t\t\t\t\t\tverifierProfileId,\n\t\t\t\t\t\tsummary: recovery.summary,\n\t\t\t\t\t\tartifactUris: recovery.artifactUris,\n\t\t\t\t\t}),\n\t\t\t\t\trecovery.verifierExecutionContract,\n\t\t\t\t)\n\t\t\t: { started: false, skipReason: \"independent_verifier_unavailable\" };\n\t}\n\n\tprivate laneCapabilityProfile(model: Model<Api>): ModelCapabilityProfile {\n\t\treturn deriveModelCapabilityProfile({\n\t\t\tcontextWindow: model.contextWindow,\n\t\t\tmode: this.deps.getSettingsManager().getModelCapabilitySettings().mode,\n\t\t});\n\t}\n\n\tgetProfileCatalog(): Array<{ profileId: string; role: string; description: string }> {\n\t\treturn this.getWorkerProfileResolver().catalog();\n\t}\n\n\tinspectTaskProfileOptions(): TaskProfileInspection {\n\t\treturn this.getTaskProfileWriter().inspectTaskProfileOptions();\n\t}\n\n\tcreateTaskProfile(input: TaskProfileCreateInput): TaskProfileCreateResult {\n\t\treturn this.getTaskProfileWriter().createTaskProfile(input);\n\t}\n\n\tprivate resolveWorkerPreset(\n\t\trequest: WorkerDelegationRequest,\n\t\tsettings: ResolvedWorkerDelegationSettings,\n\t): { ok: true; preset: ResolvedWorkerProfilePreset } | { ok: false; skipReason: string } {\n\t\tconst resolved = this.getWorkerProfileResolver().resolvePreset(request, settings.orchestrationProfile);\n\t\treturn resolved.ok ? { ok: true, preset: resolved.resolved } : { ok: false, skipReason: resolved.reason };\n\t}\n\n\tprivate resolveRequiredVerifier(\n\t\tprofile: OrchestrationProfile,\n\t\tmodelPinPolicy: WorkerModelPinPolicy,\n\t): { ok: true; shipment?: ResolvedWorkerProfile } | { ok: false; skipReason: string } {\n\t\tif (!profile.requireIndependentVerification) return { ok: true };\n\t\tconst preset = this.getWorkerProfileResolver().resolveVerifierPreset(profile);\n\t\tif (!preset.ok) return { ok: false, skipReason: `independent_verifier_unavailable:${preset.reason}` };\n\t\tconst modelPin = resolveWorkerModelPin(modelPinPolicy, \"verifier\");\n\t\tconst resolved = this.getWorkerProfileResolver().bindPreset(preset.resolved, modelPin?.binding);\n\t\tif (!resolved.ok) {\n\t\t\tconst reason = modelPin ? \"worker_model_pin_unavailable:verifier\" : resolved.reason;\n\t\t\treturn { ok: false, skipReason: `independent_verifier_unavailable:${reason}` };\n\t\t}\n\t\t// Fresh verifier profiles pass through the same shipment admission owner as fresh workers.\n\t\t// Recovery-pinned verifier contracts bypass this path and preserve their immutable grant.\n\t\tconst admitted = resolveWorkerAuthority({\n\t\t\tbase: resolved.resolved,\n\t\t\t...(modelPin ? { modelPin: modelPin.binding } : {}),\n\t\t\tmodelRegistry: this.deps.getModelRegistry(),\n\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t});\n\t\treturn admitted.ok\n\t\t\t? { ok: true, shipment: admitted.shipment }\n\t\t\t: { ok: false, skipReason: `independent_verifier_unavailable:${admitted.reason}` };\n\t}\n\n\t/**\n\t * A descendant may select a different routing profile, but that preset cannot introduce context or\n\t * recursive authority its ancestor never admitted. Pointer ids alone are insufficient authority:\n\t * retain only pointers whose complete immutable metadata matches the ancestral contract, require\n\t * exact soul text, and intersect durable delegation limits.\n\t */\n\tprivate narrowWorkerShipmentContext(\n\t\tshipment: ResolvedWorkerProfile,\n\t\tboundary: WorkerExecutionContract[\"worker\"],\n\t): { ok: true; shipment: ResolvedWorkerProfile } | { ok: false; skipReason: string } {\n\t\tconst boundaryPointers = new Map(boundary.resourcePointers.map((pointer) => [pointer.id, pointer]));\n\t\tconst resourcePointers: ResourcePointer[] = [];\n\t\tfor (const pointer of shipment.resourcePointers) {\n\t\t\tconst inherited = boundaryPointers.get(pointer.id);\n\t\t\tif (!inherited || !isDeepStrictEqual(inherited, pointer)) {\n\t\t\t\treturn { ok: false, skipReason: \"orchestration_context_authority_exceeded\" };\n\t\t\t}\n\t\t\tresourcePointers.push(structuredClone(inherited));\n\t\t}\n\t\tif (shipment.soul !== undefined && shipment.soul !== boundary.soul) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_context_authority_exceeded\" };\n\t\t}\n\t\tconst delegationLimits = intersectWorkerDelegationLimits(\n\t\t\tshipment.profile.delegationLimits,\n\t\t\tboundary.profile.delegationLimits,\n\t\t);\n\t\treturn {\n\t\t\tok: true,\n\t\t\tshipment: {\n\t\t\t\t...shipment,\n\t\t\t\tprofile: {\n\t\t\t\t\t...shipment.profile,\n\t\t\t\t\t...(delegationLimits ? { delegationLimits } : {}),\n\t\t\t\t},\n\t\t\t\tresourcePointers,\n\t\t\t\t...(shipment.soul ? { soul: shipment.soul } : {}),\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate hasExactRecursiveCycle(parentAgentId: string, instructions: string, profileId: string): boolean {\n\t\tconst normalizedInstructions = instructions.trim();\n\t\tconst visited = new Set<string>();\n\t\tlet current = this.lifecycle.getAgent(parentAgentId);\n\t\twhile (current) {\n\t\t\tif (visited.has(current.agentId)) return true;\n\t\t\tvisited.add(current.agentId);\n\t\t\tconst attempt = this.lifecycle.getLatestAgentAttempt(current.agentId);\n\t\t\tif (\n\t\t\t\tattempt?.dispatch.instructions.trim() === normalizedInstructions &&\n\t\t\t\tattempt.dispatch.profileId === profileId\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tcurrent = current.parentAgentId ? this.lifecycle.getAgent(current.parentAgentId) : undefined;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Reject a new logical identity before creating its task, transcript, agent, or queue entry. */\n\tprivate newWorkerFleetSkipReason(request: WorkerDelegationRequest, requiredAgentSlots = 1): string | undefined {\n\t\tconst parentAttempt = request.parentAgentId\n\t\t\t? this.lifecycle.getLatestAgentAttempt(request.parentAgentId)\n\t\t\t: undefined;\n\t\tconst limits = resolveWorkerFleetLimits(\n\t\t\tparentAttempt?.dispatch.executionContract?.worker.profile.delegationLimits,\n\t\t);\n\t\tconst decision = evaluateNewWorkerAdmission(\n\t\t\tthis.lifecycle.getTaskRuntimeSnapshot().agents,\n\t\t\trequest.parentAgentId,\n\t\t\tlimits,\n\t\t\trequiredAgentSlots,\n\t\t);\n\t\treturn decision.ok ? undefined : decision.reasonCode;\n\t}\n\n\tprivate requiredAgentSlotsForAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t): number {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (request.verificationOfTaskId) pendingVerifierSubjects.delete(request.verificationOfTaskId);\n\t\treturn 1 + pendingVerifierSubjects.size + (admission.verifierShipment ? 1 : 0);\n\t}\n\n\t/** Single admission contract shared by enqueue, scheduler revalidation, and execution. */\n\tprivate resolveWorkerAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): WorkerAdmission {\n\t\tif (this.deps.isDisposed()) return { ok: false, skipReason: \"session_disposed\" };\n\t\tconst instructions = request.instructions.trim();\n\t\tif (!instructions) return { ok: false, skipReason: \"missing_instructions\" };\n\t\tif (!this.deps.isDelegateToolActive()) return { ok: false, skipReason: \"delegate_tool_inactive\" };\n\t\tconst settings = this.deps.getSettingsManager().getWorkerDelegationSettings();\n\t\tif (!settings.enabled) return { ok: false, skipReason: \"worker_delegation_disabled\" };\n\t\tconst modelPinPolicy = pinnedContract\n\t\t\t? ({ status: \"absent\" } as const)\n\t\t\t: this.deps.getSettingsManager().getWorkerModelPinPolicy();\n\t\tif (modelPinPolicy.status === \"invalid\") {\n\t\t\treturn { ok: false, skipReason: \"worker_model_pins_invalid\" };\n\t\t}\n\t\tconst parentAgent = request.parentAgentId ? this.lifecycle.getAgent(request.parentAgentId) : undefined;\n\t\tif (request.parentAgentId && !parentAgent) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_parent_agent_unknown\" };\n\t\t}\n\t\tconst parentAttempt = parentAgent ? this.lifecycle.getLatestAgentAttempt(parentAgent.agentId) : undefined;\n\t\tconst parentContract = parentAttempt?.dispatch.executionContract;\n\t\tif (parentAgent && !parentContract) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_parent_authority_missing\" };\n\t\t}\n\t\tif (pinnedContract && request.profileId && request.profileId !== pinnedContract.worker.profile.profileId) {\n\t\t\treturn { ok: false, skipReason: \"orchestration_execution_contract_mismatch\" };\n\t\t}\n\t\tlet authority = request.authority;\n\t\tif (!pinnedContract && authority) {\n\t\t\ttry {\n\t\t\t\tauthority = parseWorkerDelegationAuthorityRequest(authority);\n\t\t\t} catch (error) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tskipReason: `orchestration_authority_invalid:${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tlet baseShipment: ResolvedWorkerProfile | undefined;\n\t\tlet basePreset: ResolvedWorkerProfilePreset | undefined;\n\t\tif (pinnedContract) {\n\t\t\tconst pinned = this.getWorkerProfileResolver().resolveContract(pinnedContract.worker);\n\t\t\tif (!pinned.ok) return { ok: false, skipReason: pinned.reason };\n\t\t\tbaseShipment = pinned.resolved;\n\t\t} else if (!request.profileId && parentContract) {\n\t\t\tconst inherited = this.getWorkerProfileResolver().resolveContract(parentContract.worker);\n\t\t\tif (!inherited.ok) return { ok: false, skipReason: inherited.reason };\n\t\t\tbaseShipment = inherited.resolved;\n\t\t} else if (request.profileId || settings.orchestrationProfile) {\n\t\t\tconst configured = this.resolveWorkerPreset(request, settings);\n\t\t\tif (!configured.ok) return configured;\n\t\t\tbasePreset = configured.preset;\n\t\t}\n\t\tconst effectiveRole: WorkerRole =\n\t\t\tauthority?.role ?? baseShipment?.profile.role ?? basePreset?.profile.role ?? \"orchestrator\";\n\t\tconst modelPin = resolveWorkerModelPin(modelPinPolicy, effectiveRole);\n\t\t// The model itself is authority?.model, not `role` — role selects which pin applies, but a\n\t\t// roles-only policy (no `default`) leaves an unlisted role with no pin at all, so a caller\n\t\t// can name that role plus an explicit model and admission never sees anything to enforce.\n\t\t// Not blocked (the owner may intend adaptive roles); recorded so the evasion is observable.\n\t\tconst modelPinBypass: WorkerRole | undefined =\n\t\t\tmodelPinPolicy.status === \"active\" && !modelPin && authority?.model ? effectiveRole : undefined;\n\t\tif (basePreset) {\n\t\t\tconst bound = this.getWorkerProfileResolver().bindPreset(basePreset, modelPin?.binding);\n\t\t\tif (!bound.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\tskipReason: modelPin ? `worker_model_pin_unavailable:${effectiveRole}` : bound.reason,\n\t\t\t\t};\n\t\t\t}\n\t\t\tbaseShipment = bound.resolved;\n\t\t}\n\t\tconst adaptive = pinnedContract\n\t\t\t? { ok: true as const, shipment: baseShipment! }\n\t\t\t: resolveWorkerAuthority({\n\t\t\t\t\tauthority,\n\t\t\t\t\t...(baseShipment ? { base: baseShipment } : {}),\n\t\t\t\t\t...(modelPin ? { modelPin: modelPin.binding } : {}),\n\t\t\t\t\t...(this.deps.getModel() ? { foregroundModel: this.deps.getModel() } : {}),\n\t\t\t\t\tmodelRegistry: this.deps.getModelRegistry(),\n\t\t\t\t\tisModelExhausted: (model) => this.deps.isModelExhausted(model),\n\t\t\t\t});\n\t\tif (!adaptive.ok) {\n\t\t\treturn {\n\t\t\t\tok: false,\n\t\t\t\tskipReason:\n\t\t\t\t\tmodelPin && adaptive.reason === \"orchestration_model_unavailable\"\n\t\t\t\t\t\t? `worker_model_pin_unavailable:${effectiveRole}`\n\t\t\t\t\t\t: adaptive.reason,\n\t\t\t};\n\t\t}\n\t\tlet shipment = adaptive.shipment;\n\t\tif (parentContract) {\n\t\t\tconst narrowed = this.narrowWorkerShipmentContext(shipment, parentContract.worker);\n\t\t\tif (!narrowed.ok) return narrowed;\n\t\t\tshipment = narrowed.shipment;\n\t\t}\n\t\tif (parentAgent && this.hasExactRecursiveCycle(parentAgent.agentId, instructions, shipment.profile.profileId)) {\n\t\t\treturn { ok: false, skipReason: \"recursive_delegation_cycle\" };\n\t\t}\n\t\tif (request.verificationOfTaskId && shipment.profile.role !== \"verifier\") {\n\t\t\treturn { ok: false, skipReason: \"verification_profile_role_mismatch\" };\n\t\t}\n\t\tif (!request.verificationOfTaskId && shipment.profile.role === \"verifier\") {\n\t\t\treturn { ok: false, skipReason: \"verifier_profile_requires_runtime_dispatch\" };\n\t\t}\n\t\tlet verifierShipment: ResolvedWorkerProfile | undefined;\n\t\tif (pinnedContract?.verifier) {\n\t\t\tconst verifier = this.getWorkerProfileResolver().resolveContract(pinnedContract.verifier);\n\t\t\tif (!verifier.ok) {\n\t\t\t\treturn { ok: false, skipReason: `independent_verifier_unavailable:${verifier.reason}` };\n\t\t\t}\n\t\t\tverifierShipment = verifier.resolved;\n\t\t} else {\n\t\t\tconst verifier = this.resolveRequiredVerifier(shipment.profile, modelPinPolicy);\n\t\t\tif (!verifier.ok) return verifier;\n\t\t\tverifierShipment = verifier.shipment;\n\t\t}\n\t\tif (verifierShipment && parentContract) {\n\t\t\tconst verifierBoundary = parentContract.verifier ?? parentContract.worker;\n\t\t\tconst narrowed = this.narrowWorkerShipmentContext(verifierShipment, verifierBoundary);\n\t\t\tif (!narrowed.ok) return narrowed;\n\t\t\tverifierShipment = narrowed.shipment;\n\t\t}\n\t\tif (!this.laneCapabilityProfile(shipment.model).backgroundLanesEnabled) {\n\t\t\treturn { ok: false, skipReason: \"model_delegation_unsupported\" };\n\t\t}\n\t\t// The model-facing delegate surface cannot name profile resources. An absent or empty\n\t\t// runtime selection therefore means \"use the owner-admitted profile set\", not \"drop it\".\n\t\t// Non-empty task metadata is an exact narrowing and remains fail-closed for unknown or\n\t\t// duplicate ids before any durable task or provider request is created.\n\t\tconst requestedResourcePointerIds = request.taskContext?.resourcePointerIds ?? [];\n\t\tconst selectedResources = selectWorkerResourcePointers(\n\t\t\tshipment.resourcePointers,\n\t\t\trequestedResourcePointerIds.length > 0\n\t\t\t\t? requestedResourcePointerIds\n\t\t\t\t: shipment.resourcePointers.map((pointer) => pointer.id),\n\t\t);\n\t\tif (!selectedResources.ok) return { ok: false, skipReason: selectedResources.reason };\n\t\tconst currentExecutionPlan = this.buildWorkerExecutionPlan(\n\t\t\tshipment.profile,\n\t\t\tsettings,\n\t\t\tadaptive.requestedReadPaths,\n\t\t\tadaptive.requestedWritePaths,\n\t\t);\n\t\tconst inheritedAuthority = pinnedContract?.worker.authority ?? parentContract?.worker.authority;\n\t\tconst executionPlan = inheritedAuthority\n\t\t\t? narrowWorkerExecutionPlan(inheritedAuthority, currentExecutionPlan)\n\t\t\t: currentExecutionPlan;\n\t\tconst verifierExecutionPlan = verifierShipment\n\t\t\t? this.buildWorkerExecutionPlan(verifierShipment.profile, settings)\n\t\t\t: undefined;\n\t\tconst inheritedVerifierAuthority = parentContract?.verifier?.authority ?? parentContract?.worker.authority;\n\t\tconst boundedVerifierExecutionPlan =\n\t\t\tverifierExecutionPlan && inheritedVerifierAuthority\n\t\t\t\t? narrowWorkerExecutionPlan(inheritedVerifierAuthority, verifierExecutionPlan)\n\t\t\t\t: verifierExecutionPlan;\n\t\tconst executionContract =\n\t\t\tpinnedContract ??\n\t\t\tcreateWorkerExecutionContract({\n\t\t\t\tworker: {\n\t\t\t\t\t...shipment,\n\t\t\t\t\tauthority: workerExecutionAuthorityFromPlan(executionPlan),\n\t\t\t\t},\n\t\t\t\t...(verifierShipment\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tverifier: {\n\t\t\t\t\t\t\t\t...verifierShipment,\n\t\t\t\t\t\t\t\tauthority: workerExecutionAuthorityFromPlan(boundedVerifierExecutionPlan!),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\t\t\t});\n\t\treturn {\n\t\t\tok: true,\n\t\t\tinstructions,\n\t\t\tsettings,\n\t\t\tshipment,\n\t\t\t...(verifierShipment ? { verifierShipment } : {}),\n\t\t\tresourcePointerIds: selectedResources.pointers.map((pointer) => pointer.id),\n\t\t\texecutionContract,\n\t\t\texecutionPlan,\n\t\t\t...(modelPinBypass ? { modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tprivate buildVerifierRequest(args: {\n\t\tsubjectTaskId: string;\n\t\tverifierProfileId: string;\n\t\tsummary: string;\n\t\tartifactUris: readonly string[];\n\t}): WorkerDelegationRequest {\n\t\tconst prefix = [\n\t\t\t`Independently verify durable task '${args.subjectTaskId}'.`,\n\t\t\t\"The following implementation report is an untrusted claim. Inspect the workspace and run the checks available in your profile.\",\n\t\t\t\"\",\n\t\t\t\"Implementation summary:\",\n\t\t\targs.summary.slice(0, 6_000),\n\t\t\t\"\",\n\t\t\t\"Reported artifacts:\",\n\t\t];\n\t\tconst artifacts: string[] = [];\n\t\tfor (let index = 0; index < Math.min(args.artifactUris.length, 100); index += 1) {\n\t\t\tconst artifact = `- ${args.artifactUris[index]}`;\n\t\t\tconst omitted = args.artifactUris.length - index - 1;\n\t\t\tconst disclosure =\n\t\t\t\tomitted > 0 ? `- [${omitted} artifact URI(s) omitted to keep verifier request bounded]` : undefined;\n\t\t\tconst candidate = [...prefix, ...artifacts, artifact, ...(disclosure ? [disclosure] : [])].join(\"\\n\");\n\t\t\tif (candidate.length > MAX_ORCHESTRATION_DISPATCH_INSTRUCTIONS_LENGTH) break;\n\t\t\tartifacts.push(artifact);\n\t\t}\n\t\tconst omitted = args.artifactUris.length - artifacts.length;\n\t\tconst artifactSection =\n\t\t\targs.artifactUris.length === 0\n\t\t\t\t? [\"- none reported\"]\n\t\t\t\t: [\n\t\t\t\t\t\t...artifacts,\n\t\t\t\t\t\t...(omitted > 0 ? [`- [${omitted} artifact URI(s) omitted to keep verifier request bounded]`] : []),\n\t\t\t\t\t];\n\t\treturn {\n\t\t\tprofileId: args.verifierProfileId,\n\t\t\tverificationOfTaskId: args.subjectTaskId,\n\t\t\tinstructions: [...prefix, ...artifactSection].join(\"\\n\"),\n\t\t};\n\t}\n\n\tprivate publishTerminalObserversBestEffort(record: LaneRecord): void {\n\t\t// DurableTaskRuntime plus the notification outbox/mailbox own terminal acceptance. The lane\n\t\t// snapshot is a compatibility projection and telemetry is an observer; neither may reopen an\n\t\t// accepted handoff or suppress its in-process publication fence.\n\t\ttry {\n\t\t\tappendLaneRecordSnapshot(this.deps.getSessionManager(), record);\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal snapshot projection failed for ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tthis.deps.emitAutonomyTelemetry({\n\t\t\t\ttype: AUTONOMY_TELEMETRY_EVENT_TYPES.workerTerminal,\n\t\t\t\ttimestamp: new Date().toISOString(),\n\t\t\t\tpayload: {\n\t\t\t\t\tlaneId: record.laneId,\n\t\t\t\t\tlaneType: record.type,\n\t\t\t\t\tstatus: record.status,\n\t\t\t\t\treasonCode: record.reasonCode ?? null,\n\t\t\t\t\tcostUsd: record.costUsd ?? null,\n\t\t\t\t},\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal telemetry observer failed for ${record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate deliverTerminalHandoff(handoff: Readonly<WorkerTerminalHandoff>): WorkerTerminalHandoffDelivery {\n\t\tconst delivery = this.agentControl.deliverWorkerTerminalHandoff(handoff);\n\t\tif (!delivery.accepted) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal handoff for ${handoff.record.laneId} was not accepted${delivery.skipReason ? `: ${delivery.skipReason}` : \".\"}`,\n\t\t\t);\n\t\t\treturn \"retained\";\n\t\t}\n\t\tconst notification = this.lifecycle.getTerminalNotification(handoff.record.laneId);\n\t\tif (notification?.status === \"pending\") {\n\t\t\tthis.lifecycle.markNotificationsDelivered([notification.notificationId]);\n\t\t}\n\t\tthis.publishedTerminalAttemptIds.add(handoff.terminalAttemptId);\n\t\tthis.publishTerminalObserversBestEffort(handoff.record);\n\t\ttry {\n\t\t\tthis.notifications.statusChanged();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal status observer failed for ${handoff.record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\ttry {\n\t\t\tthis.agentControl.signalStateChanged();\n\t\t} catch (error) {\n\t\t\tthis.safeWarn(\n\t\t\t\t`Worker terminal state observer failed for ${handoff.record.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\treturn \"delivered\";\n\t}\n\n\tprivate publishRecoveredTerminalRecords(records: readonly LaneRecord[]): void {\n\t\tconst handoffs: WorkerTerminalHandoff[] = [];\n\t\tconst directRecords: LaneRecord[] = [];\n\t\tfor (const record of records) {\n\t\t\tthis.recovery.clearScheduledRetry(record.laneId);\n\t\t\tconst attempt = this.lifecycle.getActiveAttempt(record.laneId);\n\t\t\tif (attempt && this.publishedTerminalAttemptIds.has(attempt.attemptId)) continue;\n\t\t\tconst childAgentId = attempt?.agentId ?? attempt?.dispatch.logicalLaneId ?? record.laneId;\n\t\t\tconst parentAgentId = this.lifecycle.getAgent(childAgentId)?.parentAgentId ?? attempt?.dispatch.parentAgentId;\n\t\t\tif (attempt && parentAgentId) {\n\t\t\t\thandoffs.push({\n\t\t\t\t\tterminalAttemptId: attempt.attemptId,\n\t\t\t\t\tparentAgentId,\n\t\t\t\t\tchildAgentId,\n\t\t\t\t\trecord,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdirectRecords.push(record);\n\t\t\t}\n\t\t}\n\t\tif (handoffs.length > 0) {\n\t\t\ttry {\n\t\t\t\tthis.terminalHandoffs.rehydrate(handoffs);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff recovery batch was retained durably but not adopted: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tfor (const record of directRecords) this.publishTerminalRecord(record);\n\t}\n\n\tprivate publishTerminalRecord(record: LaneRecord): void {\n\t\tif (!isLaneTerminalStatus(record.status)) return;\n\t\tthis.recovery.clearScheduledRetry(record.laneId);\n\t\tconst attempt = this.lifecycle.getActiveAttempt(record.laneId);\n\t\tconst attemptId = attempt?.attemptId;\n\t\tif (attemptId && this.publishedTerminalAttemptIds.has(attemptId)) return;\n\t\tconst childAgentId = attempt?.agentId ?? attempt?.dispatch.logicalLaneId ?? record.laneId;\n\t\tconst parentAgentId = this.lifecycle.getAgent(childAgentId)?.parentAgentId ?? attempt?.dispatch.parentAgentId;\n\t\tif (attemptId && parentAgentId) {\n\t\t\ttry {\n\t\t\t\tthis.terminalHandoffs.retain({\n\t\t\t\t\tparentAgentId,\n\t\t\t\t\tchildAgentId,\n\t\t\t\t\tterminalAttemptId: attemptId,\n\t\t\t\t\trecord,\n\t\t\t\t});\n\t\t\t\tthis.terminalHandoffs.signal();\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker terminal handoff retention for ${record.laneId} failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tthis.recordTerminal(record);\n\t\tif (attemptId) {\n\t\t\tthis.publishedTerminalAttemptIds.add(attemptId);\n\t\t}\n\t\tthis.publishTerminalObserversBestEffort(record);\n\t\tthis.agentControl.signalStateChanged();\n\t}\n\n\t/**\n\t * A pre-execution denial still owns a prepared durable lane. Publish its terminal projection at\n\t * this boundary: immediate callers have no scheduler promise to observe and must not wait for a\n\t * future recovery read to receive the handoff. Repeated late cancellation paths are inert via\n\t * the attempt-id publication fence above.\n\t */\n\tprivate cancelAndPublish(lifecycle: WorkerLifecycle, laneId: string, reasonCode: string): LaneRecord | undefined {\n\t\tconst record = lifecycle.cancel(laneId, reasonCode);\n\t\tif (record) this.publishTerminalRecord(record);\n\t\tif (record && !this.deps.isDisposed()) this.scheduler.drain();\n\t\treturn record;\n\t}\n\n\tprivate hasWorkerCapacity(settings: ResolvedWorkerDelegationSettings): boolean {\n\t\tconst snapshot = this.getWorkerLifecycle().getTaskRuntimeSnapshot();\n\t\tlet yielded = 0;\n\t\tfor (const attemptId of this.yieldedCapacityAttemptIds.keys()) {\n\t\t\tconst status = snapshot.attempts[attemptId]?.status;\n\t\t\tif (status === \"leased\" || status === \"running\") yielded += 1;\n\t\t\telse {\n\t\t\t\tthis.yieldedCapacityAttemptIds.delete(attemptId);\n\t\t\t\tthis.yieldedWriteReservations.delete(attemptId);\n\t\t\t}\n\t\t}\n\t\treturn Math.max(0, this.getWorkerLifecycle().getRunningCount() - yielded) < settings.maxConcurrent;\n\t}\n\n\tprivate waitTargetsBlockedByCaller(callerAgentId: string, targetAgentIds: readonly string[]): string[] {\n\t\tconst caller = this.lifecycle.getAgent(callerAgentId);\n\t\tconst callerAttempt = caller ? this.lifecycle.getLatestAgentAttempt(caller.agentId) : undefined;\n\t\tif (!callerAttempt || (callerAttempt.status !== \"leased\" && callerAttempt.status !== \"running\")) return [];\n\t\tconst blockedAgentIds: string[] = [];\n\t\tfor (const targetAgentId of targetAgentIds) {\n\t\t\tconst target = this.lifecycle.getAgent(targetAgentId);\n\t\t\tconst targetAttempt = target ? this.lifecycle.getLatestAgentAttempt(target.agentId) : undefined;\n\t\t\tif (\n\t\t\t\ttargetAttempt?.status === \"queued\" &&\n\t\t\t\tthis.writeReservations.isBlockedBy(targetAttempt.taskId, callerAttempt.taskId)\n\t\t\t) {\n\t\t\t\tblockedAgentIds.push(targetAgentId);\n\t\t\t}\n\t\t}\n\t\treturn blockedAgentIds;\n\t}\n\n\tprivate yieldWorkerForWait(callerAgentId: string): () => boolean {\n\t\tconst caller = this.lifecycle.getAgent(callerAgentId);\n\t\tif (!caller) return () => true;\n\t\tconst attempt = this.lifecycle.getLatestAgentAttempt(caller.agentId);\n\t\tif (!attempt || (attempt.status !== \"leased\" && attempt.status !== \"running\")) return () => true;\n\t\tconst existingYields = this.yieldedCapacityAttemptIds.get(attempt.attemptId) ?? 0;\n\t\tif (existingYields === 0 && attempt.lease) {\n\t\t\tconst yieldedReservation = this.writeReservations.yieldForWait(\n\t\t\t\tattempt.taskId,\n\t\t\t\tattempt.attemptId,\n\t\t\t\tattempt.lease.fencingToken,\n\t\t\t);\n\t\t\tif (yieldedReservation) this.yieldedWriteReservations.set(attempt.attemptId, yieldedReservation);\n\t\t}\n\t\tthis.yieldedCapacityAttemptIds.set(attempt.attemptId, existingYields + 1);\n\t\tlet restored = false;\n\t\tconst restore = (): boolean => {\n\t\t\tif (restored) return true;\n\t\t\tconst leases = this.yieldedCapacityAttemptIds.get(attempt.attemptId);\n\t\t\tif (leases === undefined) {\n\t\t\t\trestored = true;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif (leases > 1) {\n\t\t\t\tthis.yieldedCapacityAttemptIds.set(attempt.attemptId, leases - 1);\n\t\t\t\trestored = true;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t// \"blocked\" is the only nonterminal outcome here: the caller is still legitimately\n\t\t\t// yielded and must retry restore() later, so its bookkeeping must survive. Every other\n\t\t\t// exit — granted, no reservation to restore, or \"denied\" below — is terminal and must\n\t\t\t// always release the yield bookkeeping, even when \"denied\" throws. An entry left behind\n\t\t\t// on that throw path permanently over-counts virtual headroom in hasWorkerCapacity()\n\t\t\t// for the rest of this attempt's life, silently admitting maxConcurrent+1 workers.\n\t\t\tlet stillBlocked = false;\n\t\t\ttry {\n\t\t\t\tconst current = this.lifecycle.getLatestAgentAttempt(caller.agentId);\n\t\t\t\tif (\n\t\t\t\t\t!this.deps.isDisposed() &&\n\t\t\t\t\tcurrent?.attemptId === attempt.attemptId &&\n\t\t\t\t\t(current.status === \"leased\" || current.status === \"running\")\n\t\t\t\t) {\n\t\t\t\t\tconst yieldedReservation = this.yieldedWriteReservations.get(attempt.attemptId);\n\t\t\t\t\tif (yieldedReservation) {\n\t\t\t\t\t\tconst reservation = this.writeReservations.restoreAfterWait(yieldedReservation);\n\t\t\t\t\t\tif (reservation.kind === \"blocked\") {\n\t\t\t\t\t\t\tstillBlocked = true;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (reservation.kind === \"denied\") {\n\t\t\t\t\t\t\tthis.laneAbortControllers.get(attempt.taskId)?.abort(reservation.reasonCode);\n\t\t\t\t\t\t\tthrow new Error(`Worker wait could not restore its write reservation: ${reservation.reasonCode}.`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!this.deps.isDisposed()) this.scheduler.drain(true);\n\t\t\t\treturn true;\n\t\t\t} finally {\n\t\t\t\tif (!stillBlocked) {\n\t\t\t\t\tthis.yieldedCapacityAttemptIds.delete(attempt.attemptId);\n\t\t\t\t\tthis.yieldedWriteReservations.delete(attempt.attemptId);\n\t\t\t\t\trestored = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\ttry {\n\t\t\tthis.scheduler.drain(true);\n\t\t} catch (error) {\n\t\t\tif (!restore()) {\n\t\t\t\tthrow new AggregateError(\n\t\t\t\t\t[error],\n\t\t\t\t\t\"Worker wait dispatch failed before its write reservation could be restored.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t\treturn restore;\n\t}\n\n\tprivate workerDispatchAdmission(request: WorkerDelegationRequest, record: LaneRecord): WorkerDispatchAdmission {\n\t\tif (this.recovery.deferRetryIfNeeded(record, request)) return { action: \"wait\" };\n\t\tconst lifecycle = this.getWorkerLifecycle();\n\t\tconst attempt = lifecycle.getActiveAttempt(record.laneId);\n\t\tif (!attempt) return { action: \"cancel\", reasonCode: \"orchestration_attempt_missing\" };\n\t\tif (attempt.status === \"queued\" || attempt.status === \"suspended\") {\n\t\t\tconst readiness = lifecycle.getAttemptDispatchReadiness(attempt.attemptId);\n\t\t\tif (readiness.state === \"waiting\") {\n\t\t\t\treturn {\n\t\t\t\t\taction: \"wait\",\n\t\t\t\t\treason: readiness.reasonCode === \"objective_paused\" ? \"objective\" : \"dependencies\",\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (readiness.state === \"blocked\") return { action: \"cancel\", reasonCode: readiness.reasonCode };\n\t\t}\n\t\tconst contract = attempt.dispatch.executionContract;\n\t\tconst admission = this.resolveWorkerAdmission(request, contract);\n\t\tif (!admission.ok) return { action: \"cancel\", reasonCode: admission.skipReason };\n\t\tif (!this.hasWorkerCapacity(admission.settings)) return { action: \"wait\", reason: \"capacity\" };\n\t\tconst reservation = this.writeReservations.acquire(record.laneId, attempt, admission.executionPlan);\n\t\tif (reservation.kind === \"denied\") return { action: \"cancel\", reasonCode: reservation.reasonCode };\n\t\treturn reservation.kind === \"granted\" ? { action: \"start\" } : { action: \"wait\", reason: \"write_reservation\" };\n\t}\n\n\tprivate workerProjectionHeadroomSkipReason(\n\t\tcontract: WorkerExecutionContract,\n\t\tverificationOfTaskId?: string,\n\t): string | undefined {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (verificationOfTaskId) pendingVerifierSubjects.delete(verificationOfTaskId);\n\t\tconst slots = 1 + pendingVerifierSubjects.size + (contract.verifier ? 1 : 0);\n\t\ttry {\n\t\t\tthis.lifecycle.ledger.runtime.assertProjectionHeadroom({ tasks: slots, attempts: slots });\n\t\t\treturn undefined;\n\t\t} catch {\n\t\t\treturn \"orchestration_projection_capacity_exhausted\";\n\t\t}\n\t}\n\n\tprivate workerQueueReservationSkipReason(\n\t\trequest: WorkerDelegationRequest,\n\t\trequestQueueSlots: 0 | 1,\n\t\tunpersistedVerifierSlots: 0 | 1,\n\t): string | undefined {\n\t\tconst pendingVerifierSubjects = pendingVerifierSubjectTaskIds(this.lifecycle.getTaskRuntimeSnapshot());\n\t\tif (request.verificationOfTaskId) pendingVerifierSubjects.delete(request.verificationOfTaskId);\n\t\tconst remainingQueueSlots = DEFAULT_WORKER_FLEET_LIMITS.maxQueuedDispatches - this.scheduler.queuedCount;\n\t\treturn requestQueueSlots + pendingVerifierSubjects.size + unpersistedVerifierSlots > remainingQueueSlots\n\t\t\t? \"worker_dispatch_queue_full\"\n\t\t\t: undefined;\n\t}\n\n\tprivate workerContextParentModel(request: WorkerDelegationRequest): { provider: string; model: string } {\n\t\tif (request.parentAgentId) {\n\t\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\t\tif (!parent) throw new Error(\"Worker parent logical agent is missing.\");\n\t\t\treturn workerContextModelIdentity(parent.resumeContext.modelRef);\n\t\t}\n\t\tconst parent = this.deps.getModel();\n\t\tif (!parent) throw new Error(\"Foreground parent model is missing.\");\n\t\treturn { provider: parent.provider, model: parent.id };\n\t}\n\n\tprivate workerContextForkSource(request: WorkerDelegationRequest): WorkerContextForkSource {\n\t\tconst model = this.workerContextParentModel(request);\n\t\tif (!request.parentAgentId) {\n\t\t\treturn { model, messages: this.deps.getSessionManager().buildSessionContext().messages };\n\t\t}\n\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\tif (!parent) throw new Error(\"Worker parent logical agent is missing.\");\n\t\tconst conversation = this.conversations.open({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tresumeContext: parent.resumeContext,\n\t\t\texpectedLogicalAgentId: parent.agentId,\n\t\t});\n\t\treturn { model, messages: conversation.getProviderContext().messages };\n\t}\n\n\tprivate workerContextForkMode(\n\t\trequest: WorkerDelegationRequest,\n\t\tcontract: WorkerExecutionContract,\n\t): ReturnType<typeof resolveWorkerContextInheritanceMode> {\n\t\tif (request.verificationOfTaskId) return { kind: \"none\" };\n\t\tconst mode = request.forkTurns ?? \"none\";\n\t\treturn resolveWorkerContextInheritanceMode({\n\t\t\tparent: this.workerContextParentModel(request),\n\t\t\tworker: {\n\t\t\t\tprovider: contract.worker.modelBinding.provider,\n\t\t\t\tmodel: contract.worker.modelBinding.modelId,\n\t\t\t},\n\t\t\t...(mode !== undefined ? { mode } : {}),\n\t\t});\n\t}\n\n\tprivate workerTreeAttemptAdmissionSkipReason(request: WorkerDelegationRequest): string | undefined {\n\t\tif (!request.parentAgentId) return undefined;\n\t\tconst parent = this.lifecycle.getAgent(request.parentAgentId);\n\t\tif (!parent) return undefined;\n\t\tconst rootAttempt = this.lifecycle.getLatestAgentAttempt(parent.rootAgentId);\n\t\tconst maxAttempts = rootAttempt?.dispatch.executionContract?.worker.authority.budget.maxAttempts;\n\t\tconst existingAttempts = collectWorkerTreeBudgetSeeds(\n\t\t\tthis.lifecycle.getTaskRuntimeSnapshot(),\n\t\t\tparent.rootAgentId,\n\t\t).length;\n\t\treturn workerTreeCanAdmitAttempt(existingAttempts, maxAttempts)\n\t\t\t? undefined\n\t\t\t: \"worker_tree_attempt_budget_exhausted\";\n\t}\n\n\tprivate workerContextForkAdmissionSkipReason(\n\t\trequest: WorkerDelegationRequest,\n\t\tcontract: WorkerExecutionContract,\n\t): string | undefined {\n\t\ttry {\n\t\t\tthis.workerContextForkMode(request, contract);\n\t\t\treturn undefined;\n\t\t} catch {\n\t\t\treturn \"worker_context_inheritance_denied\";\n\t\t}\n\t}\n\n\tprivate workerGoalDependencySkipReason(request: WorkerDelegationRequest): string | undefined {\n\t\tif (request.verificationOfTaskId) return undefined;\n\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\tif (!goal || !goal.requirements || goal.requirements.length === 0) return undefined;\n\n\t\tconst reqIds = new Set<string>();\n\t\tfor (const id of request.taskContext?.requirementIds ?? []) {\n\t\t\tif (id.trim()) reqIds.add(id.trim());\n\t\t}\n\n\t\tif (reqIds.size === 0 && request.instructions) {\n\t\t\tfor (const req of goal.requirements) {\n\t\t\t\tif (request.instructions.includes(req.id)) {\n\t\t\t\t\treqIds.add(req.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (reqIds.size > 0) {\n\t\t\tfor (const reqId of reqIds) {\n\t\t\t\tconst req = goal.requirements.find((r) => r.id === reqId);\n\t\t\t\tif (req?.dependencies && req.dependencies.length > 0) {\n\t\t\t\t\tconst unsatisfied = req.dependencies.some((depId) => {\n\t\t\t\t\t\tconst dep = goal.requirements.find((r) => r.id === depId);\n\t\t\t\t\t\treturn !dep || dep.status !== \"satisfied\";\n\t\t\t\t\t});\n\t\t\t\t\tif (unsatisfied) return \"goal_dependency_unsatisfied\";\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst openReqs = goal.requirements.filter((r) => r.status === \"open\");\n\t\t\tconst hasOpenReqWithoutUnsatisfiedDeps = openReqs.some((req) => {\n\t\t\t\tif (!req.dependencies || req.dependencies.length === 0) return true;\n\t\t\t\treturn req.dependencies.every((depId) => {\n\t\t\t\t\tconst dep = goal.requirements.find((r) => r.id === depId);\n\t\t\t\t\treturn dep && dep.status === \"satisfied\";\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (openReqs.length > 0 && !hasOpenReqWithoutUnsatisfiedDeps) {\n\t\t\t\treturn \"goal_dependency_unsatisfied\";\n\t\t\t}\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/** One admission owner for every newly generated logical worker identity. */\n\tprivate admitNewWorkerRequest(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): WorkerAdmission {\n\t\tconst goalDependencySkipReason = this.workerGoalDependencySkipReason(request);\n\t\tif (goalDependencySkipReason) return { ok: false, skipReason: goalDependencySkipReason };\n\t\tconst fleetSkipReason = this.newWorkerFleetSkipReason(request);\n\t\tif (fleetSkipReason) return { ok: false, skipReason: fleetSkipReason };\n\t\tconst treeAttemptSkipReason = this.workerTreeAttemptAdmissionSkipReason(request);\n\t\tif (treeAttemptSkipReason) return { ok: false, skipReason: treeAttemptSkipReason };\n\t\tconst admission = this.resolveWorkerAdmission(request, pinnedContract);\n\t\tif (!admission.ok) return admission;\n\t\tconst contextForkSkipReason = this.workerContextForkAdmissionSkipReason(request, admission.executionContract);\n\t\tif (contextForkSkipReason) return { ok: false, skipReason: contextForkSkipReason };\n\t\tif (!request.verificationOfTaskId) this.recovery.recover();\n\t\tconst headroomSkipReason = this.newWorkerFleetSkipReason(\n\t\t\trequest,\n\t\t\tthis.requiredAgentSlotsForAdmission(request, admission),\n\t\t);\n\t\tif (headroomSkipReason) return { ok: false, skipReason: headroomSkipReason };\n\t\tconst projectionHeadroomSkipReason = this.workerProjectionHeadroomSkipReason(\n\t\t\tadmission.executionContract,\n\t\t\trequest.verificationOfTaskId,\n\t\t);\n\t\tif (projectionHeadroomSkipReason) return { ok: false, skipReason: projectionHeadroomSkipReason };\n\t\tconst queueReservationSkipReason = this.workerQueueReservationSkipReason(\n\t\t\trequest,\n\t\t\t0,\n\t\t\tadmission.verifierShipment ? 1 : 0,\n\t\t);\n\t\treturn queueReservationSkipReason ? { ok: false, skipReason: queueReservationSkipReason } : admission;\n\t}\n\n\tprivate durableWorkerContextForkReferences(): WorkerContextForkReference[] {\n\t\tconst references: WorkerContextForkReference[] = [];\n\t\tfor (const attempt of Object.values(this.lifecycle.getTaskRuntimeSnapshot().attempts)) {\n\t\t\tif (attempt.dispatch.birthContextForkReference) {\n\t\t\t\treferences.push(attempt.dispatch.birthContextForkReference);\n\t\t\t}\n\t\t}\n\t\treturn references;\n\t}\n\n\tprivate buildWorkerExecutionPlan(\n\t\tprofile: OrchestrationProfile,\n\t\tsettings: ResolvedWorkerDelegationSettings,\n\t\trequestedReadPaths?: readonly string[],\n\t\trequestedWritePaths?: readonly string[],\n\t): WorkerExecutionPlan {\n\t\treturn buildWorkerExecutionPlan({\n\t\t\tprofile,\n\t\t\tsettings,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tdeniedPaths: getPrivateLaneDeniedPaths(this.deps.getCwd(), this.deps.getAgentDir()),\n\t\t\tforegroundMaxCostUsd: this.deps.getCapabilityEnvelope()?.maxEstimatedUsd,\n\t\t\tmemoryEnabled: this.deps.getSettingsManager().getMemoryRetrievalSettings().enabled,\n\t\t\t...(requestedReadPaths ? { requestedReadPaths } : {}),\n\t\t\t...(requestedWritePaths ? { requestedWritePaths } : {}),\n\t\t});\n\t}\n\n\t/** One durable preparation path for queued, immediate, and recovered execution. */\n\tprivate prepareWorkerAttempt(\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t\texistingRecord?: LaneRecord,\n\t): PreparedWorkerAttempt {\n\t\tconst lifecycle = this.getWorkerLifecycle();\n\t\tif (existingRecord) {\n\t\t\treturn {\n\t\t\t\texecutionPlan: admission.executionPlan,\n\t\t\t\tlifecycle,\n\t\t\t\trecord: existingRecord,\n\t\t\t\tattempt: lifecycle.getActiveAttempt(existingRecord.laneId),\n\t\t\t};\n\t\t}\n\t\tconst goal = this.deps.getGoalStateSnapshot();\n\t\tconst mode = this.workerContextForkMode(request, admission.executionContract);\n\t\tconst messages =\n\t\t\tmode.kind === \"none\" ? [] : selectSanitizedContextFork(this.workerContextForkSource(request).messages, mode);\n\t\tfor (let allocation = 0; allocation < DEFAULT_WORKER_FLEET_LIMITS.maxAgentsPerSession; allocation++) {\n\t\t\tconst laneId = lifecycle.getNextAvailableLaneIdCandidate();\n\t\t\tlet proposedReference: WorkerContextForkReference | undefined;\n\t\t\ttry {\n\t\t\t\tconst captured = this.contextForks.captureAndPrepare({\n\t\t\t\t\tlogicalAgentId: laneId,\n\t\t\t\t\tmessages,\n\t\t\t\t\treadDurableReferences: () => this.durableWorkerContextForkReferences(),\n\t\t\t\t\tisLogicalIdentityClaimed: () => {\n\t\t\t\t\t\tconst snapshot = lifecycle.getTaskRuntimeSnapshot();\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tsnapshot.tasks[laneId]?.attemptIds.some(\n\t\t\t\t\t\t\t\t(attemptId) => snapshot.attempts[attemptId] !== undefined,\n\t\t\t\t\t\t\t) ?? false\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t\tprepare: (birthContextForkReference) => {\n\t\t\t\t\t\tproposedReference = birthContextForkReference;\n\t\t\t\t\t\treturn lifecycle.prepare(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinstructions: admission.instructions,\n\t\t\t\t\t\t\t\t...(request.parentAgentId ? { parentAgentId: request.parentAgentId } : {}),\n\t\t\t\t\t\t\t\tbirthContextForkReference,\n\t\t\t\t\t\t\t\texecutionContract: admission.executionContract,\n\t\t\t\t\t\t\t\trequiredCapabilities: admission.executionPlan.requiredCapabilities,\n\t\t\t\t\t\t\t\t...(request.verificationOfTaskId ? { verificationOfTaskId: request.verificationOfTaskId } : {}),\n\t\t\t\t\t\t\t\ttaskContext: {\n\t\t\t\t\t\t\t\t\trequirementIds: request.taskContext?.requirementIds ?? [],\n\t\t\t\t\t\t\t\t\tdependsOnTaskIds: request.taskContext?.dependsOnTaskIds ?? [],\n\t\t\t\t\t\t\t\t\tacceptanceCriterionIds: request.taskContext?.acceptanceCriterionIds ?? [],\n\t\t\t\t\t\t\t\t\tresourcePointerIds: admission.resourcePointerIds,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...(goal ? { goal } : {}),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlaneId,\n\t\t\t\t\t\t);\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\treturn { executionPlan: admission.executionPlan, lifecycle, ...captured.value };\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof WorkerContextForkStoreError && error.code === \"identity_claimed\") continue;\n\t\t\t\tconst snapshot = lifecycle.getTaskRuntimeSnapshot();\n\t\t\t\tconst candidateTask = snapshot.tasks[laneId];\n\t\t\t\tconst candidateAttempts = candidateTask?.attemptIds.map((attemptId) => snapshot.attempts[attemptId]) ?? [];\n\t\t\t\tconst candidateOwnsDurableAttempt = candidateAttempts.some((attempt) => attempt !== undefined);\n\t\t\t\tconst sameRequestReplay = candidateAttempts.some(\n\t\t\t\t\t(attempt) =>\n\t\t\t\t\t\tattempt !== undefined &&\n\t\t\t\t\t\tattempt.dispatch.instructions === admission.instructions &&\n\t\t\t\t\t\tattempt.dispatch.parentAgentId === request.parentAgentId &&\n\t\t\t\t\t\tisDeepStrictEqual(attempt.dispatch.executionContract, admission.executionContract) &&\n\t\t\t\t\t\t(proposedReference === undefined ||\n\t\t\t\t\t\t\tisDeepStrictEqual(attempt.dispatch.birthContextForkReference, proposedReference)),\n\t\t\t\t);\n\t\t\t\tconst corruptSnapshot =\n\t\t\t\t\terror instanceof WorkerContextForkStoreError &&\n\t\t\t\t\t(error.code === \"snapshot_corrupt\" || error.code === \"snapshot_missing\");\n\t\t\t\tconst generatedIdWasConcurrentlyClaimed =\n\t\t\t\t\tcandidateOwnsDurableAttempt && !sameRequestReplay && !corruptSnapshot;\n\t\t\t\tif (!generatedIdWasConcurrentlyClaimed) throw error;\n\t\t\t}\n\t\t}\n\t\tthrow new Error(\"Worker logical-agent allocation retries were exhausted.\");\n\t}\n\n\tprivate enqueuePreparedWorkerAttempt(\n\t\trecord: LaneRecord,\n\t\trequest: WorkerDelegationRequest,\n\t\tprofileId: string,\n\t\tpriority: boolean,\n\t): string | undefined {\n\t\ttry {\n\t\t\tthis.scheduler.enqueue(record, { ...request, profileId }, false, priority);\n\t\t\treturn undefined;\n\t\t} catch (error) {\n\t\t\tconst reasonCode =\n\t\t\t\terror instanceof Error && error.message === \"worker_dispatch_queue_full\"\n\t\t\t\t\t? \"worker_dispatch_queue_full\"\n\t\t\t\t\t: \"worker_dispatch_enqueue_error\";\n\t\t\tthis.cancelAndPublish(this.lifecycle, record.laneId, reasonCode);\n\t\t\tthis.safeWarn(`Worker dispatch enqueue failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn reasonCode;\n\t\t}\n\t}\n\n\tprivate queuePreparedWorkerAttempt(\n\t\tprepared: PreparedWorkerAttempt,\n\t\trequest: WorkerDelegationRequest,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t\toptions: {\n\t\t\tensureAgent?: boolean;\n\t\t\tdrain?: boolean;\n\t\t\tonStarted?: (record: LaneRecord) => void;\n\t\t} = {},\n\t): QueuedWorkerAttemptOutcome {\n\t\tif (\n\t\t\tthis.workerQueueReservationSkipReason(request, 1, 0) ||\n\t\t\t!this.scheduler.hasQueueCapacity(request.verificationOfTaskId !== undefined)\n\t\t) {\n\t\t\tthis.cancelAndPublish(prepared.lifecycle, prepared.record.laneId, \"worker_dispatch_queue_full\");\n\t\t\treturn { started: false, skipReason: \"worker_dispatch_queue_full\" };\n\t\t}\n\t\tif (options.ensureAgent !== false) {\n\t\t\ttry {\n\t\t\t\tthis.ensurePreparedAgent(prepared, admission);\n\t\t\t} catch (error) {\n\t\t\t\tthis.cancelAndPublish(prepared.lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker conversation setup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t\t}\n\t\t}\n\t\tconst priority = request.verificationOfTaskId !== undefined;\n\t\tconst enqueueSkipReason = this.enqueuePreparedWorkerAttempt(\n\t\t\tprepared.record,\n\t\t\trequest,\n\t\t\tadmission.shipment.profile.profileId,\n\t\t\tpriority,\n\t\t);\n\t\tif (enqueueSkipReason) return { started: false, skipReason: enqueueSkipReason };\n\t\tthis.notifications.statusChanged();\n\t\toptions.onStarted?.(prepared.record);\n\t\tif (options.drain) this.scheduler.drain();\n\t\treturn {\n\t\t\tstarted: true,\n\t\t\trecord: prepared.record,\n\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tprivate ensurePreparedAgent(\n\t\tprepared: PreparedWorkerAttempt,\n\t\tadmission: Extract<WorkerAdmission, { ok: true }>,\n\t): PreparedWorkerAgent {\n\t\tif (!prepared.attempt) throw new Error(\"Prepared worker attempt is missing.\");\n\t\tconst immutableWorker = prepared.attempt.dispatch.executionContract?.worker;\n\t\tif (!immutableWorker) throw new Error(\"Prepared worker execution contract is missing.\");\n\t\tconst agentId = prepared.attempt.agentId ?? prepared.attempt.dispatch.logicalLaneId ?? prepared.record.laneId;\n\t\tconst birthContextForkReference = prepared.attempt.dispatch.birthContextForkReference;\n\t\tconst existing = prepared.lifecycle.getAgent(agentId);\n\t\tif (existing) {\n\t\t\tconst conversation = this.conversations.open({\n\t\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\t\tresumeContext: existing.resumeContext,\n\t\t\t\texpectedLogicalAgentId: existing.agentId,\n\t\t\t});\n\t\t\tif (!isDeepStrictEqual(conversation.getBirthContextForkReference(), birthContextForkReference)) {\n\t\t\t\tthrow new Error(\"Worker conversation birth context conflicts with its durable attempt.\");\n\t\t\t}\n\t\t\tconst materialized = materializeWorkerResourceBundle(existing.resumeContext.contextPointers);\n\t\t\tif (!materialized.ok) throw new Error(`worker_resource_materialization_${materialized.code}`);\n\t\t\treturn {\n\t\t\t\tconversation,\n\t\t\t\tresources: materialized.pointers,\n\t\t\t\tresourceSystemPrompt: materialized.systemPrompt,\n\t\t\t};\n\t\t}\n\t\tconst selected = selectWorkerResourcePointers(immutableWorker.resourcePointers, admission.resourcePointerIds);\n\t\tif (!selected.ok) throw new Error(selected.reason);\n\t\tconst materialized = materializeWorkerResourceBundle(selected.pointers);\n\t\tif (!materialized.ok) throw new Error(`worker_resource_materialization_${materialized.code}`);\n\t\tconst conversation = this.conversations.ensure({\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tlogicalAgentId: agentId,\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\torchestrationProfileId: immutableWorker.profile.profileId,\n\t\t\tmodelRef: `${immutableWorker.modelBinding.provider}/${immutableWorker.modelBinding.modelId}`,\n\t\t\tresourceProfileNames: immutableWorker.profile.resourceProfileNames,\n\t\t\tcontextPointers: materialized.pointers,\n\t\t\t...(birthContextForkReference ? { birthContextForkReference } : {}),\n\t\t});\n\t\tprepared.lifecycle.ensureAgent({\n\t\t\tagentId,\n\t\t\t...(prepared.attempt.dispatch.parentAgentId ? { parentAgentId: prepared.attempt.dispatch.parentAgentId } : {}),\n\t\t\trole: immutableWorker.profile.role,\n\t\t\tresumeContext: conversation.getResumeContext(),\n\t\t});\n\t\treturn {\n\t\t\tconversation,\n\t\t\tresources: materialized.pointers,\n\t\t\tresourceSystemPrompt: materialized.systemPrompt,\n\t\t};\n\t}\n\n\tstart(\n\t\trequest: WorkerDelegationRequest,\n\t): { started: false; skipReason: string } | { started: true; record: LaneRecord; modelPinBypass?: WorkerRole } {\n\t\treturn this.startInternal(request);\n\t}\n\n\tprivate startInternal(\n\t\trequest: WorkerDelegationRequest,\n\t\tpinnedContract?: WorkerExecutionContract,\n\t): { started: false; skipReason: string } | { started: true; record: LaneRecord; modelPinBypass?: WorkerRole } {\n\t\tconst admission = this.admitNewWorkerRequest(request, pinnedContract);\n\t\tif (!admission.ok) return { started: false, skipReason: admission.skipReason };\n\t\tconst { settings, shipment } = admission;\n\n\t\tconst foreground = this.deps.getModel();\n\t\tconst contendsWithLocalForeground =\n\t\t\tforeground !== undefined && isLocalExecutionModel(foreground) && isLocalExecutionModel(shipment.model);\n\t\tconst dependencyGated = (request.taskContext?.dependsOnTaskIds.length ?? 0) > 0;\n\t\tif (dependencyGated || contendsWithLocalForeground || !this.hasWorkerCapacity(settings)) {\n\t\t\t// A mandatory verifier is the continuation of an already admitted implementation, not a\n\t\t\t// new owner request. Reserve its queue admission so a burst of ordinary work cannot strand\n\t\t\t// the subject behind `independent_verification_required` with no terminal handoff.\n\t\t\tconst priority = request.verificationOfTaskId !== undefined;\n\t\t\tif (\n\t\t\t\tthis.workerQueueReservationSkipReason(request, 1, admission.verifierShipment ? 1 : 0) ||\n\t\t\t\t!this.scheduler.hasQueueCapacity(priority)\n\t\t\t) {\n\t\t\t\treturn { started: false, skipReason: \"worker_dispatch_queue_full\" };\n\t\t\t}\n\t\t\tlet prepared: PreparedWorkerAttempt;\n\t\t\ttry {\n\t\t\t\tprepared = this.prepareWorkerAttempt(request, admission);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker dispatch was not persisted: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"orchestration_ledger_error\" };\n\t\t\t}\n\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, {\n\t\t\t\tdrain: dependencyGated,\n\t\t\t});\n\t\t}\n\t\tlet startedRecord: LaneRecord | undefined;\n\t\tconst promise = this.runOnceWithAdmission(\n\t\t\trequest,\n\t\t\t(record) => {\n\t\t\t\tstartedRecord = record;\n\t\t\t},\n\t\t\tundefined,\n\t\t\tadmission,\n\t\t\ttrue,\n\t\t);\n\t\tif (!startedRecord) {\n\t\t\t// Preparation is synchronous up to the first isolated completion await. A promise that\n\t\t\t// rejected before producing a lane is still observed below, so it cannot become unhandled.\n\t\t\tvoid promise.catch(() => undefined);\n\t\t\treturn { started: false, skipReason: \"worker_not_started\" };\n\t\t}\n\t\tthis.scheduler.track(startedRecord.laneId, promise);\n\t\treturn {\n\t\t\tstarted: true,\n\t\t\trecord: startedRecord,\n\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t};\n\t}\n\n\tasync runOnce(\n\t\trequest: WorkerDelegationRequest,\n\t\tonStarted?: (record: LaneRecord) => void,\n\t\texistingRecord?: LaneRecord,\n\t): Promise<WorkerDelegationRunOutcome> {\n\t\treturn this.runOnceWithAdmission(request, onStarted, existingRecord);\n\t}\n\n\tprivate async runOnceWithAdmission(\n\t\trequest: WorkerDelegationRequest,\n\t\tonStarted?: (record: LaneRecord) => void,\n\t\texistingRecord?: LaneRecord,\n\t\tpreparedAdmission?: Extract<WorkerAdmission, { ok: true }>,\n\t\tnewWorkerAdmissionChecked = false,\n\t): Promise<WorkerDelegationRunOutcome> {\n\t\tconst pinnedContract = existingRecord\n\t\t\t? this.getWorkerLifecycle().getActiveAttempt(existingRecord.laneId)?.dispatch.executionContract\n\t\t\t: undefined;\n\t\tconst admission = existingRecord\n\t\t\t? this.resolveWorkerAdmission(request, pinnedContract)\n\t\t\t: preparedAdmission && newWorkerAdmissionChecked\n\t\t\t\t? preparedAdmission\n\t\t\t\t: this.admitNewWorkerRequest(request, pinnedContract);\n\t\tif (!admission.ok) return { started: false, skipReason: admission.skipReason };\n\t\tif (existingRecord && !request.verificationOfTaskId) this.recovery.recover();\n\t\tconst { instructions, settings, verifierShipment } = admission;\n\t\tconst { model, modelBinding, profile: orchestrationProfile, soul } = admission.shipment;\n\t\tif (!this.hasWorkerCapacity(settings)) {\n\t\t\treturn { started: false, skipReason: \"worker_delegation_already_running\" };\n\t\t}\n\t\tconst laneCapability = this.laneCapabilityProfile(model);\n\t\tconst retentionPolicy = workerConversationRetentionPolicy(model, this.deps.getSettingsManager());\n\t\tconst prepared = this.prepareWorkerAttempt(request, admission, existingRecord);\n\t\tconst { executionPlan, lifecycle } = prepared;\n\t\tif (!prepared.attempt) return { started: false, skipReason: \"orchestration_attempt_missing\" };\n\t\tif (prepared.attempt.status === \"queued\") {\n\t\t\tconst readiness = lifecycle.getAttemptDispatchReadiness(prepared.attempt.attemptId);\n\t\t\tif (readiness.state === \"blocked\") {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, readiness.reasonCode);\n\t\t\t\treturn { started: false, skipReason: readiness.reasonCode };\n\t\t\t}\n\t\t\tif (readiness.state === \"waiting\") {\n\t\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, { onStarted });\n\t\t\t}\n\t\t}\n\t\tlet preparedAgent: PreparedWorkerAgent;\n\t\ttry {\n\t\t\tpreparedAgent = this.ensurePreparedAgent(prepared, admission);\n\t\t} catch (error) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\tthis.safeWarn(`Worker conversation setup failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t}\n\t\tconst durableTask = lifecycle.getTask(prepared.record.laneId);\n\t\tif (!durableTask) return { started: false, skipReason: \"orchestration_task_missing\" };\n\t\tconst immutableWorker = prepared.attempt.dispatch.executionContract?.worker;\n\t\tif (!immutableWorker) return { started: false, skipReason: \"orchestration_execution_contract_missing\" };\n\t\tlet grant: ExecutionGrant;\n\t\tconst workerResourceSystemPrompt = preparedAgent.resourceSystemPrompt;\n\t\tif (prepared.attempt.grant) {\n\t\t\tif (\n\t\t\t\t!this.recovery.durableGrantIsStillPermitted(prepared.attempt.grant, executionPlan, preparedAgent.resources)\n\t\t\t) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"recovered_grant_revoked\");\n\t\t\t\treturn { started: false, skipReason: \"recovered_grant_revoked\" };\n\t\t\t}\n\t\t\tgrant = prepared.attempt.grant;\n\t\t} else {\n\t\t\tconst compiled = compileWorkerExecutionGrant({\n\t\t\t\ttarget: {\n\t\t\t\t\tobjectiveId: durableTask.task.objectiveId,\n\t\t\t\t\ttaskId: prepared.attempt.taskId,\n\t\t\t\t\tattemptId: prepared.attempt.attemptId,\n\t\t\t\t},\n\t\t\t\tprofile: orchestrationProfile,\n\t\t\t\tplan: executionPlan,\n\t\t\t\tresources: preparedAgent.resources,\n\t\t\t});\n\t\t\tif (!compiled.ok) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, compiled.reasonCodes.join(\",\"));\n\t\t\t\treturn { started: false, skipReason: `execution_policy_denied:${compiled.reasonCodes.join(\",\")}` };\n\t\t\t}\n\t\t\tlifecycle.bindGrant(prepared.attempt.attemptId, compiled.grant);\n\t\t\tgrant = compiled.grant;\n\t\t}\n\t\tconst immutableProfile = immutableWorker.profile;\n\t\t// Follow-up tasks deliberately receive unique task ids while retaining the original logical\n\t\t// agent id in dispatch metadata. Never derive a new agent identity from a follow-up task id.\n\t\tconst agentId = prepared.attempt.agentId ?? prepared.attempt.dispatch.logicalLaneId ?? prepared.record.laneId;\n\t\tconst registeredAgent = lifecycle.getAgent(agentId);\n\t\tif (prepared.attempt.agentId && !registeredAgent) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"orchestration_agent_missing\");\n\t\t\treturn { started: false, skipReason: \"orchestration_agent_missing\" };\n\t\t}\n\t\tconst conversation = preparedAgent.conversation;\n\t\tif (prepared.attempt.status === \"queued\" || conversation.usesAttemptUsageBoundaries()) {\n\t\t\ttry {\n\t\t\t\tconversation.beginAttemptUsage(prepared.attempt.attemptId);\n\t\t\t} catch (error) {\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_conversation_unavailable\");\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker usage boundary setup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t\treturn { started: false, skipReason: \"worker_conversation_unavailable\" };\n\t\t\t}\n\t\t}\n\t\tif (prepared.attempt.status === \"suspended\") this.recovery.repairInterruptedToolResults(conversation);\n\t\tconst reservation = this.writeReservations.acquire(prepared.record.laneId, prepared.attempt, executionPlan);\n\t\tif (reservation.kind === \"denied\") {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, reservation.reasonCode);\n\t\t\treturn { started: false, skipReason: reservation.reasonCode };\n\t\t}\n\t\tif (reservation.kind === \"blocked\") {\n\t\t\treturn this.queuePreparedWorkerAttempt(prepared, request, admission, {\n\t\t\t\tensureAgent: false,\n\t\t\t\tonStarted,\n\t\t\t});\n\t\t}\n\t\tlet durableHandle: StartedDelegationAttempt;\n\t\ttry {\n\t\t\tdurableHandle =\n\t\t\t\tregisteredAgent && prepared.attempt.status === \"suspended\"\n\t\t\t\t\t? lifecycle.resumeAgent(\n\t\t\t\t\t\t\tprepared.record.laneId,\n\t\t\t\t\t\t\tregisteredAgent.agentId,\n\t\t\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t\t\t\t)\n\t\t\t\t\t: lifecycle.startAgent(\n\t\t\t\t\t\t\tprepared.record.laneId,\n\t\t\t\t\t\t\tagentId,\n\t\t\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t\t\t\tthis.agentControl.getProcessOwnerId(),\n\t\t\t\t\t\t);\n\t\t} catch (error) {\n\t\t\tthis.writeReservations.release(prepared.record.laneId);\n\t\t\tif (prepared.attempt.status !== \"suspended\")\n\t\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"worker_start_unavailable\");\n\t\t\tthis.safeWarn(`Worker start failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t\treturn { started: false, skipReason: \"worker_start_unavailable\" };\n\t\t}\n\t\tconst startedRecord = lifecycle.getRecord(prepared.record.laneId);\n\t\tif (!startedRecord) {\n\t\t\tthis.writeReservations.release(prepared.record.laneId);\n\t\t\treturn { started: false, skipReason: \"orchestration_projection_missing\" };\n\t\t}\n\t\tif (\n\t\t\tthis.writeReservations.hasFenceMismatch(\n\t\t\t\tstartedRecord.laneId,\n\t\t\t\tdurableHandle.attemptId,\n\t\t\t\tdurableHandle.fencingToken,\n\t\t\t)\n\t\t) {\n\t\t\tthis.writeReservations.release(startedRecord.laneId);\n\t\t\tconst record = this.cancelAndPublish(lifecycle, startedRecord.laneId, \"write_reservation_fence_mismatch\");\n\t\t\tthis.safeWarn(\"Worker write reservation fence did not match the durable attempt lease.\");\n\t\t\treturn { started: false, skipReason: record?.reasonCode ?? \"write_reservation_fence_mismatch\" };\n\t\t}\n\t\tconst recoveredTerminal =\n\t\t\tprepared.attempt.status === \"suspended\"\n\t\t\t\t? this.recovery.recoveredTerminalCompletion(conversation, durableHandle.attemptId)\n\t\t\t\t: undefined;\n\t\tconst checkpointUsage = lifecycle.getAttemptUsage(startedRecord.laneId);\n\t\tconst initialUsage = this.recovery.initialUsage(conversation, checkpointUsage, durableHandle.attemptId);\n\t\tonStarted?.(startedRecord);\n\t\tconst maxUsd = grant.budget.maxCostUsd;\n\t\tconst executionPolicy = orchestrationProfile.executionPolicy;\n\t\tconst recursiveDelegateTool = wrapToolDefinition(\n\t\t\tcreateDelegateToolDefinition({\n\t\t\t\tstartWorkerDelegation: (childRequest) => this.start({ ...childRequest, parentAgentId: agentId }),\n\t\t\t\trunWorkerDelegation: (childRequest) => this.runOnce({ ...childRequest, parentAgentId: agentId }),\n\t\t\t\torchestrationProfiles: this.getProfileCatalog(),\n\t\t\t\tworkerModelPinPolicy: this.deps.getSettingsManager().getWorkerModelPinPolicy(),\n\t\t\t\tworkerAgentControl: this.agentControl,\n\t\t\t\tcaller: { kind: \"worker\", agentId },\n\t\t\t\twarn: (message) => this.safeWarn(message),\n\t\t\t\tresolveMessageReplayScope: () => ({\n\t\t\t\t\tsessionId: this.deps.getSessionId(),\n\t\t\t\t\tbranchId: durableHandle.attemptId,\n\t\t\t\t}),\n\t\t\t}),\n\t\t);\n\t\tconst agentBinding = lifecycle.getAgent(agentId);\n\t\tif (!agentBinding) {\n\t\t\tthis.cancelAndPublish(lifecycle, prepared.record.laneId, \"orchestration_agent_missing\");\n\t\t\treturn { started: false, skipReason: \"orchestration_agent_missing\" };\n\t\t}\n\t\tconst rootAttempt = lifecycle.getLatestAgentAttempt(agentBinding.rootAgentId);\n\t\tconst rootBudget = rootAttempt?.dispatch.executionContract?.worker.authority.budget ?? grant.budget;\n\t\tconst sharedBudget = this.treeBudgets.createPort({\n\t\t\trootAgentId: agentBinding.rootAgentId,\n\t\t\tattemptId: durableHandle.attemptId,\n\t\t\tbudget: rootBudget,\n\t\t\tseeds: collectWorkerTreeBudgetSeeds(lifecycle.getTaskRuntimeSnapshot(), agentBinding.rootAgentId),\n\t\t\tinitialUsage,\n\t\t});\n\t\tconst shellGranted = executionPlan.toolManifests.some((manifest) => manifest.toolName === STABLE_SHELL_TOOL_NAME);\n\t\tconst shellSessionKey = shellGranted ? `worker:${this.deps.getSessionId()}:${agentId}` : undefined;\n\t\tconst shellOutputDirectory = shellGranted\n\t\t\t? getProcessWorkRun(this.deps.getAgentDir(), \"outputs\", \"tool-streams\").path\n\t\t\t: undefined;\n\t\tif (shellSessionKey) this.shellSessionKeys.add(shellSessionKey);\n\t\tconst toolSurface = createLaneToolSurface({\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\treadMemory: executionPlan.readMemory ? (query) => this.deps.readMemoryForLane(query) : undefined,\n\t\t\twriteEnabled: executionPlan.writeEnabled,\n\t\t\twritePaths: executionPlan.writePaths,\n\t\t\t...(executionPlan.processEnabled && executionPolicy ? { executionPolicy } : {}),\n\t\t\tprocessMaxWallClockMs: grant.budget.maxWallClockMs ?? 0,\n\t\t\t...(shellSessionKey ? { shellSessionKey } : {}),\n\t\t\t...(shellOutputDirectory ? { shellOutputDirectory } : {}),\n\t\t\tgrant,\n\t\t\ttoolManifests: executionPlan.toolManifests,\n\t\t\tadditionalTools: [recursiveDelegateTool],\n\t\t\tinitialUsage,\n\t\t\tsharedBudget,\n\t\t});\n\t\tconst writeGranted =\n\t\t\texecutionPlan.writeEnabled &&\n\t\t\ttoolSurface.gateway !== undefined &&\n\t\t\ttoolSurface.allowedTools.some((name) => name === \"write\" || name === \"edit\");\n\t\tconst workerRequest: WorkerRequest = {\n\t\t\tid: startedRecord.laneId,\n\t\t\tinstructions,\n\t\t\troute: {\n\t\t\t\ttier: \"cheap\",\n\t\t\t\trisk: writeGranted ? \"scoped-write\" : \"read-only\",\n\t\t\t\tconfidence: 1,\n\t\t\t\treasonCode: \"profile_worker\",\n\t\t\t\treasons: [writeGranted ? \"Path-scoped worker delegation\" : \"Read-only worker delegation\"],\n\t\t\t},\n\t\t\tenvelope: {\n\t\t\t\tid: `worker-${this.deps.getSessionId()}-${startedRecord.laneId}`,\n\t\t\t\tprofileId: orchestrationProfile.profileId,\n\t\t\t\t// filesystem.write requires BOTH the opt-in AND an explicit non-empty path scope —\n\t\t\t\t// an unscoped write grant is refused here, not discovered at validation time.\n\t\t\t\tcapabilities: [...grant.capabilities],\n\t\t\t\t...(writeGranted ? { allowedPaths: [...grant.writePaths] } : {}),\n\t\t\t\tdeniedPaths: [...grant.deniedPaths],\n\t\t\t\tallowedTools: [...toolSurface.allowedTools],\n\t\t\t\tdeniedTools: [...toolSurface.deniedTools],\n\t\t\t\t...(maxUsd !== undefined ? { maxEstimatedUsd: maxUsd } : {}),\n\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t},\n\t\t\t...(maxUsd !== undefined ? { maxEstimatedUsd: maxUsd } : {}),\n\t\t\tcreatedAt: new Date().toISOString(),\n\t\t};\n\t\t// Worker delegation START. Routing/scope codes + budget only — never the instructions text.\n\t\tthis.deps.emitAutonomyTelemetry({\n\t\t\ttype: AUTONOMY_TELEMETRY_EVENT_TYPES.workerRequest,\n\t\t\ttimestamp: new Date().toISOString(),\n\t\t\tpayload: {\n\t\t\t\tid: workerRequest.id,\n\t\t\t\ttier: workerRequest.route.tier,\n\t\t\t\tcapabilities: [...workerRequest.envelope.capabilities],\n\t\t\t\tmaxEstimatedUsd: workerRequest.maxEstimatedUsd ?? null,\n\t\t\t},\n\t\t});\n\t\tconst usageReportId = `worker:${this.deps.getSessionId()}:${startedRecord.laneId}`;\n\t\tconst laneAbortController = new AbortController();\n\t\tthis.laneAbortControllers.set(startedRecord.laneId, laneAbortController);\n\t\tconst workerSignal = AbortSignal.any([this.workerAbort.signal, laneAbortController.signal]);\n\t\t// Fenced to the exact attemptId/leaseId/fencingToken captured here, at heartbeat start —\n\t\t// never re-resolved by laneId. `lifecycle.renewLease(laneId, ...)` looks up whatever attempt\n\t\t// is CURRENTLY active for that lane, so a heartbeat left running past its own attempt's life\n\t\t// (e.g. after a retry replaced it under a fresh fence) would trivially \"renew\" a lease it\n\t\t// does not own, defeating lease expiry as the abandonment signal for the attempt that\n\t\t// actually owns it.\n\t\tconst heartbeatAttemptId = durableHandle.attemptId;\n\t\tconst heartbeatLeaseId = durableHandle.leaseId;\n\t\tconst heartbeatFencingToken = durableHandle.fencingToken;\n\t\tconst leaseHeartbeat = new WorkerLeaseHeartbeat({\n\t\t\tleaseTtlMs: immutableProfile.leaseTtlMs,\n\t\t\trenew: () => {\n\t\t\t\tlifecycle.ledger.runtime.renewAttemptLease(\n\t\t\t\t\theartbeatAttemptId,\n\t\t\t\t\theartbeatLeaseId,\n\t\t\t\t\theartbeatFencingToken,\n\t\t\t\t\timmutableProfile.leaseTtlMs,\n\t\t\t\t);\n\t\t\t},\n\t\t\tonFailure: (error) => {\n\t\t\t\tthis.safeWarn(`Worker ${startedRecord.laneId} lease renewal failed: ${error.message}`);\n\t\t\t\tlaneAbortController.abort(error);\n\t\t\t},\n\t\t});\n\n\t\t// Registered for the lane's full run so the reload gate waits it out; deregistered in the\n\t\t// finally below no matter how this lane terminates (success, disposal, or a thrown error).\n\t\t// registerInFlightWork is a pure sync map op (cannot throw), so placing it as the last\n\t\t// statement before `try` still guarantees the matching finally always runs.\n\t\tconst deregisterInFlight = registerInFlightWork(\n\t\t\tthis.deps.getAgentDir(),\n\t\t\t\"lane\",\n\t\t\t`worker:${startedRecord.laneId}`,\n\t\t);\n\t\tconst executor = createWorkerAttemptExecutor({\n\t\t\trequest: workerRequest,\n\t\t\tgrant,\n\t\t\texecutionPlan,\n\t\t\ttoolSurface,\n\t\t\tconversation,\n\t\t\tlifecycle,\n\t\t\tlaneId: startedRecord.laneId,\n\t\t\tagentId,\n\t\t\tdurableHandle,\n\t\t\tparentSessionId: this.deps.getSessionId(),\n\t\t\tagentDir: this.deps.getAgentDir(),\n\t\t\tcwd: this.deps.getCwd(),\n\t\t\tmodel,\n\t\t\tthinkingLevel: modelBinding.thinkingLevel,\n\t\t\tlaneCapability,\n\t\t\t...(soul ? { soul } : {}),\n\t\t\tworkerResourceSystemPrompt,\n\t\t\tinitialUsage,\n\t\t\thasPersistedUsageCheckpoint: checkpointUsage !== undefined,\n\t\t\tusageReportId,\n\t\t\tprocessCapable: executionPlan.processEnabled,\n\t\t\t...(request.verificationOfTaskId ? { verificationSubjectTaskId: request.verificationOfTaskId } : {}),\n\t\t\t...(recoveredTerminal ? { recoveredTerminal } : {}),\n\t\t\t...(retentionPolicy ? { retentionPolicy } : {}),\n\t\t\tsignal: workerSignal,\n\t\t\trunIsolatedCompletion: (options) => this.deps.runIsolatedCompletion(options),\n\t\t\tagentControl: this.agentControl,\n\t\t\tapplyActions: workerRequest.envelope.capabilities.includes(\"filesystem.write\")\n\t\t\t\t? (actions, actionJournal) =>\n\t\t\t\t\t\tapplyWorkerActions({\n\t\t\t\t\t\t\tactions,\n\t\t\t\t\t\t\tgateway: toolSurface.gateway!,\n\t\t\t\t\t\t\ttoolManifests: executionPlan.toolManifests,\n\t\t\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\t\t\t...(actionJournal ? { actionJournal } : {}),\n\t\t\t\t\t\t})\n\t\t\t\t: undefined,\n\t\t\twarn: (message) => this.safeWarn(message),\n\t\t});\n\t\ttry {\n\t\t\t// Register before the first execution await: disposal sees the live mutable ledger.\n\t\t\tthis.inFlightLedgers.set(startedRecord.laneId, {\n\t\t\t\tchangedFiles: executor.ledger.changedFiles,\n\t\t\t\tgetUsage: executor.ledger.getUsage,\n\t\t\t\trequest: workerRequest,\n\t\t\t\thandle: durableHandle,\n\t\t\t});\n\t\t\tleaseHeartbeat.start();\n\t\t\tconst executionResult = await executor.run();\n\t\t\t// Stop the instant the run returns, before any post-run finalization (finalizeWorkerClaim,\n\t\t\t// verifier dispatch, handoff persistence —~190 lines) can run: a tick landing in that\n\t\t\t// window renews an attempt that has already reached a terminal status, throws, and would\n\t\t\t// otherwise abort a lane whose work already succeeded. The `finally` below still calls\n\t\t\t// stop() too (idempotent) to cover every other exit path (thrown errors, early returns).\n\t\t\tleaseHeartbeat.stop();\n\t\t\tleaseHeartbeat.assertHealthy();\n\t\t\tconst rawOutcome = executionResult.rawOutcome;\n\t\t\t// Attempt ladder: a retryable bounded failure suspends and re-enqueues instead of\n\t\t\t// terminalizing, resuming from the persisted transcript under a fresh fence.\n\t\t\tif (rawOutcome.laneStatus === \"failed\" && !this.deps.isDisposed() && !workerSignal.aborted) {\n\t\t\t\tconst retry = this.recovery.scheduleAttemptRetry({\n\t\t\t\t\tlaneId: startedRecord.laneId,\n\t\t\t\t\tagentId,\n\t\t\t\t\townerId: this.agentControl.getProcessOwnerId(),\n\t\t\t\t\trequest: { ...request, profileId: admission.shipment.profile.profileId },\n\t\t\t\t\toutcome: rawOutcome,\n\t\t\t\t\tprovider: modelBinding.provider,\n\t\t\t\t\t...(grant.budget.maxAttempts !== undefined ? { maxAttempts: grant.budget.maxAttempts } : {}),\n\t\t\t\t});\n\t\t\t\tif (retry.scheduled) {\n\t\t\t\t\tthis.notifications.statusChanged();\n\t\t\t\t\treturn { started: true, record: retry.record };\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst verificationRequired =\n\t\t\t\torchestrationProfile.requireIndependentVerification &&\n\t\t\t\torchestrationProfile.role !== \"verifier\" &&\n\t\t\t\trawOutcome.claim.status === \"completed\";\n\t\t\tconst outcome: WorkerRunOutcome = {\n\t\t\t\t...(verificationRequired\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...rawOutcome,\n\t\t\t\t\t\t\taccepted: false,\n\t\t\t\t\t\t\treasonCode: \"independent_verification_required\",\n\t\t\t\t\t\t\tacceptance: {\n\t\t\t\t\t\t\t\toutcome: \"ask-user\" as const,\n\t\t\t\t\t\t\t\tgate: \"independent_verification\",\n\t\t\t\t\t\t\t\treasonCode: \"independent_verification_required\",\n\t\t\t\t\t\t\t\tmessage: \"The owner-authored profile requires an independent verifier before acceptance.\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tclaim: {\n\t\t\t\t\t\t\t\t...rawOutcome.claim,\n\t\t\t\t\t\t\t\tparentReviewRequired: true,\n\t\t\t\t\t\t\t\tblockers: [\n\t\t\t\t\t\t\t\t\t...(rawOutcome.claim.blockers ?? []),\n\t\t\t\t\t\t\t\t\t\"independent verification is required before acceptance\",\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\n\t\t\t\t\t: rawOutcome),\n\t\t\t\t...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),\n\t\t\t};\n\n\t\t\t// Never persist against a disposed session. When disposal raced this\n\t\t\t// await, `abortInFlightLanes()`'s synchronous cutoff already completed this lane, persisted\n\t\t\t// its durable lane record + bounded WorkerClaim, and consumed (deleted) the ledger —\n\t\t\t// `.complete()` below is then a no-op (the lane is already terminal, so it returns\n\t\t\t// undefined) and no double persistence or duplicate terminal notification can happen here.\n\t\t\tif (this.deps.isDisposed()) {\n\t\t\t\tconst record = lifecycle.getRecord(startedRecord.laneId);\n\t\t\t\treturn { started: true, record, outcome };\n\t\t\t}\n\n\t\t\tconst verificationSubject = request.verificationOfTaskId\n\t\t\t\t? lifecycle.getTask(request.verificationOfTaskId)\n\t\t\t\t: undefined;\n\t\t\tconst finalUsage = executionResult.usage;\n\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(finalUsage);\n\t\t\tlet record = finalizeWorkerClaim(lifecycle, {\n\t\t\t\thandle: durableHandle,\n\t\t\t\tclaim: outcome.claim,\n\t\t\t\taccepted: outcome.accepted,\n\t\t\t\tcostUsd: finalUsage.costUsd,\n\t\t\t\treasonCode: outcome.reasonCode,\n\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\tinputTokens: finalUsage.inputTokens,\n\t\t\t\toutputTokens: finalUsage.outputTokens,\n\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\twallClockMs: finalUsage.activeWallClockMs,\n\t\t\t\ttoolCalls: finalUsage.toolCalls,\n\t\t\t\tverificationRequired,\n\t\t\t\tverificationCriterionIds: verificationSubject?.task.acceptanceCriterionIds,\n\t\t\t\t...(executionResult.outputArtifact ? { outputArtifact: executionResult.outputArtifact } : {}),\n\t\t\t\tnotify: !verificationRequired,\n\t\t\t}).record;\n\t\t\ttry {\n\t\t\t\tthis.deps.saveWorkerClaimSnapshot(outcome.claim, workerRequest);\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Failed to persist worker claim ${startedRecord.laneId}: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (reportedUsage.cost.total > 0 || reportedUsage.totalTokens > 0) {\n\t\t\t\tthis.deps.addSpawnedUsage(reportedUsage, { label: \"worker-delegation\", reportId: usageReportId });\n\t\t\t}\n\n\t\t\tconst terminalRecords: LaneRecord[] = [record];\n\t\t\tif (request.verificationOfTaskId) {\n\t\t\t\tconst decision = outcome.accepted ? outcome.claim.verification : undefined;\n\t\t\t\tconst subject = lifecycle.reconcileVerification({\n\t\t\t\t\tsubjectTaskId: request.verificationOfTaskId,\n\t\t\t\t\tverifierTaskId: startedRecord.laneId,\n\t\t\t\t\tverifierAttemptId: durableHandle.attemptId,\n\t\t\t\t\tverdict: decision?.verdict ?? \"inconclusive\",\n\t\t\t\t\treasonCode: decision\n\t\t\t\t\t\t? decision.verdict === \"accepted\"\n\t\t\t\t\t\t\t? \"independent_verification_accepted\"\n\t\t\t\t\t\t\t: `independent_verification_rejected:${decision.reasonCodes.join(\",\")}`\n\t\t\t\t\t\t: `independent_verification_inconclusive:${outcome.reasonCode}`,\n\t\t\t\t});\n\t\t\t\tterminalRecords.push(subject);\n\t\t\t} else if (verificationRequired) {\n\t\t\t\tconst verifierStart = verifierShipment\n\t\t\t\t\t? this.startInternal(\n\t\t\t\t\t\t\tthis.buildVerifierRequest({\n\t\t\t\t\t\t\t\tsubjectTaskId: startedRecord.laneId,\n\t\t\t\t\t\t\t\tverifierProfileId: verifierShipment.profile.profileId,\n\t\t\t\t\t\t\t\tsummary: rawOutcome.claim.summary,\n\t\t\t\t\t\t\t\tartifactUris: rawOutcome.claim.changedFiles,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tverifierWorkerExecutionContract(admission.executionContract),\n\t\t\t\t\t\t)\n\t\t\t\t\t: { started: false as const, skipReason: \"independent_verifier_unavailable\" };\n\t\t\t\tif (verifierStart.started) {\n\t\t\t\t\t// The durable verifier dispatch is now the terminal-work owner. The subject remains\n\t\t\t\t\t// blocked and emits no compatibility terminal snapshot until reconciliation.\n\t\t\t\t\tterminalRecords.length = 0;\n\t\t\t\t\tthis.scheduler.drain();\n\t\t\t\t} else {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Independent verifier for ${startedRecord.laneId} did not start: ${verifierStart.skipReason}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// parent_review_required is a parent-agent verdict via terminal handoff, not an owner UI interrupt.\n\t\t\tfor (const terminalRecord of terminalRecords) {\n\t\t\t\tthis.publishTerminalRecord(terminalRecord);\n\t\t\t}\n\t\t\tif (request.verificationOfTaskId) {\n\t\t\t\trecord = lifecycle.getRecord(startedRecord.laneId) ?? record;\n\t\t\t}\n\t\t\treturn { started: true, record, outcome };\n\t\t} catch (error) {\n\t\t\tconst durableState = lifecycle.ledger.runtime.getSnapshot().attempts[durableHandle.attemptId];\n\t\t\tif (durableState?.status === \"suspended\") {\n\t\t\t\t// Disposal/reload fences agent-bound work before its aborted completion unwinds. Do not\n\t\t\t\t// convert that resumable interruption into a terminal claim or cancellation.\n\t\t\t\treturn { started: true, record: lifecycle.getRecord(startedRecord.laneId) };\n\t\t\t}\n\t\t\tif (durableState?.status === \"cancelled\" && (laneAbortController.signal.aborted || this.deps.isDisposed())) {\n\t\t\t\treturn { started: true, record: lifecycle.getRecord(startedRecord.laneId) };\n\t\t\t}\n\t\t\tif (durableState?.status === \"running\" || durableState?.status === \"leased\") {\n\t\t\t\tconst failureClaim: WorkerClaim = {\n\t\t\t\t\trequestId: startedRecord.laneId,\n\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\tsummary: `Worker delegation failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\tchangedFiles: [],\n\t\t\t\t\tcreatedAt: new Date().toISOString(),\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tconst failureUsage = executor.checkpointUsage(\n\t\t\t\t\t\t\"Persisted cumulative usage while recording worker failure.\",\n\t\t\t\t\t);\n\t\t\t\t\tconst reportedUsage = providerUsageFromAttemptUsage(failureUsage);\n\t\t\t\t\tfinalizeWorkerClaim(lifecycle, {\n\t\t\t\t\t\thandle: durableHandle,\n\t\t\t\t\t\tclaim: failureClaim,\n\t\t\t\t\t\taccepted: false,\n\t\t\t\t\t\tcostUsd: failureUsage.costUsd,\n\t\t\t\t\t\tcwd: this.deps.getCwd(),\n\t\t\t\t\t\tinputTokens: failureUsage.inputTokens,\n\t\t\t\t\t\toutputTokens: failureUsage.outputTokens,\n\t\t\t\t\t\ttotalTokens: reportedUsage.totalTokens,\n\t\t\t\t\t\twallClockMs: failureUsage.activeWallClockMs,\n\t\t\t\t\t\ttoolCalls: failureUsage.toolCalls,\n\t\t\t\t\t\treasonCode: \"worker_delegation_error\",\n\t\t\t\t\t});\n\t\t\t\t} catch (persistError) {\n\t\t\t\t\tthis.safeWarn(\n\t\t\t\t\t\t`Failed to persist durable worker failure ${startedRecord.laneId}: ${persistError instanceof Error ? persistError.message : String(persistError)}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tlet record = lifecycle.getRecord(startedRecord.laneId);\n\t\t\tif (record?.status === \"queued\" || record?.status === \"running\") {\n\t\t\t\trecord = this.cancelAndPublish(lifecycle, startedRecord.laneId, \"worker_delegation_error\");\n\t\t\t}\n\t\t\tif (record && !this.deps.isDisposed()) this.publishTerminalRecord(record);\n\t\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\t\tthis.deps.emit({ type: \"warning\", message: `Worker delegation failed: ${message}` });\n\t\t\treturn { started: true, record };\n\t\t} finally {\n\t\t\tleaseHeartbeat.stop();\n\t\t\tthis.writeReservations.release(startedRecord.laneId, durableHandle.attemptId, durableHandle.fencingToken);\n\t\t\tthis.yieldedCapacityAttemptIds.delete(durableHandle.attemptId);\n\t\t\tthis.yieldedWriteReservations.delete(durableHandle.attemptId);\n\t\t\tthis.inFlightLedgers.delete(startedRecord.laneId);\n\t\t\tthis.laneAbortControllers.delete(startedRecord.laneId);\n\t\t\ttry {\n\t\t\t\tawait toolSurface.dispose();\n\t\t\t} catch (error) {\n\t\t\t\tthis.safeWarn(\n\t\t\t\t\t`Worker mutation payload cleanup failed: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.agentControl.signalStateChanged();\n\t\t\tderegisterInFlight();\n\t\t\tif (!this.deps.isDisposed()) this.scheduler.drain(true);\n\t\t}\n\t}\n\n\t/** Start every capacity-eligible queued worker at the owner session's foreground-idle boundary. */\n\tdrain(): void {\n\t\tthis.recovery.recover();\n\t\tthis.scheduler.drain();\n\t\tthis.terminalHandoffs.signal();\n\t}\n}\n"]}