@caupulican/pi-adaptative 0.86.2 → 0.86.5

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 (226) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/core/agent-paths.d.ts +13 -0
  3. package/dist/core/agent-paths.d.ts.map +1 -1
  4. package/dist/core/agent-paths.js +23 -0
  5. package/dist/core/agent-paths.js.map +1 -1
  6. package/dist/core/autonomy/bounded-completion.d.ts +7 -0
  7. package/dist/core/autonomy/bounded-completion.d.ts.map +1 -1
  8. package/dist/core/autonomy/bounded-completion.js +12 -4
  9. package/dist/core/autonomy/bounded-completion.js.map +1 -1
  10. package/dist/core/autonomy/lane-tool-surface.d.ts +2 -0
  11. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  12. package/dist/core/autonomy/lane-tool-surface.js +6 -3
  13. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  14. package/dist/core/autonomy/subagent-prompt.js +1 -1
  15. package/dist/core/autonomy/subagent-prompt.js.map +1 -1
  16. package/dist/core/background-lane-controller.d.ts +25 -2
  17. package/dist/core/background-lane-controller.d.ts.map +1 -1
  18. package/dist/core/background-lane-controller.js +67 -0
  19. package/dist/core/background-lane-controller.js.map +1 -1
  20. package/dist/core/delegation/replay-safe-mailbox-bounds.d.ts +4 -0
  21. package/dist/core/delegation/replay-safe-mailbox-bounds.d.ts.map +1 -0
  22. package/dist/core/delegation/replay-safe-mailbox-bounds.js +20 -0
  23. package/dist/core/delegation/replay-safe-mailbox-bounds.js.map +1 -0
  24. package/dist/core/delegation/sanitized-context-fork.d.ts +25 -0
  25. package/dist/core/delegation/sanitized-context-fork.d.ts.map +1 -0
  26. package/dist/core/delegation/sanitized-context-fork.js +299 -0
  27. package/dist/core/delegation/sanitized-context-fork.js.map +1 -0
  28. package/dist/core/delegation/session-root-mailbox.d.ts +75 -0
  29. package/dist/core/delegation/session-root-mailbox.d.ts.map +1 -0
  30. package/dist/core/delegation/session-root-mailbox.js +627 -0
  31. package/dist/core/delegation/session-root-mailbox.js.map +1 -0
  32. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +102 -9
  33. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  34. package/dist/core/delegation/worker-agent-control-coordinator.js +1307 -125
  35. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  36. package/dist/core/delegation/worker-agent-control.d.ts +183 -8
  37. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
  38. package/dist/core/delegation/worker-agent-control.js +778 -48
  39. package/dist/core/delegation/worker-agent-control.js.map +1 -1
  40. package/dist/core/delegation/worker-attempt-executor.d.ts +9 -0
  41. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  42. package/dist/core/delegation/worker-attempt-executor.js +479 -214
  43. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  44. package/dist/core/delegation/worker-authority-resolver.d.ts +9 -0
  45. package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
  46. package/dist/core/delegation/worker-authority-resolver.js +22 -14
  47. package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
  48. package/dist/core/delegation/worker-context-fork-store.d.ts +71 -0
  49. package/dist/core/delegation/worker-context-fork-store.d.ts.map +1 -0
  50. package/dist/core/delegation/worker-context-fork-store.js +437 -0
  51. package/dist/core/delegation/worker-context-fork-store.js.map +1 -0
  52. package/dist/core/delegation/worker-context-inheritance-policy.d.ts +18 -0
  53. package/dist/core/delegation/worker-context-inheritance-policy.d.ts.map +1 -0
  54. package/dist/core/delegation/worker-context-inheritance-policy.js +28 -0
  55. package/dist/core/delegation/worker-context-inheritance-policy.js.map +1 -0
  56. package/dist/core/delegation/worker-conversation-revision.d.ts +31 -0
  57. package/dist/core/delegation/worker-conversation-revision.d.ts.map +1 -0
  58. package/dist/core/delegation/worker-conversation-revision.js +203 -0
  59. package/dist/core/delegation/worker-conversation-revision.js.map +1 -0
  60. package/dist/core/delegation/worker-conversation-store.d.ts +130 -18
  61. package/dist/core/delegation/worker-conversation-store.d.ts.map +1 -1
  62. package/dist/core/delegation/worker-conversation-store.js +1263 -79
  63. package/dist/core/delegation/worker-conversation-store.js.map +1 -1
  64. package/dist/core/delegation/worker-delegation-controller.d.ts +29 -2
  65. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  66. package/dist/core/delegation/worker-delegation-controller.js +625 -111
  67. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  68. package/dist/core/delegation/worker-delegation-request.d.ts +2 -0
  69. package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
  70. package/dist/core/delegation/worker-delegation-request.js.map +1 -1
  71. package/dist/core/delegation/worker-dispatch-scheduler.d.ts +20 -1
  72. package/dist/core/delegation/worker-dispatch-scheduler.d.ts.map +1 -1
  73. package/dist/core/delegation/worker-dispatch-scheduler.js +210 -37
  74. package/dist/core/delegation/worker-dispatch-scheduler.js.map +1 -1
  75. package/dist/core/delegation/worker-fleet-limits.d.ts +38 -0
  76. package/dist/core/delegation/worker-fleet-limits.d.ts.map +1 -0
  77. package/dist/core/delegation/worker-fleet-limits.js +113 -0
  78. package/dist/core/delegation/worker-fleet-limits.js.map +1 -0
  79. package/dist/core/delegation/worker-lane-projection.d.ts +1 -0
  80. package/dist/core/delegation/worker-lane-projection.d.ts.map +1 -1
  81. package/dist/core/delegation/worker-lane-projection.js +6 -2
  82. package/dist/core/delegation/worker-lane-projection.js.map +1 -1
  83. package/dist/core/delegation/worker-lifecycle.d.ts +20 -3
  84. package/dist/core/delegation/worker-lifecycle.d.ts.map +1 -1
  85. package/dist/core/delegation/worker-lifecycle.js +42 -18
  86. package/dist/core/delegation/worker-lifecycle.js.map +1 -1
  87. package/dist/core/delegation/worker-notification-coordinator.d.ts +4 -0
  88. package/dist/core/delegation/worker-notification-coordinator.d.ts.map +1 -1
  89. package/dist/core/delegation/worker-notification-coordinator.js +45 -4
  90. package/dist/core/delegation/worker-notification-coordinator.js.map +1 -1
  91. package/dist/core/delegation/worker-provider-turn-protocol.d.ts +50 -0
  92. package/dist/core/delegation/worker-provider-turn-protocol.d.ts.map +1 -0
  93. package/dist/core/delegation/worker-provider-turn-protocol.js +185 -0
  94. package/dist/core/delegation/worker-provider-turn-protocol.js.map +1 -0
  95. package/dist/core/delegation/worker-recovery-coordinator.d.ts +45 -4
  96. package/dist/core/delegation/worker-recovery-coordinator.d.ts.map +1 -1
  97. package/dist/core/delegation/worker-recovery-coordinator.js +223 -17
  98. package/dist/core/delegation/worker-recovery-coordinator.js.map +1 -1
  99. package/dist/core/delegation/worker-retry-policy.d.ts +36 -0
  100. package/dist/core/delegation/worker-retry-policy.d.ts.map +1 -0
  101. package/dist/core/delegation/worker-retry-policy.js +41 -0
  102. package/dist/core/delegation/worker-retry-policy.js.map +1 -0
  103. package/dist/core/delegation/worker-runner.d.ts +3 -1
  104. package/dist/core/delegation/worker-runner.d.ts.map +1 -1
  105. package/dist/core/delegation/worker-runner.js +4 -2
  106. package/dist/core/delegation/worker-runner.js.map +1 -1
  107. package/dist/core/delegation/worker-task-view.d.ts +43 -0
  108. package/dist/core/delegation/worker-task-view.d.ts.map +1 -0
  109. package/dist/core/delegation/worker-task-view.js +194 -0
  110. package/dist/core/delegation/worker-task-view.js.map +1 -0
  111. package/dist/core/delegation/worker-terminal-handoff-coordinator.d.ts +55 -0
  112. package/dist/core/delegation/worker-terminal-handoff-coordinator.d.ts.map +1 -0
  113. package/dist/core/delegation/worker-terminal-handoff-coordinator.js +179 -0
  114. package/dist/core/delegation/worker-terminal-handoff-coordinator.js.map +1 -0
  115. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts +2 -2
  116. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
  117. package/dist/core/delegation/worker-tree-budget-coordinator.js +12 -46
  118. package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
  119. package/dist/core/keybindings.d.ts +10 -0
  120. package/dist/core/keybindings.d.ts.map +1 -1
  121. package/dist/core/keybindings.js +2 -0
  122. package/dist/core/keybindings.js.map +1 -1
  123. package/dist/core/orchestration/attempt-ordering.d.ts +9 -0
  124. package/dist/core/orchestration/attempt-ordering.d.ts.map +1 -0
  125. package/dist/core/orchestration/attempt-ordering.js +29 -0
  126. package/dist/core/orchestration/attempt-ordering.js.map +1 -0
  127. package/dist/core/orchestration/capability-gateway.d.ts +19 -0
  128. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
  129. package/dist/core/orchestration/capability-gateway.js +19 -2
  130. package/dist/core/orchestration/capability-gateway.js.map +1 -1
  131. package/dist/core/orchestration/contracts.d.ts +43 -3
  132. package/dist/core/orchestration/contracts.d.ts.map +1 -1
  133. package/dist/core/orchestration/contracts.js +24 -0
  134. package/dist/core/orchestration/contracts.js.map +1 -1
  135. package/dist/core/orchestration/delegation-ledger.d.ts +8 -3
  136. package/dist/core/orchestration/delegation-ledger.d.ts.map +1 -1
  137. package/dist/core/orchestration/delegation-ledger.js +148 -55
  138. package/dist/core/orchestration/delegation-ledger.js.map +1 -1
  139. package/dist/core/orchestration/event-store.d.ts +6 -3
  140. package/dist/core/orchestration/event-store.d.ts.map +1 -1
  141. package/dist/core/orchestration/event-store.js +228 -30
  142. package/dist/core/orchestration/event-store.js.map +1 -1
  143. package/dist/core/orchestration/task-runtime-codecs.d.ts +31 -0
  144. package/dist/core/orchestration/task-runtime-codecs.d.ts.map +1 -0
  145. package/dist/core/orchestration/task-runtime-codecs.js +1471 -0
  146. package/dist/core/orchestration/task-runtime-codecs.js.map +1 -0
  147. package/dist/core/orchestration/task-runtime-projection.d.ts +30 -0
  148. package/dist/core/orchestration/task-runtime-projection.d.ts.map +1 -0
  149. package/dist/core/orchestration/task-runtime-projection.js +340 -0
  150. package/dist/core/orchestration/task-runtime-projection.js.map +1 -0
  151. package/dist/core/orchestration/task-runtime-reducer.d.ts +38 -0
  152. package/dist/core/orchestration/task-runtime-reducer.d.ts.map +1 -0
  153. package/dist/core/orchestration/task-runtime-reducer.js +1270 -0
  154. package/dist/core/orchestration/task-runtime-reducer.js.map +1 -0
  155. package/dist/core/orchestration/task-runtime-state.d.ts +142 -0
  156. package/dist/core/orchestration/task-runtime-state.d.ts.map +1 -0
  157. package/dist/core/orchestration/task-runtime-state.js +14 -0
  158. package/dist/core/orchestration/task-runtime-state.js.map +1 -0
  159. package/dist/core/orchestration/task-runtime.d.ts +44 -98
  160. package/dist/core/orchestration/task-runtime.d.ts.map +1 -1
  161. package/dist/core/orchestration/task-runtime.js +357 -1113
  162. package/dist/core/orchestration/task-runtime.js.map +1 -1
  163. package/dist/core/orchestration/worker-context-fork-reference.d.ts +20 -0
  164. package/dist/core/orchestration/worker-context-fork-reference.d.ts.map +1 -0
  165. package/dist/core/orchestration/worker-context-fork-reference.js +53 -0
  166. package/dist/core/orchestration/worker-context-fork-reference.js.map +1 -0
  167. package/dist/core/research/research-runner.d.ts +2 -0
  168. package/dist/core/research/research-runner.d.ts.map +1 -1
  169. package/dist/core/research/research-runner.js +1 -0
  170. package/dist/core/research/research-runner.js.map +1 -1
  171. package/dist/core/runtime-builder.d.ts.map +1 -1
  172. package/dist/core/runtime-builder.js +8 -0
  173. package/dist/core/runtime-builder.js.map +1 -1
  174. package/dist/core/secrets/credential-project.d.ts.map +1 -1
  175. package/dist/core/secrets/credential-project.js +24 -2
  176. package/dist/core/secrets/credential-project.js.map +1 -1
  177. package/dist/core/security/secret-text.d.ts +3 -0
  178. package/dist/core/security/secret-text.d.ts.map +1 -1
  179. package/dist/core/security/secret-text.js +15 -0
  180. package/dist/core/security/secret-text.js.map +1 -1
  181. package/dist/core/settings-manager.d.ts +3 -0
  182. package/dist/core/settings-manager.d.ts.map +1 -1
  183. package/dist/core/settings-manager.js +160 -8
  184. package/dist/core/settings-manager.js.map +1 -1
  185. package/dist/core/tools/delegate.d.ts +31 -4
  186. package/dist/core/tools/delegate.d.ts.map +1 -1
  187. package/dist/core/tools/delegate.js +751 -98
  188. package/dist/core/tools/delegate.js.map +1 -1
  189. package/dist/main.d.ts.map +1 -1
  190. package/dist/main.js +1 -0
  191. package/dist/main.js.map +1 -1
  192. package/dist/modes/interactive/components/activity-lane.d.ts +5 -0
  193. package/dist/modes/interactive/components/activity-lane.d.ts.map +1 -1
  194. package/dist/modes/interactive/components/activity-lane.js +133 -49
  195. package/dist/modes/interactive/components/activity-lane.js.map +1 -1
  196. package/dist/modes/interactive/components/agents-overlay.d.ts +40 -0
  197. package/dist/modes/interactive/components/agents-overlay.d.ts.map +1 -0
  198. package/dist/modes/interactive/components/agents-overlay.js +153 -0
  199. package/dist/modes/interactive/components/agents-overlay.js.map +1 -0
  200. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  201. package/dist/modes/interactive/components/settings-selector.js +18 -13
  202. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  203. package/dist/modes/interactive/interactive-event-controller.d.ts +1 -1
  204. package/dist/modes/interactive/interactive-event-controller.d.ts.map +1 -1
  205. package/dist/modes/interactive/interactive-event-controller.js +6 -3
  206. package/dist/modes/interactive/interactive-event-controller.js.map +1 -1
  207. package/dist/modes/interactive/interactive-mode.d.ts +5 -0
  208. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  209. package/dist/modes/interactive/interactive-mode.js +51 -0
  210. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  211. package/dist/modes/interactive/key-handlers.d.ts +1 -0
  212. package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
  213. package/dist/modes/interactive/key-handlers.js +1 -0
  214. package/dist/modes/interactive/key-handlers.js.map +1 -1
  215. package/docs/harness-architecture.md +61 -17
  216. package/docs/settings.md +17 -9
  217. package/docs/worker-profiles.md +6 -2
  218. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  219. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  220. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  221. package/examples/extensions/sandbox/package-lock.json +2 -2
  222. package/examples/extensions/sandbox/package.json +1 -1
  223. package/examples/extensions/with-deps/package-lock.json +2 -2
  224. package/examples/extensions/with-deps/package.json +1 -1
  225. package/npm-shrinkwrap.json +12 -12
  226. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-root-mailbox.js","sourceRoot":"","sources":["../../../src/core/delegation/session-root-mailbox.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash, randomUUID } from \"node:crypto\";\nimport { existsSync } from \"node:fs\";\nimport { sessionRootMailboxFile } from \"../agent-paths.ts\";\nimport { withFileLockSync, writeFileAtomicSync } from \"../util/atomic-file.ts\";\nimport { readBoundedTextFileSync } from \"../util/bounded-file.ts\";\nimport { createReplaySafeMailboxBounder } from \"./replay-safe-mailbox-bounds.ts\";\n\nconst MAX_MANDATORY_REPLIES = 64;\nconst MAX_RETAINED_REPLIES = 128;\nconst MAX_REPLAY_RECEIPTS = MAX_RETAINED_REPLIES * 4;\nconst MAX_REPLY_CONTENT_CHARS = 4_096;\nconst MAX_REPLY_ENCODED_BYTES = 15 * 1024;\nconst MAX_IDENTITY_CHARS = 512;\nconst MAX_MESSAGE_ID_CHARS = 512;\nconst MAX_ACK_TOKEN_CHARS = 128;\nconst MAX_TIMESTAMP_CHARS = 128;\nconst MAX_DEFAULT_REPLAY_RECEIPTS = MAX_REPLAY_RECEIPTS - MAX_MANDATORY_REPLIES;\nconst MAX_DEFAULT_MAILBOX_BYTES = 128 * 1024;\nconst MAX_TRANSITION_TIMESTAMP = \"9999-12-31T23:59:59.999Z\";\nconst MAX_ENCODED_SOURCE_OWNED_RECEIPT_BYTES =\n\tBuffer.byteLength(\n\t\tJSON.stringify({\n\t\t\tmessageId: `session-root-reply-${\"f\".repeat(64)}`,\n\t\t\tsourceAgentId: `s${\"\\0\".repeat(MAX_IDENTITY_CHARS - 1)}`,\n\t\t\trequestMessageId: `r${\"\\0\".repeat(MAX_MESSAGE_ID_CHARS - 1)}`,\n\t\t\tthreadId: `t${\"\\0\".repeat(MAX_IDENTITY_CHARS - 1)}`,\n\t\t\tcontentDigest: \"f\".repeat(64),\n\t\t\tsourceOwned: true,\n\t\t}),\n\t\t\"utf-8\",\n\t) + 1;\nconst MAX_SOURCE_OWNED_RESERVE_BYTES =\n\tMath.ceil((MAX_REPLY_ENCODED_BYTES + MAX_ENCODED_SOURCE_OWNED_RECEIPT_BYTES + 1_024) / 1_024) * 1_024;\nconst MAX_MAILBOX_BYTES = MAX_DEFAULT_MAILBOX_BYTES + MAX_SOURCE_OWNED_RESERVE_BYTES;\nconst MAX_WAIT_TIMEOUT_MS = 300_000;\nconst DEFAULT_WAIT_TIMEOUT_MS = 30_000;\nconst DEFAULT_PAGE_SIZE = 16;\nconst RANDOM_UUID_V4_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nconst listenersByMailboxFile = new Map<string, Set<() => void>>();\nconst assertSessionRootMailboxBounds = createReplaySafeMailboxBounder(\n\t\"Session root mailbox\",\n\tMAX_RETAINED_REPLIES,\n\tMAX_REPLAY_RECEIPTS,\n\tMAX_MAILBOX_BYTES,\n);\n\nexport interface SessionRootReply {\n\tmessageId: string;\n\tsourceAgentId: string;\n\trequestMessageId: string;\n\tthreadId?: string;\n\tcontent: string;\n\tcreatedAt: string;\n\tackToken: string;\n\tsourceReconciledAt?: string;\n\tacknowledgedAt?: string;\n}\n\ninterface SessionRootMailboxState {\n\tversion: 1;\n\tparentSessionId: string;\n\treplies: SessionRootReply[];\n\treplayReceipts: SessionRootReplyReplayReceipt[];\n}\n\ninterface SessionRootReplyReplayReceipt {\n\tmessageId: string;\n\tsourceAgentId: string;\n\trequestMessageId: string;\n\tthreadId?: string;\n\tcontentDigest: string;\n\tsourceOwned?: true;\n}\n\nexport type SessionRootReplyAcceptance =\n\t| { status: \"retained\"; messageId: string; reply: SessionRootReply; created: boolean }\n\t| { status: \"completed_replay\"; messageId: string; created: false };\n\nexport interface SessionRootMailboxOptions {\n\tagentDir: string;\n\tparentSessionId: string;\n}\n\nexport interface SessionRootReplyInput {\n\tsourceAgentId: string;\n\trequestMessageId: string;\n\tthreadId?: string;\n\tcontent: string;\n}\n\nexport interface SessionRootReplyQuery {\n\tsourceAgentId?: string;\n\trequestMessageId?: string;\n\tmaxMessages?: number;\n}\n\nexport interface SessionRootReplyWaitOptions extends SessionRootReplyQuery {\n\ttimeoutMs?: number;\n\tsignal?: AbortSignal;\n}\n\nexport interface SessionRootReplyWaitResult {\n\treplies: SessionRootReply[];\n\ttimedOut: boolean;\n}\n\nfunction requiredIdentity(value: unknown, label: string): string {\n\tif (typeof value !== \"string\") throw new TypeError(`Session root reply ${label} is invalid.`);\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > MAX_IDENTITY_CHARS) {\n\t\tthrow new TypeError(`Session root reply ${label} is invalid.`);\n\t}\n\treturn normalized;\n}\n\nfunction optionalIdentity(value: unknown, label: string): string | undefined {\n\tif (value === undefined) return undefined;\n\treturn requiredIdentity(value, label);\n}\n\nfunction requiredContent(value: unknown): string {\n\tif (typeof value !== \"string\") throw new TypeError(\"Session root reply content is invalid.\");\n\tconst normalized = value.trim();\n\tif (!normalized || normalized.length > MAX_REPLY_CONTENT_CHARS) {\n\t\tthrow new TypeError(\n\t\t\t`Session root reply content must contain from 1 through ${MAX_REPLY_CONTENT_CHARS.toLocaleString(\"en-US\")} characters.`,\n\t\t);\n\t}\n\treturn normalized;\n}\n\nfunction requiredBoundedString(value: unknown, maxChars: number, label: string): string {\n\tif (typeof value !== \"string\" || value.length === 0 || value.length > maxChars) {\n\t\tthrow new Error(`Session root mailbox contains an invalid reply ${label}.`);\n\t}\n\treturn value;\n}\n\nfunction requiredTimestamp(value: unknown, label: string): string {\n\tconst timestamp = requiredBoundedString(value, MAX_TIMESTAMP_CHARS, label);\n\tconst parsed = new Date(timestamp);\n\tif (!Number.isFinite(parsed.getTime()) || parsed.toISOString() !== timestamp) {\n\t\tthrow new Error(`Session root mailbox contains an invalid reply ${label}.`);\n\t}\n\treturn timestamp;\n}\n\nfunction optionalTimestamp(value: unknown, label: string): string | undefined {\n\treturn value === undefined ? undefined : requiredTimestamp(value, label);\n}\n\nfunction requiredAckToken(value: unknown): string {\n\tconst token = requiredBoundedString(value, MAX_ACK_TOKEN_CHARS, \"acknowledgement token\");\n\tif (!RANDOM_UUID_V4_PATTERN.test(token)) {\n\t\tthrow new Error(\"Session root mailbox contains an invalid reply acknowledgement token.\");\n\t}\n\treturn token;\n}\n\nfunction inputAckToken(value: unknown): string {\n\tif (typeof value !== \"string\" || value.length > MAX_ACK_TOKEN_CHARS || !RANDOM_UUID_V4_PATTERN.test(value)) {\n\t\tthrow new TypeError(\"Session root reply acknowledgement token is invalid.\");\n\t}\n\treturn value;\n}\n\nfunction transitionTimestamp(createdAt: string): string {\n\tconst current = new Date().toISOString();\n\treturn current < createdAt ? createdAt : current;\n}\n\nfunction identityDigest(domain: string, identities: readonly string[]): string {\n\tconst hash = createHash(\"sha256\").update(domain);\n\tfor (const identity of identities) hash.update(\"\\0\").update(identity);\n\treturn hash.digest(\"hex\");\n}\n\n/** Opaque host-owned sender address for root-originated reply-expected worker messages. */\nexport function sessionRootAddress(parentSessionId: string): string {\n\tconst normalized = requiredIdentity(parentSessionId, \"parent session id\");\n\treturn `session-root-${identityDigest(\"pi-session-root-address-v1\", [normalized])}`;\n}\n\nexport function sessionRootReplyMessageId(\n\tparentSessionId: string,\n\tsourceAgentId: string,\n\trequestMessageId: string,\n): string {\n\treturn `session-root-reply-${identityDigest(\"pi-session-root-reply-v1\", [\n\t\trequiredIdentity(parentSessionId, \"parent session id\"),\n\t\trequiredIdentity(sourceAgentId, \"source agent id\"),\n\t\trequiredIdentity(requestMessageId, \"request message id\"),\n\t])}`;\n}\n\nfunction replyContentDigest(content: string): string {\n\treturn identityDigest(\"pi-session-root-reply-content-v1\", [content]);\n}\n\nfunction replayReceipt(reply: SessionRootReply, sourceOwned = false): SessionRootReplyReplayReceipt {\n\treturn {\n\t\tmessageId: reply.messageId,\n\t\tsourceAgentId: reply.sourceAgentId,\n\t\trequestMessageId: reply.requestMessageId,\n\t\t...(reply.threadId ? { threadId: reply.threadId } : {}),\n\t\tcontentDigest: replyContentDigest(reply.content),\n\t\t...(sourceOwned ? { sourceOwned: true } : {}),\n\t};\n}\n\nfunction sameReplayIntent(receipt: SessionRootReplyReplayReceipt, reply: SessionRootReply): boolean {\n\treturn (\n\t\treceipt.messageId === reply.messageId &&\n\t\treceipt.sourceAgentId === reply.sourceAgentId &&\n\t\treceipt.requestMessageId === reply.requestMessageId &&\n\t\treceipt.threadId === reply.threadId &&\n\t\treceipt.contentDigest === replyContentDigest(reply.content)\n\t);\n}\n\nfunction isMandatory(reply: SessionRootReply): boolean {\n\treturn reply.sourceReconciledAt === undefined || reply.acknowledgedAt === undefined;\n}\n\nfunction pruneRetainedReplies(replies: readonly SessionRootReply[]): SessionRootReply[] {\n\tconst mandatory = replies.filter(isMandatory);\n\tif (mandatory.length > MAX_MANDATORY_REPLIES) {\n\t\tthrow new Error(`Session root mailbox reached its ${MAX_MANDATORY_REPLIES} mandatory reply limit.`);\n\t}\n\tconst remainingSlots = MAX_RETAINED_REPLIES - mandatory.length;\n\tconst completed = replies.filter((reply) => !isMandatory(reply));\n\tconst retainedCompletedIds = new Set(completed.slice(-remainingSlots).map((reply) => reply.messageId));\n\treturn replies.filter((reply) => isMandatory(reply) || retainedCompletedIds.has(reply.messageId));\n}\n\nfunction encodedStateBytes(state: SessionRootMailboxState): number {\n\treturn Buffer.byteLength(`${JSON.stringify(state)}\\n`, \"utf-8\");\n}\n\nfunction lifecycleProjectedEncodedBytes(state: SessionRootMailboxState): number {\n\treturn encodedStateBytes({\n\t\t...state,\n\t\treplies: state.replies.map((reply) => ({\n\t\t\t...reply,\n\t\t\tsourceReconciledAt: reply.sourceReconciledAt ?? MAX_TRANSITION_TIMESTAMP,\n\t\t\tacknowledgedAt: reply.acknowledgedAt ?? MAX_TRANSITION_TIMESTAMP,\n\t\t})),\n\t});\n}\n\nfunction assertReplyEncodedByteBound(reply: SessionRootReply): void {\n\t// Reserve both lifecycle fields before accepting content so every durable reply can still fit as\n\t// one whole entry in the delegate inbox's 16 KiB result envelope after later transitions.\n\tconst transitioned = {\n\t\t...reply,\n\t\tsourceReconciledAt: reply.sourceReconciledAt ?? reply.createdAt,\n\t\tacknowledgedAt: reply.acknowledgedAt ?? reply.createdAt,\n\t};\n\tif (Buffer.byteLength(JSON.stringify(transitioned), \"utf-8\") > MAX_REPLY_ENCODED_BYTES) {\n\t\tthrow new Error(`Session root reply exceeds its ${MAX_REPLY_ENCODED_BYTES}-byte encoded byte bound.`);\n\t}\n}\n\nfunction createSessionRootReply(parentSessionId: string, input: SessionRootReplyInput): SessionRootReply {\n\tconst sourceAgentId = requiredIdentity(input.sourceAgentId, \"source agent id\");\n\tconst requestMessageId = requiredIdentity(input.requestMessageId, \"request message id\");\n\tconst threadId = optionalIdentity(input.threadId, \"thread id\");\n\tconst content = requiredContent(input.content);\n\tconst reply: SessionRootReply = {\n\t\tmessageId: sessionRootReplyMessageId(parentSessionId, sourceAgentId, requestMessageId),\n\t\tsourceAgentId,\n\t\trequestMessageId,\n\t\t...(threadId ? { threadId } : {}),\n\t\tcontent,\n\t\tcreatedAt: new Date().toISOString(),\n\t\tackToken: randomUUID(),\n\t};\n\tassertReplyEncodedByteBound(reply);\n\treturn reply;\n}\n\nfunction parseReply(value: unknown, parentSessionId: string): SessionRootReply {\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new Error(\"Session root mailbox contains an invalid reply.\");\n\t}\n\tconst candidate = value as Partial<SessionRootReply>;\n\tconst sourceAgentId = requiredBoundedString(candidate.sourceAgentId, MAX_IDENTITY_CHARS, \"source agent id\");\n\tconst requestMessageId = requiredBoundedString(\n\t\tcandidate.requestMessageId,\n\t\tMAX_MESSAGE_ID_CHARS,\n\t\t\"request message id\",\n\t);\n\tconst messageId = requiredBoundedString(candidate.messageId, MAX_MESSAGE_ID_CHARS, \"message id\");\n\tconst threadId =\n\t\tcandidate.threadId === undefined\n\t\t\t? undefined\n\t\t\t: requiredBoundedString(candidate.threadId, MAX_IDENTITY_CHARS, \"thread id\");\n\tconst content = requiredBoundedString(candidate.content, MAX_REPLY_CONTENT_CHARS, \"content\");\n\tconst createdAt = requiredTimestamp(candidate.createdAt, \"creation timestamp\");\n\tconst ackToken = requiredAckToken(candidate.ackToken);\n\tconst sourceReconciledAt = optionalTimestamp(candidate.sourceReconciledAt, \"source reconciliation timestamp\");\n\tconst acknowledgedAt = optionalTimestamp(candidate.acknowledgedAt, \"acknowledgement timestamp\");\n\tif (sourceReconciledAt !== undefined && sourceReconciledAt < createdAt) {\n\t\tthrow new Error(\"Session root mailbox reply source reconciliation timestamp predates creation.\");\n\t}\n\tif (acknowledgedAt !== undefined && acknowledgedAt < createdAt) {\n\t\tthrow new Error(\"Session root mailbox reply acknowledgement timestamp predates creation.\");\n\t}\n\tif (\n\t\tsourceAgentId.trim() !== sourceAgentId ||\n\t\trequestMessageId.trim() !== requestMessageId ||\n\t\tmessageId !== sessionRootReplyMessageId(parentSessionId, sourceAgentId, requestMessageId) ||\n\t\t(threadId !== undefined && threadId.trim() !== threadId) ||\n\t\tcontent.trim() !== content\n\t) {\n\t\tthrow new Error(\"Session root mailbox contains an invalid reply.\");\n\t}\n\tconst reply: SessionRootReply = {\n\t\tmessageId,\n\t\tsourceAgentId,\n\t\trequestMessageId,\n\t\t...(threadId ? { threadId } : {}),\n\t\tcontent,\n\t\tcreatedAt,\n\t\tackToken,\n\t\t...(sourceReconciledAt ? { sourceReconciledAt } : {}),\n\t\t...(acknowledgedAt ? { acknowledgedAt } : {}),\n\t};\n\tassertReplyEncodedByteBound(reply);\n\treturn reply;\n}\n\nfunction parseState(raw: string, parentSessionId: string): SessionRootMailboxState {\n\tlet value: unknown;\n\ttry {\n\t\tvalue = JSON.parse(raw);\n\t} catch {\n\t\tthrow new Error(\"Session root mailbox is invalid JSON.\");\n\t}\n\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\tthrow new Error(\"Session root mailbox is invalid.\");\n\t}\n\tconst candidate = value as Partial<SessionRootMailboxState>;\n\tif (candidate.version !== 1 || candidate.parentSessionId !== parentSessionId || !Array.isArray(candidate.replies)) {\n\t\tthrow new Error(\"Session root mailbox identity conflicts with the requested foreground session.\");\n\t}\n\tconst replies = candidate.replies.map((reply) => parseReply(reply, parentSessionId));\n\tconst ids = new Set(replies.map((reply) => reply.messageId));\n\tif (ids.size !== replies.length) throw new Error(\"Session root mailbox contains duplicate reply identities.\");\n\tconst acknowledgementTokens = new Set(replies.map((reply) => reply.ackToken));\n\tif (acknowledgementTokens.size !== replies.length) {\n\t\tthrow new Error(\"Session root mailbox contains duplicate acknowledgement tokens.\");\n\t}\n\tif (replies.length > MAX_RETAINED_REPLIES) {\n\t\tthrow new Error(`Session root mailbox exceeds its ${MAX_RETAINED_REPLIES} retained reply limit.`);\n\t}\n\tif (replies.filter(isMandatory).length > MAX_MANDATORY_REPLIES) {\n\t\tthrow new Error(`Session root mailbox exceeds its ${MAX_MANDATORY_REPLIES} mandatory reply limit.`);\n\t}\n\tif (candidate.replayReceipts !== undefined && !Array.isArray(candidate.replayReceipts)) {\n\t\tthrow new Error(\"Session root mailbox contains invalid replay receipt state.\");\n\t}\n\tconst receiptIds = new Set<string>();\n\tconst replayReceipts = (candidate.replayReceipts ?? []).map((value): SessionRootReplyReplayReceipt => {\n\t\tif (!value || typeof value !== \"object\" || Array.isArray(value)) {\n\t\t\tthrow new Error(\"Session root mailbox contains invalid replay receipt state.\");\n\t\t}\n\t\tconst receipt = value as Partial<SessionRootReplyReplayReceipt>;\n\t\tconst messageId = requiredBoundedString(receipt.messageId, MAX_MESSAGE_ID_CHARS, \"replay message id\");\n\t\tconst sourceAgentId = requiredBoundedString(receipt.sourceAgentId, MAX_IDENTITY_CHARS, \"replay source agent id\");\n\t\tconst requestMessageId = requiredBoundedString(\n\t\t\treceipt.requestMessageId,\n\t\t\tMAX_MESSAGE_ID_CHARS,\n\t\t\t\"replay request message id\",\n\t\t);\n\t\tconst threadId =\n\t\t\treceipt.threadId === undefined\n\t\t\t\t? undefined\n\t\t\t\t: requiredBoundedString(receipt.threadId, MAX_IDENTITY_CHARS, \"replay thread id\");\n\t\tif (\n\t\t\tmessageId !== sessionRootReplyMessageId(parentSessionId, sourceAgentId, requestMessageId) ||\n\t\t\ttypeof receipt.contentDigest !== \"string\" ||\n\t\t\t!/^[a-f0-9]{64}$/.test(receipt.contentDigest) ||\n\t\t\t(receipt.sourceOwned !== undefined && receipt.sourceOwned !== true) ||\n\t\t\treceiptIds.has(messageId)\n\t\t) {\n\t\t\tthrow new Error(\"Session root mailbox contains invalid replay receipt state.\");\n\t\t}\n\t\treceiptIds.add(messageId);\n\t\treturn {\n\t\t\tmessageId,\n\t\t\tsourceAgentId,\n\t\t\trequestMessageId,\n\t\t\t...(threadId ? { threadId } : {}),\n\t\t\tcontentDigest: receipt.contentDigest,\n\t\t\t...(receipt.sourceOwned ? { sourceOwned: true } : {}),\n\t\t};\n\t});\n\tif (replayReceipts.length > MAX_REPLAY_RECEIPTS) {\n\t\tthrow new Error(\"Session root mailbox exceeds its replay receipt bound.\");\n\t}\n\tif (replayReceipts.filter((receipt) => !receipt.sourceOwned).length > MAX_DEFAULT_REPLAY_RECEIPTS) {\n\t\tthrow new Error(\"Session root mailbox exceeds its default replay receipt reserve.\");\n\t}\n\tfor (const reply of replies) {\n\t\tconst receipt = replayReceipts.find((candidate) => candidate.messageId === reply.messageId);\n\t\tif (receipt && !sameReplayIntent(receipt, reply)) {\n\t\t\tthrow new Error(\"Session root mailbox reply conflicts with its durable replay receipt.\");\n\t\t}\n\t}\n\treturn { version: 1, parentSessionId, replies, replayReceipts };\n}\n\nfunction normalizeQuery(\n\tquery: SessionRootReplyQuery,\n): Required<Pick<SessionRootReplyQuery, \"maxMessages\">> & Omit<SessionRootReplyQuery, \"maxMessages\"> {\n\tconst maxMessages = query.maxMessages ?? DEFAULT_PAGE_SIZE;\n\tif (!Number.isSafeInteger(maxMessages) || maxMessages < 1 || maxMessages > MAX_MANDATORY_REPLIES) {\n\t\tthrow new TypeError(`Session root reply page size must be from 1 through ${MAX_MANDATORY_REPLIES}.`);\n\t}\n\tconst sourceAgentId = optionalIdentity(query.sourceAgentId, \"source agent id\");\n\tconst requestMessageId = optionalIdentity(query.requestMessageId, \"request message id\");\n\treturn {\n\t\tmaxMessages,\n\t\t...(sourceAgentId ? { sourceAgentId } : {}),\n\t\t...(requestMessageId ? { requestMessageId } : {}),\n\t};\n}\n\nfunction abortReason(signal: AbortSignal): unknown {\n\treturn signal.reason ?? new Error(\"Session root reply wait was aborted.\");\n}\n\n/** Bounded durable inbox for accepted worker replies addressed to one foreground session root. */\nexport class SessionRootMailbox {\n\tprivate readonly parentSessionId: string;\n\tprivate readonly file: string;\n\n\tconstructor(options: SessionRootMailboxOptions) {\n\t\tthis.parentSessionId = requiredIdentity(options.parentSessionId, \"parent session id\");\n\t\tthis.file = sessionRootMailboxFile(options.agentDir, this.parentSessionId);\n\t}\n\n\t/** Validate and size one canonical reply without mutating durable inbox state. */\n\tassertReplyInput(input: SessionRootReplyInput): void {\n\t\tcreateSessionRootReply(this.parentSessionId, input);\n\t}\n\n\tenqueueReply(input: SessionRootReplyInput): SessionRootReplyAcceptance {\n\t\treturn this.enqueueReplyWithAuthority(input, false);\n\t}\n\n\t/** Enqueue a reply whose permanent replay authority is the source worker's durable receipt. */\n\tenqueueSourceOwnedReply(input: SessionRootReplyInput): SessionRootReplyAcceptance {\n\t\treturn this.enqueueReplyWithAuthority(input, true);\n\t}\n\n\tprivate enqueueReplyWithAuthority(input: SessionRootReplyInput, sourceOwned: boolean): SessionRootReplyAcceptance {\n\t\tconst reply = createSessionRootReply(this.parentSessionId, input);\n\t\tconst { sourceAgentId, requestMessageId, threadId, content } = reply;\n\t\tlet accepted = reply;\n\t\tlet created = false;\n\t\tlet completedReplay = false;\n\t\tthis.update((state) => {\n\t\t\tconst existing = state.replies.find((candidate) => candidate.messageId === reply.messageId);\n\t\t\tconst receipt = state.replayReceipts.find((candidate) => candidate.messageId === reply.messageId);\n\t\t\tif (existing) {\n\t\t\t\tif (\n\t\t\t\t\texisting.sourceAgentId !== sourceAgentId ||\n\t\t\t\t\texisting.requestMessageId !== requestMessageId ||\n\t\t\t\t\texisting.threadId !== threadId ||\n\t\t\t\t\texisting.content !== content\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\"Session root reply identity conflicts with an existing reply.\");\n\t\t\t\t}\n\t\t\t\tif (receipt && !sameReplayIntent(receipt, reply)) {\n\t\t\t\t\tthrow new Error(\"Session root reply identity conflicts with its durable replay receipt.\");\n\t\t\t\t}\n\t\t\t\taccepted = existing;\n\t\t\t\treturn receipt\n\t\t\t\t\t? state\n\t\t\t\t\t: { ...state, replayReceipts: [...state.replayReceipts, replayReceipt(existing, sourceOwned)] };\n\t\t\t}\n\t\t\tif (receipt) {\n\t\t\t\tif (!sameReplayIntent(receipt, reply)) {\n\t\t\t\t\tthrow new Error(\"Session root reply identity conflicts with its durable replay receipt.\");\n\t\t\t\t}\n\t\t\t\tcompletedReplay = true;\n\t\t\t\treturn state;\n\t\t\t}\n\t\t\tif (state.replies.filter(isMandatory).length >= MAX_MANDATORY_REPLIES) {\n\t\t\t\tthrow new Error(`Session root mailbox reached its ${MAX_MANDATORY_REPLIES} mandatory reply limit.`);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!sourceOwned &&\n\t\t\t\tstate.replayReceipts.filter((candidate) => !candidate.sourceOwned).length >= MAX_DEFAULT_REPLAY_RECEIPTS\n\t\t\t) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Session root mailbox default replay receipt capacity reached its ${MAX_DEFAULT_REPLAY_RECEIPTS} entry limit.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (state.replies.some((candidate) => candidate.ackToken === reply.ackToken)) {\n\t\t\t\tthrow new Error(\"Session root mailbox could not allocate a unique acknowledgement token.\");\n\t\t\t}\n\t\t\tcreated = true;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\treplies: [...state.replies, reply],\n\t\t\t\treplayReceipts: [...state.replayReceipts, replayReceipt(reply, sourceOwned)],\n\t\t\t};\n\t\t}, !sourceOwned);\n\t\tif (created) this.notify();\n\t\tif (completedReplay) return { status: \"completed_replay\", messageId: reply.messageId, created: false };\n\t\treturn {\n\t\t\tstatus: \"retained\",\n\t\t\tmessageId: accepted.messageId,\n\t\t\treply: structuredClone(accepted),\n\t\t\tcreated,\n\t\t};\n\t}\n\n\tpendingReplies(query: SessionRootReplyQuery = {}): SessionRootReply[] {\n\t\tconst normalized = normalizeQuery(query);\n\t\treturn this.read()\n\t\t\t.replies.filter(\n\t\t\t\t(reply) =>\n\t\t\t\t\treply.acknowledgedAt === undefined &&\n\t\t\t\t\t(normalized.sourceAgentId === undefined || reply.sourceAgentId === normalized.sourceAgentId) &&\n\t\t\t\t\t(normalized.requestMessageId === undefined || reply.requestMessageId === normalized.requestMessageId),\n\t\t\t)\n\t\t\t.slice(0, normalized.maxMessages)\n\t\t\t.map((reply) => structuredClone(reply));\n\t}\n\n\tretainedReplies(): SessionRootReply[] {\n\t\treturn this.read().replies.map((reply) => structuredClone(reply));\n\t}\n\n\tgetReply(messageId: string): SessionRootReply | undefined {\n\t\tconst normalized = requiredIdentity(messageId, \"message id\");\n\t\tconst reply = this.read().replies.find((candidate) => candidate.messageId === normalized);\n\t\treturn reply ? structuredClone(reply) : undefined;\n\t}\n\n\tmarkSourceReconciled(messageId: string): boolean {\n\t\tconst normalized = requiredIdentity(messageId, \"message id\");\n\t\tlet accepted = false;\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst existing = state.replies.find((reply) => reply.messageId === normalized);\n\t\t\tif (!existing) return state;\n\t\t\taccepted = true;\n\t\t\tif (existing.sourceReconciledAt !== undefined) return state;\n\t\t\tchanged = true;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\treplies: state.replies.map((reply) =>\n\t\t\t\t\treply.messageId === normalized\n\t\t\t\t\t\t? { ...reply, sourceReconciledAt: transitionTimestamp(reply.createdAt) }\n\t\t\t\t\t\t: reply,\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn accepted;\n\t}\n\n\treleaseSourceReplayReceipt(messageId: string): boolean {\n\t\tconst normalized = requiredIdentity(messageId, \"message id\");\n\t\tlet released = false;\n\t\tthis.update((state) => ({\n\t\t\t...state,\n\t\t\treplayReceipts: state.replayReceipts.filter((receipt) => {\n\t\t\t\tif (receipt.messageId !== normalized || !receipt.sourceOwned) return true;\n\t\t\t\treleased = true;\n\t\t\t\treturn false;\n\t\t\t}),\n\t\t}));\n\t\tif (released) this.notify();\n\t\treturn released;\n\t}\n\n\tacknowledge(messageId: string, ackToken: string): boolean {\n\t\tconst normalizedMessageId = requiredIdentity(messageId, \"message id\");\n\t\tconst normalizedToken = inputAckToken(ackToken);\n\t\tlet accepted = false;\n\t\tlet changed = false;\n\t\tthis.update((state) => {\n\t\t\tconst existing = state.replies.find((reply) => reply.messageId === normalizedMessageId);\n\t\t\tif (!existing) return state;\n\t\t\tif (existing.ackToken !== normalizedToken) {\n\t\t\t\tthrow new Error(\"Session root reply acknowledgement token does not match.\");\n\t\t\t}\n\t\t\taccepted = true;\n\t\t\tif (existing.acknowledgedAt !== undefined) return state;\n\t\t\tchanged = true;\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\treplies: state.replies.map((reply) =>\n\t\t\t\t\treply.messageId === normalizedMessageId\n\t\t\t\t\t\t? { ...reply, acknowledgedAt: transitionTimestamp(reply.createdAt) }\n\t\t\t\t\t\t: reply,\n\t\t\t\t),\n\t\t\t};\n\t\t});\n\t\tif (changed) this.notify();\n\t\treturn accepted;\n\t}\n\n\tasync waitForReplies(options: SessionRootReplyWaitOptions = {}): Promise<SessionRootReplyWaitResult> {\n\t\tconst query = normalizeQuery(options);\n\t\tconst timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;\n\t\tif (!Number.isSafeInteger(timeoutMs) || timeoutMs < 0 || timeoutMs > MAX_WAIT_TIMEOUT_MS) {\n\t\t\tthrow new TypeError(`Session root reply wait timeout must be from 0 through ${MAX_WAIT_TIMEOUT_MS}.`);\n\t\t}\n\t\tif (options.signal?.aborted) throw abortReason(options.signal);\n\t\tconst currentReplies = () => this.pendingReplies(query);\n\t\tconst immediate = currentReplies();\n\t\tif (immediate.length > 0) return { replies: immediate, timedOut: false };\n\t\treturn new Promise<SessionRootReplyWaitResult>((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tlet unsubscribe = (): void => undefined;\n\t\t\tlet timeout: ReturnType<typeof setTimeout> | undefined;\n\t\t\tconst signal = options.signal;\n\t\t\tconst cleanup = () => {\n\t\t\t\tunsubscribe();\n\t\t\t\tif (timeout) clearTimeout(timeout);\n\t\t\t\tif (signal) signal.removeEventListener(\"abort\", onAbort);\n\t\t\t};\n\t\t\tconst settleFromPredicate = () => {\n\t\t\t\tif (settled) return;\n\t\t\t\tlet replies: SessionRootReply[];\n\t\t\t\ttry {\n\t\t\t\t\treplies = currentReplies();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tcleanup();\n\t\t\t\t\treject(error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (replies.length === 0) return;\n\t\t\t\tsettled = true;\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ replies, timedOut: false });\n\t\t\t};\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\tcleanup();\n\t\t\t\treject(abortReason(signal!));\n\t\t\t};\n\t\t\tunsubscribe = this.subscribe(settleFromPredicate);\n\t\t\tif (settled) {\n\t\t\t\tunsubscribe();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (signal) {\n\t\t\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\t\tif (signal.aborted) {\n\t\t\t\t\tonAbort();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\tcleanup();\n\t\t\t\tresolve({ replies: [], timedOut: true });\n\t\t\t}, timeoutMs);\n\t\t\tif (typeof timeout === \"object\" && timeout && \"unref\" in timeout) timeout.unref();\n\t\t\tsettleFromPredicate();\n\t\t});\n\t}\n\n\t/**\n\t * Subscribes to process-local mutations for every mailbox instance backed by this file.\n\t * Callers must unsubscribe; durable cross-process delivery remains the control owner's responsibility.\n\t */\n\tsubscribe(listener: () => void): () => void {\n\t\tconst listeners = listenersByMailboxFile.get(this.file) ?? new Set<() => void>();\n\t\tlistenersByMailboxFile.set(this.file, listeners);\n\t\tlisteners.add(listener);\n\t\tlet subscribed = true;\n\t\treturn () => {\n\t\t\tif (!subscribed) return;\n\t\t\tsubscribed = false;\n\t\t\tlisteners.delete(listener);\n\t\t\tif (listeners.size === 0 && listenersByMailboxFile.get(this.file) === listeners) {\n\t\t\t\tlistenersByMailboxFile.delete(this.file);\n\t\t\t}\n\t\t};\n\t}\n\n\tprivate notify(): void {\n\t\tconst listeners = listenersByMailboxFile.get(this.file);\n\t\tif (!listeners) return;\n\t\tfor (const listener of [...listeners]) {\n\t\t\ttry {\n\t\t\t\tlistener();\n\t\t\t} catch {\n\t\t\t\t// Subscribers are advisory; the durable reply mutation remains authoritative.\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate read(): SessionRootMailboxState {\n\t\tif (!existsSync(this.file)) {\n\t\t\treturn { version: 1, parentSessionId: this.parentSessionId, replies: [], replayReceipts: [] };\n\t\t}\n\t\treturn parseState(\n\t\t\treadBoundedTextFileSync(this.file, MAX_MAILBOX_BYTES, \"Session root mailbox durable size bound\"),\n\t\t\tthis.parentSessionId,\n\t\t);\n\t}\n\n\tprivate update(\n\t\tmutator: (state: SessionRootMailboxState) => SessionRootMailboxState,\n\t\tdefaultAdmission = false,\n\t): void {\n\t\twithFileLockSync(this.file, () => {\n\t\t\tconst state = this.read();\n\t\t\tconst previousDefaultBytes = lifecycleProjectedEncodedBytes(state);\n\t\t\tconst mutated = mutator(state);\n\t\t\tlet next = {\n\t\t\t\t...mutated,\n\t\t\t\treplies: pruneRetainedReplies(mutated.replies),\n\t\t\t\treplayReceipts: [...mutated.replayReceipts],\n\t\t\t};\n\t\t\twhile (\n\t\t\t\tlifecycleProjectedEncodedBytes(next) > (defaultAdmission ? MAX_DEFAULT_MAILBOX_BYTES : MAX_MAILBOX_BYTES)\n\t\t\t) {\n\t\t\t\tconst oldestCompletedIndex = next.replies.findIndex((reply) => !isMandatory(reply));\n\t\t\t\tif (oldestCompletedIndex >= 0) {\n\t\t\t\t\tnext = { ...next, replies: next.replies.filter((_, index) => index !== oldestCompletedIndex) };\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tfor (const reply of next.replies) assertReplyEncodedByteBound(reply);\n\t\t\tconst addedReplayReceipt = mutated.replayReceipts.length > state.replayReceipts.length;\n\t\t\tconst bytesWithoutAddedReceipt = addedReplayReceipt\n\t\t\t\t? lifecycleProjectedEncodedBytes({ ...next, replayReceipts: next.replayReceipts.slice(0, -1) })\n\t\t\t\t: undefined;\n\t\t\tconst nextDefaultBytes = lifecycleProjectedEncodedBytes(next);\n\t\t\tif (\n\t\t\t\tdefaultAdmission &&\n\t\t\t\tnextDefaultBytes > MAX_DEFAULT_MAILBOX_BYTES &&\n\t\t\t\tnextDefaultBytes > previousDefaultBytes\n\t\t\t) {\n\t\t\t\tthrow new Error(\"Session root mailbox default replay receipt storage reserve is exhausted.\");\n\t\t\t}\n\t\t\tassertSessionRootMailboxBounds(\n\t\t\t\tnext.replies.length,\n\t\t\t\tnext.replayReceipts.length,\n\t\t\t\tstate.replayReceipts.length,\n\t\t\t\tnextDefaultBytes,\n\t\t\t\tbytesWithoutAddedReceipt,\n\t\t\t);\n\t\t\tif (JSON.stringify(next) !== JSON.stringify(state)) {\n\t\t\t\twriteFileAtomicSync(this.file, `${JSON.stringify(next)}\\n`, { mode: 0o600 });\n\t\t\t}\n\t\t});\n\t}\n}\n"]}
