@caupulican/pi-adaptative 0.90.11 → 0.91.2

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 (291) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +8 -10
  3. package/dist/bundled-resources/skills/icm-architect/LICENSE +21 -0
  4. package/dist/bundled-resources/skills/icm-architect/SKILL.md +112 -0
  5. package/dist/bundled-resources/skills/icm-architect/assets/templates/CLAUDE.md +27 -0
  6. package/dist/bundled-resources/skills/icm-architect/assets/templates/CONTEXT.md +14 -0
  7. package/dist/bundled-resources/skills/icm-architect/assets/templates/node.md +29 -0
  8. package/dist/bundled-resources/skills/icm-architect/assets/templates/object.md +43 -0
  9. package/dist/bundled-resources/skills/icm-architect/assets/templates/process.md +38 -0
  10. package/dist/bundled-resources/skills/icm-architect/assets/templates/questionnaire.md +9 -0
  11. package/dist/bundled-resources/skills/icm-architect/assets/templates/schema.md +24 -0
  12. package/dist/bundled-resources/skills/icm-architect/assets/templates/stage-CONTEXT.md +21 -0
  13. package/dist/bundled-resources/skills/icm-architect/references/core.md +92 -0
  14. package/dist/bundled-resources/skills/icm-architect/references/forms.md +182 -0
  15. package/dist/bundled-resources/skills/icm-architect/references/system-map.md +122 -0
  16. package/dist/cli/args.d.ts.map +1 -1
  17. package/dist/cli/args.js +2 -1
  18. package/dist/cli/args.js.map +1 -1
  19. package/dist/core/agent-paths.d.ts +2 -2
  20. package/dist/core/agent-paths.d.ts.map +1 -1
  21. package/dist/core/agent-paths.js +1 -0
  22. package/dist/core/agent-paths.js.map +1 -1
  23. package/dist/core/agent-session.d.ts +12 -0
  24. package/dist/core/agent-session.d.ts.map +1 -1
  25. package/dist/core/agent-session.js +44 -11
  26. package/dist/core/agent-session.js.map +1 -1
  27. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  28. package/dist/core/autonomy/lane-tool-surface.js +2 -0
  29. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  30. package/dist/core/background-tool-task-controller.d.ts +9 -0
  31. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  32. package/dist/core/background-tool-task-controller.js +23 -0
  33. package/dist/core/background-tool-task-controller.js.map +1 -1
  34. package/dist/core/bash-executor.js +3 -3
  35. package/dist/core/bash-executor.js.map +1 -1
  36. package/dist/core/context/local-graph-memory-provider.d.ts +9 -0
  37. package/dist/core/context/local-graph-memory-provider.d.ts.map +1 -0
  38. package/dist/core/context/local-graph-memory-provider.js +122 -0
  39. package/dist/core/context/local-graph-memory-provider.js.map +1 -0
  40. package/dist/core/context/tool-output-packer.d.ts +2 -2
  41. package/dist/core/context/tool-output-packer.d.ts.map +1 -1
  42. package/dist/core/context/tool-output-packer.js +3 -3
  43. package/dist/core/context/tool-output-packer.js.map +1 -1
  44. package/dist/core/context-gc.d.ts.map +1 -1
  45. package/dist/core/context-gc.js +2 -0
  46. package/dist/core/context-gc.js.map +1 -1
  47. package/dist/core/default-tool-surface.d.ts.map +1 -1
  48. package/dist/core/default-tool-surface.js +5 -0
  49. package/dist/core/default-tool-surface.js.map +1 -1
  50. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +1 -0
  51. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  52. package/dist/core/delegation/worker-agent-control-coordinator.js +16 -8
  53. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  54. package/dist/core/delegation/worker-agent-control.d.ts +2 -0
  55. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
  56. package/dist/core/delegation/worker-agent-control.js.map +1 -1
  57. package/dist/core/delegation/worker-context-inheritance-policy.d.ts +3 -3
  58. package/dist/core/delegation/worker-context-inheritance-policy.js +4 -4
  59. package/dist/core/delegation/worker-context-inheritance-policy.js.map +1 -1
  60. package/dist/core/delegation/worker-delegation-controller.d.ts +1 -5
  61. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  62. package/dist/core/delegation/worker-delegation-controller.js +19 -9
  63. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  64. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts +2 -0
  65. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
  66. package/dist/core/delegation/worker-tree-budget-coordinator.js +6 -0
  67. package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
  68. package/dist/core/extensions/extension-session-scope.d.ts +17 -0
  69. package/dist/core/extensions/extension-session-scope.d.ts.map +1 -0
  70. package/dist/core/extensions/extension-session-scope.js +135 -0
  71. package/dist/core/extensions/extension-session-scope.js.map +1 -0
  72. package/dist/core/extensions/index.d.ts +1 -0
  73. package/dist/core/extensions/index.d.ts.map +1 -1
  74. package/dist/core/extensions/index.js +1 -0
  75. package/dist/core/extensions/index.js.map +1 -1
  76. package/dist/core/extensions/runner.d.ts.map +1 -1
  77. package/dist/core/extensions/runner.js +1 -0
  78. package/dist/core/extensions/runner.js.map +1 -1
  79. package/dist/core/extensions/wrapper.d.ts +2 -1
  80. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  81. package/dist/core/extensions/wrapper.js +10 -4
  82. package/dist/core/extensions/wrapper.js.map +1 -1
  83. package/dist/core/foreground-terminal-handoff-controller.d.ts +0 -1
  84. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  85. package/dist/core/foreground-terminal-handoff-controller.js +1 -2
  86. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  87. package/dist/core/goals/goal-continuation-controller.d.ts +7 -1
  88. package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
  89. package/dist/core/goals/goal-continuation-controller.js +16 -0
  90. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  91. package/dist/core/goals/goal-runtime-snapshot.d.ts +3 -0
  92. package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
  93. package/dist/core/goals/goal-runtime-snapshot.js +8 -1
  94. package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
  95. package/dist/core/goals/goal-session-controller.d.ts +2 -0
  96. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  97. package/dist/core/goals/goal-session-controller.js +1 -0
  98. package/dist/core/goals/goal-session-controller.js.map +1 -1
  99. package/dist/core/goals/goal-tool-core.d.ts +18 -0
  100. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  101. package/dist/core/goals/goal-tool-core.js +62 -0
  102. package/dist/core/goals/goal-tool-core.js.map +1 -1
  103. package/dist/core/goals/natural-language-goal.d.ts.map +1 -1
  104. package/dist/core/goals/natural-language-goal.js +4 -2
  105. package/dist/core/goals/natural-language-goal.js.map +1 -1
  106. package/dist/core/human-input-controller.d.ts +3 -34
  107. package/dist/core/human-input-controller.d.ts.map +1 -1
  108. package/dist/core/human-input-controller.js +3 -161
  109. package/dist/core/human-input-controller.js.map +1 -1
  110. package/dist/core/keybindings.d.ts +5 -0
  111. package/dist/core/keybindings.d.ts.map +1 -1
  112. package/dist/core/keybindings.js +2 -0
  113. package/dist/core/keybindings.js.map +1 -1
  114. package/dist/core/learning/reflection-turn-analysis.d.ts.map +1 -1
  115. package/dist/core/learning/reflection-turn-analysis.js +10 -1
  116. package/dist/core/learning/reflection-turn-analysis.js.map +1 -1
  117. package/dist/core/memory/providers/file-store.d.ts.map +1 -1
  118. package/dist/core/memory/providers/file-store.js +4 -0
  119. package/dist/core/memory/providers/file-store.js.map +1 -1
  120. package/dist/core/memory-controller.d.ts +3 -0
  121. package/dist/core/memory-controller.d.ts.map +1 -1
  122. package/dist/core/memory-controller.js +18 -0
  123. package/dist/core/memory-controller.js.map +1 -1
  124. package/dist/core/model-capability.d.ts.map +1 -1
  125. package/dist/core/model-capability.js +1 -0
  126. package/dist/core/model-capability.js.map +1 -1
  127. package/dist/core/orchestration/work-state-projection.d.ts +4 -0
  128. package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
  129. package/dist/core/orchestration/work-state-projection.js +11 -0
  130. package/dist/core/orchestration/work-state-projection.js.map +1 -1
  131. package/dist/core/pipelines/context.d.ts +6 -0
  132. package/dist/core/pipelines/context.d.ts.map +1 -0
  133. package/dist/core/pipelines/context.js +102 -0
  134. package/dist/core/pipelines/context.js.map +1 -0
  135. package/dist/core/pipelines/discover.d.ts +11 -0
  136. package/dist/core/pipelines/discover.d.ts.map +1 -0
  137. package/dist/core/pipelines/discover.js +147 -0
  138. package/dist/core/pipelines/discover.js.map +1 -0
  139. package/dist/core/pipelines/increment.d.ts +24 -0
  140. package/dist/core/pipelines/increment.d.ts.map +1 -0
  141. package/dist/core/pipelines/increment.js +121 -0
  142. package/dist/core/pipelines/increment.js.map +1 -0
  143. package/dist/core/pipelines/index.d.ts +8 -0
  144. package/dist/core/pipelines/index.d.ts.map +1 -0
  145. package/dist/core/pipelines/index.js +8 -0
  146. package/dist/core/pipelines/index.js.map +1 -0
  147. package/dist/core/pipelines/parse-contract.d.ts +10 -0
  148. package/dist/core/pipelines/parse-contract.d.ts.map +1 -0
  149. package/dist/core/pipelines/parse-contract.js +105 -0
  150. package/dist/core/pipelines/parse-contract.js.map +1 -0
  151. package/dist/core/pipelines/run-state.d.ts +26 -0
  152. package/dist/core/pipelines/run-state.d.ts.map +1 -0
  153. package/dist/core/pipelines/run-state.js +135 -0
  154. package/dist/core/pipelines/run-state.js.map +1 -0
  155. package/dist/core/pipelines/session-pipeline-run.d.ts +6 -0
  156. package/dist/core/pipelines/session-pipeline-run.d.ts.map +1 -0
  157. package/dist/core/pipelines/session-pipeline-run.js +18 -0
  158. package/dist/core/pipelines/session-pipeline-run.js.map +1 -0
  159. package/dist/core/pipelines/types.d.ts +91 -0
  160. package/dist/core/pipelines/types.d.ts.map +1 -0
  161. package/dist/core/pipelines/types.js +44 -0
  162. package/dist/core/pipelines/types.js.map +1 -0
  163. package/dist/core/reflection-controller.d.ts +2 -0
  164. package/dist/core/reflection-controller.d.ts.map +1 -1
  165. package/dist/core/reflection-controller.js +53 -30
  166. package/dist/core/reflection-controller.js.map +1 -1
  167. package/dist/core/resource-loader.d.ts +21 -0
  168. package/dist/core/resource-loader.d.ts.map +1 -1
  169. package/dist/core/resource-loader.js +45 -18
  170. package/dist/core/resource-loader.js.map +1 -1
  171. package/dist/core/runtime-builder.d.ts +3 -0
  172. package/dist/core/runtime-builder.d.ts.map +1 -1
  173. package/dist/core/runtime-builder.js +49 -1
  174. package/dist/core/runtime-builder.js.map +1 -1
  175. package/dist/core/sdk.d.ts.map +1 -1
  176. package/dist/core/sdk.js +3 -0
  177. package/dist/core/sdk.js.map +1 -1
  178. package/dist/core/session-role.d.ts.map +1 -1
  179. package/dist/core/session-role.js +2 -0
  180. package/dist/core/session-role.js.map +1 -1
  181. package/dist/core/settings-manager.d.ts +12 -0
  182. package/dist/core/settings-manager.d.ts.map +1 -1
  183. package/dist/core/settings-manager.js +43 -9
  184. package/dist/core/settings-manager.js.map +1 -1
  185. package/dist/core/system-prompt-builder.js +1 -1
  186. package/dist/core/system-prompt-builder.js.map +1 -1
  187. package/dist/core/system-prompt.d.ts +1 -1
  188. package/dist/core/system-prompt.d.ts.map +1 -1
  189. package/dist/core/system-prompt.js +30 -22
  190. package/dist/core/system-prompt.js.map +1 -1
  191. package/dist/core/tasks/task-projection.d.ts +2 -0
  192. package/dist/core/tasks/task-projection.d.ts.map +1 -1
  193. package/dist/core/tasks/task-projection.js +1 -0
  194. package/dist/core/tasks/task-projection.js.map +1 -1
  195. package/dist/core/tasks/task-state.d.ts +1 -1
  196. package/dist/core/tasks/task-state.d.ts.map +1 -1
  197. package/dist/core/tasks/task-state.js +10 -3
  198. package/dist/core/tasks/task-state.js.map +1 -1
  199. package/dist/core/tools/bash.d.ts.map +1 -1
  200. package/dist/core/tools/bash.js +11 -3
  201. package/dist/core/tools/bash.js.map +1 -1
  202. package/dist/core/tools/delegate.d.ts.map +1 -1
  203. package/dist/core/tools/delegate.js +9 -3
  204. package/dist/core/tools/delegate.js.map +1 -1
  205. package/dist/core/tools/edit.d.ts.map +1 -1
  206. package/dist/core/tools/edit.js +47 -5
  207. package/dist/core/tools/edit.js.map +1 -1
  208. package/dist/core/tools/goal.d.ts +16 -1
  209. package/dist/core/tools/goal.d.ts.map +1 -1
  210. package/dist/core/tools/goal.js +14 -2
  211. package/dist/core/tools/goal.js.map +1 -1
  212. package/dist/core/tools/index.d.ts +1 -1
  213. package/dist/core/tools/index.d.ts.map +1 -1
  214. package/dist/core/tools/index.js +1 -1
  215. package/dist/core/tools/index.js.map +1 -1
  216. package/dist/core/tools/output-accumulator.d.ts +5 -0
  217. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  218. package/dist/core/tools/output-accumulator.js +33 -2
  219. package/dist/core/tools/output-accumulator.js.map +1 -1
  220. package/dist/core/tools/pipeline.d.ts +35 -0
  221. package/dist/core/tools/pipeline.d.ts.map +1 -0
  222. package/dist/core/tools/pipeline.js +203 -0
  223. package/dist/core/tools/pipeline.js.map +1 -0
  224. package/dist/core/tools/skill-audit.d.ts.map +1 -1
  225. package/dist/core/tools/skill-audit.js +2 -1
  226. package/dist/core/tools/skill-audit.js.map +1 -1
  227. package/dist/core/tools/skill.d.ts.map +1 -1
  228. package/dist/core/tools/skill.js +2 -1
  229. package/dist/core/tools/skill.js.map +1 -1
  230. package/dist/core/tools/skillify.d.ts.map +1 -1
  231. package/dist/core/tools/skillify.js +3 -1
  232. package/dist/core/tools/skillify.js.map +1 -1
  233. package/dist/core/tools/task-steps.d.ts +1 -1
  234. package/dist/core/tools/task-steps.d.ts.map +1 -1
  235. package/dist/core/tools/task-steps.js +9 -0
  236. package/dist/core/tools/task-steps.js.map +1 -1
  237. package/dist/core/tools/tool-task.d.ts.map +1 -1
  238. package/dist/core/tools/tool-task.js +5 -1
  239. package/dist/core/tools/tool-task.js.map +1 -1
  240. package/dist/core/tools/write.d.ts.map +1 -1
  241. package/dist/core/tools/write.js +1 -0
  242. package/dist/core/tools/write.js.map +1 -1
  243. package/dist/index.d.ts +1 -1
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +1 -1
  246. package/dist/index.js.map +1 -1
  247. package/dist/modes/interactive/components/settings-selector.d.ts +3 -0
  248. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  249. package/dist/modes/interactive/components/settings-selector.js +66 -0
  250. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  251. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  252. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  253. package/dist/modes/interactive/components/tool-execution.d.ts +6 -1
  254. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  255. package/dist/modes/interactive/components/tool-execution.js +20 -1
  256. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  257. package/dist/modes/interactive/components/tool-group.d.ts +4 -0
  258. package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
  259. package/dist/modes/interactive/components/tool-group.js +96 -7
  260. package/dist/modes/interactive/components/tool-group.js.map +1 -1
  261. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  262. package/dist/modes/interactive/interactive-mode.js +8 -10
  263. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  264. package/dist/modes/interactive/key-handlers.d.ts +1 -0
  265. package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
  266. package/dist/modes/interactive/key-handlers.js +2 -1
  267. package/dist/modes/interactive/key-handlers.js.map +1 -1
  268. package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
  269. package/dist/modes/interactive/settings-selector-flow.js +12 -0
  270. package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
  271. package/docs/extensions.md +8 -5
  272. package/docs/harness-architecture.md +3 -4
  273. package/docs/keybindings.md +3 -2
  274. package/docs/quickstart.md +4 -4
  275. package/docs/sdk.md +3 -1
  276. package/docs/settings.md +16 -2
  277. package/docs/task-steps.md +1 -0
  278. package/docs/usage.md +6 -7
  279. package/docs/worker-profiles.md +1 -1
  280. package/docs/worktree-sync.md +1 -1
  281. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  282. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  283. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  284. package/examples/extensions/minimal-mode.ts +1 -1
  285. package/examples/extensions/sandbox/package-lock.json +2 -2
  286. package/examples/extensions/sandbox/package.json +1 -1
  287. package/examples/extensions/with-deps/package-lock.json +2 -2
  288. package/examples/extensions/with-deps/package.json +1 -1
  289. package/examples/sdk/07-context-files.ts +5 -2
  290. package/npm-shrinkwrap.json +12 -12
  291. package/package.json +4 -4
