@caupulican/pi-adaptative 0.93.2 → 0.93.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/bundled-resources/skills/worker-profile-writer/SKILL.md +6 -6
  3. package/dist/cli/args.js +1 -1
  4. package/dist/cli/args.js.map +1 -1
  5. package/dist/core/agent-session-contracts.d.ts +2 -2
  6. package/dist/core/agent-session-contracts.d.ts.map +1 -1
  7. package/dist/core/agent-session-contracts.js.map +1 -1
  8. package/dist/core/agent-session.d.ts.map +1 -1
  9. package/dist/core/agent-session.js +16 -11
  10. package/dist/core/agent-session.js.map +1 -1
  11. package/dist/core/autonomy/approval-gate.d.ts +1 -0
  12. package/dist/core/autonomy/approval-gate.d.ts.map +1 -1
  13. package/dist/core/autonomy/approval-gate.js +4 -1
  14. package/dist/core/autonomy/approval-gate.js.map +1 -1
  15. package/dist/core/autonomy/composite-tool-gate.d.ts +13 -0
  16. package/dist/core/autonomy/composite-tool-gate.d.ts.map +1 -0
  17. package/dist/core/autonomy/composite-tool-gate.js +44 -0
  18. package/dist/core/autonomy/composite-tool-gate.js.map +1 -0
  19. package/dist/core/autonomy/envelope-enforcement.d.ts +2 -0
  20. package/dist/core/autonomy/envelope-enforcement.d.ts.map +1 -1
  21. package/dist/core/autonomy/envelope-enforcement.js +48 -7
  22. package/dist/core/autonomy/envelope-enforcement.js.map +1 -1
  23. package/dist/core/autonomy/gates.d.ts.map +1 -1
  24. package/dist/core/autonomy/gates.js +48 -76
  25. package/dist/core/autonomy/gates.js.map +1 -1
  26. package/dist/core/autonomy/path-scope.d.ts.map +1 -1
  27. package/dist/core/autonomy/path-scope.js +7 -7
  28. package/dist/core/autonomy/path-scope.js.map +1 -1
  29. package/dist/core/autonomy/subagent-prompt.d.ts +1 -1
  30. package/dist/core/autonomy/subagent-prompt.js.map +1 -1
  31. package/dist/core/background-tool-task-controller.d.ts +2 -0
  32. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  33. package/dist/core/background-tool-task-controller.js +13 -5
  34. package/dist/core/background-tool-task-controller.js.map +1 -1
  35. package/dist/core/compaction-controller.d.ts +3 -0
  36. package/dist/core/compaction-controller.d.ts.map +1 -1
  37. package/dist/core/compaction-controller.js +132 -97
  38. package/dist/core/compaction-controller.js.map +1 -1
  39. package/dist/core/cost-guard.js +1 -1
  40. package/dist/core/cost-guard.js.map +1 -1
  41. package/dist/core/delegation/session-root-mailbox.d.ts.map +1 -1
  42. package/dist/core/delegation/session-root-mailbox.js +14 -1
  43. package/dist/core/delegation/session-root-mailbox.js.map +1 -1
  44. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  45. package/dist/core/delegation/worker-agent-control-coordinator.js +6 -9
  46. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  47. package/dist/core/delegation/worker-attempt-executor.d.ts.map +1 -1
  48. package/dist/core/delegation/worker-attempt-executor.js +7 -5
  49. package/dist/core/delegation/worker-attempt-executor.js.map +1 -1
  50. package/dist/core/delegation/worker-authority-resolver.d.ts.map +1 -1
  51. package/dist/core/delegation/worker-authority-resolver.js +3 -2
  52. package/dist/core/delegation/worker-authority-resolver.js.map +1 -1
  53. package/dist/core/delegation/worker-delegation-request.d.ts +5 -2
  54. package/dist/core/delegation/worker-delegation-request.d.ts.map +1 -1
  55. package/dist/core/delegation/worker-delegation-request.js +1 -1
  56. package/dist/core/delegation/worker-delegation-request.js.map +1 -1
  57. package/dist/core/delegation/worker-execution-policy.d.ts.map +1 -1
  58. package/dist/core/delegation/worker-execution-policy.js +10 -8
  59. package/dist/core/delegation/worker-execution-policy.js.map +1 -1
  60. package/dist/core/foreground-recovery-controller.d.ts +2 -0
  61. package/dist/core/foreground-recovery-controller.d.ts.map +1 -1
  62. package/dist/core/foreground-recovery-controller.js +18 -9
  63. package/dist/core/foreground-recovery-controller.js.map +1 -1
  64. package/dist/core/goal-loop-controller.d.ts.map +1 -1
  65. package/dist/core/goal-loop-controller.js +3 -5
  66. package/dist/core/goal-loop-controller.js.map +1 -1
  67. package/dist/core/goals/goal-auto-continue-controller.d.ts.map +1 -1
  68. package/dist/core/goals/goal-auto-continue-controller.js +6 -0
  69. package/dist/core/goals/goal-auto-continue-controller.js.map +1 -1
  70. package/dist/core/goals/goal-session-controller.js +1 -1
  71. package/dist/core/goals/goal-session-controller.js.map +1 -1
  72. package/dist/core/goals/goal-state.d.ts.map +1 -1
  73. package/dist/core/goals/goal-state.js +1 -0
  74. package/dist/core/goals/goal-state.js.map +1 -1
  75. package/dist/core/goals/goal-tool-core.d.ts +2 -0
  76. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  77. package/dist/core/goals/goal-tool-core.js +1 -1
  78. package/dist/core/goals/goal-tool-core.js.map +1 -1
  79. package/dist/core/model-router-controller.js +2 -2
  80. package/dist/core/model-router-controller.js.map +1 -1
  81. package/dist/core/orchestration/capability-gateway.d.ts.map +1 -1
  82. package/dist/core/orchestration/capability-gateway.js +32 -9
  83. package/dist/core/orchestration/capability-gateway.js.map +1 -1
  84. package/dist/core/orchestration/lane-tool-manifests.js +5 -5
  85. package/dist/core/orchestration/lane-tool-manifests.js.map +1 -1
  86. package/dist/core/orchestration/policy-compiler.d.ts.map +1 -1
  87. package/dist/core/orchestration/policy-compiler.js +7 -0
  88. package/dist/core/orchestration/policy-compiler.js.map +1 -1
  89. package/dist/core/orchestration/profile-registry.js +2 -2
  90. package/dist/core/orchestration/profile-registry.js.map +1 -1
  91. package/dist/core/orchestration/risk-budget.d.ts +0 -10
  92. package/dist/core/orchestration/risk-budget.d.ts.map +1 -1
  93. package/dist/core/orchestration/risk-budget.js +0 -14
  94. package/dist/core/orchestration/risk-budget.js.map +1 -1
  95. package/dist/core/pipelines/active-context.d.ts +16 -0
  96. package/dist/core/pipelines/active-context.d.ts.map +1 -0
  97. package/dist/core/pipelines/active-context.js +29 -0
  98. package/dist/core/pipelines/active-context.js.map +1 -0
  99. package/dist/core/pipelines/context.d.ts +1 -1
  100. package/dist/core/pipelines/context.d.ts.map +1 -1
  101. package/dist/core/pipelines/context.js +40 -31
  102. package/dist/core/pipelines/context.js.map +1 -1
  103. package/dist/core/pipelines/discover.d.ts +5 -1
  104. package/dist/core/pipelines/discover.d.ts.map +1 -1
  105. package/dist/core/pipelines/discover.js +91 -33
  106. package/dist/core/pipelines/discover.js.map +1 -1
  107. package/dist/core/pipelines/increment.d.ts +0 -2
  108. package/dist/core/pipelines/increment.d.ts.map +1 -1
  109. package/dist/core/pipelines/increment.js +35 -13
  110. package/dist/core/pipelines/increment.js.map +1 -1
  111. package/dist/core/pipelines/index.d.ts +4 -3
  112. package/dist/core/pipelines/index.d.ts.map +1 -1
  113. package/dist/core/pipelines/index.js +4 -3
  114. package/dist/core/pipelines/index.js.map +1 -1
  115. package/dist/core/pipelines/run-state.d.ts +8 -0
  116. package/dist/core/pipelines/run-state.d.ts.map +1 -1
  117. package/dist/core/pipelines/run-state.js +172 -38
  118. package/dist/core/pipelines/run-state.js.map +1 -1
  119. package/dist/core/pipelines/types.d.ts +2 -0
  120. package/dist/core/pipelines/types.d.ts.map +1 -1
  121. package/dist/core/pipelines/types.js +21 -4
  122. package/dist/core/pipelines/types.js.map +1 -1
  123. package/dist/core/provider-prompt-contracts.d.ts +1 -0
  124. package/dist/core/provider-prompt-contracts.d.ts.map +1 -1
  125. package/dist/core/provider-prompt-contracts.js +6 -5
  126. package/dist/core/provider-prompt-contracts.js.map +1 -1
  127. package/dist/core/reflection-controller.js +1 -1
  128. package/dist/core/reflection-controller.js.map +1 -1
  129. package/dist/core/runtime-builder.d.ts +2 -1
  130. package/dist/core/runtime-builder.d.ts.map +1 -1
  131. package/dist/core/runtime-builder.js +46 -10
  132. package/dist/core/runtime-builder.js.map +1 -1
  133. package/dist/core/settings-manager.d.ts +5 -6
  134. package/dist/core/settings-manager.d.ts.map +1 -1
  135. package/dist/core/settings-manager.js +8 -13
  136. package/dist/core/settings-manager.js.map +1 -1
  137. package/dist/core/system-prompt-builder.d.ts +2 -4
  138. package/dist/core/system-prompt-builder.d.ts.map +1 -1
  139. package/dist/core/system-prompt-builder.js +35 -11
  140. package/dist/core/system-prompt-builder.js.map +1 -1
  141. package/dist/core/system-prompt.d.ts.map +1 -1
  142. package/dist/core/system-prompt.js +6 -1
  143. package/dist/core/system-prompt.js.map +1 -1
  144. package/dist/core/tasks/task-projection.d.ts +2 -0
  145. package/dist/core/tasks/task-projection.d.ts.map +1 -1
  146. package/dist/core/tasks/task-projection.js +2 -0
  147. package/dist/core/tasks/task-projection.js.map +1 -1
  148. package/dist/core/tasks/task-state.d.ts +10 -0
  149. package/dist/core/tasks/task-state.d.ts.map +1 -1
  150. package/dist/core/tasks/task-state.js +43 -2
  151. package/dist/core/tasks/task-state.js.map +1 -1
  152. package/dist/core/tool-capability-policy.d.ts +13 -3
  153. package/dist/core/tool-capability-policy.d.ts.map +1 -1
  154. package/dist/core/tool-capability-policy.js +136 -28
  155. package/dist/core/tool-capability-policy.js.map +1 -1
  156. package/dist/core/tools/delegate.d.ts +0 -16
  157. package/dist/core/tools/delegate.d.ts.map +1 -1
  158. package/dist/core/tools/delegate.js +21 -11
  159. package/dist/core/tools/delegate.js.map +1 -1
  160. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  161. package/dist/core/tools/edit-diff.js +45 -7
  162. package/dist/core/tools/edit-diff.js.map +1 -1
  163. package/dist/core/tools/edit.d.ts.map +1 -1
  164. package/dist/core/tools/edit.js +5 -1
  165. package/dist/core/tools/edit.js.map +1 -1
  166. package/dist/core/tools/goal.d.ts.map +1 -1
  167. package/dist/core/tools/goal.js +17 -1
  168. package/dist/core/tools/goal.js.map +1 -1
  169. package/dist/core/tools/orchestration-panel.d.ts.map +1 -1
  170. package/dist/core/tools/orchestration-panel.js +1 -0
  171. package/dist/core/tools/orchestration-panel.js.map +1 -1
  172. package/dist/core/tools/persistent-process-coordinator.d.ts.map +1 -1
  173. package/dist/core/tools/persistent-process-coordinator.js +12 -7
  174. package/dist/core/tools/persistent-process-coordinator.js.map +1 -1
  175. package/dist/core/tools/pipeline.d.ts +1 -0
  176. package/dist/core/tools/pipeline.d.ts.map +1 -1
  177. package/dist/core/tools/pipeline.js +95 -44
  178. package/dist/core/tools/pipeline.js.map +1 -1
  179. package/dist/core/tools/profile-writer.d.ts +0 -9
  180. package/dist/core/tools/profile-writer.d.ts.map +1 -1
  181. package/dist/core/tools/profile-writer.js +0 -3
  182. package/dist/core/tools/profile-writer.js.map +1 -1
  183. package/dist/core/tools/secret-store.d.ts.map +1 -1
  184. package/dist/core/tools/secret-store.js +2 -1
  185. package/dist/core/tools/secret-store.js.map +1 -1
  186. package/dist/core/tools/shell-session.d.ts.map +1 -1
  187. package/dist/core/tools/shell-session.js +6 -1
  188. package/dist/core/tools/shell-session.js.map +1 -1
  189. package/dist/core/tools/task-steps.d.ts +10 -0
  190. package/dist/core/tools/task-steps.d.ts.map +1 -1
  191. package/dist/core/tools/task-steps.js +70 -29
  192. package/dist/core/tools/task-steps.js.map +1 -1
  193. package/dist/core/tools/windows-shell-engine.d.ts.map +1 -1
  194. package/dist/core/tools/windows-shell-engine.js +6 -1
  195. package/dist/core/tools/windows-shell-engine.js.map +1 -1
  196. package/dist/core/util/bounded-file.d.ts +8 -0
  197. package/dist/core/util/bounded-file.d.ts.map +1 -1
  198. package/dist/core/util/bounded-file.js +81 -16
  199. package/dist/core/util/bounded-file.js.map +1 -1
  200. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  201. package/dist/modes/interactive/components/settings-selector.js +7 -16
  202. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  203. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  204. package/dist/modes/interactive/components/thinking-selector.js +2 -11
  205. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  206. package/dist/modes/interactive/local-model-commands.d.ts.map +1 -1
  207. package/dist/modes/interactive/local-model-commands.js +1 -10
  208. package/dist/modes/interactive/local-model-commands.js.map +1 -1
  209. package/dist/modes/interactive/thinking-level-descriptions.d.ts +4 -0
  210. package/dist/modes/interactive/thinking-level-descriptions.d.ts.map +1 -0
  211. package/dist/modes/interactive/thinking-level-descriptions.js +12 -0
  212. package/dist/modes/interactive/thinking-level-descriptions.js.map +1 -0
  213. package/docs/resources.md +1 -1
  214. package/docs/settings.md +7 -5
  215. package/docs/worker-profiles.md +3 -3
  216. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  217. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  218. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  219. package/examples/extensions/sandbox/package-lock.json +2 -2
  220. package/examples/extensions/sandbox/package.json +1 -1
  221. package/examples/extensions/with-deps/package-lock.json +2 -2
  222. package/examples/extensions/with-deps/package.json +1 -1
  223. package/npm-shrinkwrap.json +12 -12
  224. package/package.json +4 -4