@@ -1,10 +1,11 @@
1
1
  import type { AgentMessage } from "@caupulican/pi-agent-core";
2
2
  import type { WorkerDelegationRunOutcome } from "../agent-session-contracts.ts";
3
3
  import type { LaneRecord } from "../autonomy/lane-tracker.ts";
4
- import type { AgentBindingContract } from "../orchestration/contracts.ts";
4
+ import { type AgentBindingContract } from "../orchestration/contracts.ts";
5
5
  import type { AttemptRuntimeState } from "../orchestration/task-runtime.ts";
6
- import { type WorkerAgentControlPort, type WorkerAgentControlScope, type WorkerAgentMessageOptions, type WorkerAgentTranscriptOptions } from "./worker-agent-control.ts";
7
- import { type WorkerConversation } from "./worker-conversation-store.ts";
6
+ import { type SessionRootReply, type SessionRootReplyQuery, type SessionRootReplyWaitOptions, type SessionRootReplyWaitResult } from "./session-root-mailbox.ts";
7
+ import { type SessionRootWorkerAgentMessageOptions, type WorkerAgentActivity, type WorkerAgentBroadcastOptions, type WorkerAgentBroadcastResult, type WorkerAgentControlPort, type WorkerAgentControlScope, type WorkerAgentMessageOptions, type WorkerAgentReplyResult, type WorkerAgentRetireResult, type WorkerAgentTaskStartOptions, type WorkerAgentTranscriptOptions, type WorkerAgentView, type WorkerAgentWaitMode } from "./worker-agent-control.ts";
8
+ import { type WorkerConversation, WorkerConversationStore } from "./worker-conversation-store.ts";
8
9
  import type { WorkerDelegationRequest } from "./worker-delegation-request.ts";