@@ -140,6 +140,8 @@ export interface WorkerAgentView {
140
140
  role: WorkerRole;
141
141
  status: AgentBindingStatus;
142
142
  activity: WorkerAgentActivity;
143
+ /** True when this caller may start/transcript/cancel the agent. Session-root lists are all true. */
144
+ controllable: boolean;
143
145
  createdAt: string;
144
146
  updatedAt: string;
145
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-agent-control.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-agent-control.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-agent-control.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport type { Message } from \"@caupulican/pi-ai\";\nimport { workerAgentMailboxFile } from \"../agent-paths.ts\";\nimport type { LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { parseBoundedStringArray } from \"../orchestration/bounded-string-array.ts\";\nimport {\n\ttype AgentBindingStatus,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\ttype WorkerRole,\n} from \"../orchestration/contracts.ts\";\nimport { withFileLockSync, writeFileAtomicSync } from \"../util/atomic-file.ts\";\nimport { readBoundedTextFileSync } from \"../util/bounded-file.ts\";\nimport { createReplaySafeMailboxBounder } from \"./replay-safe-mailbox-bounds.ts\";\nimport type {\n\tSessionRootReply,\n\tSessionRootReplyQuery,\n\tSessionRootReplyWaitOptions,\n\tSessionRootReplyWaitResult,\n} from \"./session-root-mailbox.ts\";\nimport type { WorkerTaskSessionView } from \"./worker-task-view.ts\";\n\nconst MAX_MAILBOX_MESSAGES = 64;\nconst MAX_MAILBOX_MESSAGE_CHARS = 4_096;\nconst MAX_ORDINARY_MAILBOX_BYTES = 128 * 1024;\nconst MAX_MAILBOX_MESSAGE_ID_CHARS = 512;\nconst MAX_MAILBOX_TIMESTAMP_CHARS = 128;\nconst MAX_MAILBOX_IDENTITY_CHARS = 512;\nconst MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS = 2_048;\nconst MAX_ORDINARY_RETAINED_MESSAGES = MAX_MAILBOX_MESSAGES * 2;\nconst MAX_MANDATORY_RETAINED_MESSAGES = MAX_MAILBOX_MESSAGES;\nconst MAX_MAILBOX_RETAINED_MESSAGES = MAX_ORDINARY_RETAINED_MESSAGES + MAX_MANDATORY_RETAINED_MESSAGES;\nconst MAX_REPLAY_EVIDENCE_SLOTS = MAX_ORDINARY_RETAINED_MESSAGES * 4;\nconst MAX_MAILBOX_REPLAY_RECEIPTS = MAX_REPLAY_EVIDENCE_SLOTS + MAX_ORDINARY_RETAINED_MESSAGES;\nconst MAX_MAILBOX_TRANSITION_TIMESTAMP = \"9999-12-31T23:59:59.999Z\";\nconst MAX_ENCODED_MANDATORY_MESSAGE_BYTES =\n\tBuffer.byteLength(\n\t\tJSON.stringify({\n\t\t\tmessageId: `worker-message-${\"f\".repeat(64)}`,\n\t\t\tkind: \"follow_up\",\n\t\t\tcontent: `c${\"\\0\".repeat(MAX_MAILBOX_MESSAGE_CHARS - 1)}`,\n\t\t\tsenderAgentId: `s${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\tthreadId: `t${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\treplyToMessageId: `r${\"\\0\".repeat(MAX_MAILBOX_MESSAGE_ID_CHARS - 1)}`,\n\t\t\texpectReply: true,\n\t\t\ttask: {\n\t\t\t\tkind: \"terminal_handoff\",\n\t\t\t\tsourceAttemptId: `a${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\t},\n\t\t\tcreatedAt: MAX_MAILBOX_TRANSITION_TIMESTAMP,\n\t\t\tdeliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP,\n\t\t}),\n\t\t\"utf-8\",\n\t) + 1;\n// The additive reserve keeps every previously valid 128 KiB ordinary mailbox migration-safe and\n// covers one maximum accepted source acknowledgement transaction (locked by the saturation tests).\nconst MAX_MANDATORY_TRANSITION_RESERVE_BYTES = Math.max(48 * 1024, MAX_ENCODED_MANDATORY_MESSAGE_BYTES + 1_024);\nconst MAX_MAILBOX_BYTES = MAX_ORDINARY_MAILBOX_BYTES + MAX_MANDATORY_TRANSITION_RESERVE_BYTES;\nconst CONTENT_DIGEST_PATTERN = /^[a-f0-9]{64}$/;\nconst assertWorkerAgentMailboxBounds = createReplaySafeMailboxBounder(\n\t\"Worker agent mailbox\",\n\tMAX_MAILBOX_RETAINED_MESSAGES,\n\tMAX_MAILBOX_REPLAY_RECEIPTS,\n\tMAX_MAILBOX_BYTES,\n);\n\nexport type WorkerAgentMessageKind = \"steer\" | \"follow_up\";\n\nexport type WorkerAgentTaskMetadata =\n\t| { kind: \"agent_turn\"; dependsOnTaskIds?: readonly string[] }\n\t| { kind: \"terminal_handoff\"; sourceAttemptId: string };\n\nexport interface WorkerAgentMessage {\n\tmessageId: string;\n\tkind: WorkerAgentMessageKind;\n\tcontent: string;\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\texpectReply?: boolean;\n\t/** Durable intent requiring one mailbox-correlated agent turn if no live turn consumes it. */\n\ttask?: WorkerAgentTaskMetadata;\n\tcreatedAt: string;\n\tdeliveredAt?: string;\n\trepliedAt?: string;\n\treplyReceipt?: WorkerReplyReceipt;\n\tfailedAt?: string;\n\tfailureReason?: string;\n}\n\nexport interface WorkerReplyReceipt {\n\treplyMessageId: string;\n\trequestSenderId: string;\n\tcontentDigest: string;\n}\n\ninterface WorkerAgentMailboxState {\n\tversion: 1;\n\tparentSessionId: string;\n\tagentId: string;\n\tmessages: WorkerAgentMessage[];\n\treplyAcknowledgements: WorkerReplyAcknowledgement[];\n\treplayReceipts: WorkerMailboxReplayReceipt[];\n}\n\nexport interface WorkerReplyAcknowledgement {\n\tmessageId: string;\n\tacknowledgementId: string;\n\treplyContent: string;\n}\n\ntype WorkerReplyAcknowledgementIdentity = Pick<WorkerReplyAcknowledgement, \"messageId\" | \"acknowledgementId\">;\n\ninterface WorkerControlReplayReceipt {\n\tkind: \"control\";\n\tmessageId: string;\n\tintentDigest: string;\n\tdeliveredAt?: string;\n}\n\ninterface WorkerReplyReplayReceipt extends WorkerReplyReceipt {\n\tkind: \"reply\";\n\tmessageId: string;\n}\n\ntype WorkerMailboxReplayReceipt = WorkerControlReplayReceipt | WorkerReplyReplayReceipt;\n\nexport type WorkerAgentEnqueueReceipt =\n\t| { status: \"retained\"; messageId: string; message: WorkerAgentMessage; created: boolean }\n\t| { status: \"completed_replay\"; messageId: string; created: false };\n\nexport interface WorkerAgentMailboxOptions {\n\tagentDir: string;\n\tparentSessionId: string;\n\tagentId: string;\n}\n\nexport interface WorkerAgentTranscriptPage {\n\tagentId: string;\n\tcursor: number;\n\tmessages: Message[];\n\tnextCursor?: number;\n\tomittedMessages: number;\n\tserializedBytes: number;\n}\n\nexport interface WorkerAgentMessageOptions {\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\texpectReply?: boolean;\n\t/** Host-derived replay identity scoped to the caller, session, tool invocation, and action. */\n\tidempotencyKey?: string;\n}\n\nexport interface WorkerAgentBroadcastOptions {\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\texpectReply?: boolean;\n\t/** Call-level replay identity; the coordinator derives one stable identity per canonical target. */\n\tidempotencyKey: string;\n}\n\nexport interface SessionRootWorkerAgentMessageOptions {\n\tthreadId?: string;\n\texpectReply?: boolean;\n\tidempotencyKey?: string;\n}\n\nexport type WorkerAgentReplyResult =\n\t| { destination: \"session_root\"; messageId: string }\n\t| {\n\t\t\tdestination: \"worker\";\n\t\t\tmessageId: string;\n\t\t\tstarted: boolean;\n\t\t\tsteering: boolean;\n\t\t\trecord?: LaneRecord;\n\t\t\tskipReason?: string;\n\t };\n\nexport interface WorkerAgentControlScope {\n\tcallerAgentId?: string;\n}\n\nexport interface WorkerAgentTaskStartOptions extends WorkerAgentControlScope {\n\t/** Host-derived replay identity scoped to the caller, session, tool invocation, and action. */\n\tidempotencyKey?: string;\n\t/** Existing same-objective durable tasks that must complete before this turn may run. */\n\tdependsOnTaskIds?: readonly string[];\n}\n\nexport interface WorkerAgentTranscriptOptions extends WorkerAgentControlScope {\n\tcursor?: number;\n\tmaxMessages?: number;\n\t/** Host-owned aggregate-envelope headroom; never accepted directly from a model argument. */\n\tmaxBytes?: number;\n}\n\nexport type WorkerAgentActivity = \"active\" | \"suspended\" | \"idle\" | \"unknown\";\n\nexport type WorkerAgentWaitMode = \"any\" | \"all\";\n\nexport interface WorkerAgentWaitStatus {\n\tagentId: string;\n\tstatus: WorkerAgentActivity;\n}\n\nexport interface WorkerAgentWaitResult {\n\tstatuses: WorkerAgentWaitStatus[];\n\tupdatedAgentIds: string[];\n\ttimedOut: boolean;\n}\n\nexport type WorkerAgentBroadcastTargetResult =\n\t| { agentId: string; accepted: true; queued: true; replayed: boolean; messageId: string }\n\t| { agentId: string; accepted: false; error: string };\n\nexport interface WorkerAgentBroadcastResult {\n\tresults: WorkerAgentBroadcastTargetResult[];\n}\n\n/** Explicit model-facing projection. Durable resume, session, path, and resource data stay host-only. */\nexport interface WorkerAgentView {\n\tagentId: string;\n\tparentAgentId?: string;\n\trootAgentId: string;\n\tdepth: number;\n\trole: WorkerRole;\n\tstatus: AgentBindingStatus;\n\tactivity: WorkerAgentActivity;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface WorkerAgentRetireResult {\n\tagent: WorkerAgentView;\n\tretired: true;\n\treplayed: boolean;\n}\n\n/** One canonical host port for model-facing logical-agent controls. */\nexport interface WorkerAgentControlPort {\n\tlistWorkerAgents(scope?: WorkerAgentControlScope): WorkerAgentView[];\n\tgetWorkerTaskSessionView(): WorkerTaskSessionView;\n\tgetWorkerAgentActivity(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentActivity;\n\treadWorkerAgentTranscript(agentId: string, options?: WorkerAgentTranscriptOptions): WorkerAgentTranscriptPage;\n\t/** Queue-only session-peer delivery. This does not wake or steer an idle or active agent. */\n\tsendWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentMessageOptions,\n\t): { messageId: string; queued: true };\n\t/** Queue-only fan-out. Peer content is untrusted coordination evidence, never delegated authority. */\n\tbroadcastWorkerAgentMessage(\n\t\tagentIds: readonly string[],\n\t\tmessage: string,\n\t\toptions: WorkerAgentBroadcastOptions,\n\t): WorkerAgentBroadcastResult;\n\t/** Worker callers may wake or steer only themselves and descendants; the session root may target any agent. */\n\tfollowUpWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string };\n\tsendSessionRootWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: SessionRootWorkerAgentMessageOptions,\n\t): { messageId: string; queued: true };\n\tfollowUpSessionRootWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: SessionRootWorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string };\n\treplyToWorkerAgentMessage(sourceAgentId: string, message: string, replyToMessageId: string): WorkerAgentReplyResult;\n\tlistSessionRootReplies(query?: SessionRootReplyQuery): SessionRootReply[];\n\twaitForSessionRootReplies(options?: SessionRootReplyWaitOptions): Promise<SessionRootReplyWaitResult>;\n\tacknowledgeSessionRootReply(messageId: string, ackToken: string): boolean;\n\treconcileSessionRootReplies(): void;\n\t/** Worker callers may start only themselves and descendants; the session root may target any agent. */\n\tstartWorkerAgentTask(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentTaskStartOptions,\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string };\n\tinterruptWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): { interrupted: boolean; reason?: string };\n\tresumeWorkerAgent(\n\t\tagentId: string,\n\t\tscope?: WorkerAgentControlScope,\n\t): { started: boolean; record?: LaneRecord; skipReason?: string };\n\tcancelWorkerAgent(agentId: string, reasonCode?: string, scope?: WorkerAgentControlScope): LaneRecord | undefined;\n\t/** Retire one idle leaf without deleting its durable binding, lineage, transcript, or attempt history. */\n\tretireWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentRetireResult;\n\twaitForWorkerAgent(\n\t\tagentId: string,\n\t\ttimeoutMs?: number,\n\t\tscope?: WorkerAgentControlScope,\n\t): Promise<{ status: WorkerAgentActivity; timedOut: boolean }>;\n\twaitForWorkerAgents(\n\t\tagentIds: readonly string[],\n\t\tmode: WorkerAgentWaitMode,\n\t\ttimeoutMs?: number,\n\t\tscope?: WorkerAgentControlScope,\n\t): Promise<WorkerAgentWaitResult>;\n}\n\nfunction mailboxDigest(parentSessionId: string, agentId: string): string {\n\treturn createHash(\"sha256\")\n\t\t.update(\"pi-worker-agent-mailbox-v1\")\n\t\t.update(\"\\0\")\n\t\t.update(parentSessionId)\n\t\t.update(\"\\0\")\n\t\t.update(agentId)\n\t\t.digest(\"hex\");\n}\n\nfunction assertIdentity(value: string, label: string): string {\n\tconst normalized = value.trim();\n\tif (!normalized) throw new TypeError(`A worker ${label} is required.`);\n\tif (normalized.length > 512) throw new TypeError(`Worker ${label} exceeds 512 characters.`);\n\treturn normalized;\n}\n\n/** Derive one target-fenced mailbox replay identity from a host-owned broadcast call identity. */\nexport function workerAgentBroadcastTargetIdempotencyKey(baseIdempotencyKey: string, agentId: string): string {\n\tconst replayIdentity = baseIdempotencyKey.trim();\n\tif (!replayIdentity || replayIdentity.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS) {\n\t\tthrow new TypeError(\"Worker broadcast idempotency key is invalid.\");\n\t}\n\tconst targetAgentId = assertIdentity(agentId, \"agent id\");\n\treturn `worker-broadcast-${createHash(\"sha256\")\n\t\t.update(\"pi-worker-broadcast-target-v1\")\n\t\t.update(\"\\0\")\n\t\t.update(replayIdentity)\n\t\t.update(\"\\0\")\n\t\t.update(targetAgentId)\n\t\t.digest(\"hex\")}`;\n}\n\n/** Session-scoped replay identity. The coordinator fences one accepted id to exactly one target mailbox. */\nexport function workerAgentMessageId(parentSessionId: string, idempotencyKey: string): string {\n\tconst sessionId = assertIdentity(parentSessionId, \"parent session id\");\n\tconst replayIdentity = idempotencyKey.trim();\n\tif (!replayIdentity || replayIdentity.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS) {\n\t\tthrow new TypeError(\"Worker control idempotency key is invalid.\");\n\t}\n\treturn `worker-message-${createHash(\"sha256\")\n\t\t.update(\"pi-worker-agent-message-v2\")\n\t\t.update(\"\\0\")\n\t\t.update(sessionId)\n\t\t.update(\"\\0\")\n\t\t.update(replayIdentity)\n\t\t.digest(\"hex\")}`;\n}\n\nfunction contentDigest(domain: string, content: string): string {\n\treturn createHash(\"sha256\").update(domain).update(\"\\0\").update(content).digest(\"hex\");\n}\n\nfunction controlIntentDigest(input: {\n\tcontent: string;\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\texpectReply?: boolean;\n\ttask?: WorkerAgentTaskMetadata;\n}): string {\n\treturn contentDigest(\n\t\t\"pi-worker-agent-control-intent-v1\",\n\t\tJSON.stringify([\n\t\t\tinput.content,\n\t\t\tinput.senderAgentId ?? null,\n\t\t\tinput.threadId ?? null,\n\t\t\tinput.replyToMessageId ?? null,\n\t\t\tinput.expectReply === true,\n\t\t\tinput.task ?? null,\n\t\t]),\n\t);\n}\n\nfunction replyIntentDigest(content: string): string {\n\treturn contentDigest(\"pi-worker-reply-content-v1\", content);\n}\n\nfunction controlReplayReceipt(\n\tmessageId: string,\n\tintentDigest: string,\n\tdeliveredAt?: string,\n): WorkerControlReplayReceipt {\n\treturn { kind: \"control\", messageId, intentDigest, ...(deliveredAt ? { deliveredAt } : {}) };\n}\n\nfunction controlReplayReceiptFor(\n\treceipts: readonly WorkerMailboxReplayReceipt[],\n\tmessageId: string,\n): WorkerControlReplayReceipt | undefined {\n\treturn receipts.find(\n\t\t(receipt): receipt is WorkerControlReplayReceipt => receipt.kind === \"control\" && receipt.messageId === messageId,\n\t);\n}\n\nfunction replyReplayReceiptFor(\n\treceipts: readonly WorkerMailboxReplayReceipt[],\n\tmessageId: string,\n): WorkerReplyReplayReceipt | undefined {\n\treturn receipts.find(\n\t\t(receipt): receipt is WorkerReplyReplayReceipt => receipt.kind === \"reply\" && receipt.messageId === messageId,\n\t);\n}\n\nfunction requiredMailboxTimestamp(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0 || value.length > MAX_MAILBOX_TIMESTAMP_CHARS) {\n\t\tthrow new Error(`Worker agent mailbox contains an invalid message ${label}.`);\n\t}\n\tconst parsed = new Date(value);\n\tif (!Number.isFinite(parsed.getTime()) || parsed.toISOString() !== value) {\n\t\tthrow new Error(`Worker agent mailbox contains an invalid message ${label}.`);\n\t}\n\treturn value;\n}\n\nfunction transitionTimestamp(floor: string): string {\n\tconst current = new Date().toISOString();\n\treturn Date.parse(current) < Date.parse(floor) ? floor : current;\n}\n\nfunction parseReplyReceiptFields(receipt: Record<string, unknown>, label: string): WorkerReplyReceipt {\n\tif (\n\t\ttypeof receipt.replyMessageId !== \"string\" ||\n\t\t!receipt.replyMessageId ||\n\t\treceipt.replyMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\ttypeof receipt.requestSenderId !== \"string\" ||\n\t\t!receipt.requestSenderId ||\n\t\treceipt.requestSenderId.length > MAX_MAILBOX_IDENTITY_CHARS ||\n\t\ttypeof receipt.contentDigest !== \"string\" ||\n\t\t!CONTENT_DIGEST_PATTERN.test(receipt.contentDigest)\n\t) {\n\t\tthrow new Error(`Worker agent mailbox contains invalid ${label}.`);\n\t}\n\treturn {\n\t\treplyMessageId: receipt.replyMessageId,\n\t\trequestSenderId: receipt.requestSenderId,\n\t\tcontentDigest: receipt.contentDigest,\n\t};\n}\n\nfunction parseState(raw: string, parentSessionId: string, agentId: string): WorkerAgentMailboxState {\n\tlet candidate: unknown;\n\ttry {\n\t\tcandidate = JSON.parse(raw);\n\t} catch {\n\t\tthrow new Error(\"Worker agent mailbox is invalid JSON.\");\n\t}\n\tif (!candidate || typeof candidate !== \"object\" || Array.isArray(candidate)) {\n\t\tthrow new Error(\"Worker agent mailbox is invalid.\");\n\t}\n\tconst state = candidate as Partial<WorkerAgentMailboxState>;\n\tif (\n\t\tstate.version !== 1 ||\n\t\tstate.parentSessionId !== parentSessionId ||\n\t\tstate.agentId !== agentId ||\n\t\t!Array.isArray(state.messages)\n\t) {\n\t\tthrow new Error(\"Worker agent mailbox identity conflicts with the requested logical worker.\");\n\t}\n\tconst messages = state.messages.map((message): WorkerAgentMessage => {\n\t\tlet task: WorkerAgentTaskMetadata | undefined;\n\t\tlet replyReceipt: WorkerReplyReceipt | undefined;\n\t\tif (message?.task !== undefined) {\n\t\t\tif (!message.task || typeof message.task !== \"object\" || Array.isArray(message.task)) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task-bearing message metadata.\");\n\t\t\t}\n\t\t\tconst taskRecord = message.task as Record<string, unknown>;\n\t\t\tif (\n\t\t\t\ttaskRecord.kind === \"agent_turn\" &&\n\t\t\t\tObject.keys(taskRecord).every((field) => field === \"kind\" || field === \"dependsOnTaskIds\")\n\t\t\t) {\n\t\t\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(taskRecord.dependsOnTaskIds);\n\t\t\t\ttask = {\n\t\t\t\t\tkind: \"agent_turn\",\n\t\t\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttaskRecord.kind === \"terminal_handoff\" &&\n\t\t\t\ttypeof taskRecord.sourceAttemptId === \"string\" &&\n\t\t\t\ttaskRecord.sourceAttemptId.length > 0 &&\n\t\t\t\ttaskRecord.sourceAttemptId.length <= MAX_MAILBOX_IDENTITY_CHARS &&\n\t\t\t\tObject.keys(taskRecord).every((field) => field === \"kind\" || field === \"sourceAttemptId\")\n\t\t\t) {\n\t\t\t\ttask = { kind: \"terminal_handoff\", sourceAttemptId: taskRecord.sourceAttemptId };\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task-bearing message metadata.\");\n\t\t\t}\n\t\t}\n\t\tif (message?.replyReceipt !== undefined) {\n\t\t\tif (!message.replyReceipt || typeof message.replyReceipt !== \"object\" || Array.isArray(message.replyReceipt)) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply receipt metadata.\");\n\t\t\t}\n\t\t\tconst receipt = message.replyReceipt as unknown as Record<string, unknown>;\n\t\t\tif (\n\t\t\t\t!Object.keys(receipt).every(\n\t\t\t\t\t(field) => field === \"replyMessageId\" || field === \"requestSenderId\" || field === \"contentDigest\",\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply receipt metadata.\");\n\t\t\t}\n\t\t\treplyReceipt = parseReplyReceiptFields(receipt, \"reply receipt metadata\");\n\t\t}\n\t\tif (\n\t\t\t!message ||\n\t\t\ttypeof message !== \"object\" ||\n\t\t\tArray.isArray(message) ||\n\t\t\ttypeof message.messageId !== \"string\" ||\n\t\t\tmessage.messageId.length === 0 ||\n\t\t\tmessage.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t(message.kind !== \"steer\" && message.kind !== \"follow_up\") ||\n\t\t\ttypeof message.content !== \"string\" ||\n\t\t\tmessage.content.length === 0 ||\n\t\t\tmessage.content.length > MAX_MAILBOX_MESSAGE_CHARS ||\n\t\t\t(message.senderAgentId !== undefined &&\n\t\t\t\t(typeof message.senderAgentId !== \"string\" ||\n\t\t\t\t\tmessage.senderAgentId.length === 0 ||\n\t\t\t\t\tmessage.senderAgentId.length > MAX_MAILBOX_IDENTITY_CHARS)) ||\n\t\t\t(message.threadId !== undefined &&\n\t\t\t\t(typeof message.threadId !== \"string\" ||\n\t\t\t\t\tmessage.threadId.length === 0 ||\n\t\t\t\t\tmessage.threadId.length > MAX_MAILBOX_IDENTITY_CHARS)) ||\n\t\t\t(message.replyToMessageId !== undefined &&\n\t\t\t\t(typeof message.replyToMessageId !== \"string\" ||\n\t\t\t\t\tmessage.replyToMessageId.length === 0 ||\n\t\t\t\t\tmessage.replyToMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS)) ||\n\t\t\t(message.expectReply !== undefined && typeof message.expectReply !== \"boolean\") ||\n\t\t\ttypeof message.createdAt !== \"string\" ||\n\t\t\tmessage.createdAt.length === 0 ||\n\t\t\tmessage.createdAt.length > MAX_MAILBOX_TIMESTAMP_CHARS ||\n\t\t\t(message.deliveredAt !== undefined &&\n\t\t\t\t(typeof message.deliveredAt !== \"string\" ||\n\t\t\t\t\tmessage.deliveredAt.length === 0 ||\n\t\t\t\t\tmessage.deliveredAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.repliedAt !== undefined &&\n\t\t\t\t(typeof message.repliedAt !== \"string\" ||\n\t\t\t\t\tmessage.repliedAt.length === 0 ||\n\t\t\t\t\tmessage.repliedAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.failedAt !== undefined &&\n\t\t\t\t(typeof message.failedAt !== \"string\" ||\n\t\t\t\t\tmessage.failedAt.length === 0 ||\n\t\t\t\t\tmessage.failedAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.failureReason !== undefined &&\n\t\t\t\t(typeof message.failureReason !== \"string\" ||\n\t\t\t\t\tmessage.failureReason.length === 0 ||\n\t\t\t\t\tmessage.failureReason.length > MAX_MAILBOX_IDENTITY_CHARS))\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains an invalid message.\");\n\t\t}\n\t\tconst createdAt = requiredMailboxTimestamp(message.createdAt, \"creation timestamp\");\n\t\tconst deliveredAt =\n\t\t\tmessage.deliveredAt === undefined\n\t\t\t\t? undefined\n\t\t\t\t: requiredMailboxTimestamp(message.deliveredAt, \"delivery timestamp\");\n\t\tconst repliedAt =\n\t\t\tmessage.repliedAt === undefined ? undefined : requiredMailboxTimestamp(message.repliedAt, \"reply timestamp\");\n\t\tconst failedAt =\n\t\t\tmessage.failedAt === undefined ? undefined : requiredMailboxTimestamp(message.failedAt, \"failure timestamp\");\n\t\tif (deliveredAt !== undefined && Date.parse(deliveredAt) < Date.parse(createdAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message delivery timestamp predates creation.\");\n\t\t}\n\t\tif (repliedAt !== undefined && deliveredAt === undefined) {\n\t\t\tthrow new Error(\"Worker agent mailbox message reply timestamp has no delivery timestamp.\");\n\t\t}\n\t\tif (repliedAt !== undefined && deliveredAt !== undefined && Date.parse(repliedAt) < Date.parse(deliveredAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message reply timestamp predates delivery.\");\n\t\t}\n\t\tif (repliedAt !== undefined && message.expectReply !== true) {\n\t\t\tthrow new Error(\"Worker agent mailbox replied message did not expect a reply.\");\n\t\t}\n\t\tif (failedAt !== undefined && Date.parse(failedAt) < Date.parse(createdAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message failure timestamp predates creation.\");\n\t\t}\n\t\tif (\n\t\t\t(failedAt === undefined) !== (message.failureReason === undefined) ||\n\t\t\t(failedAt !== undefined && deliveredAt !== undefined)\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task failure state.\");\n\t\t}\n\t\tif (failedAt !== undefined && (task === undefined || repliedAt !== undefined || replyReceipt !== undefined)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task failure state.\");\n\t\t}\n\t\tif ((repliedAt === undefined) !== (replyReceipt === undefined)) {\n\t\t\tthrow new Error(\"Worker agent mailbox replied message is missing its durable reply receipt.\");\n\t\t}\n\t\treturn {\n\t\t\t...message,\n\t\t\tcreatedAt,\n\t\t\t...(deliveredAt ? { deliveredAt } : {}),\n\t\t\t...(repliedAt ? { repliedAt } : {}),\n\t\t\t...(replyReceipt ? { replyReceipt } : {}),\n\t\t\t...(failedAt ? { failedAt, failureReason: message.failureReason } : {}),\n\t\t\t...(task ? { task } : {}),\n\t\t};\n\t});\n\tif (new Set(messages.map((message) => message.messageId)).size !== messages.length) {\n\t\tthrow new Error(\"Worker agent mailbox contains duplicate message identities.\");\n\t}\n\tconst pendingMessages = messages.filter(isPendingMessage);\n\tif (pendingMessages.filter((message) => !hasExternalReplayAuthority(message)).length > MAX_MAILBOX_MESSAGES)\n\t\tthrow new Error(\"Worker agent mailbox exceeds its pending-message bound.\");\n\tif (pendingMessages.filter(hasExternalReplayAuthority).length > MAX_MAILBOX_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its mandatory pending-message bound.\");\n\t}\n\tif (messages.length > MAX_MAILBOX_RETAINED_MESSAGES)\n\t\tthrow new Error(\"Worker agent mailbox exceeds its retained-message bound.\");\n\tif (messages.filter(usesMandatoryRetainedReserve).length > MAX_MANDATORY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its mandatory retained-message reserve.\");\n\t}\n\tif (messages.filter((message) => !usesMandatoryRetainedReserve(message)).length > MAX_ORDINARY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its ordinary retained-message bound.\");\n\t}\n\tif (state.replyAcknowledgements !== undefined && !Array.isArray(state.replyAcknowledgements)) {\n\t\tthrow new Error(\"Worker agent mailbox contains invalid reply acknowledgement state.\");\n\t}\n\tconst messagesById = new Map(messages.map((message) => [message.messageId, message]));\n\tconst acknowledgedMessageIds = new Set<string>();\n\tconst acknowledgementIds = new Set<string>();\n\tconst replyAcknowledgements = (state.replyAcknowledgements ?? []).map(\n\t\t(acknowledgement): WorkerReplyAcknowledgement => {\n\t\t\tif (\n\t\t\t\t!acknowledgement ||\n\t\t\t\ttypeof acknowledgement !== \"object\" ||\n\t\t\t\tArray.isArray(acknowledgement) ||\n\t\t\t\ttypeof acknowledgement.messageId !== \"string\" ||\n\t\t\t\tacknowledgement.messageId.length === 0 ||\n\t\t\t\tacknowledgement.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t\ttypeof acknowledgement.acknowledgementId !== \"string\" ||\n\t\t\t\tacknowledgement.acknowledgementId.length === 0 ||\n\t\t\t\tacknowledgement.acknowledgementId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t\ttypeof acknowledgement.replyContent !== \"string\" ||\n\t\t\t\tacknowledgement.replyContent.length === 0 ||\n\t\t\t\tacknowledgement.replyContent.length > MAX_MAILBOX_MESSAGE_CHARS ||\n\t\t\t\tacknowledgement.replyContent.trim() !== acknowledgement.replyContent ||\n\t\t\t\tacknowledgedMessageIds.has(acknowledgement.messageId) ||\n\t\t\t\tacknowledgementIds.has(acknowledgement.acknowledgementId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply acknowledgement state.\");\n\t\t\t}\n\t\t\tconst message = messagesById.get(acknowledgement.messageId);\n\t\t\tif (\n\t\t\t\t!message ||\n\t\t\t\tmessage.deliveredAt === undefined ||\n\t\t\t\tmessage.expectReply !== true ||\n\t\t\t\tmessage.repliedAt === undefined ||\n\t\t\t\tmessage.replyReceipt?.replyMessageId !== acknowledgement.acknowledgementId ||\n\t\t\t\tmessage.replyReceipt.contentDigest !== replyIntentDigest(acknowledgement.replyContent)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox reply acknowledgement does not reference a retained request.\");\n\t\t\t}\n\t\t\tacknowledgedMessageIds.add(acknowledgement.messageId);\n\t\t\tacknowledgementIds.add(acknowledgement.acknowledgementId);\n\t\t\treturn {\n\t\t\t\tmessageId: acknowledgement.messageId,\n\t\t\t\tacknowledgementId: acknowledgement.acknowledgementId,\n\t\t\t\treplyContent: acknowledgement.replyContent,\n\t\t\t};\n\t\t},\n\t);\n\tif (state.replayReceipts !== undefined && !Array.isArray(state.replayReceipts)) {\n\t\tthrow new Error(\"Worker agent mailbox contains invalid replay receipt state.\");\n\t}\n\tconst replayIdentities = new Set<string>();\n\tconst replyMessageIds = new Set<string>();\n\tconst replayReceipts = (state.replayReceipts ?? []).map((receipt): WorkerMailboxReplayReceipt => {\n\t\tif (\n\t\t\t!receipt ||\n\t\t\ttypeof receipt !== \"object\" ||\n\t\t\tArray.isArray(receipt) ||\n\t\t\ttypeof receipt.messageId !== \"string\" ||\n\t\t\t!receipt.messageId ||\n\t\t\treceipt.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid replay receipt state.\");\n\t\t}\n\t\tconst replayIdentity = `${String(receipt.kind)}:${receipt.messageId}`;\n\t\tif (replayIdentities.has(replayIdentity)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains duplicate replay receipt identities.\");\n\t\t}\n\t\treplayIdentities.add(replayIdentity);\n\t\tif (receipt.kind === \"control\") {\n\t\t\tif (\n\t\t\t\ttypeof receipt.intentDigest !== \"string\" ||\n\t\t\t\t!CONTENT_DIGEST_PATTERN.test(receipt.intentDigest) ||\n\t\t\t\t!Object.keys(receipt).every(\n\t\t\t\t\t(field) =>\n\t\t\t\t\t\tfield === \"kind\" || field === \"messageId\" || field === \"intentDigest\" || field === \"deliveredAt\",\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid control replay receipt state.\");\n\t\t\t}\n\t\t\tconst deliveredAt =\n\t\t\t\treceipt.deliveredAt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: requiredMailboxTimestamp(receipt.deliveredAt, \"replay delivery timestamp\");\n\t\t\treturn controlReplayReceipt(receipt.messageId, receipt.intentDigest, deliveredAt);\n\t\t}\n\t\tif (\n\t\t\treceipt.kind !== \"reply\" ||\n\t\t\t!Object.keys(receipt).every(\n\t\t\t\t(field) =>\n\t\t\t\t\tfield === \"kind\" ||\n\t\t\t\t\tfield === \"messageId\" ||\n\t\t\t\t\tfield === \"replyMessageId\" ||\n\t\t\t\t\tfield === \"requestSenderId\" ||\n\t\t\t\t\tfield === \"contentDigest\",\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply replay receipt state.\");\n\t\t}\n\t\tconst replyReceipt = parseReplyReceiptFields(\n\t\t\treceipt as unknown as Record<string, unknown>,\n\t\t\t\"reply replay receipt state\",\n\t\t);\n\t\tif (replyMessageIds.has(replyReceipt.replyMessageId)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains duplicate reply replay identities.\");\n\t\t}\n\t\treplyMessageIds.add(replyReceipt.replyMessageId);\n\t\treturn {\n\t\t\tkind: \"reply\",\n\t\t\tmessageId: receipt.messageId,\n\t\t\t...replyReceipt,\n\t\t};\n\t});\n\tif (replayReceipts.length > MAX_MAILBOX_REPLAY_RECEIPTS) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its replay receipt bound.\");\n\t}\n\tif (replayReceipts.filter((receipt) => receipt.kind === \"control\").length > MAX_REPLAY_EVIDENCE_SLOTS) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its control replay receipt bound.\");\n\t}\n\tif (\n\t\treplayReceipts.length +\n\t\t\tmessages.filter((message) => message.expectReply === true && message.repliedAt === undefined).length >\n\t\tMAX_MAILBOX_REPLAY_RECEIPTS\n\t) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its projected replay evidence bound.\");\n\t}\n\tfor (const message of messages) {\n\t\tconst controlReceipt = controlReplayReceiptFor(replayReceipts, message.messageId);\n\t\tif (controlReceipt && controlReceipt.deliveredAt !== message.deliveredAt) {\n\t\t\tthrow new Error(\"Worker agent mailbox control delivery conflicts with its durable replay receipt.\");\n\t\t}\n\t\tif (message.replyReceipt) {\n\t\t\tconst replyReceipt = replyReplayReceiptFor(replayReceipts, message.messageId);\n\t\t\tif (\n\t\t\t\t!replyReceipt ||\n\t\t\t\treplyReceipt.replyMessageId !== message.replyReceipt.replyMessageId ||\n\t\t\t\treplyReceipt.requestSenderId !== message.replyReceipt.requestSenderId ||\n\t\t\t\treplyReceipt.contentDigest !== message.replyReceipt.contentDigest\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox reply conflicts with its durable replay receipt.\");\n\t\t\t}\n\t\t}\n\t}\n\treturn { version: 1, parentSessionId, agentId, messages, replyAcknowledgements, replayReceipts };\n}\n\nfunction normalizeOptionalIdentity(value: string | undefined, label: string): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > MAX_MAILBOX_IDENTITY_CHARS) {\n\t\tthrow new TypeError(`Worker control ${label} is invalid.`);\n\t}\n\treturn normalized;\n}\n\nexport function normalizeWorkerAgentDependencyTaskIds(value: unknown): readonly string[] {\n\treturn parseBoundedStringArray(value === undefined ? [] : value, {\n\t\tmaxEntries: MAX_ORCHESTRATION_COLLECTION_LENGTH,\n\t\tmaxLength: MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\ttrim: true,\n\t\tinvalidMessage: \"Worker dependency task ids must contain bounded, non-empty strings.\",\n\t\tduplicateMessage: \"Worker dependency task ids must contain unique strings.\",\n\t\tcreateError: (message) => new TypeError(message),\n\t});\n}\n\nfunction normalizeTaskMetadata(task: WorkerAgentTaskMetadata | undefined): WorkerAgentTaskMetadata | undefined {\n\tif (task === undefined) return undefined;\n\tif (task.kind === \"agent_turn\") {\n\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(task.dependsOnTaskIds);\n\t\treturn {\n\t\t\tkind: \"agent_turn\",\n\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t};\n\t}\n\tconst sourceAttemptId = normalizeOptionalIdentity(task.sourceAttemptId, \"terminal source attempt id\");\n\tif (!sourceAttemptId) throw new TypeError(\"Worker terminal source attempt id is invalid.\");\n\treturn { kind: \"terminal_handoff\", sourceAttemptId };\n}\n\nfunction sameTaskMetadata(\n\tleft: WorkerAgentTaskMetadata | undefined,\n\tright: WorkerAgentTaskMetadata | undefined,\n): boolean {\n\tif (left?.kind !== right?.kind) return false;\n\tif (left?.kind === \"agent_turn\" && right?.kind === \"agent_turn\") {\n\t\tconst leftDependencies = left.dependsOnTaskIds ?? [];\n\t\tconst rightDependencies = right.dependsOnTaskIds ?? [];\n\t\treturn (\n\t\t\tleftDependencies.length === rightDependencies.length &&\n\t\t\tleftDependencies.every((dependencyId, index) => dependencyId === rightDependencies[index])\n\t\t);\n\t}\n\tif (left?.kind === \"terminal_handoff\" && right?.kind === \"terminal_handoff\") {\n\t\treturn left.sourceAttemptId === right.sourceAttemptId;\n\t}\n\treturn true;\n}\n\nfunction hasExternalReplayAuthority(message: Pick<WorkerAgentMessage, \"replyToMessageId\" | \"task\">): boolean {\n\treturn message.replyToMessageId !== undefined || message.task?.kind === \"terminal_handoff\";\n}\n\nfunction isPendingMessage(message: Pick<WorkerAgentMessage, \"deliveredAt\" | \"failedAt\">): boolean {\n\treturn message.deliveredAt === undefined && message.failedAt === undefined;\n}\n\nfunction usesMandatoryRetainedReserve(message: WorkerAgentMessage): boolean {\n\treturn isPendingMessage(message) && hasExternalReplayAuthority(message);\n}\n\nfunction projectedReplayEvidenceSlots(state: WorkerAgentMailboxState): number {\n\treturn (\n\t\tstate.replayReceipts.length +\n\t\tstate.messages.filter((message) => message.expectReply === true && message.repliedAt === undefined).length\n\t);\n}\n\nfunction normalizeReplyAcknowledgement(\n\tmessageId: string,\n\tacknowledgementId: string,\n): WorkerReplyAcknowledgementIdentity {\n\tconst normalizedMessageId = messageId.trim();\n\tif (!normalizedMessageId || normalizedMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS) {\n\t\tthrow new TypeError(\"A worker control message id is invalid.\");\n\t}\n\tconst normalizedAcknowledgementId = acknowledgementId.trim();\n\tif (!normalizedAcknowledgementId || normalizedAcknowledgementId.length > MAX_MAILBOX_MESSAGE_ID_CHARS) {\n\t\tthrow new TypeError(\"A worker reply acknowledgement id is invalid.\");\n\t}\n\treturn { messageId: normalizedMessageId, acknowledgementId: normalizedAcknowledgementId };\n}\n\nfunction normalizeReplyContent(replyContent: string): string {\n\tconst normalized = replyContent.trim();\n\tif (!normalized || normalized.length > MAX_MAILBOX_MESSAGE_CHARS) {\n\t\tthrow new TypeError(\n\t\t\t`Worker reply content must contain from 1 through ${MAX_MAILBOX_MESSAGE_CHARS.toLocaleString(\"en-US\")} characters.`,\n\t\t);\n\t}\n\treturn normalized;\n}\n\nfunction pruneDeliveredHistory(\n\tparentSessionId: string,\n\tagentId: string,\n\tmessages: readonly WorkerAgentMessage[],\n\treplyAcknowledgements: readonly WorkerReplyAcknowledgement[],\n\treplayReceipts: readonly WorkerMailboxReplayReceipt[],\n\tordinaryAdmission: boolean,\n): { messages: WorkerAgentMessage[]; replayReceipts: WorkerMailboxReplayReceipt[] } {\n\tconst protectedReplyIds = new Set(replyAcknowledgements.map((acknowledgement) => acknowledgement.messageId));\n\tconst protectedMessages = messages.filter(\n\t\t(message) =>\n\t\t\tisPendingMessage(message) ||\n\t\t\t(message.expectReply === true && message.repliedAt === undefined) ||\n\t\t\tprotectedReplyIds.has(message.messageId),\n\t);\n\tconst protectedMandatory = protectedMessages.filter(usesMandatoryRetainedReserve);\n\tconst protectedOrdinary = protectedMessages.filter((message) => !usesMandatoryRetainedReserve(message));\n\tif (protectedMandatory.length > MAX_MANDATORY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox mandatory retained-message reserve is exhausted.\");\n\t}\n\tif (protectedOrdinary.length > MAX_ORDINARY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox ordinary retained-message capacity is exhausted.\");\n\t}\n\tconst retainedIds = new Set(protectedMessages.map((message) => message.messageId));\n\tconst deliveredCandidates = messages.filter(\n\t\t(message) =>\n\t\t\t(message.deliveredAt !== undefined || message.failedAt !== undefined) && !retainedIds.has(message.messageId),\n\t);\n\tconst remainingOrdinarySlots = MAX_ORDINARY_RETAINED_MESSAGES - protectedOrdinary.length;\n\tconst recentDelivered = remainingOrdinarySlots > 0 ? deliveredCandidates.slice(-remainingOrdinarySlots) : [];\n\tlet retained = [...protectedMessages, ...recentDelivered].sort((left, right) =>\n\t\tleft.createdAt.localeCompare(right.createdAt),\n\t);\n\tconst retainedReplayReceipts = [...replayReceipts];\n\twhile (true) {\n\t\tconst state = {\n\t\t\tversion: 1,\n\t\t\tparentSessionId,\n\t\t\tagentId,\n\t\t\tmessages: retained,\n\t\t\treplyAcknowledgements: [...replyAcknowledgements],\n\t\t\treplayReceipts: retainedReplayReceipts,\n\t\t} satisfies WorkerAgentMailboxState;\n\t\tconst encodedBytes = ordinaryAdmission ? ordinaryAdmissionEncodedBytes(state) : encodedStateBytes(state);\n\t\tconst encodedLimit = ordinaryAdmission ? MAX_ORDINARY_MAILBOX_BYTES : MAX_MAILBOX_BYTES;\n\t\tif (encodedBytes <= encodedLimit) break;\n\t\tconst oldestCompletedIndex = retained.findIndex((message) => !retainedIds.has(message.messageId));\n\t\tif (oldestCompletedIndex >= 0) {\n\t\t\tretained = retained.filter((_, index) => index !== oldestCompletedIndex);\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\treturn { messages: retained, replayReceipts: retainedReplayReceipts };\n}\n\nfunction encodedStateBytes(state: WorkerAgentMailboxState): number {\n\treturn Buffer.byteLength(`${JSON.stringify(state)}\\n`, \"utf-8\");\n}\n\nfunction ordinaryAdmissionEncodedBytes(state: WorkerAgentMailboxState): number {\n\tconst projectedDeliveryIds = new Set(\n\t\tstate.messages\n\t\t\t.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt === undefined &&\n\t\t\t\t\tmessage.failedAt === undefined &&\n\t\t\t\t\t!hasExternalReplayAuthority(message),\n\t\t\t)\n\t\t\t.map((message) => message.messageId),\n\t);\n\treturn encodedStateBytes({\n\t\t...state,\n\t\tmessages: state.messages.map((message) =>\n\t\t\tprojectedDeliveryIds.has(message.messageId)\n\t\t\t\t? { ...message, deliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP }\n\t\t\t\t: message,\n\t\t),\n\t\treplayReceipts: state.replayReceipts.map((receipt) =>\n\t\t\treceipt.kind === \"control\" && receipt.deliveredAt === undefined && projectedDeliveryIds.has(receipt.messageId)\n\t\t\t\t? { ...receipt, deliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP }\n\t\t\t\t: receipt,\n\t\t),\n\t});\n}\n\n/**\n * Bounded durable inbox for a single logical worker agent.\n *\n * A message is never considered delivered merely because a controller read it. Its caller must\n * acknowledge it only after the exact corresponding user message has been appended to the child\n * WorkerConversation. The in-process subscription is a notification edge, not a polling loop.\n */\nexport class WorkerAgentMailbox {\n\tprivate readonly parentSessionId: string;\n\tprivate readonly agentId: string;\n\tprivate readonly file: string;\n\tprivate readonly listeners = new Set<() => void>();\n\n\tconstructor(options: WorkerAgentMailboxOptions) {\n\t\tthis.parentSessionId = assertIdentity(options.parentSessionId, \"parent session id\");\n\t\tthis.agentId = assertIdentity(options.agentId, \"agent id\");\n\t\tthis.file = workerAgentMailboxFile(\n\t\t\toptions.agentDir,\n\t\t\tthis.parentSessionId,\n\t\t\tmailboxDigest(this.parentSessionId, this.agentId),\n\t\t);\n\t}\n\n\tenqueue(input: {\n\t\tkind: WorkerAgentMessageKind;\n\t\tcontent: string;\n\t\tsenderAgentId?: string;\n\t\tthreadId?: string;\n\t\treplyToMessageId?: string;\n\t\texpectReply?: boolean;\n\t\ttask?: WorkerAgentTaskMetadata;\n\t}): WorkerAgentMessage {\n\t\tconst accepted = this.enqueueWithReceipt(input);\n\t\tif (accepted.status !== \"retained\") throw new Error(\"Unkeyed worker control unexpectedly resolved as a replay.\");\n\t\treturn accepted.message;\n\t}\n\n\t/** Enqueue with exact creation evidence for an idempotent surrounding acceptance flow. */\n\tenqueueWithReceipt(input: {\n\t\tkind: WorkerAgentMessageKind;\n\t\tcontent: string;\n\t\tsenderAgentId?: string;\n\t\tthreadId?: string;\n\t\treplyToMessageId?: string;\n\t\texpectReply?: boolean;\n\t\ttask?: WorkerAgentTaskMetadata;\n\t\tidempotencyKey?: string;\n\t}): WorkerAgentEnqueueReceipt {\n\t\tconst content = input.content.trim();\n\t\tif (!content) throw new TypeError(\"A worker control message is required.\");\n\t\tif (content.length > MAX_MAILBOX_MESSAGE_CHARS) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Worker control messages may not exceed ${MAX_MAILBOX_MESSAGE_CHARS.toLocaleString(\"en-US\")} characters.`,\n\t\t\t);\n\t\t}\n\t\tconst senderAgentId = normalizeOptionalIdentity(input.senderAgentId, \"sender agent id\");\n\t\tconst threadId = normalizeOptionalIdentity(input.threadId, \"thread id\");\n\t\tconst replyToMessageId = normalizeOptionalIdentity(input.replyToMessageId, \"reply message id\");\n\t\tconst task = normalizeTaskMetadata(input.task);\n\t\tconst idempotencyKey = input.idempotencyKey?.trim();\n\t\tif (\n\t\t\tinput.idempotencyKey !== undefined &&\n\t\t\t(!idempotencyKey || idempotencyKey.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS)\n\t\t) {\n\t\t\tthrow new TypeError(\"Worker control idempotency key is invalid.\");\n\t\t}\n\t\tconst message: WorkerAgentMessage = {\n\t\t\tmessageId: idempotencyKey\n\t\t\t\t? workerAgentMessageId(this.parentSessionId, idempotencyKey)\n\t\t\t\t: `worker-message-${randomUUID()}`,\n\t\t\tkind: input.kind,\n\t\t\tcontent,\n\t\t\t...(senderAgentId ? { senderAgentId } : {}),\n\t\t\t...(threadId ? { threadId } : {}),\n\t\t\t...(replyToMessageId ? { replyToMessageId } : {}),\n\t\t\t...(input.expectReply === true ? { expectReply: true } : {}),\n\t\t\t...(task ? { task } : {}),\n\t\t\tcreatedAt: new Date().toISOString(),\n\t\t};\n\t\tconst intentDigest = idempotencyKey ? controlIntentDigest(message) : undefined;\n\t\tconst externallyReplayOwned = hasExternalReplayAuthority(message);\n\t\tlet queued = message;\n\t\tlet created = false;\n\t\tlet completedReplay = false;\n\t\tthis.update(\n\t\t\t(state) => {\n\t\t\t\tconst existing = state.messages.find((candidate) => candidate.messageId === message.messageId);\n\t\t\t\tconst replayReceipt = controlReplayReceiptFor(state.replayReceipts, message.messageId);\n\t\t\t\tconst addsControlReceipt =\n\t\t\t\t\tintentDigest !== undefined && !externallyReplayOwned && replayReceipt === undefined;\n\t\t\t\tif (\n\t\t\t\t\taddsControlReceipt &&\n\t\t\t\t\tstate.replayReceipts.filter((receipt) => receipt.kind === \"control\").length >= MAX_REPLAY_EVIDENCE_SLOTS\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Worker agent mailbox control replay receipt capacity reached its ${MAX_REPLAY_EVIDENCE_SLOTS} entry limit.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (existing) {\n\t\t\t\t\t// `kind` is the delivery-mode projection at first acceptance. It is deliberately not\n\t\t\t\t\t// part of task intent and is never rewritten when a retry observes a different live\n\t\t\t\t\t// activity state. The durable `task` identity owns whether an idle turn is required.\n\t\t\t\t\tconst sameIntent =\n\t\t\t\t\t\texisting.content === message.content &&\n\t\t\t\t\t\texisting.senderAgentId === message.senderAgentId &&\n\t\t\t\t\t\texisting.threadId === message.threadId &&\n\t\t\t\t\t\texisting.replyToMessageId === message.replyToMessageId &&\n\t\t\t\t\t\texisting.expectReply === message.expectReply &&\n\t\t\t\t\t\tsameTaskMetadata(existing.task, message.task);\n\t\t\t\t\tif (!sameIntent)\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with an existing message.\");\n\t\t\t\t\tif (intentDigest && replayReceipt && replayReceipt.intentDigest !== intentDigest) {\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable replay receipt.\");\n\t\t\t\t\t}\n\t\t\t\t\tqueued = existing;\n\t\t\t\t\treturn intentDigest && !externallyReplayOwned && !replayReceipt\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\treplayReceipts: [\n\t\t\t\t\t\t\t\t\t...state.replayReceipts,\n\t\t\t\t\t\t\t\t\tcontrolReplayReceipt(message.messageId, intentDigest, existing.deliveredAt),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: state;\n\t\t\t\t}\n\t\t\t\tif (replayReceipt) {\n\t\t\t\t\tif (!intentDigest || replayReceipt.intentDigest !== intentDigest) {\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable replay receipt.\");\n\t\t\t\t\t}\n\t\t\t\t\tcompletedReplay = true;\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\t\t\t\tconst pending = state.messages.filter(\n\t\t\t\t\t(candidate) => candidate.deliveredAt === undefined && candidate.failedAt === undefined,\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tpending.filter((candidate) => hasExternalReplayAuthority(candidate) === externallyReplayOwned).length >=\n\t\t\t\t\tMAX_MAILBOX_MESSAGES\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\texternallyReplayOwned\n\t\t\t\t\t\t\t? `Worker agent mailbox reached its ${MAX_MAILBOX_MESSAGES} mandatory message limit.`\n\t\t\t\t\t\t\t: `Worker agent mailbox reached its ${MAX_MAILBOX_MESSAGES} message limit.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreated = true;\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tmessages: [...state.messages, message],\n\t\t\t\t\t...(intentDigest && !externallyReplayOwned\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\treplayReceipts: [\n\t\t\t\t\t\t\t\t\t...state.replayReceipts,\n\t\t\t\t\t\t\t\t\tcontrolReplayReceipt(message.messageId, intentDigest),\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};\n\t\t\t},\n\t\t\t!externallyReplayOwned,\n\t\t\ttrue,\n\t\t);\n\t\tif (created) this.notify();\n\t\tif (completedReplay) return { status: \"completed_replay\", messageId: message.messageId, created: false };\n\t\treturn { status: \"retained\", messageId: queued.messageId, message: structuredClone(queued), created };\n\t}\n\n\tpending(kind?: WorkerAgentMessageKind): WorkerAgentMessage[] {\n\t\treturn this.read()\n\t\t\t.messages.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt === undefined &&\n\t\t\t\t\tmessage.failedAt === undefined &&\n\t\t\t\t\t(kind === undefined || message.kind === kind),\n\t\t\t)\n\t\t\t.map((message) => structuredClone(message));\n\t}\n\n\t/** Oldest-first executable intents that have not reached the durable transcript boundary. */\n\tpendingTaskBearing(): WorkerAgentMessage[] {\n\t\treturn this.pending().filter((message) => message.task !== undefined);\n\t}\n\n\tacknowledgeDelivered(messageId: string): void {\n\t\tthis.markTimestamp(messageId, \"deliveredAt\");\n\t}\n\n\tawaitingReplies(): WorkerAgentMessage[] {\n\t\treturn this.read()\n\t\t\t.messages.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt !== undefined && message.expectReply === true && message.repliedAt === undefined,\n\t\t\t)\n\t\t\t.map((message) => structuredClone(message));\n\t}\n\n\tgetMessage(messageId: string): WorkerAgentMessage | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst message = this.read().messages.find((candidate) => candidate.messageId === normalized);\n\t\treturn message ? structuredClone(message) : undefined;\n\t}\n\n\thasControlReplayReceipt(messageId: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\treturn controlReplayReceiptFor(this.read().replayReceipts, normalized) !== undefined;\n\t}\n\n\thasDeliveredControlReceipt(messageId: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst state = this.read();\n\t\tconst message = state.messages.find((candidate) => candidate.messageId === normalized);\n\t\treturn (\n\t\t\tmessage?.deliveredAt !== undefined ||\n\t\t\tcontrolReplayReceiptFor(state.replayReceipts, normalized)?.deliveredAt !== undefined\n\t\t);\n\t}\n\n\tresolveCompletedReply(messageId: string, content: string): WorkerReplyReceipt | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst normalizedContent = normalizeReplyContent(content);\n\t\tconst state = this.read();\n\t\tconst request = state.messages.find((candidate) => candidate.messageId === normalized);\n\t\tconst receipt = request?.replyReceipt ?? replyReplayReceiptFor(state.replayReceipts, normalized);\n\t\tif (!receipt) return undefined;\n\t\tif (receipt.contentDigest !== replyIntentDigest(normalizedContent)) {\n\t\t\tthrow new Error(\"Worker reply identity conflicts with its durable source receipt.\");\n\t\t}\n\t\treturn {\n\t\t\treplyMessageId: receipt.replyMessageId,\n\t\t\trequestSenderId: receipt.requestSenderId,\n\t\t\tcontentDigest: receipt.contentDigest,\n\t\t};\n\t}\n\n\tgetReplyAcknowledgementId(messageId: string): string | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\treturn this.read().replyAcknowledgements.find((acknowledgement) => acknowledgement.messageId === normalized)\n\t\t\t?.acknowledgementId;\n\t}\n\n\tlistReplyAcknowledgements(): WorkerReplyAcknowledgement[] {\n\t\treturn this.read().replyAcknowledgements.map((acknowledgement) => ({ ...acknowledgement }));\n\t}\n\n\t/**\n\t * Mark one request replied while retaining the exact target receipt until transcript consumption.\n\t * The acknowledgement id is the durable target reply id, so a retry adopts a crash-left marker.\n\t */\n\tbeginReplyAcknowledgement(messageId: string, acknowledgementId: string, replyContent: string): boolean {\n\t\tconst normalized = normalizeReplyAcknowledgement(messageId, acknowledgementId);\n\t\tconst normalizedContent = normalizeReplyContent(replyContent);\n\t\tconst contentDigest = replyIntentDigest(normalizedContent);\n\t\tlet acquired = false;\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst request = state.messages.find((message) => message.messageId === normalized.messageId);\n\t\t\tif (!request || request.deliveredAt === undefined || request.expectReply !== true) return state;\n\t\t\tif (!request.senderAgentId) {\n\t\t\t\tthrow new Error(\"Worker reply request has no routable requester.\");\n\t\t\t}\n\t\t\tconst receipt: WorkerReplyReceipt = {\n\t\t\t\treplyMessageId: normalized.acknowledgementId,\n\t\t\t\trequestSenderId: request.senderAgentId,\n\t\t\t\tcontentDigest,\n\t\t\t};\n\t\t\tconst durableReceipt = replyReplayReceiptFor(state.replayReceipts, normalized.messageId);\n\t\t\tif (\n\t\t\t\tdurableReceipt &&\n\t\t\t\t(durableReceipt.replyMessageId !== receipt.replyMessageId ||\n\t\t\t\t\tdurableReceipt.requestSenderId !== receipt.requestSenderId ||\n\t\t\t\t\tdurableReceipt.contentDigest !== receipt.contentDigest)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply identity conflicts with its durable replay receipt.\");\n\t\t\t}\n\t\t\tconst existing = state.replyAcknowledgements.find(\n\t\t\t\t(acknowledgement) =>\n\t\t\t\t\tacknowledgement.messageId === normalized.messageId ||\n\t\t\t\t\tacknowledgement.acknowledgementId === normalized.acknowledgementId,\n\t\t\t);\n\t\t\tif (existing) {\n\t\t\t\tif (\n\t\t\t\t\texisting.messageId !== normalized.messageId ||\n\t\t\t\t\texisting.acknowledgementId !== normalized.acknowledgementId\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with an active transaction.\");\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\trequest?.replyReceipt?.replyMessageId !== receipt.replyMessageId ||\n\t\t\t\t\trequest.replyReceipt.requestSenderId !== receipt.requestSenderId ||\n\t\t\t\t\trequest.replyReceipt.contentDigest !== receipt.contentDigest ||\n\t\t\t\t\texisting.replyContent !== normalizedContent\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"Worker reply content conflicts with its active acknowledgement transaction.\");\n\t\t\t\t}\n\t\t\t\tacquired = true;\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\tif (request.repliedAt !== undefined) return state;\n\t\t\tacquired = true;\n\t\t\tchanged = true;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages: state.messages.map((message) =>\n\t\t\t\t\tmessage.messageId === normalized.messageId\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...message,\n\t\t\t\t\t\t\t\trepliedAt: transitionTimestamp(message.deliveredAt ?? message.createdAt),\n\t\t\t\t\t\t\t\treplyReceipt: receipt,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: message,\n\t\t\t\t),\n\t\t\t\treplyAcknowledgements: [...state.replyAcknowledgements, { ...normalized, replyContent: normalizedContent }],\n\t\t\t\treplayReceipts: durableReceipt\n\t\t\t\t\t? state.replayReceipts\n\t\t\t\t\t: [...state.replayReceipts, { kind: \"reply\", messageId: normalized.messageId, ...receipt }],\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn acquired;\n\t}\n\n\t/** Dead-letter only an ordinary executable turn with no reply or terminal-delivery obligation. */\n\tdeadLetterOrdinaryTask(messageId: string, reason: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tconst failureReason = reason.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tif (!failureReason || failureReason.length > MAX_MAILBOX_IDENTITY_CHARS) {\n\t\t\tthrow new TypeError(\"A worker task failure reason is invalid.\");\n\t\t}\n\t\tlet changed = false;\n\t\tthis.update(\n\t\t\t(state) => ({\n\t\t\t\t...state,\n\t\t\t\tmessages: state.messages.map((message) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tmessage.messageId !== normalized ||\n\t\t\t\t\t\tmessage.task?.kind !== \"agent_turn\" ||\n\t\t\t\t\t\tmessage.replyToMessageId !== undefined ||\n\t\t\t\t\t\tmessage.expectReply === true ||\n\t\t\t\t\t\tmessage.deliveredAt !== undefined ||\n\t\t\t\t\t\tmessage.failedAt !== undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn message;\n\t\t\t\t\t}\n\t\t\t\t\tchanged = true;\n\t\t\t\t\treturn { ...message, failedAt: transitionTimestamp(message.createdAt), failureReason };\n\t\t\t\t}),\n\t\t\t}),\n\t\t\ttrue,\n\t\t);\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\t/** Commit one exact reply acknowledgement and release its protected history slot. */\n\tcommitReplyAcknowledgement(messageId: string, acknowledgementId: string): boolean {\n\t\treturn this.finishReplyAcknowledgement(messageId, acknowledgementId, false);\n\t}\n\n\t/** Roll back one exact reply acknowledgement without clearing a later or unrelated reply. */\n\trollbackReplyAcknowledgement(messageId: string, acknowledgementId: string): boolean {\n\t\treturn this.finishReplyAcknowledgement(messageId, acknowledgementId, true);\n\t}\n\n\tprivate markTimestamp(messageId: string, field: \"deliveredAt\"): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tlet deliveredAt: string | undefined;\n\t\t\tconst messages: WorkerAgentMessage[] = state.messages.map((message) => {\n\t\t\t\tif (message.messageId !== normalized || message[field] !== undefined || message.failedAt !== undefined) {\n\t\t\t\t\treturn message;\n\t\t\t\t}\n\t\t\t\tchanged = true;\n\t\t\t\tdeliveredAt = transitionTimestamp(message.createdAt);\n\t\t\t\treturn { ...message, [field]: deliveredAt };\n\t\t\t});\n\t\t\tif (!changed || !deliveredAt) return state;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages,\n\t\t\t\treplayReceipts: state.replayReceipts.map((receipt) =>\n\t\t\t\t\treceipt.kind === \"control\" && receipt.messageId === normalized ? { ...receipt, deliveredAt } : receipt,\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\tprivate finishReplyAcknowledgement(messageId: string, acknowledgementId: string, rollback: boolean): boolean {\n\t\tconst normalized = normalizeReplyAcknowledgement(messageId, acknowledgementId);\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst acknowledgement = state.replyAcknowledgements.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.messageId === normalized.messageId &&\n\t\t\t\t\tcandidate.acknowledgementId === normalized.acknowledgementId,\n\t\t\t);\n\t\t\tif (!acknowledgement) return state;\n\t\t\tchanged = true;\n\t\t\tconst messages = rollback\n\t\t\t\t? state.messages.map((message) => {\n\t\t\t\t\t\tif (message.messageId !== normalized.messageId || message.repliedAt === undefined) return message;\n\t\t\t\t\t\tconst restored = { ...message };\n\t\t\t\t\t\tdelete restored.repliedAt;\n\t\t\t\t\t\tdelete restored.replyReceipt;\n\t\t\t\t\t\treturn restored;\n\t\t\t\t\t})\n\t\t\t\t: state.messages;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages,\n\t\t\t\treplyAcknowledgements: state.replyAcknowledgements.filter((candidate) => candidate !== acknowledgement),\n\t\t\t\t...(rollback\n\t\t\t\t\t? {\n\t\t\t\t\t\t\treplayReceipts: state.replayReceipts.filter(\n\t\t\t\t\t\t\t\t(receipt) => receipt.kind !== \"reply\" || receipt.messageId !== normalized.messageId,\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\t});\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\tsubscribe(listener: () => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t}\n\n\tprivate notify(): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener();\n\t\t\t} catch {\n\t\t\t\t// Mailbox subscribers are advisory; durable mutation results remain authoritative.\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate read(): WorkerAgentMailboxState {\n\t\tif (!existsSync(this.file)) {\n\t\t\treturn {\n\t\t\t\tversion: 1,\n\t\t\t\tparentSessionId: this.parentSessionId,\n\t\t\t\tagentId: this.agentId,\n\t\t\t\tmessages: [],\n\t\t\t\treplyAcknowledgements: [],\n\t\t\t\treplayReceipts: [],\n\t\t\t};\n\t\t}\n\t\treturn parseState(\n\t\t\treadBoundedTextFileSync(this.file, MAX_MAILBOX_BYTES, \"Worker agent mailbox durable size bound\"),\n\t\t\tthis.parentSessionId,\n\t\t\tthis.agentId,\n\t\t);\n\t}\n\n\tprivate update(\n\t\tmutator: (state: WorkerAgentMailboxState) => WorkerAgentMailboxState,\n\t\tordinaryAdmission = false,\n\t\treplayEvidenceAdmission = false,\n\t): void {\n\t\twithFileLockSync(this.file, () => {\n\t\t\tconst state = this.read();\n\t\t\tconst previousOrdinaryBytes = ordinaryAdmissionEncodedBytes(state);\n\t\t\tconst previousReplayEvidenceSlots = projectedReplayEvidenceSlots(state);\n\t\t\tconst mutated = mutator(state);\n\t\t\tconst retained = pruneDeliveredHistory(\n\t\t\t\tthis.parentSessionId,\n\t\t\t\tthis.agentId,\n\t\t\t\tmutated.messages,\n\t\t\t\tmutated.replyAcknowledgements,\n\t\t\t\tmutated.replayReceipts,\n\t\t\t\tordinaryAdmission,\n\t\t\t);\n\t\t\tconst next = {\n\t\t\t\t...mutated,\n\t\t\t\tmessages: retained.messages,\n\t\t\t\treplayReceipts: retained.replayReceipts,\n\t\t\t};\n\t\t\tconst addedReplayReceipt = mutated.replayReceipts.length > state.replayReceipts.length;\n\t\t\tconst bytesWithoutAddedReceipt = addedReplayReceipt\n\t\t\t\t? encodedStateBytes({ ...next, replayReceipts: next.replayReceipts.slice(0, -1) })\n\t\t\t\t: undefined;\n\t\t\tconst changed = JSON.stringify(next) !== JSON.stringify(state);\n\t\t\tconst nextOrdinaryBytes = ordinaryAdmissionEncodedBytes(next);\n\t\t\tif (\n\t\t\t\tordinaryAdmission &&\n\t\t\t\tchanged &&\n\t\t\t\tnextOrdinaryBytes > MAX_ORDINARY_MAILBOX_BYTES &&\n\t\t\t\tnextOrdinaryBytes > previousOrdinaryBytes\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\taddedReplayReceipt\n\t\t\t\t\t\t? \"Worker agent mailbox replay receipt storage exhausted its mandatory control byte reserve.\"\n\t\t\t\t\t\t: \"Worker agent mailbox passive control storage exhausted its mandatory control byte reserve.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst nextReplayEvidenceSlots = projectedReplayEvidenceSlots(next);\n\t\t\tif (nextReplayEvidenceSlots > MAX_MAILBOX_REPLAY_RECEIPTS) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox exceeds its projected replay evidence bound.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\treplayEvidenceAdmission &&\n\t\t\t\tnextReplayEvidenceSlots > MAX_REPLAY_EVIDENCE_SLOTS &&\n\t\t\t\tnextReplayEvidenceSlots > previousReplayEvidenceSlots\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker agent mailbox replay evidence capacity reached its ${MAX_REPLAY_EVIDENCE_SLOTS} slot limit.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tassertWorkerAgentMailboxBounds(\n\t\t\t\tnext.messages.length,\n\t\t\t\tnext.replayReceipts.length,\n\t\t\t\tstate.replayReceipts.length,\n\t\t\t\tencodedStateBytes(next),\n\t\t\t\tbytesWithoutAddedReceipt,\n\t\t\t);\n\t\t\tif (changed) writeFileAtomicSync(this.file, `${JSON.stringify(next)}\\n`, { mode: 0o600 });\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"worker-agent-control.js","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport type { Message } from \"@caupulican/pi-ai\";\nimport { workerAgentMailboxFile } from \"../agent-paths.ts\";\nimport type { LaneRecord } from \"../autonomy/lane-tracker.ts\";\nimport { parseBoundedStringArray } from \"../orchestration/bounded-string-array.ts\";\nimport {\n\ttype AgentBindingStatus,\n\tMAX_ORCHESTRATION_COLLECTION_LENGTH,\n\tMAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\ttype WorkerRole,\n} from \"../orchestration/contracts.ts\";\nimport { withFileLockSync, writeFileAtomicSync } from \"../util/atomic-file.ts\";\nimport { readBoundedTextFileSync } from \"../util/bounded-file.ts\";\nimport { createReplaySafeMailboxBounder } from \"./replay-safe-mailbox-bounds.ts\";\nimport type {\n\tSessionRootReply,\n\tSessionRootReplyQuery,\n\tSessionRootReplyWaitOptions,\n\tSessionRootReplyWaitResult,\n} from \"./session-root-mailbox.ts\";\nimport type { WorkerTaskSessionView } from \"./worker-task-view.ts\";\n\nconst MAX_MAILBOX_MESSAGES = 64;\nconst MAX_MAILBOX_MESSAGE_CHARS = 4_096;\nconst MAX_ORDINARY_MAILBOX_BYTES = 128 * 1024;\nconst MAX_MAILBOX_MESSAGE_ID_CHARS = 512;\nconst MAX_MAILBOX_TIMESTAMP_CHARS = 128;\nconst MAX_MAILBOX_IDENTITY_CHARS = 512;\nconst MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS = 2_048;\nconst MAX_ORDINARY_RETAINED_MESSAGES = MAX_MAILBOX_MESSAGES * 2;\nconst MAX_MANDATORY_RETAINED_MESSAGES = MAX_MAILBOX_MESSAGES;\nconst MAX_MAILBOX_RETAINED_MESSAGES = MAX_ORDINARY_RETAINED_MESSAGES + MAX_MANDATORY_RETAINED_MESSAGES;\nconst MAX_REPLAY_EVIDENCE_SLOTS = MAX_ORDINARY_RETAINED_MESSAGES * 4;\nconst MAX_MAILBOX_REPLAY_RECEIPTS = MAX_REPLAY_EVIDENCE_SLOTS + MAX_ORDINARY_RETAINED_MESSAGES;\nconst MAX_MAILBOX_TRANSITION_TIMESTAMP = \"9999-12-31T23:59:59.999Z\";\nconst MAX_ENCODED_MANDATORY_MESSAGE_BYTES =\n\tBuffer.byteLength(\n\t\tJSON.stringify({\n\t\t\tmessageId: `worker-message-${\"f\".repeat(64)}`,\n\t\t\tkind: \"follow_up\",\n\t\t\tcontent: `c${\"\\0\".repeat(MAX_MAILBOX_MESSAGE_CHARS - 1)}`,\n\t\t\tsenderAgentId: `s${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\tthreadId: `t${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\treplyToMessageId: `r${\"\\0\".repeat(MAX_MAILBOX_MESSAGE_ID_CHARS - 1)}`,\n\t\t\texpectReply: true,\n\t\t\ttask: {\n\t\t\t\tkind: \"terminal_handoff\",\n\t\t\t\tsourceAttemptId: `a${\"\\0\".repeat(MAX_MAILBOX_IDENTITY_CHARS - 1)}`,\n\t\t\t},\n\t\t\tcreatedAt: MAX_MAILBOX_TRANSITION_TIMESTAMP,\n\t\t\tdeliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP,\n\t\t}),\n\t\t\"utf-8\",\n\t) + 1;\n// The additive reserve keeps every previously valid 128 KiB ordinary mailbox migration-safe and\n// covers one maximum accepted source acknowledgement transaction (locked by the saturation tests).\nconst MAX_MANDATORY_TRANSITION_RESERVE_BYTES = Math.max(48 * 1024, MAX_ENCODED_MANDATORY_MESSAGE_BYTES + 1_024);\nconst MAX_MAILBOX_BYTES = MAX_ORDINARY_MAILBOX_BYTES + MAX_MANDATORY_TRANSITION_RESERVE_BYTES;\nconst CONTENT_DIGEST_PATTERN = /^[a-f0-9]{64}$/;\nconst assertWorkerAgentMailboxBounds = createReplaySafeMailboxBounder(\n\t\"Worker agent mailbox\",\n\tMAX_MAILBOX_RETAINED_MESSAGES,\n\tMAX_MAILBOX_REPLAY_RECEIPTS,\n\tMAX_MAILBOX_BYTES,\n);\n\nexport type WorkerAgentMessageKind = \"steer\" | \"follow_up\";\n\nexport type WorkerAgentTaskMetadata =\n\t| { kind: \"agent_turn\"; dependsOnTaskIds?: readonly string[] }\n\t| { kind: \"terminal_handoff\"; sourceAttemptId: string };\n\nexport interface WorkerAgentMessage {\n\tmessageId: string;\n\tkind: WorkerAgentMessageKind;\n\tcontent: string;\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\texpectReply?: boolean;\n\t/** Durable intent requiring one mailbox-correlated agent turn if no live turn consumes it. */\n\ttask?: WorkerAgentTaskMetadata;\n\tcreatedAt: string;\n\tdeliveredAt?: string;\n\trepliedAt?: string;\n\treplyReceipt?: WorkerReplyReceipt;\n\tfailedAt?: string;\n\tfailureReason?: string;\n}\n\nexport interface WorkerReplyReceipt {\n\treplyMessageId: string;\n\trequestSenderId: string;\n\tcontentDigest: string;\n}\n\ninterface WorkerAgentMailboxState {\n\tversion: 1;\n\tparentSessionId: string;\n\tagentId: string;\n\tmessages: WorkerAgentMessage[];\n\treplyAcknowledgements: WorkerReplyAcknowledgement[];\n\treplayReceipts: WorkerMailboxReplayReceipt[];\n}\n\nexport interface WorkerReplyAcknowledgement {\n\tmessageId: string;\n\tacknowledgementId: string;\n\treplyContent: string;\n}\n\ntype WorkerReplyAcknowledgementIdentity = Pick<WorkerReplyAcknowledgement, \"messageId\" | \"acknowledgementId\">;\n\ninterface WorkerControlReplayReceipt {\n\tkind: \"control\";\n\tmessageId: string;\n\tintentDigest: string;\n\tdeliveredAt?: string;\n}\n\ninterface WorkerReplyReplayReceipt extends WorkerReplyReceipt {\n\tkind: \"reply\";\n\tmessageId: string;\n}\n\ntype WorkerMailboxReplayReceipt = WorkerControlReplayReceipt | WorkerReplyReplayReceipt;\n\nexport type WorkerAgentEnqueueReceipt =\n\t| { status: \"retained\"; messageId: string; message: WorkerAgentMessage; created: boolean }\n\t| { status: \"completed_replay\"; messageId: string; created: false };\n\nexport interface WorkerAgentMailboxOptions {\n\tagentDir: string;\n\tparentSessionId: string;\n\tagentId: string;\n}\n\nexport interface WorkerAgentTranscriptPage {\n\tagentId: string;\n\tcursor: number;\n\tmessages: Message[];\n\tnextCursor?: number;\n\tomittedMessages: number;\n\tserializedBytes: number;\n}\n\nexport interface WorkerAgentMessageOptions {\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\texpectReply?: boolean;\n\t/** Host-derived replay identity scoped to the caller, session, tool invocation, and action. */\n\tidempotencyKey?: string;\n}\n\nexport interface WorkerAgentBroadcastOptions {\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\texpectReply?: boolean;\n\t/** Call-level replay identity; the coordinator derives one stable identity per canonical target. */\n\tidempotencyKey: string;\n}\n\nexport interface SessionRootWorkerAgentMessageOptions {\n\tthreadId?: string;\n\texpectReply?: boolean;\n\tidempotencyKey?: string;\n}\n\nexport type WorkerAgentReplyResult =\n\t| { destination: \"session_root\"; messageId: string }\n\t| {\n\t\t\tdestination: \"worker\";\n\t\t\tmessageId: string;\n\t\t\tstarted: boolean;\n\t\t\tsteering: boolean;\n\t\t\trecord?: LaneRecord;\n\t\t\tskipReason?: string;\n\t };\n\nexport interface WorkerAgentControlScope {\n\tcallerAgentId?: string;\n}\n\nexport interface WorkerAgentTaskStartOptions extends WorkerAgentControlScope {\n\t/** Host-derived replay identity scoped to the caller, session, tool invocation, and action. */\n\tidempotencyKey?: string;\n\t/** Existing same-objective durable tasks that must complete before this turn may run. */\n\tdependsOnTaskIds?: readonly string[];\n}\n\nexport interface WorkerAgentTranscriptOptions extends WorkerAgentControlScope {\n\tcursor?: number;\n\tmaxMessages?: number;\n\t/** Host-owned aggregate-envelope headroom; never accepted directly from a model argument. */\n\tmaxBytes?: number;\n}\n\nexport type WorkerAgentActivity = \"active\" | \"suspended\" | \"idle\" | \"unknown\";\n\nexport type WorkerAgentWaitMode = \"any\" | \"all\";\n\nexport interface WorkerAgentWaitStatus {\n\tagentId: string;\n\tstatus: WorkerAgentActivity;\n}\n\nexport interface WorkerAgentWaitResult {\n\tstatuses: WorkerAgentWaitStatus[];\n\tupdatedAgentIds: string[];\n\ttimedOut: boolean;\n}\n\nexport type WorkerAgentBroadcastTargetResult =\n\t| { agentId: string; accepted: true; queued: true; replayed: boolean; messageId: string }\n\t| { agentId: string; accepted: false; error: string };\n\nexport interface WorkerAgentBroadcastResult {\n\tresults: WorkerAgentBroadcastTargetResult[];\n}\n\n/** Explicit model-facing projection. Durable resume, session, path, and resource data stay host-only. */\nexport interface WorkerAgentView {\n\tagentId: string;\n\tparentAgentId?: string;\n\trootAgentId: string;\n\tdepth: number;\n\trole: WorkerRole;\n\tstatus: AgentBindingStatus;\n\tactivity: WorkerAgentActivity;\n\t/** True when this caller may start/transcript/cancel the agent. Session-root lists are all true. */\n\tcontrollable: boolean;\n\tcreatedAt: string;\n\tupdatedAt: string;\n}\n\nexport interface WorkerAgentRetireResult {\n\tagent: WorkerAgentView;\n\tretired: true;\n\treplayed: boolean;\n}\n\n/** One canonical host port for model-facing logical-agent controls. */\nexport interface WorkerAgentControlPort {\n\tlistWorkerAgents(scope?: WorkerAgentControlScope): WorkerAgentView[];\n\tgetWorkerTaskSessionView(): WorkerTaskSessionView;\n\tgetWorkerAgentActivity(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentActivity;\n\treadWorkerAgentTranscript(agentId: string, options?: WorkerAgentTranscriptOptions): WorkerAgentTranscriptPage;\n\t/** Queue-only session-peer delivery. This does not wake or steer an idle or active agent. */\n\tsendWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentMessageOptions,\n\t): { messageId: string; queued: true };\n\t/** Queue-only fan-out. Peer content is untrusted coordination evidence, never delegated authority. */\n\tbroadcastWorkerAgentMessage(\n\t\tagentIds: readonly string[],\n\t\tmessage: string,\n\t\toptions: WorkerAgentBroadcastOptions,\n\t): WorkerAgentBroadcastResult;\n\t/** Worker callers may wake or steer only themselves and descendants; the session root may target any agent. */\n\tfollowUpWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string };\n\tsendSessionRootWorkerAgentMessage(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: SessionRootWorkerAgentMessageOptions,\n\t): { messageId: string; queued: true };\n\tfollowUpSessionRootWorkerAgent(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: SessionRootWorkerAgentMessageOptions,\n\t): { started: boolean; steering: boolean; messageId: string; record?: LaneRecord; skipReason?: string };\n\treplyToWorkerAgentMessage(sourceAgentId: string, message: string, replyToMessageId: string): WorkerAgentReplyResult;\n\tlistSessionRootReplies(query?: SessionRootReplyQuery): SessionRootReply[];\n\twaitForSessionRootReplies(options?: SessionRootReplyWaitOptions): Promise<SessionRootReplyWaitResult>;\n\tacknowledgeSessionRootReply(messageId: string, ackToken: string): boolean;\n\treconcileSessionRootReplies(): void;\n\t/** Worker callers may start only themselves and descendants; the session root may target any agent. */\n\tstartWorkerAgentTask(\n\t\tagentId: string,\n\t\tmessage: string,\n\t\toptions?: WorkerAgentTaskStartOptions,\n\t): { started: boolean; steering: false; messageId: string; record?: LaneRecord; skipReason?: string };\n\tinterruptWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): { interrupted: boolean; reason?: string };\n\tresumeWorkerAgent(\n\t\tagentId: string,\n\t\tscope?: WorkerAgentControlScope,\n\t): { started: boolean; record?: LaneRecord; skipReason?: string };\n\tcancelWorkerAgent(agentId: string, reasonCode?: string, scope?: WorkerAgentControlScope): LaneRecord | undefined;\n\t/** Retire one idle leaf without deleting its durable binding, lineage, transcript, or attempt history. */\n\tretireWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentRetireResult;\n\twaitForWorkerAgent(\n\t\tagentId: string,\n\t\ttimeoutMs?: number,\n\t\tscope?: WorkerAgentControlScope,\n\t): Promise<{ status: WorkerAgentActivity; timedOut: boolean }>;\n\twaitForWorkerAgents(\n\t\tagentIds: readonly string[],\n\t\tmode: WorkerAgentWaitMode,\n\t\ttimeoutMs?: number,\n\t\tscope?: WorkerAgentControlScope,\n\t): Promise<WorkerAgentWaitResult>;\n}\n\nfunction mailboxDigest(parentSessionId: string, agentId: string): string {\n\treturn createHash(\"sha256\")\n\t\t.update(\"pi-worker-agent-mailbox-v1\")\n\t\t.update(\"\\0\")\n\t\t.update(parentSessionId)\n\t\t.update(\"\\0\")\n\t\t.update(agentId)\n\t\t.digest(\"hex\");\n}\n\nfunction assertIdentity(value: string, label: string): string {\n\tconst normalized = value.trim();\n\tif (!normalized) throw new TypeError(`A worker ${label} is required.`);\n\tif (normalized.length > 512) throw new TypeError(`Worker ${label} exceeds 512 characters.`);\n\treturn normalized;\n}\n\n/** Derive one target-fenced mailbox replay identity from a host-owned broadcast call identity. */\nexport function workerAgentBroadcastTargetIdempotencyKey(baseIdempotencyKey: string, agentId: string): string {\n\tconst replayIdentity = baseIdempotencyKey.trim();\n\tif (!replayIdentity || replayIdentity.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS) {\n\t\tthrow new TypeError(\"Worker broadcast idempotency key is invalid.\");\n\t}\n\tconst targetAgentId = assertIdentity(agentId, \"agent id\");\n\treturn `worker-broadcast-${createHash(\"sha256\")\n\t\t.update(\"pi-worker-broadcast-target-v1\")\n\t\t.update(\"\\0\")\n\t\t.update(replayIdentity)\n\t\t.update(\"\\0\")\n\t\t.update(targetAgentId)\n\t\t.digest(\"hex\")}`;\n}\n\n/** Session-scoped replay identity. The coordinator fences one accepted id to exactly one target mailbox. */\nexport function workerAgentMessageId(parentSessionId: string, idempotencyKey: string): string {\n\tconst sessionId = assertIdentity(parentSessionId, \"parent session id\");\n\tconst replayIdentity = idempotencyKey.trim();\n\tif (!replayIdentity || replayIdentity.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS) {\n\t\tthrow new TypeError(\"Worker control idempotency key is invalid.\");\n\t}\n\treturn `worker-message-${createHash(\"sha256\")\n\t\t.update(\"pi-worker-agent-message-v2\")\n\t\t.update(\"\\0\")\n\t\t.update(sessionId)\n\t\t.update(\"\\0\")\n\t\t.update(replayIdentity)\n\t\t.digest(\"hex\")}`;\n}\n\nfunction contentDigest(domain: string, content: string): string {\n\treturn createHash(\"sha256\").update(domain).update(\"\\0\").update(content).digest(\"hex\");\n}\n\nfunction controlIntentDigest(input: {\n\tcontent: string;\n\tsenderAgentId?: string;\n\tthreadId?: string;\n\treplyToMessageId?: string;\n\texpectReply?: boolean;\n\ttask?: WorkerAgentTaskMetadata;\n}): string {\n\treturn contentDigest(\n\t\t\"pi-worker-agent-control-intent-v1\",\n\t\tJSON.stringify([\n\t\t\tinput.content,\n\t\t\tinput.senderAgentId ?? null,\n\t\t\tinput.threadId ?? null,\n\t\t\tinput.replyToMessageId ?? null,\n\t\t\tinput.expectReply === true,\n\t\t\tinput.task ?? null,\n\t\t]),\n\t);\n}\n\nfunction replyIntentDigest(content: string): string {\n\treturn contentDigest(\"pi-worker-reply-content-v1\", content);\n}\n\nfunction controlReplayReceipt(\n\tmessageId: string,\n\tintentDigest: string,\n\tdeliveredAt?: string,\n): WorkerControlReplayReceipt {\n\treturn { kind: \"control\", messageId, intentDigest, ...(deliveredAt ? { deliveredAt } : {}) };\n}\n\nfunction controlReplayReceiptFor(\n\treceipts: readonly WorkerMailboxReplayReceipt[],\n\tmessageId: string,\n): WorkerControlReplayReceipt | undefined {\n\treturn receipts.find(\n\t\t(receipt): receipt is WorkerControlReplayReceipt => receipt.kind === \"control\" && receipt.messageId === messageId,\n\t);\n}\n\nfunction replyReplayReceiptFor(\n\treceipts: readonly WorkerMailboxReplayReceipt[],\n\tmessageId: string,\n): WorkerReplyReplayReceipt | undefined {\n\treturn receipts.find(\n\t\t(receipt): receipt is WorkerReplyReplayReceipt => receipt.kind === \"reply\" && receipt.messageId === messageId,\n\t);\n}\n\nfunction requiredMailboxTimestamp(value: unknown, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0 || value.length > MAX_MAILBOX_TIMESTAMP_CHARS) {\n\t\tthrow new Error(`Worker agent mailbox contains an invalid message ${label}.`);\n\t}\n\tconst parsed = new Date(value);\n\tif (!Number.isFinite(parsed.getTime()) || parsed.toISOString() !== value) {\n\t\tthrow new Error(`Worker agent mailbox contains an invalid message ${label}.`);\n\t}\n\treturn value;\n}\n\nfunction transitionTimestamp(floor: string): string {\n\tconst current = new Date().toISOString();\n\treturn Date.parse(current) < Date.parse(floor) ? floor : current;\n}\n\nfunction parseReplyReceiptFields(receipt: Record<string, unknown>, label: string): WorkerReplyReceipt {\n\tif (\n\t\ttypeof receipt.replyMessageId !== \"string\" ||\n\t\t!receipt.replyMessageId ||\n\t\treceipt.replyMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\ttypeof receipt.requestSenderId !== \"string\" ||\n\t\t!receipt.requestSenderId ||\n\t\treceipt.requestSenderId.length > MAX_MAILBOX_IDENTITY_CHARS ||\n\t\ttypeof receipt.contentDigest !== \"string\" ||\n\t\t!CONTENT_DIGEST_PATTERN.test(receipt.contentDigest)\n\t) {\n\t\tthrow new Error(`Worker agent mailbox contains invalid ${label}.`);\n\t}\n\treturn {\n\t\treplyMessageId: receipt.replyMessageId,\n\t\trequestSenderId: receipt.requestSenderId,\n\t\tcontentDigest: receipt.contentDigest,\n\t};\n}\n\nfunction parseState(raw: string, parentSessionId: string, agentId: string): WorkerAgentMailboxState {\n\tlet candidate: unknown;\n\ttry {\n\t\tcandidate = JSON.parse(raw);\n\t} catch {\n\t\tthrow new Error(\"Worker agent mailbox is invalid JSON.\");\n\t}\n\tif (!candidate || typeof candidate !== \"object\" || Array.isArray(candidate)) {\n\t\tthrow new Error(\"Worker agent mailbox is invalid.\");\n\t}\n\tconst state = candidate as Partial<WorkerAgentMailboxState>;\n\tif (\n\t\tstate.version !== 1 ||\n\t\tstate.parentSessionId !== parentSessionId ||\n\t\tstate.agentId !== agentId ||\n\t\t!Array.isArray(state.messages)\n\t) {\n\t\tthrow new Error(\"Worker agent mailbox identity conflicts with the requested logical worker.\");\n\t}\n\tconst messages = state.messages.map((message): WorkerAgentMessage => {\n\t\tlet task: WorkerAgentTaskMetadata | undefined;\n\t\tlet replyReceipt: WorkerReplyReceipt | undefined;\n\t\tif (message?.task !== undefined) {\n\t\t\tif (!message.task || typeof message.task !== \"object\" || Array.isArray(message.task)) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task-bearing message metadata.\");\n\t\t\t}\n\t\t\tconst taskRecord = message.task as Record<string, unknown>;\n\t\t\tif (\n\t\t\t\ttaskRecord.kind === \"agent_turn\" &&\n\t\t\t\tObject.keys(taskRecord).every((field) => field === \"kind\" || field === \"dependsOnTaskIds\")\n\t\t\t) {\n\t\t\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(taskRecord.dependsOnTaskIds);\n\t\t\t\ttask = {\n\t\t\t\t\tkind: \"agent_turn\",\n\t\t\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t\t\t};\n\t\t\t} else if (\n\t\t\t\ttaskRecord.kind === \"terminal_handoff\" &&\n\t\t\t\ttypeof taskRecord.sourceAttemptId === \"string\" &&\n\t\t\t\ttaskRecord.sourceAttemptId.length > 0 &&\n\t\t\t\ttaskRecord.sourceAttemptId.length <= MAX_MAILBOX_IDENTITY_CHARS &&\n\t\t\t\tObject.keys(taskRecord).every((field) => field === \"kind\" || field === \"sourceAttemptId\")\n\t\t\t) {\n\t\t\t\ttask = { kind: \"terminal_handoff\", sourceAttemptId: taskRecord.sourceAttemptId };\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task-bearing message metadata.\");\n\t\t\t}\n\t\t}\n\t\tif (message?.replyReceipt !== undefined) {\n\t\t\tif (!message.replyReceipt || typeof message.replyReceipt !== \"object\" || Array.isArray(message.replyReceipt)) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply receipt metadata.\");\n\t\t\t}\n\t\t\tconst receipt = message.replyReceipt as unknown as Record<string, unknown>;\n\t\t\tif (\n\t\t\t\t!Object.keys(receipt).every(\n\t\t\t\t\t(field) => field === \"replyMessageId\" || field === \"requestSenderId\" || field === \"contentDigest\",\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply receipt metadata.\");\n\t\t\t}\n\t\t\treplyReceipt = parseReplyReceiptFields(receipt, \"reply receipt metadata\");\n\t\t}\n\t\tif (\n\t\t\t!message ||\n\t\t\ttypeof message !== \"object\" ||\n\t\t\tArray.isArray(message) ||\n\t\t\ttypeof message.messageId !== \"string\" ||\n\t\t\tmessage.messageId.length === 0 ||\n\t\t\tmessage.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t(message.kind !== \"steer\" && message.kind !== \"follow_up\") ||\n\t\t\ttypeof message.content !== \"string\" ||\n\t\t\tmessage.content.length === 0 ||\n\t\t\tmessage.content.length > MAX_MAILBOX_MESSAGE_CHARS ||\n\t\t\t(message.senderAgentId !== undefined &&\n\t\t\t\t(typeof message.senderAgentId !== \"string\" ||\n\t\t\t\t\tmessage.senderAgentId.length === 0 ||\n\t\t\t\t\tmessage.senderAgentId.length > MAX_MAILBOX_IDENTITY_CHARS)) ||\n\t\t\t(message.threadId !== undefined &&\n\t\t\t\t(typeof message.threadId !== \"string\" ||\n\t\t\t\t\tmessage.threadId.length === 0 ||\n\t\t\t\t\tmessage.threadId.length > MAX_MAILBOX_IDENTITY_CHARS)) ||\n\t\t\t(message.replyToMessageId !== undefined &&\n\t\t\t\t(typeof message.replyToMessageId !== \"string\" ||\n\t\t\t\t\tmessage.replyToMessageId.length === 0 ||\n\t\t\t\t\tmessage.replyToMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS)) ||\n\t\t\t(message.expectReply !== undefined && typeof message.expectReply !== \"boolean\") ||\n\t\t\ttypeof message.createdAt !== \"string\" ||\n\t\t\tmessage.createdAt.length === 0 ||\n\t\t\tmessage.createdAt.length > MAX_MAILBOX_TIMESTAMP_CHARS ||\n\t\t\t(message.deliveredAt !== undefined &&\n\t\t\t\t(typeof message.deliveredAt !== \"string\" ||\n\t\t\t\t\tmessage.deliveredAt.length === 0 ||\n\t\t\t\t\tmessage.deliveredAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.repliedAt !== undefined &&\n\t\t\t\t(typeof message.repliedAt !== \"string\" ||\n\t\t\t\t\tmessage.repliedAt.length === 0 ||\n\t\t\t\t\tmessage.repliedAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.failedAt !== undefined &&\n\t\t\t\t(typeof message.failedAt !== \"string\" ||\n\t\t\t\t\tmessage.failedAt.length === 0 ||\n\t\t\t\t\tmessage.failedAt.length > MAX_MAILBOX_TIMESTAMP_CHARS)) ||\n\t\t\t(message.failureReason !== undefined &&\n\t\t\t\t(typeof message.failureReason !== \"string\" ||\n\t\t\t\t\tmessage.failureReason.length === 0 ||\n\t\t\t\t\tmessage.failureReason.length > MAX_MAILBOX_IDENTITY_CHARS))\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains an invalid message.\");\n\t\t}\n\t\tconst createdAt = requiredMailboxTimestamp(message.createdAt, \"creation timestamp\");\n\t\tconst deliveredAt =\n\t\t\tmessage.deliveredAt === undefined\n\t\t\t\t? undefined\n\t\t\t\t: requiredMailboxTimestamp(message.deliveredAt, \"delivery timestamp\");\n\t\tconst repliedAt =\n\t\t\tmessage.repliedAt === undefined ? undefined : requiredMailboxTimestamp(message.repliedAt, \"reply timestamp\");\n\t\tconst failedAt =\n\t\t\tmessage.failedAt === undefined ? undefined : requiredMailboxTimestamp(message.failedAt, \"failure timestamp\");\n\t\tif (deliveredAt !== undefined && Date.parse(deliveredAt) < Date.parse(createdAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message delivery timestamp predates creation.\");\n\t\t}\n\t\tif (repliedAt !== undefined && deliveredAt === undefined) {\n\t\t\tthrow new Error(\"Worker agent mailbox message reply timestamp has no delivery timestamp.\");\n\t\t}\n\t\tif (repliedAt !== undefined && deliveredAt !== undefined && Date.parse(repliedAt) < Date.parse(deliveredAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message reply timestamp predates delivery.\");\n\t\t}\n\t\tif (repliedAt !== undefined && message.expectReply !== true) {\n\t\t\tthrow new Error(\"Worker agent mailbox replied message did not expect a reply.\");\n\t\t}\n\t\tif (failedAt !== undefined && Date.parse(failedAt) < Date.parse(createdAt)) {\n\t\t\tthrow new Error(\"Worker agent mailbox message failure timestamp predates creation.\");\n\t\t}\n\t\tif (\n\t\t\t(failedAt === undefined) !== (message.failureReason === undefined) ||\n\t\t\t(failedAt !== undefined && deliveredAt !== undefined)\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task failure state.\");\n\t\t}\n\t\tif (failedAt !== undefined && (task === undefined || repliedAt !== undefined || replyReceipt !== undefined)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid task failure state.\");\n\t\t}\n\t\tif ((repliedAt === undefined) !== (replyReceipt === undefined)) {\n\t\t\tthrow new Error(\"Worker agent mailbox replied message is missing its durable reply receipt.\");\n\t\t}\n\t\treturn {\n\t\t\t...message,\n\t\t\tcreatedAt,\n\t\t\t...(deliveredAt ? { deliveredAt } : {}),\n\t\t\t...(repliedAt ? { repliedAt } : {}),\n\t\t\t...(replyReceipt ? { replyReceipt } : {}),\n\t\t\t...(failedAt ? { failedAt, failureReason: message.failureReason } : {}),\n\t\t\t...(task ? { task } : {}),\n\t\t};\n\t});\n\tif (new Set(messages.map((message) => message.messageId)).size !== messages.length) {\n\t\tthrow new Error(\"Worker agent mailbox contains duplicate message identities.\");\n\t}\n\tconst pendingMessages = messages.filter(isPendingMessage);\n\tif (pendingMessages.filter((message) => !hasExternalReplayAuthority(message)).length > MAX_MAILBOX_MESSAGES)\n\t\tthrow new Error(\"Worker agent mailbox exceeds its pending-message bound.\");\n\tif (pendingMessages.filter(hasExternalReplayAuthority).length > MAX_MAILBOX_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its mandatory pending-message bound.\");\n\t}\n\tif (messages.length > MAX_MAILBOX_RETAINED_MESSAGES)\n\t\tthrow new Error(\"Worker agent mailbox exceeds its retained-message bound.\");\n\tif (messages.filter(usesMandatoryRetainedReserve).length > MAX_MANDATORY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its mandatory retained-message reserve.\");\n\t}\n\tif (messages.filter((message) => !usesMandatoryRetainedReserve(message)).length > MAX_ORDINARY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its ordinary retained-message bound.\");\n\t}\n\tif (state.replyAcknowledgements !== undefined && !Array.isArray(state.replyAcknowledgements)) {\n\t\tthrow new Error(\"Worker agent mailbox contains invalid reply acknowledgement state.\");\n\t}\n\tconst messagesById = new Map(messages.map((message) => [message.messageId, message]));\n\tconst acknowledgedMessageIds = new Set<string>();\n\tconst acknowledgementIds = new Set<string>();\n\tconst replyAcknowledgements = (state.replyAcknowledgements ?? []).map(\n\t\t(acknowledgement): WorkerReplyAcknowledgement => {\n\t\t\tif (\n\t\t\t\t!acknowledgement ||\n\t\t\t\ttypeof acknowledgement !== \"object\" ||\n\t\t\t\tArray.isArray(acknowledgement) ||\n\t\t\t\ttypeof acknowledgement.messageId !== \"string\" ||\n\t\t\t\tacknowledgement.messageId.length === 0 ||\n\t\t\t\tacknowledgement.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t\ttypeof acknowledgement.acknowledgementId !== \"string\" ||\n\t\t\t\tacknowledgement.acknowledgementId.length === 0 ||\n\t\t\t\tacknowledgement.acknowledgementId.length > MAX_MAILBOX_MESSAGE_ID_CHARS ||\n\t\t\t\ttypeof acknowledgement.replyContent !== \"string\" ||\n\t\t\t\tacknowledgement.replyContent.length === 0 ||\n\t\t\t\tacknowledgement.replyContent.length > MAX_MAILBOX_MESSAGE_CHARS ||\n\t\t\t\tacknowledgement.replyContent.trim() !== acknowledgement.replyContent ||\n\t\t\t\tacknowledgedMessageIds.has(acknowledgement.messageId) ||\n\t\t\t\tacknowledgementIds.has(acknowledgement.acknowledgementId)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply acknowledgement state.\");\n\t\t\t}\n\t\t\tconst message = messagesById.get(acknowledgement.messageId);\n\t\t\tif (\n\t\t\t\t!message ||\n\t\t\t\tmessage.deliveredAt === undefined ||\n\t\t\t\tmessage.expectReply !== true ||\n\t\t\t\tmessage.repliedAt === undefined ||\n\t\t\t\tmessage.replyReceipt?.replyMessageId !== acknowledgement.acknowledgementId ||\n\t\t\t\tmessage.replyReceipt.contentDigest !== replyIntentDigest(acknowledgement.replyContent)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox reply acknowledgement does not reference a retained request.\");\n\t\t\t}\n\t\t\tacknowledgedMessageIds.add(acknowledgement.messageId);\n\t\t\tacknowledgementIds.add(acknowledgement.acknowledgementId);\n\t\t\treturn {\n\t\t\t\tmessageId: acknowledgement.messageId,\n\t\t\t\tacknowledgementId: acknowledgement.acknowledgementId,\n\t\t\t\treplyContent: acknowledgement.replyContent,\n\t\t\t};\n\t\t},\n\t);\n\tif (state.replayReceipts !== undefined && !Array.isArray(state.replayReceipts)) {\n\t\tthrow new Error(\"Worker agent mailbox contains invalid replay receipt state.\");\n\t}\n\tconst replayIdentities = new Set<string>();\n\tconst replyMessageIds = new Set<string>();\n\tconst replayReceipts = (state.replayReceipts ?? []).map((receipt): WorkerMailboxReplayReceipt => {\n\t\tif (\n\t\t\t!receipt ||\n\t\t\ttypeof receipt !== \"object\" ||\n\t\t\tArray.isArray(receipt) ||\n\t\t\ttypeof receipt.messageId !== \"string\" ||\n\t\t\t!receipt.messageId ||\n\t\t\treceipt.messageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid replay receipt state.\");\n\t\t}\n\t\tconst replayIdentity = `${String(receipt.kind)}:${receipt.messageId}`;\n\t\tif (replayIdentities.has(replayIdentity)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains duplicate replay receipt identities.\");\n\t\t}\n\t\treplayIdentities.add(replayIdentity);\n\t\tif (receipt.kind === \"control\") {\n\t\t\tif (\n\t\t\t\ttypeof receipt.intentDigest !== \"string\" ||\n\t\t\t\t!CONTENT_DIGEST_PATTERN.test(receipt.intentDigest) ||\n\t\t\t\t!Object.keys(receipt).every(\n\t\t\t\t\t(field) =>\n\t\t\t\t\t\tfield === \"kind\" || field === \"messageId\" || field === \"intentDigest\" || field === \"deliveredAt\",\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox contains invalid control replay receipt state.\");\n\t\t\t}\n\t\t\tconst deliveredAt =\n\t\t\t\treceipt.deliveredAt === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: requiredMailboxTimestamp(receipt.deliveredAt, \"replay delivery timestamp\");\n\t\t\treturn controlReplayReceipt(receipt.messageId, receipt.intentDigest, deliveredAt);\n\t\t}\n\t\tif (\n\t\t\treceipt.kind !== \"reply\" ||\n\t\t\t!Object.keys(receipt).every(\n\t\t\t\t(field) =>\n\t\t\t\t\tfield === \"kind\" ||\n\t\t\t\t\tfield === \"messageId\" ||\n\t\t\t\t\tfield === \"replyMessageId\" ||\n\t\t\t\t\tfield === \"requestSenderId\" ||\n\t\t\t\t\tfield === \"contentDigest\",\n\t\t\t)\n\t\t) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains invalid reply replay receipt state.\");\n\t\t}\n\t\tconst replyReceipt = parseReplyReceiptFields(\n\t\t\treceipt as unknown as Record<string, unknown>,\n\t\t\t\"reply replay receipt state\",\n\t\t);\n\t\tif (replyMessageIds.has(replyReceipt.replyMessageId)) {\n\t\t\tthrow new Error(\"Worker agent mailbox contains duplicate reply replay identities.\");\n\t\t}\n\t\treplyMessageIds.add(replyReceipt.replyMessageId);\n\t\treturn {\n\t\t\tkind: \"reply\",\n\t\t\tmessageId: receipt.messageId,\n\t\t\t...replyReceipt,\n\t\t};\n\t});\n\tif (replayReceipts.length > MAX_MAILBOX_REPLAY_RECEIPTS) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its replay receipt bound.\");\n\t}\n\tif (replayReceipts.filter((receipt) => receipt.kind === \"control\").length > MAX_REPLAY_EVIDENCE_SLOTS) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its control replay receipt bound.\");\n\t}\n\tif (\n\t\treplayReceipts.length +\n\t\t\tmessages.filter((message) => message.expectReply === true && message.repliedAt === undefined).length >\n\t\tMAX_MAILBOX_REPLAY_RECEIPTS\n\t) {\n\t\tthrow new Error(\"Worker agent mailbox exceeds its projected replay evidence bound.\");\n\t}\n\tfor (const message of messages) {\n\t\tconst controlReceipt = controlReplayReceiptFor(replayReceipts, message.messageId);\n\t\tif (controlReceipt && controlReceipt.deliveredAt !== message.deliveredAt) {\n\t\t\tthrow new Error(\"Worker agent mailbox control delivery conflicts with its durable replay receipt.\");\n\t\t}\n\t\tif (message.replyReceipt) {\n\t\t\tconst replyReceipt = replyReplayReceiptFor(replayReceipts, message.messageId);\n\t\t\tif (\n\t\t\t\t!replyReceipt ||\n\t\t\t\treplyReceipt.replyMessageId !== message.replyReceipt.replyMessageId ||\n\t\t\t\treplyReceipt.requestSenderId !== message.replyReceipt.requestSenderId ||\n\t\t\t\treplyReceipt.contentDigest !== message.replyReceipt.contentDigest\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox reply conflicts with its durable replay receipt.\");\n\t\t\t}\n\t\t}\n\t}\n\treturn { version: 1, parentSessionId, agentId, messages, replyAcknowledgements, replayReceipts };\n}\n\nfunction normalizeOptionalIdentity(value: string | undefined, label: string): string | undefined {\n\tif (value === undefined) return undefined;\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > MAX_MAILBOX_IDENTITY_CHARS) {\n\t\tthrow new TypeError(`Worker control ${label} is invalid.`);\n\t}\n\treturn normalized;\n}\n\nexport function normalizeWorkerAgentDependencyTaskIds(value: unknown): readonly string[] {\n\treturn parseBoundedStringArray(value === undefined ? [] : value, {\n\t\tmaxEntries: MAX_ORCHESTRATION_COLLECTION_LENGTH,\n\t\tmaxLength: MAX_ORCHESTRATION_IDENTIFIER_LENGTH,\n\t\ttrim: true,\n\t\tinvalidMessage: \"Worker dependency task ids must contain bounded, non-empty strings.\",\n\t\tduplicateMessage: \"Worker dependency task ids must contain unique strings.\",\n\t\tcreateError: (message) => new TypeError(message),\n\t});\n}\n\nfunction normalizeTaskMetadata(task: WorkerAgentTaskMetadata | undefined): WorkerAgentTaskMetadata | undefined {\n\tif (task === undefined) return undefined;\n\tif (task.kind === \"agent_turn\") {\n\t\tconst dependsOnTaskIds = normalizeWorkerAgentDependencyTaskIds(task.dependsOnTaskIds);\n\t\treturn {\n\t\t\tkind: \"agent_turn\",\n\t\t\t...(dependsOnTaskIds.length > 0 ? { dependsOnTaskIds } : {}),\n\t\t};\n\t}\n\tconst sourceAttemptId = normalizeOptionalIdentity(task.sourceAttemptId, \"terminal source attempt id\");\n\tif (!sourceAttemptId) throw new TypeError(\"Worker terminal source attempt id is invalid.\");\n\treturn { kind: \"terminal_handoff\", sourceAttemptId };\n}\n\nfunction sameTaskMetadata(\n\tleft: WorkerAgentTaskMetadata | undefined,\n\tright: WorkerAgentTaskMetadata | undefined,\n): boolean {\n\tif (left?.kind !== right?.kind) return false;\n\tif (left?.kind === \"agent_turn\" && right?.kind === \"agent_turn\") {\n\t\tconst leftDependencies = left.dependsOnTaskIds ?? [];\n\t\tconst rightDependencies = right.dependsOnTaskIds ?? [];\n\t\treturn (\n\t\t\tleftDependencies.length === rightDependencies.length &&\n\t\t\tleftDependencies.every((dependencyId, index) => dependencyId === rightDependencies[index])\n\t\t);\n\t}\n\tif (left?.kind === \"terminal_handoff\" && right?.kind === \"terminal_handoff\") {\n\t\treturn left.sourceAttemptId === right.sourceAttemptId;\n\t}\n\treturn true;\n}\n\nfunction hasExternalReplayAuthority(message: Pick<WorkerAgentMessage, \"replyToMessageId\" | \"task\">): boolean {\n\treturn message.replyToMessageId !== undefined || message.task?.kind === \"terminal_handoff\";\n}\n\nfunction isPendingMessage(message: Pick<WorkerAgentMessage, \"deliveredAt\" | \"failedAt\">): boolean {\n\treturn message.deliveredAt === undefined && message.failedAt === undefined;\n}\n\nfunction usesMandatoryRetainedReserve(message: WorkerAgentMessage): boolean {\n\treturn isPendingMessage(message) && hasExternalReplayAuthority(message);\n}\n\nfunction projectedReplayEvidenceSlots(state: WorkerAgentMailboxState): number {\n\treturn (\n\t\tstate.replayReceipts.length +\n\t\tstate.messages.filter((message) => message.expectReply === true && message.repliedAt === undefined).length\n\t);\n}\n\nfunction normalizeReplyAcknowledgement(\n\tmessageId: string,\n\tacknowledgementId: string,\n): WorkerReplyAcknowledgementIdentity {\n\tconst normalizedMessageId = messageId.trim();\n\tif (!normalizedMessageId || normalizedMessageId.length > MAX_MAILBOX_MESSAGE_ID_CHARS) {\n\t\tthrow new TypeError(\"A worker control message id is invalid.\");\n\t}\n\tconst normalizedAcknowledgementId = acknowledgementId.trim();\n\tif (!normalizedAcknowledgementId || normalizedAcknowledgementId.length > MAX_MAILBOX_MESSAGE_ID_CHARS) {\n\t\tthrow new TypeError(\"A worker reply acknowledgement id is invalid.\");\n\t}\n\treturn { messageId: normalizedMessageId, acknowledgementId: normalizedAcknowledgementId };\n}\n\nfunction normalizeReplyContent(replyContent: string): string {\n\tconst normalized = replyContent.trim();\n\tif (!normalized || normalized.length > MAX_MAILBOX_MESSAGE_CHARS) {\n\t\tthrow new TypeError(\n\t\t\t`Worker reply content must contain from 1 through ${MAX_MAILBOX_MESSAGE_CHARS.toLocaleString(\"en-US\")} characters.`,\n\t\t);\n\t}\n\treturn normalized;\n}\n\nfunction pruneDeliveredHistory(\n\tparentSessionId: string,\n\tagentId: string,\n\tmessages: readonly WorkerAgentMessage[],\n\treplyAcknowledgements: readonly WorkerReplyAcknowledgement[],\n\treplayReceipts: readonly WorkerMailboxReplayReceipt[],\n\tordinaryAdmission: boolean,\n): { messages: WorkerAgentMessage[]; replayReceipts: WorkerMailboxReplayReceipt[] } {\n\tconst protectedReplyIds = new Set(replyAcknowledgements.map((acknowledgement) => acknowledgement.messageId));\n\tconst protectedMessages = messages.filter(\n\t\t(message) =>\n\t\t\tisPendingMessage(message) ||\n\t\t\t(message.expectReply === true && message.repliedAt === undefined) ||\n\t\t\tprotectedReplyIds.has(message.messageId),\n\t);\n\tconst protectedMandatory = protectedMessages.filter(usesMandatoryRetainedReserve);\n\tconst protectedOrdinary = protectedMessages.filter((message) => !usesMandatoryRetainedReserve(message));\n\tif (protectedMandatory.length > MAX_MANDATORY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox mandatory retained-message reserve is exhausted.\");\n\t}\n\tif (protectedOrdinary.length > MAX_ORDINARY_RETAINED_MESSAGES) {\n\t\tthrow new Error(\"Worker agent mailbox ordinary retained-message capacity is exhausted.\");\n\t}\n\tconst retainedIds = new Set(protectedMessages.map((message) => message.messageId));\n\tconst deliveredCandidates = messages.filter(\n\t\t(message) =>\n\t\t\t(message.deliveredAt !== undefined || message.failedAt !== undefined) && !retainedIds.has(message.messageId),\n\t);\n\tconst remainingOrdinarySlots = MAX_ORDINARY_RETAINED_MESSAGES - protectedOrdinary.length;\n\tconst recentDelivered = remainingOrdinarySlots > 0 ? deliveredCandidates.slice(-remainingOrdinarySlots) : [];\n\tlet retained = [...protectedMessages, ...recentDelivered].sort((left, right) =>\n\t\tleft.createdAt.localeCompare(right.createdAt),\n\t);\n\tconst retainedReplayReceipts = [...replayReceipts];\n\twhile (true) {\n\t\tconst state = {\n\t\t\tversion: 1,\n\t\t\tparentSessionId,\n\t\t\tagentId,\n\t\t\tmessages: retained,\n\t\t\treplyAcknowledgements: [...replyAcknowledgements],\n\t\t\treplayReceipts: retainedReplayReceipts,\n\t\t} satisfies WorkerAgentMailboxState;\n\t\tconst encodedBytes = ordinaryAdmission ? ordinaryAdmissionEncodedBytes(state) : encodedStateBytes(state);\n\t\tconst encodedLimit = ordinaryAdmission ? MAX_ORDINARY_MAILBOX_BYTES : MAX_MAILBOX_BYTES;\n\t\tif (encodedBytes <= encodedLimit) break;\n\t\tconst oldestCompletedIndex = retained.findIndex((message) => !retainedIds.has(message.messageId));\n\t\tif (oldestCompletedIndex >= 0) {\n\t\t\tretained = retained.filter((_, index) => index !== oldestCompletedIndex);\n\t\t\tcontinue;\n\t\t}\n\t\tbreak;\n\t}\n\treturn { messages: retained, replayReceipts: retainedReplayReceipts };\n}\n\nfunction encodedStateBytes(state: WorkerAgentMailboxState): number {\n\treturn Buffer.byteLength(`${JSON.stringify(state)}\\n`, \"utf-8\");\n}\n\nfunction ordinaryAdmissionEncodedBytes(state: WorkerAgentMailboxState): number {\n\tconst projectedDeliveryIds = new Set(\n\t\tstate.messages\n\t\t\t.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt === undefined &&\n\t\t\t\t\tmessage.failedAt === undefined &&\n\t\t\t\t\t!hasExternalReplayAuthority(message),\n\t\t\t)\n\t\t\t.map((message) => message.messageId),\n\t);\n\treturn encodedStateBytes({\n\t\t...state,\n\t\tmessages: state.messages.map((message) =>\n\t\t\tprojectedDeliveryIds.has(message.messageId)\n\t\t\t\t? { ...message, deliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP }\n\t\t\t\t: message,\n\t\t),\n\t\treplayReceipts: state.replayReceipts.map((receipt) =>\n\t\t\treceipt.kind === \"control\" && receipt.deliveredAt === undefined && projectedDeliveryIds.has(receipt.messageId)\n\t\t\t\t? { ...receipt, deliveredAt: MAX_MAILBOX_TRANSITION_TIMESTAMP }\n\t\t\t\t: receipt,\n\t\t),\n\t});\n}\n\n/**\n * Bounded durable inbox for a single logical worker agent.\n *\n * A message is never considered delivered merely because a controller read it. Its caller must\n * acknowledge it only after the exact corresponding user message has been appended to the child\n * WorkerConversation. The in-process subscription is a notification edge, not a polling loop.\n */\nexport class WorkerAgentMailbox {\n\tprivate readonly parentSessionId: string;\n\tprivate readonly agentId: string;\n\tprivate readonly file: string;\n\tprivate readonly listeners = new Set<() => void>();\n\n\tconstructor(options: WorkerAgentMailboxOptions) {\n\t\tthis.parentSessionId = assertIdentity(options.parentSessionId, \"parent session id\");\n\t\tthis.agentId = assertIdentity(options.agentId, \"agent id\");\n\t\tthis.file = workerAgentMailboxFile(\n\t\t\toptions.agentDir,\n\t\t\tthis.parentSessionId,\n\t\t\tmailboxDigest(this.parentSessionId, this.agentId),\n\t\t);\n\t}\n\n\tenqueue(input: {\n\t\tkind: WorkerAgentMessageKind;\n\t\tcontent: string;\n\t\tsenderAgentId?: string;\n\t\tthreadId?: string;\n\t\treplyToMessageId?: string;\n\t\texpectReply?: boolean;\n\t\ttask?: WorkerAgentTaskMetadata;\n\t}): WorkerAgentMessage {\n\t\tconst accepted = this.enqueueWithReceipt(input);\n\t\tif (accepted.status !== \"retained\") throw new Error(\"Unkeyed worker control unexpectedly resolved as a replay.\");\n\t\treturn accepted.message;\n\t}\n\n\t/** Enqueue with exact creation evidence for an idempotent surrounding acceptance flow. */\n\tenqueueWithReceipt(input: {\n\t\tkind: WorkerAgentMessageKind;\n\t\tcontent: string;\n\t\tsenderAgentId?: string;\n\t\tthreadId?: string;\n\t\treplyToMessageId?: string;\n\t\texpectReply?: boolean;\n\t\ttask?: WorkerAgentTaskMetadata;\n\t\tidempotencyKey?: string;\n\t}): WorkerAgentEnqueueReceipt {\n\t\tconst content = input.content.trim();\n\t\tif (!content) throw new TypeError(\"A worker control message is required.\");\n\t\tif (content.length > MAX_MAILBOX_MESSAGE_CHARS) {\n\t\t\tthrow new TypeError(\n\t\t\t\t`Worker control messages may not exceed ${MAX_MAILBOX_MESSAGE_CHARS.toLocaleString(\"en-US\")} characters.`,\n\t\t\t);\n\t\t}\n\t\tconst senderAgentId = normalizeOptionalIdentity(input.senderAgentId, \"sender agent id\");\n\t\tconst threadId = normalizeOptionalIdentity(input.threadId, \"thread id\");\n\t\tconst replyToMessageId = normalizeOptionalIdentity(input.replyToMessageId, \"reply message id\");\n\t\tconst task = normalizeTaskMetadata(input.task);\n\t\tconst idempotencyKey = input.idempotencyKey?.trim();\n\t\tif (\n\t\t\tinput.idempotencyKey !== undefined &&\n\t\t\t(!idempotencyKey || idempotencyKey.length > MAX_MAILBOX_IDEMPOTENCY_KEY_CHARS)\n\t\t) {\n\t\t\tthrow new TypeError(\"Worker control idempotency key is invalid.\");\n\t\t}\n\t\tconst message: WorkerAgentMessage = {\n\t\t\tmessageId: idempotencyKey\n\t\t\t\t? workerAgentMessageId(this.parentSessionId, idempotencyKey)\n\t\t\t\t: `worker-message-${randomUUID()}`,\n\t\t\tkind: input.kind,\n\t\t\tcontent,\n\t\t\t...(senderAgentId ? { senderAgentId } : {}),\n\t\t\t...(threadId ? { threadId } : {}),\n\t\t\t...(replyToMessageId ? { replyToMessageId } : {}),\n\t\t\t...(input.expectReply === true ? { expectReply: true } : {}),\n\t\t\t...(task ? { task } : {}),\n\t\t\tcreatedAt: new Date().toISOString(),\n\t\t};\n\t\tconst intentDigest = idempotencyKey ? controlIntentDigest(message) : undefined;\n\t\tconst externallyReplayOwned = hasExternalReplayAuthority(message);\n\t\tlet queued = message;\n\t\tlet created = false;\n\t\tlet completedReplay = false;\n\t\tthis.update(\n\t\t\t(state) => {\n\t\t\t\tconst existing = state.messages.find((candidate) => candidate.messageId === message.messageId);\n\t\t\t\tconst replayReceipt = controlReplayReceiptFor(state.replayReceipts, message.messageId);\n\t\t\t\tconst addsControlReceipt =\n\t\t\t\t\tintentDigest !== undefined && !externallyReplayOwned && replayReceipt === undefined;\n\t\t\t\tif (\n\t\t\t\t\taddsControlReceipt &&\n\t\t\t\t\tstate.replayReceipts.filter((receipt) => receipt.kind === \"control\").length >= MAX_REPLAY_EVIDENCE_SLOTS\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Worker agent mailbox control replay receipt capacity reached its ${MAX_REPLAY_EVIDENCE_SLOTS} entry limit.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (existing) {\n\t\t\t\t\t// `kind` is the delivery-mode projection at first acceptance. It is deliberately not\n\t\t\t\t\t// part of task intent and is never rewritten when a retry observes a different live\n\t\t\t\t\t// activity state. The durable `task` identity owns whether an idle turn is required.\n\t\t\t\t\tconst sameIntent =\n\t\t\t\t\t\texisting.content === message.content &&\n\t\t\t\t\t\texisting.senderAgentId === message.senderAgentId &&\n\t\t\t\t\t\texisting.threadId === message.threadId &&\n\t\t\t\t\t\texisting.replyToMessageId === message.replyToMessageId &&\n\t\t\t\t\t\texisting.expectReply === message.expectReply &&\n\t\t\t\t\t\tsameTaskMetadata(existing.task, message.task);\n\t\t\t\t\tif (!sameIntent)\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with an existing message.\");\n\t\t\t\t\tif (intentDigest && replayReceipt && replayReceipt.intentDigest !== intentDigest) {\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable replay receipt.\");\n\t\t\t\t\t}\n\t\t\t\t\tqueued = existing;\n\t\t\t\t\treturn intentDigest && !externallyReplayOwned && !replayReceipt\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\treplayReceipts: [\n\t\t\t\t\t\t\t\t\t...state.replayReceipts,\n\t\t\t\t\t\t\t\t\tcontrolReplayReceipt(message.messageId, intentDigest, existing.deliveredAt),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: state;\n\t\t\t\t}\n\t\t\t\tif (replayReceipt) {\n\t\t\t\t\tif (!intentDigest || replayReceipt.intentDigest !== intentDigest) {\n\t\t\t\t\t\tthrow new Error(\"Worker control idempotency identity conflicts with its durable replay receipt.\");\n\t\t\t\t\t}\n\t\t\t\t\tcompletedReplay = true;\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\t\t\t\tconst pending = state.messages.filter(\n\t\t\t\t\t(candidate) => candidate.deliveredAt === undefined && candidate.failedAt === undefined,\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tpending.filter((candidate) => hasExternalReplayAuthority(candidate) === externallyReplayOwned).length >=\n\t\t\t\t\tMAX_MAILBOX_MESSAGES\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\texternallyReplayOwned\n\t\t\t\t\t\t\t? `Worker agent mailbox reached its ${MAX_MAILBOX_MESSAGES} mandatory message limit.`\n\t\t\t\t\t\t\t: `Worker agent mailbox reached its ${MAX_MAILBOX_MESSAGES} message limit.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tcreated = true;\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tmessages: [...state.messages, message],\n\t\t\t\t\t...(intentDigest && !externallyReplayOwned\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\treplayReceipts: [\n\t\t\t\t\t\t\t\t\t...state.replayReceipts,\n\t\t\t\t\t\t\t\t\tcontrolReplayReceipt(message.messageId, intentDigest),\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};\n\t\t\t},\n\t\t\t!externallyReplayOwned,\n\t\t\ttrue,\n\t\t);\n\t\tif (created) this.notify();\n\t\tif (completedReplay) return { status: \"completed_replay\", messageId: message.messageId, created: false };\n\t\treturn { status: \"retained\", messageId: queued.messageId, message: structuredClone(queued), created };\n\t}\n\n\tpending(kind?: WorkerAgentMessageKind): WorkerAgentMessage[] {\n\t\treturn this.read()\n\t\t\t.messages.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt === undefined &&\n\t\t\t\t\tmessage.failedAt === undefined &&\n\t\t\t\t\t(kind === undefined || message.kind === kind),\n\t\t\t)\n\t\t\t.map((message) => structuredClone(message));\n\t}\n\n\t/** Oldest-first executable intents that have not reached the durable transcript boundary. */\n\tpendingTaskBearing(): WorkerAgentMessage[] {\n\t\treturn this.pending().filter((message) => message.task !== undefined);\n\t}\n\n\tacknowledgeDelivered(messageId: string): void {\n\t\tthis.markTimestamp(messageId, \"deliveredAt\");\n\t}\n\n\tawaitingReplies(): WorkerAgentMessage[] {\n\t\treturn this.read()\n\t\t\t.messages.filter(\n\t\t\t\t(message) =>\n\t\t\t\t\tmessage.deliveredAt !== undefined && message.expectReply === true && message.repliedAt === undefined,\n\t\t\t)\n\t\t\t.map((message) => structuredClone(message));\n\t}\n\n\tgetMessage(messageId: string): WorkerAgentMessage | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst message = this.read().messages.find((candidate) => candidate.messageId === normalized);\n\t\treturn message ? structuredClone(message) : undefined;\n\t}\n\n\thasControlReplayReceipt(messageId: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\treturn controlReplayReceiptFor(this.read().replayReceipts, normalized) !== undefined;\n\t}\n\n\thasDeliveredControlReceipt(messageId: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst state = this.read();\n\t\tconst message = state.messages.find((candidate) => candidate.messageId === normalized);\n\t\treturn (\n\t\t\tmessage?.deliveredAt !== undefined ||\n\t\t\tcontrolReplayReceiptFor(state.replayReceipts, normalized)?.deliveredAt !== undefined\n\t\t);\n\t}\n\n\tresolveCompletedReply(messageId: string, content: string): WorkerReplyReceipt | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tconst normalizedContent = normalizeReplyContent(content);\n\t\tconst state = this.read();\n\t\tconst request = state.messages.find((candidate) => candidate.messageId === normalized);\n\t\tconst receipt = request?.replyReceipt ?? replyReplayReceiptFor(state.replayReceipts, normalized);\n\t\tif (!receipt) return undefined;\n\t\tif (receipt.contentDigest !== replyIntentDigest(normalizedContent)) {\n\t\t\tthrow new Error(\"Worker reply identity conflicts with its durable source receipt.\");\n\t\t}\n\t\treturn {\n\t\t\treplyMessageId: receipt.replyMessageId,\n\t\t\trequestSenderId: receipt.requestSenderId,\n\t\t\tcontentDigest: receipt.contentDigest,\n\t\t};\n\t}\n\n\tgetReplyAcknowledgementId(messageId: string): string | undefined {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\treturn this.read().replyAcknowledgements.find((acknowledgement) => acknowledgement.messageId === normalized)\n\t\t\t?.acknowledgementId;\n\t}\n\n\tlistReplyAcknowledgements(): WorkerReplyAcknowledgement[] {\n\t\treturn this.read().replyAcknowledgements.map((acknowledgement) => ({ ...acknowledgement }));\n\t}\n\n\t/**\n\t * Mark one request replied while retaining the exact target receipt until transcript consumption.\n\t * The acknowledgement id is the durable target reply id, so a retry adopts a crash-left marker.\n\t */\n\tbeginReplyAcknowledgement(messageId: string, acknowledgementId: string, replyContent: string): boolean {\n\t\tconst normalized = normalizeReplyAcknowledgement(messageId, acknowledgementId);\n\t\tconst normalizedContent = normalizeReplyContent(replyContent);\n\t\tconst contentDigest = replyIntentDigest(normalizedContent);\n\t\tlet acquired = false;\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst request = state.messages.find((message) => message.messageId === normalized.messageId);\n\t\t\tif (!request || request.deliveredAt === undefined || request.expectReply !== true) return state;\n\t\t\tif (!request.senderAgentId) {\n\t\t\t\tthrow new Error(\"Worker reply request has no routable requester.\");\n\t\t\t}\n\t\t\tconst receipt: WorkerReplyReceipt = {\n\t\t\t\treplyMessageId: normalized.acknowledgementId,\n\t\t\t\trequestSenderId: request.senderAgentId,\n\t\t\t\tcontentDigest,\n\t\t\t};\n\t\t\tconst durableReceipt = replyReplayReceiptFor(state.replayReceipts, normalized.messageId);\n\t\t\tif (\n\t\t\t\tdurableReceipt &&\n\t\t\t\t(durableReceipt.replyMessageId !== receipt.replyMessageId ||\n\t\t\t\t\tdurableReceipt.requestSenderId !== receipt.requestSenderId ||\n\t\t\t\t\tdurableReceipt.contentDigest !== receipt.contentDigest)\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Worker reply identity conflicts with its durable replay receipt.\");\n\t\t\t}\n\t\t\tconst existing = state.replyAcknowledgements.find(\n\t\t\t\t(acknowledgement) =>\n\t\t\t\t\tacknowledgement.messageId === normalized.messageId ||\n\t\t\t\t\tacknowledgement.acknowledgementId === normalized.acknowledgementId,\n\t\t\t);\n\t\t\tif (existing) {\n\t\t\t\tif (\n\t\t\t\t\texisting.messageId !== normalized.messageId ||\n\t\t\t\t\texisting.acknowledgementId !== normalized.acknowledgementId\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"Worker reply acknowledgement identity conflicts with an active transaction.\");\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\trequest?.replyReceipt?.replyMessageId !== receipt.replyMessageId ||\n\t\t\t\t\trequest.replyReceipt.requestSenderId !== receipt.requestSenderId ||\n\t\t\t\t\trequest.replyReceipt.contentDigest !== receipt.contentDigest ||\n\t\t\t\t\texisting.replyContent !== normalizedContent\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"Worker reply content conflicts with its active acknowledgement transaction.\");\n\t\t\t\t}\n\t\t\t\tacquired = true;\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\tif (request.repliedAt !== undefined) return state;\n\t\t\tacquired = true;\n\t\t\tchanged = true;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages: state.messages.map((message) =>\n\t\t\t\t\tmessage.messageId === normalized.messageId\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...message,\n\t\t\t\t\t\t\t\trepliedAt: transitionTimestamp(message.deliveredAt ?? message.createdAt),\n\t\t\t\t\t\t\t\treplyReceipt: receipt,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: message,\n\t\t\t\t),\n\t\t\t\treplyAcknowledgements: [...state.replyAcknowledgements, { ...normalized, replyContent: normalizedContent }],\n\t\t\t\treplayReceipts: durableReceipt\n\t\t\t\t\t? state.replayReceipts\n\t\t\t\t\t: [...state.replayReceipts, { kind: \"reply\", messageId: normalized.messageId, ...receipt }],\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn acquired;\n\t}\n\n\t/** Dead-letter only an ordinary executable turn with no reply or terminal-delivery obligation. */\n\tdeadLetterOrdinaryTask(messageId: string, reason: string): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tconst failureReason = reason.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tif (!failureReason || failureReason.length > MAX_MAILBOX_IDENTITY_CHARS) {\n\t\t\tthrow new TypeError(\"A worker task failure reason is invalid.\");\n\t\t}\n\t\tlet changed = false;\n\t\tthis.update(\n\t\t\t(state) => ({\n\t\t\t\t...state,\n\t\t\t\tmessages: state.messages.map((message) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tmessage.messageId !== normalized ||\n\t\t\t\t\t\tmessage.task?.kind !== \"agent_turn\" ||\n\t\t\t\t\t\tmessage.replyToMessageId !== undefined ||\n\t\t\t\t\t\tmessage.expectReply === true ||\n\t\t\t\t\t\tmessage.deliveredAt !== undefined ||\n\t\t\t\t\t\tmessage.failedAt !== undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn message;\n\t\t\t\t\t}\n\t\t\t\t\tchanged = true;\n\t\t\t\t\treturn { ...message, failedAt: transitionTimestamp(message.createdAt), failureReason };\n\t\t\t\t}),\n\t\t\t}),\n\t\t\ttrue,\n\t\t);\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\t/** Commit one exact reply acknowledgement and release its protected history slot. */\n\tcommitReplyAcknowledgement(messageId: string, acknowledgementId: string): boolean {\n\t\treturn this.finishReplyAcknowledgement(messageId, acknowledgementId, false);\n\t}\n\n\t/** Roll back one exact reply acknowledgement without clearing a later or unrelated reply. */\n\trollbackReplyAcknowledgement(messageId: string, acknowledgementId: string): boolean {\n\t\treturn this.finishReplyAcknowledgement(messageId, acknowledgementId, true);\n\t}\n\n\tprivate markTimestamp(messageId: string, field: \"deliveredAt\"): boolean {\n\t\tconst normalized = messageId.trim();\n\t\tif (!normalized) throw new TypeError(\"A worker control message id is required.\");\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tlet deliveredAt: string | undefined;\n\t\t\tconst messages: WorkerAgentMessage[] = state.messages.map((message) => {\n\t\t\t\tif (message.messageId !== normalized || message[field] !== undefined || message.failedAt !== undefined) {\n\t\t\t\t\treturn message;\n\t\t\t\t}\n\t\t\t\tchanged = true;\n\t\t\t\tdeliveredAt = transitionTimestamp(message.createdAt);\n\t\t\t\treturn { ...message, [field]: deliveredAt };\n\t\t\t});\n\t\t\tif (!changed || !deliveredAt) return state;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages,\n\t\t\t\treplayReceipts: state.replayReceipts.map((receipt) =>\n\t\t\t\t\treceipt.kind === \"control\" && receipt.messageId === normalized ? { ...receipt, deliveredAt } : receipt,\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\tprivate finishReplyAcknowledgement(messageId: string, acknowledgementId: string, rollback: boolean): boolean {\n\t\tconst normalized = normalizeReplyAcknowledgement(messageId, acknowledgementId);\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst acknowledgement = state.replyAcknowledgements.find(\n\t\t\t\t(candidate) =>\n\t\t\t\t\tcandidate.messageId === normalized.messageId &&\n\t\t\t\t\tcandidate.acknowledgementId === normalized.acknowledgementId,\n\t\t\t);\n\t\t\tif (!acknowledgement) return state;\n\t\t\tchanged = true;\n\t\t\tconst messages = rollback\n\t\t\t\t? state.messages.map((message) => {\n\t\t\t\t\t\tif (message.messageId !== normalized.messageId || message.repliedAt === undefined) return message;\n\t\t\t\t\t\tconst restored = { ...message };\n\t\t\t\t\t\tdelete restored.repliedAt;\n\t\t\t\t\t\tdelete restored.replyReceipt;\n\t\t\t\t\t\treturn restored;\n\t\t\t\t\t})\n\t\t\t\t: state.messages;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tmessages,\n\t\t\t\treplyAcknowledgements: state.replyAcknowledgements.filter((candidate) => candidate !== acknowledgement),\n\t\t\t\t...(rollback\n\t\t\t\t\t? {\n\t\t\t\t\t\t\treplayReceipts: state.replayReceipts.filter(\n\t\t\t\t\t\t\t\t(receipt) => receipt.kind !== \"reply\" || receipt.messageId !== normalized.messageId,\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\t});\n\t\tif (changed) this.notify();\n\t\treturn changed;\n\t}\n\n\tsubscribe(listener: () => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t}\n\n\tprivate notify(): void {\n\t\tfor (const listener of this.listeners) {\n\t\t\ttry {\n\t\t\t\tlistener();\n\t\t\t} catch {\n\t\t\t\t// Mailbox subscribers are advisory; durable mutation results remain authoritative.\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate read(): WorkerAgentMailboxState {\n\t\tif (!existsSync(this.file)) {\n\t\t\treturn {\n\t\t\t\tversion: 1,\n\t\t\t\tparentSessionId: this.parentSessionId,\n\t\t\t\tagentId: this.agentId,\n\t\t\t\tmessages: [],\n\t\t\t\treplyAcknowledgements: [],\n\t\t\t\treplayReceipts: [],\n\t\t\t};\n\t\t}\n\t\treturn parseState(\n\t\t\treadBoundedTextFileSync(this.file, MAX_MAILBOX_BYTES, \"Worker agent mailbox durable size bound\"),\n\t\t\tthis.parentSessionId,\n\t\t\tthis.agentId,\n\t\t);\n\t}\n\n\tprivate update(\n\t\tmutator: (state: WorkerAgentMailboxState) => WorkerAgentMailboxState,\n\t\tordinaryAdmission = false,\n\t\treplayEvidenceAdmission = false,\n\t): void {\n\t\twithFileLockSync(this.file, () => {\n\t\t\tconst state = this.read();\n\t\t\tconst previousOrdinaryBytes = ordinaryAdmissionEncodedBytes(state);\n\t\t\tconst previousReplayEvidenceSlots = projectedReplayEvidenceSlots(state);\n\t\t\tconst mutated = mutator(state);\n\t\t\tconst retained = pruneDeliveredHistory(\n\t\t\t\tthis.parentSessionId,\n\t\t\t\tthis.agentId,\n\t\t\t\tmutated.messages,\n\t\t\t\tmutated.replyAcknowledgements,\n\t\t\t\tmutated.replayReceipts,\n\t\t\t\tordinaryAdmission,\n\t\t\t);\n\t\t\tconst next = {\n\t\t\t\t...mutated,\n\t\t\t\tmessages: retained.messages,\n\t\t\t\treplayReceipts: retained.replayReceipts,\n\t\t\t};\n\t\t\tconst addedReplayReceipt = mutated.replayReceipts.length > state.replayReceipts.length;\n\t\t\tconst bytesWithoutAddedReceipt = addedReplayReceipt\n\t\t\t\t? encodedStateBytes({ ...next, replayReceipts: next.replayReceipts.slice(0, -1) })\n\t\t\t\t: undefined;\n\t\t\tconst changed = JSON.stringify(next) !== JSON.stringify(state);\n\t\t\tconst nextOrdinaryBytes = ordinaryAdmissionEncodedBytes(next);\n\t\t\tif (\n\t\t\t\tordinaryAdmission &&\n\t\t\t\tchanged &&\n\t\t\t\tnextOrdinaryBytes > MAX_ORDINARY_MAILBOX_BYTES &&\n\t\t\t\tnextOrdinaryBytes > previousOrdinaryBytes\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\taddedReplayReceipt\n\t\t\t\t\t\t? \"Worker agent mailbox replay receipt storage exhausted its mandatory control byte reserve.\"\n\t\t\t\t\t\t: \"Worker agent mailbox passive control storage exhausted its mandatory control byte reserve.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst nextReplayEvidenceSlots = projectedReplayEvidenceSlots(next);\n\t\t\tif (nextReplayEvidenceSlots > MAX_MAILBOX_REPLAY_RECEIPTS) {\n\t\t\t\tthrow new Error(\"Worker agent mailbox exceeds its projected replay evidence bound.\");\n\t\t\t}\n\t\t\tif (\n\t\t\t\treplayEvidenceAdmission &&\n\t\t\t\tnextReplayEvidenceSlots > MAX_REPLAY_EVIDENCE_SLOTS &&\n\t\t\t\tnextReplayEvidenceSlots > previousReplayEvidenceSlots\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Worker agent mailbox replay evidence capacity reached its ${MAX_REPLAY_EVIDENCE_SLOTS} slot limit.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tassertWorkerAgentMailboxBounds(\n\t\t\t\tnext.messages.length,\n\t\t\t\tnext.replayReceipts.length,\n\t\t\t\tstate.replayReceipts.length,\n\t\t\t\tencodedStateBytes(next),\n\t\t\t\tbytesWithoutAddedReceipt,\n\t\t\t);\n\t\t\tif (changed) writeFileAtomicSync(this.file, `${JSON.stringify(next)}\\n`, { mode: 0o600 });\n\t\t});\n\t}\n}\n"]}
@@ -10,9 +10,9 @@ export interface ResolveWorkerContextInheritanceModeInput {
10
10
  mode?: string;
11
11
  }
