@caupulican/pi-adaptative 0.90.7 → 0.90.11

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 (207) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/bundled-resources/skills/tool-call-repair/SKILL.md +5 -4
  3. package/dist/bundled-resources/skills/tool-call-repair/references/failure-grammar.md +6 -3
  4. package/dist/bundled-resources/skills/tool-call-repair/references/repair-catalogue.md +1 -0
  5. package/dist/core/agent-session-contracts.d.ts +2 -0
  6. package/dist/core/agent-session-contracts.d.ts.map +1 -1
  7. package/dist/core/agent-session-contracts.js.map +1 -1
  8. package/dist/core/agent-session.d.ts +8 -7
  9. package/dist/core/agent-session.d.ts.map +1 -1
  10. package/dist/core/agent-session.js +80 -196
  11. package/dist/core/agent-session.js.map +1 -1
  12. package/dist/core/autonomy/bounded-completion.d.ts +7 -1
  13. package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
  14. package/dist/core/autonomy/bounded-completion.js +8 -2
  15. package/dist/core/autonomy/bounded-completion.js.map +1 -1
  16. package/dist/core/autonomy/contracts.d.ts +1 -1
  17. package/dist/core/autonomy/contracts.d.ts.map +1 -1
  18. package/dist/core/autonomy/contracts.js.map +1 -1
  19. package/dist/core/background-lane-controller.d.ts +14 -0
  20. package/dist/core/background-lane-controller.d.ts.map +1 -1
  21. package/dist/core/background-lane-controller.js +32 -0
  22. package/dist/core/background-lane-controller.js.map +1 -1
  23. package/dist/core/billing-failover-controller.js +1 -1
  24. package/dist/core/billing-failover-controller.js.map +1 -1
  25. package/dist/core/context/current-work-memory.d.ts +1 -1
  26. package/dist/core/context/current-work-memory.d.ts.map +1 -1
  27. package/dist/core/context/current-work-memory.js +2 -1
  28. package/dist/core/context/current-work-memory.js.map +1 -1
  29. package/dist/core/context/long-term-memory-trigger.d.ts +1 -1
  30. package/dist/core/context/long-term-memory-trigger.d.ts.map +1 -1
  31. package/dist/core/context/long-term-memory-trigger.js +2 -1
  32. package/dist/core/context/long-term-memory-trigger.js.map +1 -1
  33. package/dist/core/delegation/managed-lane-controller.js +2 -2
  34. package/dist/core/delegation/managed-lane-controller.js.map +1 -1
  35. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +13 -0
  36. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  37. package/dist/core/delegation/worker-agent-control-coordinator.js +71 -8
  38. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  39. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  40. package/dist/core/delegation/worker-attempt-executor.js +13 -8
  41. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  42. package/dist/core/delegation/worker-claim.d.ts.map +1 -1
  43. package/dist/core/delegation/worker-claim.js +14 -1
  44. package/dist/core/delegation/worker-claim.js.map +1 -1
  45. package/dist/core/delegation/worker-delegation-controller.d.ts +3 -2
  46. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  47. package/dist/core/delegation/worker-delegation-controller.js +95 -42
  48. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  49. package/dist/core/delegation/worker-fleet-limits.d.ts.map +1 -1
  50. package/dist/core/delegation/worker-fleet-limits.js +5 -1
  51. package/dist/core/delegation/worker-fleet-limits.js.map +1 -1
  52. package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -1
  53. package/dist/core/delegation/worker-lane-projection.js +7 -4
  54. package/dist/core/delegation/worker-lane-projection.js.map +1 -1
  55. package/dist/core/delegation/worker-lifecycle.d.ts +8 -0
  56. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  57. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  58. package/dist/core/delegation/worker-notification-coordinator.d.ts +21 -0
  59. package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
  60. package/dist/core/delegation/worker-notification-coordinator.js +65 -2
  61. package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
  62. package/dist/core/delegation/worker-runner.d.ts +7 -0
  63. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  64. package/dist/core/delegation/worker-runner.js +24 -7
  65. package/dist/core/delegation/worker-runner.js.map +1 -1
  66. package/dist/core/delegation/worker-system-prompt.d.ts +54 -0
  67. package/dist/core/delegation/worker-system-prompt.d.ts.map +1 -0
  68. package/dist/core/delegation/worker-system-prompt.js +85 -0
  69. package/dist/core/delegation/worker-system-prompt.js.map +1 -0
  70. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
  71. package/dist/core/delegation/worker-tree-budget-coordinator.js +4 -0
  72. package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
  73. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts +4 -0
  74. package/dist/core/delegation/worker-write-reservation-coordinator.d.ts.map +1 -1
  75. package/dist/core/delegation/worker-write-reservation-coordinator.js +28 -1
  76. package/dist/core/delegation/worker-write-reservation-coordinator.js.map +1 -1
  77. package/dist/core/durable-custom-message-turn-controller.d.ts.map +1 -1
  78. package/dist/core/durable-custom-message-turn-controller.js +14 -3
  79. package/dist/core/durable-custom-message-turn-controller.js.map +1 -1
  80. package/dist/core/extension-binding-controller.d.ts +107 -0
  81. package/dist/core/extension-binding-controller.d.ts.map +1 -0
  82. package/dist/core/extension-binding-controller.js +224 -0
  83. package/dist/core/extension-binding-controller.js.map +1 -0
  84. package/dist/core/extensions/types.d.ts +2 -0
  85. package/dist/core/extensions/types.d.ts.map +1 -1
  86. package/dist/core/extensions/types.js.map +1 -1
  87. package/dist/core/foreground-terminal-handoff-controller.d.ts +9 -0
  88. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  89. package/dist/core/foreground-terminal-handoff-controller.js +35 -9
  90. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  91. package/dist/core/goal-loop-controller.d.ts.map +1 -1
  92. package/dist/core/goal-loop-controller.js +10 -1
  93. package/dist/core/goal-loop-controller.js.map +1 -1
  94. package/dist/core/goals/compact-goal-context.d.ts +1 -1
  95. package/dist/core/goals/compact-goal-context.d.ts.map +1 -1
  96. package/dist/core/goals/compact-goal-context.js +2 -1
  97. package/dist/core/goals/compact-goal-context.js.map +1 -1
  98. package/dist/core/goals/goal-execution-errors.d.ts +18 -0
  99. package/dist/core/goals/goal-execution-errors.d.ts.map +1 -0
  100. package/dist/core/goals/goal-execution-errors.js +21 -0
  101. package/dist/core/goals/goal-execution-errors.js.map +1 -0
  102. package/dist/core/goals/goal-lifecycle.d.ts.map +1 -1
  103. package/dist/core/goals/goal-lifecycle.js +3 -3
  104. package/dist/core/goals/goal-lifecycle.js.map +1 -1
  105. package/dist/core/goals/goal-session-controller.d.ts +11 -0
  106. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  107. package/dist/core/goals/goal-session-controller.js +74 -14
  108. package/dist/core/goals/goal-session-controller.js.map +1 -1
  109. package/dist/core/goals/goal-state.js +1 -1
  110. package/dist/core/goals/goal-state.js.map +1 -1
  111. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  112. package/dist/core/goals/goal-tool-core.js +2 -2
  113. package/dist/core/goals/goal-tool-core.js.map +1 -1
  114. package/dist/core/goals/natural-language-goal.d.ts +18 -0
  115. package/dist/core/goals/natural-language-goal.d.ts.map +1 -1
  116. package/dist/core/goals/natural-language-goal.js +99 -16
  117. package/dist/core/goals/natural-language-goal.js.map +1 -1
  118. package/dist/core/model-registry.d.ts +5 -0
  119. package/dist/core/model-registry.d.ts.map +1 -1
  120. package/dist/core/model-registry.js +10 -0
  121. package/dist/core/model-registry.js.map +1 -1
  122. package/dist/core/model-resolver.d.ts.map +1 -1
  123. package/dist/core/model-resolver.js +3 -1
  124. package/dist/core/model-resolver.js.map +1 -1
  125. package/dist/core/orchestration/capability-gateway.d.ts +1 -1
  126. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
  127. package/dist/core/orchestration/capability-gateway.js +4 -4
  128. package/dist/core/orchestration/capability-gateway.js.map +1 -1
  129. package/dist/core/orchestration/event-store.d.ts +8 -0
  130. package/dist/core/orchestration/event-store.d.ts.map +1 -1
  131. package/dist/core/orchestration/event-store.js +9 -7
  132. package/dist/core/orchestration/event-store.js.map +1 -1
  133. package/dist/core/orchestration/task-runtime-reducer.js +1 -1
  134. package/dist/core/orchestration/task-runtime-reducer.js.map +1 -1
  135. package/dist/core/orchestration/worker-model-pins.d.ts +7 -0
  136. package/dist/core/orchestration/worker-model-pins.d.ts.map +1 -1
  137. package/dist/core/orchestration/worker-model-pins.js +17 -1
  138. package/dist/core/orchestration/worker-model-pins.js.map +1 -1
  139. package/dist/core/provider-request-runtime-controller.d.ts +9 -0
  140. package/dist/core/provider-request-runtime-controller.d.ts.map +1 -1
  141. package/dist/core/provider-request-runtime-controller.js +17 -3
  142. package/dist/core/provider-request-runtime-controller.js.map +1 -1
  143. package/dist/core/provider-tool-text.d.ts +15 -1
  144. package/dist/core/provider-tool-text.d.ts.map +1 -1
  145. package/dist/core/provider-tool-text.js +42 -10
  146. package/dist/core/provider-tool-text.js.map +1 -1
  147. package/dist/core/research/research-lane-controller.d.ts +1 -1
  148. package/dist/core/research/research-lane-controller.d.ts.map +1 -1
  149. package/dist/core/research/research-lane-controller.js +2 -1
  150. package/dist/core/research/research-lane-controller.js.map +1 -1
  151. package/dist/core/resource-loader.d.ts +3 -0
  152. package/dist/core/resource-loader.d.ts.map +1 -1
  153. package/dist/core/resource-loader.js +8 -0
  154. package/dist/core/resource-loader.js.map +1 -1
  155. package/dist/core/runtime-builder.d.ts +8 -0
  156. package/dist/core/runtime-builder.d.ts.map +1 -1
  157. package/dist/core/runtime-builder.js +6 -0
  158. package/dist/core/runtime-builder.js.map +1 -1
  159. package/dist/core/session-supervision-runtime.d.ts.map +1 -1
  160. package/dist/core/session-supervision-runtime.js +2 -1
  161. package/dist/core/session-supervision-runtime.js.map +1 -1
  162. package/dist/core/settings-manager.d.ts +2 -2
  163. package/dist/core/settings-manager.d.ts.map +1 -1
  164. package/dist/core/settings-manager.js +7 -2
  165. package/dist/core/settings-manager.js.map +1 -1
  166. package/dist/core/tools/delegate.d.ts +13 -0
  167. package/dist/core/tools/delegate.d.ts.map +1 -1
  168. package/dist/core/tools/delegate.js +20 -18
  169. package/dist/core/tools/delegate.js.map +1 -1
  170. package/dist/core/util/atomic-file.d.ts +7 -0
  171. package/dist/core/util/atomic-file.d.ts.map +1 -1
  172. package/dist/core/util/atomic-file.js +8 -6
  173. package/dist/core/util/atomic-file.js.map +1 -1
  174. package/dist/core/util/faultable-fs.d.ts +30 -0
  175. package/dist/core/util/faultable-fs.d.ts.map +1 -0
  176. package/dist/core/util/faultable-fs.js +30 -0
  177. package/dist/core/util/faultable-fs.js.map +1 -0
  178. package/dist/modes/interactive/auth-dialogs-controller.d.ts.map +1 -1
  179. package/dist/modes/interactive/auth-dialogs-controller.js +1 -0
  180. package/dist/modes/interactive/auth-dialogs-controller.js.map +1 -1
  181. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
  182. package/dist/modes/interactive/components/activity-lane.js +4 -3
  183. package/dist/modes/interactive/components/activity-lane.js.map +1 -1
  184. package/dist/modes/interactive/components/footer.js +1 -1
  185. package/dist/modes/interactive/components/footer.js.map +1 -1
  186. package/dist/modes/interactive/components/oauth-selector.d.ts +2 -0
  187. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  188. package/dist/modes/interactive/components/oauth-selector.js +3 -2
  189. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  190. package/dist/modes/interactive/report-commands.js +1 -1
  191. package/dist/modes/interactive/report-commands.js.map +1 -1
  192. package/dist/modes/interactive/session-flow-commands.d.ts +1 -1
  193. package/dist/modes/interactive/session-flow-commands.d.ts.map +1 -1
  194. package/dist/modes/interactive/session-flow-commands.js +3 -2
  195. package/dist/modes/interactive/session-flow-commands.js.map +1 -1
  196. package/docs/providers.md +3 -0
  197. package/docs/settings.md +4 -2
  198. package/docs/tool-repair.md +1 -0
  199. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  200. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  201. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  202. package/examples/extensions/sandbox/package-lock.json +2 -2
  203. package/examples/extensions/sandbox/package.json +1 -1
  204. package/examples/extensions/with-deps/package-lock.json +2 -2
  205. package/examples/extensions/with-deps/package.json +1 -1
  206. package/npm-shrinkwrap.json +12 -12
  207. package/package.json +9 -4