9
10
  import type { WorkerDispatchScheduler } from "./worker-dispatch-scheduler.ts";
10
11
  import type { WorkerLifecycle } from "./worker-lifecycle.ts";
@@ -12,15 +13,19 @@ export interface WorkerAgentControlCoordinatorOptions {
12
13
  agentDir: string;
13
14
  parentSessionId: string;
14
15
  processOwnerId: string;
16
+ /** Controller-owned composition dependency; standalone coordinators receive a private default. */
17
+ conversationStore?: WorkerConversationStore;
15
18
  isControlAvailable(): boolean;
16
19
  getLifecycle(): WorkerLifecycle;
17
20
  recoveredRequest(attempt: AttemptRuntimeState): WorkerDelegationRequest;
18
21
  run(request: WorkerDelegationRequest, record: LaneRecord): Promise<WorkerDelegationRunOutcome>;
19
- scheduler: Pick<WorkerDispatchScheduler, "enqueue" | "track" | "drain">;
22
+ scheduler: Pick<WorkerDispatchScheduler, "enqueue" | "track" | "drain" | "dropQueued">;
20
23
  statusChanged(): void;
21
24
  abortLane(laneId: string, reasonCode: string): void;
22
25
  cancelLane(laneId: string, reasonCode: string): LaneRecord | undefined;
23
- yieldCapacity?(callerAgentId: string, targetAgentId: string): () => void;
26
+ taskStartHeadroomSkipReason?(agent: AgentBindingContract): string | undefined;
27
+ yieldCapacity?(callerAgentId: string, capacityOwnerAgentId: string): () => void;
28
+ warn?(message: string): void;
24
29
  }