12
12
  /**
13
- * Pure provider/model egress policy for sanitized birth context. Implicit inheritance is allowed
14
- * only when both identities match exactly; crossing either boundary defaults to none and requires
15
- * an explicit none if a mode was supplied.
13
+ * Pure provider/model egress policy for sanitized birth context. Omitted mode never inherits.
14
+ * Explicit inheritance is allowed only when both identities match exactly; crossing either
15
+ * boundary requires an explicit none if a mode was supplied.
16
16
  */
17
17
  export declare function resolveWorkerContextInheritanceMode(input: ResolveWorkerContextInheritanceModeInput): SanitizedContextForkMode;
18
18
  //# sourceMappingURL=worker-context-inheritance-policy.d.ts.map
@@ -7,9 +7,9 @@ function canonicalIdentity(value, maximum, label) {
7
7
  return value;
8
8
  }
9
9
  /**
10
- * Pure provider/model egress policy for sanitized birth context. Implicit inheritance is allowed
11
- * only when both identities match exactly; crossing either boundary defaults to none and requires
12
- * an explicit none if a mode was supplied.
10
+ * Pure provider/model egress policy for sanitized birth context. Omitted mode never inherits.
11
+ * Explicit inheritance is allowed only when both identities match exactly; crossing either
12
+ * boundary requires an explicit none if a mode was supplied.
13
13
  */
14
14
  export function resolveWorkerContextInheritanceMode(input) {
15
15
  const parentProvider = canonicalIdentity(input.parent.provider, MAX_ORCHESTRATION_MODEL_PROVIDER_LENGTH, "Parent provider");
@@ -18,7 +18,7 @@ export function resolveWorkerContextInheritanceMode(input) {
18
18
  const workerModel = canonicalIdentity(input.worker.model, MAX_ORCHESTRATION_MODEL_ID_LENGTH, "Worker model");
19
19
  const sameBoundary = parentProvider === workerProvider && parentModel === workerModel;
20
20
  if (input.mode === undefined)
21
- return sameBoundary ? { kind: "all" } : { kind: "none" };
21
+ return { kind: "none" };
22
22
  const mode = parseSanitizedContextForkMode(input.mode);
23
23
  if (!sameBoundary && mode.kind !== "none") {
24
24
  throw new TypeError("Worker context inheritance cannot cross a provider/model boundary.");