@@ -1 +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
+ {"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\tlet finalReplies: SessionRootReply[];\n\t\t\t\ttry {\n\t\t\t\t\tfinalReplies = currentReplies();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (finalReplies.length > 0) {\n\t\t\t\t\tresolve({ replies: finalReplies, timedOut: false });\n\t\t\t\t} else {\n\t\t\t\t\tresolve({ replies: finalReplies, timedOut: true });\n\t\t\t\t}\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 +1 @@
1
- {"version":3,"file":"worker-agent-control-coordinator.d.ts","sourceRoot":"","sources":["../../../src/core/delegation/worker-agent-control-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,EACN,KAAK,oBAAoB,EAGzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAyB,MAAM,kCAAkC,CAAC;AACnG,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAG/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAEN,KAAK,oCAAoC,EACzC,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAG5B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE5B,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,eAAe,EACpB,KAAK,mBAAmB,EAGxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEN,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,MAAM,WAAW,oCAAoC;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;IAC5C,kBAAkB,IAAI,OAAO,CAAC;IAC9B,YAAY,IAAI,eAAe,CAAC;IAChC,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,uBAAuB,CAAC;IACxE,GAAG,CAAC,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC/F,SAAS,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC,CAAC;IACvF,aAAa,IAAI,IAAI,CAAC;IACtB,sBAAsB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAAC;IAChF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACvE,2BAA2B,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAC;IAC9E,mBAAmB,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;IAClG,gGAAgG;IAChG,kBAAkB,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,OAAO,GAAG,SAAS,CAAC;IACtE;;;OAGG;IACH,gCAAgC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IACpE,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAeD,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC;IAC7D,KAAK,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACjC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;KAC7B,CAAC;CACF,GAAG,MAAM,CAgCT;AAiBD;;;;;GAKG;AACH,qBAAa,6BAA8B,YAAW,sBAAsB;IAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAqB;IACpE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6B;IAC/E,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAA6B;IAE/E,YAAY,OAAO,EAAE,oCAAoC,EAQxD;IAED,iBAAiB,IAAI,MAAM,CAE1B;IAED,gBAAgB,CAAC,KAAK,GAAE,uBAA4B,GAAG,eAAe,EAAE,CAoBvE;IAED,wBAAwB,IAAI,UAAU,CAAC,sBAAsB,CAAC,0BAA0B,CAAC,CAAC,CAGzF;IAED,0GAA0G;IAC1G,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,mBAAmB,CAQhG;IAED,yBAAyB,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,4BAAiC,GACxC,UAAU,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,CAAC,CA0BjE;IAED,sBAAsB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACrC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAQrC;IAED,2BAA2B,CAC1B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,2BAA2B,GAClC,0BAA0B,CA4C5B;IAED,mBAAmB,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,yBAA8B,GACrC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAItG;IAED,iCAAiC,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oCAAyC,GAChD;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,IAAI,CAAA;KAAE,CAOrC;IAED,8BAA8B,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,oCAAyC,GAChD;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAOtG;IAED,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,sBAAsB,CA6ClH;IAED,sBAAsB,CAAC,KAAK,GAAE,qBAA0B,GAAG,gBAAgB,EAAE,CAI5E;IAED,yBAAyB,CAAC,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAIxG;IAED,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CASxE;IAED,OAAO,CAAC,2BAA2B;IAKnC,OAAO,CAAC,qBAAqB;IA6B7B;;;OAGG;IACH,oBAAoB,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,2BAAgC,GACvC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAyBpG;IAED,OAAO,CAAC,qBAAqB;IAwF7B,OAAO,CAAC,kBAAkB;IAoC1B,OAAO,CAAC,+BAA+B;IAmBvC,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,6BAA6B;IAUrC,OAAO,CAAC,uBAAuB;IAqJ/B,OAAO,CAAC,6BAA6B;IAoDrC,OAAO,CAAC,4CAA4C;IAsBpD,OAAO,CAAC,0CAA0C;IAWlD,OAAO,CAAC,mCAAmC;IAsB3C,OAAO,CAAC,0BAA0B;IA6BlC,2BAA2B,IAAI,IAAI,CAalC;IAED,OAAO,CAAC,yBAAyB;IAqEjC,OAAO,CAAC,sCAAsC;IAiB9C,OAAO,CAAC,yCAAyC;IAYjD,OAAO,CAAC,4BAA4B;IASpC,oBAAoB,CACnB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,uBAA4B,GACjC;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAa3C;IAED,iBAAiB,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,uBAA4B,GACjC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CA0BhE;IAED,iBAAiB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,SAAoB,EAC9B,KAAK,GAAE,uBAA4B,GACjC,UAAU,GAAG,SAAS,CAOxB;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,uBAA4B,GAAG,uBAAuB,CA+B/F;IAED,sGAAsG;IACtG,kBAAkB,CACjB,OAAO,EAAE,MAAM,EACf,SAAS,SAAS,EAClB,KAAK,GAAE,uBAA4B,GACjC,OAAO,CAAC;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAK7D;IAED,wGAAwG;IACxG,mBAAmB,CAClB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,mBAAmB,EACzB,SAAS,SAAS,EAClB,KAAK,GAAE,uBAA4B,GACjC,UAAU,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CA4K3D;IAED,qGAAqG;IACrG,8BAA8B,CAC7B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB,EAChC,eAAe,EAAE,OAAO,GACtB,YAAY,EAAE,CAkBhB;IAED,2FAA2F;IAC3F,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAI5F;IAED,sFAAsF;IACtF,kBAAkB,IAAI,IAAI,CAGzB;IAED,+FAA+F;IAC/F,gCAAgC,IAAI,IAAI,CAIvC;IAED,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,sCAAsC;IAY9C,OAAO,CAAC,oCAAoC;IAqC5C,OAAO,CAAC,sCAAsC;IAiB9C,OAAO,CAAC,4CAA4C;IAWpD,OAAO,CAAC,oBAAoB;IAU5B,oGAAoG;IACpG,4BAA4B,CAAC,IAAI,EAAE;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,UAAU,CAAC;KACnB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAgElF;IAED,OAAO,CAAC,2BAA2B;IAoHnC,OAAO,CAAC,6CAA6C;IASrD,OAAO,CAAC,sCAAsC;IAM9C,OAAO,CAAC,gCAAgC;IA4BxC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,oCAAoC;IAU5C,OAAO,CAAC,0BAA0B;IAsBlC,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,+BAA+B;IAQvC,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,kCAAkC;IAoB1C,OAAO,CAAC,+BAA+B;IAiCvC,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,cAAc;CAatB"}
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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"}
@@ -1047,12 +1047,12 @@ export class WorkerAgentControlCoordinator {
1047
1047
  if (typeof timeout === "object" && "unref" in timeout)
1048
1048
  timeout.unref();
1049
1049
  try {
1050
- // The deadlock check must run BEFORE yieldCallerForWait, not after: yielding releases
1051
- // the caller's write reservation (WorkerWriteReservationCoordinator.forgetLease), which
1052
- // erases the exact blockedByLocalLaneIds entries this check inspects. Checking after
1053
- // yielding always finds nothing blocked (the block was just released), so the intended
1054
- // "Worker wait would deadlock" rejection could never fire.
1055
- if (callerAgentId) {
1050
+ let yielded = false;
1051
+ if (callerAgentId && this.options.yieldCallerForWait) {
1052
+ restoreYield = this.options.yieldCallerForWait(callerAgentId);
1053
+ yielded = restoreYield !== undefined;
1054
+ }
1055
+ if (!yielded && callerAgentId) {
1056
1056
  const statuses = currentStatuses();
1057
1057
  const activeAgentIds = new Set(statuses.filter(({ status }) => status === "active").map(({ agentId }) => agentId));
1058
1058
  const blockedAgentIdSet = new Set(this.options.waitBlockedByCaller?.(callerAgentId, canonicalAgentIds) ?? []);
@@ -1062,9 +1062,6 @@ export class WorkerAgentControlCoordinator {
1062
1062
  failure = new Error(`Worker wait would deadlock: ${blockedAgentIds.join(", ")} ${blockedAgentIds.length === 1 ? "is" : "are"} blocked by the caller's write reservation.`);
1063
1063
  }
1064
1064
  }
1065
- if (!hasFailure && callerAgentId && this.options.yieldCallerForWait) {
1066
- restoreYield = this.options.yieldCallerForWait(callerAgentId);
1067
- }
1068
1065
  yieldInitialized = true;
1069
1066
  }
1070
1067
  catch (error) {