25
30
  /**
26
31
  * Sole owner of model-facing logical-agent controls and their durable inboxes.
@@ -33,14 +38,24 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
33
38
  private readonly mailboxes;
34
39
  private readonly stateListeners;
35
40
  private readonly conversations;
41
+ private readonly reconcilingTaskBearingAgentIds;
42
+ private readonly taskBearingContinuationAgentIds;
43
+ private readonly sessionRootMailbox;
44
+ private readonly sessionRootAddress;
45
+ private readonly sessionRootReconciliationFailures;
46
+ private readonly workerReplyReconciliationFailures;
36
47
  constructor(options: WorkerAgentControlCoordinatorOptions);
37
48
  getProcessOwnerId(): string;
38
- listWorkerAgents(scope?: WorkerAgentControlScope): AgentBindingContract[];
49
+ listWorkerAgents(scope?: WorkerAgentControlScope): WorkerAgentView[];
50
+ getWorkerTaskSessionView(): ReturnType<WorkerAgentControlPort["getWorkerTaskSessionView"]>;
51
+ /** Snapshot-only activity projection. Unlike waitForWorkerAgent, this never yields scheduler capacity. */
52
+ getWorkerAgentActivity(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentActivity;
39
53
  readWorkerAgentTranscript(agentId: string, options?: WorkerAgentTranscriptOptions): ReturnType<WorkerAgentControlPort["readWorkerAgentTranscript"]>;
40
54
  sendWorkerAgentMessage(agentId: string, message: string, options?: WorkerAgentMessageOptions): {
41
55
  messageId: string;
42
56
  queued: true;
43
57
  };
58
+ broadcastWorkerAgentMessage(agentIds: readonly string[], message: string, options: WorkerAgentBroadcastOptions): WorkerAgentBroadcastResult;
44
59
  followUpWorkerAgent(agentId: string, message: string, options?: WorkerAgentMessageOptions): {
45
60
  started: boolean;
46
61
  steering: boolean;
@@ -48,6 +63,51 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
48
63
  record?: LaneRecord;
49
64
  skipReason?: string;
50
65
  };
66
+ sendSessionRootWorkerAgentMessage(agentId: string, message: string, options?: SessionRootWorkerAgentMessageOptions): {
67
+ messageId: string;
68
+ queued: true;
69
+ };
70
+ followUpSessionRootWorkerAgent(agentId: string, message: string, options?: SessionRootWorkerAgentMessageOptions): {
71
+ started: boolean;
72
+ steering: boolean;
73
+ messageId: string;
74
+ record?: LaneRecord;
75
+ skipReason?: string;
76
+ };
77
+ replyToWorkerAgentMessage(sourceAgentId: string, message: string, replyToMessageId: string): WorkerAgentReplyResult;
78
+ listSessionRootReplies(query?: SessionRootReplyQuery): SessionRootReply[];
79
+ waitForSessionRootReplies(options?: SessionRootReplyWaitOptions): Promise<SessionRootReplyWaitResult>;
80
+ acknowledgeSessionRootReply(messageId: string, ackToken: string): boolean;
81
+ private reconcileSessionRootSurface;
82
+ private followUpAcceptedAgent;
83
+ /**
84
+ * Atomically transition one idle persistent agent to a fresh task. There is no await between the
85
+ * activity check and durable prepare, so competing model calls cannot turn the loser into steering.
86
+ */
87
+ startWorkerAgentTask(agentId: string, message: string, options?: WorkerAgentTaskStartOptions): {
88
+ started: boolean;
89
+ steering: false;
90
+ messageId: string;
91
+ record?: LaneRecord;
92
+ skipReason?: string;
93
+ };
94
+ private replayWorkerAgentTask;
95
+ private startIdleAgentTask;
96
+ private assertAttemptDependencyIdentity;
97
+ private sessionRootMessageOptions;
98
+ private rejectGenericReplyOptions;
99
+ private assertAgentAcceptsNewMessages;
100
+ private routeWorkerReplyToAgent;
101
+ private routeWorkerReplyToSessionRoot;
102
+ private rollbackReplyReservationAfterTargetRejection;
103
+ private deliverMandatoryControlToRetiredTranscript;
104
+ private reconcileMandatoryControlTranscript;
105
+ private reconcileControlTranscript;
106
+ reconcileSessionRootReplies(): void;
107
+ private reconcileSessionRootReply;
108
+ private recordSessionRootReconciliationFailure;
109
+ private releaseSessionRootSourceReceiptBestEffort;
110
+ private notifyStateChangedBestEffort;
51
111
  interruptWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): {
52
112
  interrupted: boolean;
53
113
  reason?: string;
@@ -58,10 +118,13 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
58
118
  skipReason?: string;
59
119
  };