@@ -1 +1 @@
1
- {"version":3,"file":"worker-delegation-controller.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-delegation-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-delegation-controller.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-delegation-controller.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { isLaneTerminalStatus } from "../autonomy/lane-tracker.js";
7
7
  import { appendLaneRecordSnapshot } from "../autonomy/session-lane-record.js";
8
8
  import { AUTONOMY_TELEMETRY_EVENT_TYPES } from "../autonomy/telemetry-events.js";
9
9
  import { STABLE_SHELL_TOOL_NAME } from "../default-tool-surface.js";
10
+ import { isGoalExecutionActive } from "../goals/goal-state.js";
10
11
  import { deriveModelCapabilityProfile } from "../model-capability.js";
11
12
  import { isLoopbackModelEndpoint } from "../models/model-endpoint.js";
12
13
  import { providerUsageFromAttemptUsage } from "../orchestration/attempt-usage.js";
@@ -16,10 +17,12 @@ import { TaskProfileWriter, } from "../orchestration/task-profile-writer.js";
16
17
  import { createWorkerExecutionContract, verifierWorkerExecutionContract, } from "../orchestration/worker-execution-contract.js";
17
18
  import { resolveWorkerModelPin } from "../orchestration/worker-model-pins.js";
18
19
  import { registerInFlightWork } from "../reload-blockers.js";
20
+ import { getActiveSessionBranchEntries } from "../session-snapshot.js";
19
21
  import { createDelegateToolDefinition } from "../tools/delegate.js";
20
22
  import { disposePersistentShellSession } from "../tools/shell-session.js";
21
23
  import { wrapToolDefinition } from "../tools/tool-definition-wrapper.js";
22
24
  import { selectSanitizedContextFork } from "./sanitized-context-fork.js";
25
+ import { getLatestWorkerClaimSnapshot } from "./session-worker-claim.js";
23
26
  import { applyWorkerActions } from "./worker-actions.js";
24
27
  import { WorkerAgentControlCoordinator } from "./worker-agent-control-coordinator.js";
25
28
  import { createWorkerAttemptExecutor } from "./worker-attempt-executor.js";
@@ -136,6 +139,7 @@ export class WorkerDelegationController {
136
139
  this.terminalHandoffs.signal();
137
140
  this.notifications.statusChanged();
138
141
  },
142
+ getWorkerClaimSnapshot: (laneId) => getLatestWorkerClaimSnapshot(getActiveSessionBranchEntries(this.deps.getSessionManager()), laneId),
139
143
  abortLane: (laneId, reasonCode) => this.laneAbortControllers.get(laneId)?.abort(reasonCode),
140
144
  cancelLane: (laneId, reasonCode) => {
141
145
  this.scheduler.dropQueued(laneId);
@@ -155,6 +159,7 @@ export class WorkerDelegationController {
155
159
  },
156
160
  waitBlockedByCaller: (callerAgentId, targetAgentIds) => this.waitTargetsBlockedByCaller(callerAgentId, targetAgentIds),
157
161
  yieldCallerForWait: (callerAgentId) => this.yieldWorkerForWait(callerAgentId),
162
+ subscribeReservationAvailability: (listener) => this.writeReservations.subscribeAvailability(listener),
158
163
  warn: (message) => this.safeWarn(message),
159
164
  });
160
165
  this.terminalHandoffs = new WorkerTerminalHandoffCoordinator({
@@ -388,7 +393,7 @@ export class WorkerDelegationController {
388
393
  /** Reconcile the session goal into an already-loaded worker runtime without defeating lazy UAC. */
389
394
  synchronizeGoalState(goal) {
390
395
  this.publishGoalTerminalRecords(this.lifecycle.synchronizeGoalState(goal));
391
- if (goal.status === "active" && !this.deps.isDisposed())
396
+ if (isGoalExecutionActive(goal.status) && !this.deps.isDisposed())
392
397
  this.scheduler.drain();
393
398
  }
394
399
  publishGoalTerminalRecords(records) {
@@ -590,6 +595,11 @@ export class WorkerDelegationController {
590
595
  }
591
596
  const effectiveRole = authority?.role ?? baseShipment?.profile.role ?? basePreset?.profile.role ?? "orchestrator";
592
597
  const modelPin = resolveWorkerModelPin(modelPinPolicy, effectiveRole);
598
+ // The model itself is authority?.model, not `role` — role selects which pin applies, but a
599
+ // roles-only policy (no `default`) leaves an unlisted role with no pin at all, so a caller
600
+ // can name that role plus an explicit model and admission never sees anything to enforce.
601
+ // Not blocked (the owner may intend adaptive roles); recorded so the evasion is observable.
602
+ const modelPinBypass = modelPinPolicy.status === "active" && !modelPin && authority?.model ? effectiveRole : undefined;
593
603
  if (basePreset) {
594
604
  const bound = this.getWorkerProfileResolver().bindPreset(basePreset, modelPin?.binding);
595
605
  if (!bound.ok) {
@@ -704,6 +714,7 @@ export class WorkerDelegationController {
704
714
  resourcePointerIds: selectedResources.pointers.map((pointer) => pointer.id),
705
715
  executionContract,
706
716
  executionPlan,
717
+ ...(modelPinBypass ? { modelPinBypass } : {}),
707
718
  };
708
719
  }
709
720
  buildVerifierRequest(args) {
@@ -929,27 +940,42 @@ export class WorkerDelegationController {
929
940
  restored = true;
930
941
  return true;
931
942
  }
932
- const current = this.lifecycle.getLatestAgentAttempt(caller.agentId);
933
- if (!this.deps.isDisposed() &&
934
- current?.attemptId === attempt.attemptId &&
935
- (current.status === "leased" || current.status === "running")) {
936
- const yieldedReservation = this.yieldedWriteReservations.get(attempt.attemptId);
937
- if (yieldedReservation) {
938
- const reservation = this.writeReservations.restoreAfterWait(yieldedReservation);
939
- if (reservation.kind === "blocked")
940
- return false;
941
- if (reservation.kind === "denied") {
942
- this.laneAbortControllers.get(attempt.taskId)?.abort(reservation.reasonCode);
943
- throw new Error(`Worker wait could not restore its write reservation: ${reservation.reasonCode}.`);
943
+ // "blocked" is the only nonterminal outcome here: the caller is still legitimately
944
+ // yielded and must retry restore() later, so its bookkeeping must survive. Every other
945
+ // exit granted, no reservation to restore, or "denied" below — is terminal and must
946
+ // always release the yield bookkeeping, even when "denied" throws. An entry left behind
947
+ // on that throw path permanently over-counts virtual headroom in hasWorkerCapacity()
948
+ // for the rest of this attempt's life, silently admitting maxConcurrent+1 workers.
949
+ let stillBlocked = false;
950
+ try {
951
+ const current = this.lifecycle.getLatestAgentAttempt(caller.agentId);
952
+ if (!this.deps.isDisposed() &&
953
+ current?.attemptId === attempt.attemptId &&
954
+ (current.status === "leased" || current.status === "running")) {
955
+ const yieldedReservation = this.yieldedWriteReservations.get(attempt.attemptId);
956
+ if (yieldedReservation) {
957
+ const reservation = this.writeReservations.restoreAfterWait(yieldedReservation);
958
+ if (reservation.kind === "blocked") {
959
+ stillBlocked = true;
960
+ return false;
961
+ }
962
+ if (reservation.kind === "denied") {
963
+ this.laneAbortControllers.get(attempt.taskId)?.abort(reservation.reasonCode);
964
+ throw new Error(`Worker wait could not restore its write reservation: ${reservation.reasonCode}.`);
965
+ }
944
966
  }
945
967
  }
968
+ if (!this.deps.isDisposed())
969
+ this.scheduler.drain(true);
970
+ return true;
971
+ }
972
+ finally {
973
+ if (!stillBlocked) {
974
+ this.yieldedCapacityAttemptIds.delete(attempt.attemptId);
975
+ this.yieldedWriteReservations.delete(attempt.attemptId);
976
+ restored = true;
977
+ }
946
978
  }
947
- this.yieldedCapacityAttemptIds.delete(attempt.attemptId);
948
- this.yieldedWriteReservations.delete(attempt.attemptId);
949
- restored = true;
950
- if (!this.deps.isDisposed())
951
- this.scheduler.drain(true);
952
- return true;
953
979
  };
954
980
  try {
955
981
  this.scheduler.drain(true);
@@ -1262,7 +1288,11 @@ export class WorkerDelegationController {
1262
1288
  options.onStarted?.(prepared.record);
1263
1289
  if (options.drain)
1264
1290
  this.scheduler.drain();
1265
- return { started: true, record: prepared.record };
1291
+ return {
1292
+ started: true,
1293
+ record: prepared.record,
1294
+ ...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),
1295
+ };
1266
1296
  }
1267
1297
  ensurePreparedAgent(prepared, admission) {
1268
1298
  if (!prepared.attempt)
@@ -1363,7 +1393,11 @@ export class WorkerDelegationController {
1363
1393
  return { started: false, skipReason: "worker_not_started" };
1364
1394
  }
1365
1395
  this.scheduler.track(startedRecord.laneId, promise);
1366
- return { started: true, record: startedRecord };
1396
+ return {
1397
+ started: true,
1398
+ record: startedRecord,
1399
+ ...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),
1400
+ };
1367
1401
  }
1368
1402
  async runOnce(request, onStarted, existingRecord) {
1369
1403
  return this.runOnceWithAdmission(request, onStarted, existingRecord);
@@ -1517,6 +1551,7 @@ export class WorkerDelegationController {
1517
1551
  workerModelPinPolicy: this.deps.getSettingsManager().getWorkerModelPinPolicy(),
1518
1552
  workerAgentControl: this.agentControl,
1519
1553
  caller: { kind: "worker", agentId },
1554
+ warn: (message) => this.safeWarn(message),
1520
1555
  resolveMessageReplayScope: () => ({
1521
1556
  sessionId: this.deps.getSessionId(),
1522
1557
  branchId: durableHandle.attemptId,
@@ -1602,10 +1637,19 @@ export class WorkerDelegationController {
1602
1637
  const laneAbortController = new AbortController();
1603
1638
  this.laneAbortControllers.set(startedRecord.laneId, laneAbortController);
1604
1639
  const workerSignal = AbortSignal.any([this.workerAbort.signal, laneAbortController.signal]);
1640
+ // Fenced to the exact attemptId/leaseId/fencingToken captured here, at heartbeat start —
1641
+ // never re-resolved by laneId. `lifecycle.renewLease(laneId, ...)` looks up whatever attempt
1642
+ // is CURRENTLY active for that lane, so a heartbeat left running past its own attempt's life
1643
+ // (e.g. after a retry replaced it under a fresh fence) would trivially "renew" a lease it
1644
+ // does not own, defeating lease expiry as the abandonment signal for the attempt that
1645
+ // actually owns it.
1646
+ const heartbeatAttemptId = durableHandle.attemptId;
1647
+ const heartbeatLeaseId = durableHandle.leaseId;
1648
+ const heartbeatFencingToken = durableHandle.fencingToken;
1605
1649
  const leaseHeartbeat = new WorkerLeaseHeartbeat({
1606
1650
  leaseTtlMs: immutableProfile.leaseTtlMs,
1607
1651
  renew: () => {
1608
- lifecycle.renewLease(startedRecord.laneId, immutableProfile.leaseTtlMs);
1652
+ lifecycle.ledger.runtime.renewAttemptLease(heartbeatAttemptId, heartbeatLeaseId, heartbeatFencingToken, immutableProfile.leaseTtlMs);
1609
1653
  },
1610
1654
  onFailure: (error) => {
1611
1655
  this.safeWarn(`Worker ${startedRecord.laneId} lease renewal failed: ${error.message}`);
@@ -1666,6 +1710,12 @@ export class WorkerDelegationController {
1666
1710
  });
1667
1711
  leaseHeartbeat.start();
1668
1712
  const executionResult = await executor.run();
1713
+ // Stop the instant the run returns, before any post-run finalization (finalizeWorkerClaim,
1714
+ // verifier dispatch, handoff persistence —~190 lines) can run: a tick landing in that
1715
+ // window renews an attempt that has already reached a terminal status, throws, and would
1716
+ // otherwise abort a lane whose work already succeeded. The `finally` below still calls
1717
+ // stop() too (idempotent) to cover every other exit path (thrown errors, early returns).
1718
+ leaseHeartbeat.stop();
1669
1719
  leaseHeartbeat.assertHealthy();
1670
1720
  const rawOutcome = executionResult.rawOutcome;
1671
1721
  // Attempt ladder: a retryable bounded failure suspends and re-enqueues instead of
@@ -1688,27 +1738,30 @@ export class WorkerDelegationController {
1688
1738
  const verificationRequired = orchestrationProfile.requireIndependentVerification &&
1689
1739
  orchestrationProfile.role !== "verifier" &&
1690
1740
  rawOutcome.claim.status === "completed";
1691
- const outcome = verificationRequired
1692
- ? {
1693
- ...rawOutcome,
1694
- accepted: false,
1695
- reasonCode: "independent_verification_required",
1696
- acceptance: {
1697
- outcome: "ask-user",
1698
- gate: "independent_verification",
1741
+ const outcome = {
1742
+ ...(verificationRequired
1743
+ ? {
1744
+ ...rawOutcome,
1745
+ accepted: false,
1699
1746
  reasonCode: "independent_verification_required",
1700
- message: "The owner-authored profile requires an independent verifier before acceptance.",
1701
- },
1702
- claim: {
1703
- ...rawOutcome.claim,
1704
- parentReviewRequired: true,
1705
- blockers: [
1706
- ...(rawOutcome.claim.blockers ?? []),
1707
- "independent verification is required before acceptance",
1708
- ],
1709
- },
1710
- }
1711
- : rawOutcome;
1747
+ acceptance: {
1748
+ outcome: "ask-user",
1749
+ gate: "independent_verification",
1750
+ reasonCode: "independent_verification_required",
1751
+ message: "The owner-authored profile requires an independent verifier before acceptance.",
1752
+ },
1753
+ claim: {
1754
+ ...rawOutcome.claim,
1755
+ parentReviewRequired: true,
1756
+ blockers: [
1757
+ ...(rawOutcome.claim.blockers ?? []),
1758
+ "independent verification is required before acceptance",
1759
+ ],
1760
+ },
1761
+ }
1762
+ : rawOutcome),
1763
+ ...(admission.modelPinBypass ? { modelPinBypass: admission.modelPinBypass } : {}),
1764
+ };
1712
1765
  // Never persist against a disposed session. When disposal raced this
1713
1766
  // await, `abortInFlightLanes()`'s synchronous cutoff already completed this lane, persisted
1714
1767
  // its durable lane record + bounded WorkerClaim, and consumed (deleted) the ledger —