60
120
  cancelWorkerAgent(agentId: string, reasonCode?: string, scope?: WorkerAgentControlScope): LaneRecord | undefined;
61
- /** Event-driven wait: durable projection plus state/mailbox notifications, never output polling. */
121
+ retireWorkerAgent(agentId: string, scope?: WorkerAgentControlScope): WorkerAgentRetireResult;
122
+ /** Event-driven wait: durable projection plus one shared state notification, never output polling. */
62
123
  waitForWorkerAgent(agentId: string, timeoutMs?: number, scope?: WorkerAgentControlScope): Promise<{
63
- status: "active" | "suspended" | "idle" | "unknown";
124
+ status: WorkerAgentActivity;
64
125
  }>;
126
+ /** One event-driven wait set with one shared caller-capacity lease; never per-agent promise polling. */
127
+ waitForWorkerAgents(agentIds: readonly string[], mode: WorkerAgentWaitMode, timeoutMs?: number, scope?: WorkerAgentControlScope): ReturnType<WorkerAgentControlPort["waitForWorkerAgents"]>;
65
128
  /** Read mailbox items at a safe boundary and reconcile the narrow append-before-ack crash window. */
66
129
  mailboxMessagesForConversation(agentId: string, conversation: WorkerConversation, includeFollowUp: boolean): AgentMessage[];
67
130
  /** Acknowledge only after the exact child transcript message has been durably appended. */
@@ -71,6 +134,15 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
71
134
  }): void;
72
135
  /** Called by controller-owned execution transitions after lifecycle state changed. */
73
136
  signalStateChanged(): void;
137
+ /** Restart/idle boundary: adopt or schedule every oldest pending executable mailbox intent. */
138
+ reconcileTaskBearingMailboxTurns(): void;
139
+ private replyReconciliationAgents;
140
+ private reconcileWorkerReplyOutboxes;
141
+ private reconcileWorkerReplyOutboxesBestEffort;
142
+ private reconcileWorkerReplyAcknowledgements;
143
+ private recordWorkerReplyReconciliationFailure;
144
+ private reconcileCompletedWorkerReplyAcknowledgement;
145
+ private notifyStateListeners;
74
146
  /** Route a terminal child edge to its owning parent without injecting into an active model turn. */
75
147
  deliverWorkerTerminalHandoff(args: {
76
148
  parentAgentId: string;
@@ -80,16 +152,37 @@ export declare class WorkerAgentControlCoordinator implements WorkerAgentControl
80
152
  }): {
81
153
  messageId: string;
82
154
  started: boolean;
155
+ accepted: boolean;
156
+ skipReason?: string;
83
157
  };
158
+ private reconcileTaskBearingMailbox;
159
+ private scheduleTaskBearingReconciliationContinuation;
160
+ private reconcileTaskBearingTranscriptDelivery;
161
+ private settleTerminalTaskBearingMessage;
162
+ private controlMessageAttempt;
163
+ private controlMessageAttemptById;
164
+ private scheduleCorrelatedTaskBearingAttempt;
165
+ private scheduleTaskBearingAttempt;
166
+ private enableAttemptAccountingForNextTask;
84
167
  private requireControl;
168
+ private canonicalAgentIdSet;
85
169
  private requireKnownAgent;
86
- private requireVisibleAgent;
170
+ private requireSessionPeer;
87
171
  private requireControllableAgent;
88
172
  private latestAgentAttempt;
173
+ private latestAttemptsByAgent;
174
+ private activityForAgent;
175
+ private projectAgentActivity;
89
176
  private controlledAgentAttempt;
90
177
  private getMailbox;
178
+ private isAcceptedControlReplay;
179
+ private reusableTaskAdmissionSkipReason;
91
180
  private subscribeStateChanges;
181
+ private acknowledgeDeliveredMailboxMessage;
182
+ private beginWorkerReplyAcknowledgement;
92
183
  private enqueuePeerMessage;
184
+ private workerAgentView;
185
+ private assertIdempotencyTarget;
93
186
  private mailboxMessage;
94
187
  }
95
188
  //# sourceMappingURL=worker-agent-control-coordinator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-agent-control-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-agent-control-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"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"}