effect-agent 0.1.0-beta.11 → 0.1.0-beta.111

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 (553) hide show
  1. package/dist/Agent-1DMSO_Fl.mjs +86 -0
  2. package/dist/Agent-1DMSO_Fl.mjs.map +1 -0
  3. package/dist/Agent-DriBcXBN.d.mts +245 -0
  4. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  5. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  6. package/dist/AgentRuntime-CWkHuzyt.d.mts +346 -0
  7. package/dist/AgentRuntime-DLwPoEVH.mjs +4735 -0
  8. package/dist/AgentRuntime-DLwPoEVH.mjs.map +1 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-WwSIG_Z2.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-PyIgNYXF.mjs +6772 -0
  13. package/dist/DurableAgentRuntime-PyIgNYXF.mjs.map +1 -0
  14. package/dist/DurableFailpoint-mx3-nsxU.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/EventSource-BUYLmL77.d.mts +51 -0
  17. package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
  18. package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
  19. package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/InMemory.d.mts +24 -0
  22. package/dist/InMemory.mjs +24 -0
  23. package/dist/InMemory.mjs.map +1 -0
  24. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  25. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  26. package/dist/Messaging-DaZDlBqh.d.mts +1067 -0
  27. package/dist/Messaging-Dkg87ebg.d.mts +221 -0
  28. package/dist/MessagingHost-D89X7ma8.mjs +110 -0
  29. package/dist/MessagingHost-D89X7ma8.mjs.map +1 -0
  30. package/dist/MessagingHost-e1Sbzfao.d.mts +74 -0
  31. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  32. package/dist/Output-CAFJTAbP.d.mts +25 -0
  33. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  34. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  35. package/dist/PreparedInputAdmission-J3YK6LAm.d.mts +42 -0
  36. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  37. package/dist/Records-4qnRmniE.d.mts +4058 -0
  38. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  39. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  40. package/dist/RunJournal-BXrq0VIK.mjs +931 -0
  41. package/dist/RunJournal-BXrq0VIK.mjs.map +1 -0
  42. package/dist/RunOptions-BoESJrxw.d.mts +935 -0
  43. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  44. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  45. package/dist/Schedule-C2lH2kxY.d.mts +847 -0
  46. package/dist/Scheduling-DPb2QyAK.mjs +691 -0
  47. package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
  48. package/dist/Subagent-D9eYdGTl.mjs +1537 -0
  49. package/dist/Subagent-D9eYdGTl.mjs.map +1 -0
  50. package/dist/Subagent-F72tuaxy.d.mts +1360 -0
  51. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  52. package/dist/SubagentHost-CmiNTOBZ.d.mts +149 -0
  53. package/dist/Subscription-pQUv0QD6.d.mts +945 -0
  54. package/dist/SubscriptionInput-DdJOiNMY.d.mts +41 -0
  55. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  56. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  57. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  58. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  59. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  60. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  61. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  62. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  63. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  64. package/dist/ToolExposure.d.mts +8 -0
  65. package/dist/ToolExposure.mjs +21 -0
  66. package/dist/ToolExposure.mjs.map +1 -0
  67. package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
  68. package/dist/ToolResult-BKdqWRff.d.mts +78 -0
  69. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  70. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  71. package/dist/Worker-Du9dhVnp.d.mts +279 -0
  72. package/dist/Worker-T_3RbaKc.mjs +210 -0
  73. package/dist/Worker-T_3RbaKc.mjs.map +1 -0
  74. package/dist/agent-registration-B5CI-Ygk.mjs +201 -0
  75. package/dist/agent-registration-B5CI-Ygk.mjs.map +1 -0
  76. package/dist/capabilities/Approval.d.mts +114 -0
  77. package/dist/capabilities/Approval.mjs +226 -0
  78. package/dist/capabilities/Approval.mjs.map +1 -0
  79. package/dist/capabilities/Budget.d.mts +112 -0
  80. package/dist/capabilities/Budget.mjs +346 -0
  81. package/dist/capabilities/Budget.mjs.map +1 -0
  82. package/dist/capabilities/CodeMode.d.mts +157 -0
  83. package/dist/capabilities/CodeMode.mjs +522 -0
  84. package/dist/capabilities/CodeMode.mjs.map +1 -0
  85. package/dist/capabilities/Commands.d.mts +55 -0
  86. package/dist/capabilities/Commands.mjs +57 -0
  87. package/dist/capabilities/Commands.mjs.map +1 -0
  88. package/dist/capabilities/ContextTools.d.mts +321 -0
  89. package/dist/capabilities/ContextTools.mjs +126 -0
  90. package/dist/capabilities/ContextTools.mjs.map +1 -0
  91. package/dist/capabilities/Mcp.d.mts +108 -0
  92. package/dist/capabilities/Mcp.mjs +260 -0
  93. package/dist/capabilities/Mcp.mjs.map +1 -0
  94. package/dist/capabilities/McpClient.d.mts +115 -0
  95. package/dist/capabilities/McpClient.mjs +506 -0
  96. package/dist/capabilities/McpClient.mjs.map +1 -0
  97. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  98. package/dist/capabilities/MemoryNotes.mjs +128 -0
  99. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  100. package/dist/capabilities/Messaging.d.mts +3 -0
  101. package/dist/capabilities/Messaging.mjs +152 -0
  102. package/dist/capabilities/Messaging.mjs.map +1 -0
  103. package/dist/capabilities/ModelContext.d.mts +89 -0
  104. package/dist/capabilities/ModelContext.mjs +168 -0
  105. package/dist/capabilities/ModelContext.mjs.map +1 -0
  106. package/dist/capabilities/Redaction.d.mts +37 -0
  107. package/dist/capabilities/Redaction.mjs +104 -0
  108. package/dist/capabilities/Redaction.mjs.map +1 -0
  109. package/dist/capabilities/Remembering.d.mts +434 -0
  110. package/dist/capabilities/Remembering.mjs +290 -0
  111. package/dist/capabilities/Remembering.mjs.map +1 -0
  112. package/dist/capabilities/RunHooks.d.mts +82 -0
  113. package/dist/capabilities/RunHooks.mjs +144 -0
  114. package/dist/capabilities/RunHooks.mjs.map +1 -0
  115. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  116. package/dist/capabilities/SemanticMemory.mjs +315 -0
  117. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  118. package/dist/capabilities/Subagent.d.mts +4 -0
  119. package/dist/capabilities/Subagent.mjs +5 -0
  120. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  121. package/dist/capabilities/SubagentReservations.mjs +479 -0
  122. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  123. package/dist/capabilities/ToolDiscovery.d.mts +124 -0
  124. package/dist/capabilities/ToolDiscovery.mjs +230 -0
  125. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  126. package/dist/capabilities/WebCapture.d.mts +163 -0
  127. package/dist/capabilities/WebCapture.mjs +335 -0
  128. package/dist/capabilities/WebCapture.mjs.map +1 -0
  129. package/dist/capabilities/WebSearch.d.mts +71 -0
  130. package/dist/capabilities/WebSearch.mjs +115 -0
  131. package/dist/capabilities/WebSearch.mjs.map +1 -0
  132. package/dist/compaction-C2OTceKw.mjs +505 -0
  133. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  134. package/dist/core/Agent.d.mts +2 -0
  135. package/dist/core/Agent.mjs +2 -0
  136. package/dist/core/AgentError.d.mts +2 -0
  137. package/dist/core/AgentError.mjs +134 -0
  138. package/dist/core/AgentError.mjs.map +1 -0
  139. package/dist/core/AgentPolicy.d.mts +2 -0
  140. package/dist/core/AgentPolicy.mjs +94 -0
  141. package/dist/core/AgentPolicy.mjs.map +1 -0
  142. package/dist/core/AgentUpdates.d.mts +2 -0
  143. package/dist/core/AgentUpdates.mjs +63 -0
  144. package/dist/core/AgentUpdates.mjs.map +1 -0
  145. package/dist/core/FailureDiagnostic.d.mts +2 -0
  146. package/dist/core/FailureDiagnostic.mjs +2 -0
  147. package/dist/core/IdGenerator.d.mts +26 -0
  148. package/dist/core/IdGenerator.mjs +27 -0
  149. package/dist/core/IdGenerator.mjs.map +1 -0
  150. package/dist/core/Identifiers.d.mts +2 -0
  151. package/dist/core/Identifiers.mjs +43 -0
  152. package/dist/core/Identifiers.mjs.map +1 -0
  153. package/dist/core/Memory.d.mts +57 -0
  154. package/dist/core/Memory.mjs +203 -0
  155. package/dist/core/Memory.mjs.map +1 -0
  156. package/dist/core/MemoryNamespace.d.mts +2 -0
  157. package/dist/core/MemoryNamespace.mjs +116 -0
  158. package/dist/core/MemoryNamespace.mjs.map +1 -0
  159. package/dist/core/MemoryReference.d.mts +2 -0
  160. package/dist/core/MemoryReference.mjs +109 -0
  161. package/dist/core/MemoryReference.mjs.map +1 -0
  162. package/dist/core/MemoryRevalidation.d.mts +65 -0
  163. package/dist/core/MemoryRevalidation.mjs +126 -0
  164. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  165. package/dist/core/MemoryStore.d.mts +186 -0
  166. package/dist/core/MemoryStore.mjs +243 -0
  167. package/dist/core/MemoryStore.mjs.map +1 -0
  168. package/dist/core/Receipt.d.mts +2 -0
  169. package/dist/core/Receipt.mjs +36 -0
  170. package/dist/core/Receipt.mjs.map +1 -0
  171. package/dist/core/RememberingStore.d.mts +1562 -0
  172. package/dist/core/RememberingStore.mjs +190 -0
  173. package/dist/core/RememberingStore.mjs.map +1 -0
  174. package/dist/core/RunEvent.d.mts +2 -0
  175. package/dist/core/RunEvent.mjs +337 -0
  176. package/dist/core/RunEvent.mjs.map +1 -0
  177. package/dist/core/RunPolicyUsage.d.mts +2 -0
  178. package/dist/core/RunPolicyUsage.mjs +21 -0
  179. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  180. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  181. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  182. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  183. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  184. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  185. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  186. package/dist/core/SubagentContract.d.mts +2 -0
  187. package/dist/core/SubagentContract.mjs +148 -0
  188. package/dist/core/SubagentContract.mjs.map +1 -0
  189. package/dist/core/Thread.d.mts +2 -0
  190. package/dist/core/Thread.mjs +250 -0
  191. package/dist/core/Thread.mjs.map +1 -0
  192. package/dist/core/ToolResult.d.mts +2 -0
  193. package/dist/core/ToolResult.mjs +156 -0
  194. package/dist/core/ToolResult.mjs.map +1 -0
  195. package/dist/core/Usage.d.mts +2 -0
  196. package/dist/core/Usage.mjs +319 -0
  197. package/dist/core/Usage.mjs.map +1 -0
  198. package/dist/core/Worker.d.mts +3 -0
  199. package/dist/core/Worker.mjs +3 -0
  200. package/dist/durable/ActivityStore.d.mts +116 -0
  201. package/dist/durable/ActivityStore.mjs +131 -0
  202. package/dist/durable/ActivityStore.mjs.map +1 -0
  203. package/dist/durable/Admin.d.mts +2 -0
  204. package/dist/durable/Admin.mjs +330 -0
  205. package/dist/durable/Admin.mjs.map +1 -0
  206. package/dist/durable/AgentRegistration.d.mts +2 -0
  207. package/dist/durable/AgentRegistration.mjs +14 -0
  208. package/dist/durable/AgentRegistration.mjs.map +1 -0
  209. package/dist/durable/Certification.d.mts +110 -0
  210. package/dist/durable/Certification.mjs +159 -0
  211. package/dist/durable/Certification.mjs.map +1 -0
  212. package/dist/durable/CommittedActivity.d.mts +62 -0
  213. package/dist/durable/CommittedActivity.mjs +159 -0
  214. package/dist/durable/CommittedActivity.mjs.map +1 -0
  215. package/dist/durable/Digest.d.mts +2 -0
  216. package/dist/durable/Digest.mjs +50 -0
  217. package/dist/durable/Digest.mjs.map +1 -0
  218. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  219. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  220. package/dist/durable/DurableFailpoint.d.mts +2 -0
  221. package/dist/durable/DurableFailpoint.mjs +98 -0
  222. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  223. package/dist/durable/DurableFailpointTestControl.d.mts +14 -0
  224. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  225. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  226. package/dist/durable/EventSource.d.mts +2 -0
  227. package/dist/durable/EventSource.mjs +65 -0
  228. package/dist/durable/EventSource.mjs.map +1 -0
  229. package/dist/durable/GitHubWorkflowSource.d.mts +185 -0
  230. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  231. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  232. package/dist/durable/MessageDelivery.d.mts +876 -0
  233. package/dist/durable/MessageDelivery.mjs +549 -0
  234. package/dist/durable/MessageDelivery.mjs.map +1 -0
  235. package/dist/durable/MessageDeliveryStoreConformance.d.mts +376 -0
  236. package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -0
  237. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  238. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  239. package/dist/durable/OperationAuthorizer.mjs +70 -0
  240. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  241. package/dist/durable/PersistentHistory.d.mts +16 -0
  242. package/dist/durable/PersistentHistory.mjs +125 -0
  243. package/dist/durable/PersistentHistory.mjs.map +1 -0
  244. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  245. package/dist/durable/PreparedInputAdmission.mjs +38 -0
  246. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  247. package/dist/durable/Records.d.mts +2 -0
  248. package/dist/durable/Records.mjs +841 -0
  249. package/dist/durable/Records.mjs.map +1 -0
  250. package/dist/durable/Recovery.d.mts +2 -0
  251. package/dist/durable/Recovery.mjs +739 -0
  252. package/dist/durable/Recovery.mjs.map +1 -0
  253. package/dist/durable/RunJournal.d.mts +2 -0
  254. package/dist/durable/RunJournal.mjs +2 -0
  255. package/dist/durable/Schedule.d.mts +2 -0
  256. package/dist/durable/Schedule.mjs +391 -0
  257. package/dist/durable/Schedule.mjs.map +1 -0
  258. package/dist/durable/ScheduleStoreConformance.d.mts +17 -0
  259. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  260. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  261. package/dist/durable/ScheduleTransition.d.mts +24 -0
  262. package/dist/durable/ScheduleTransition.mjs +180 -0
  263. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  264. package/dist/durable/Scheduling.d.mts +54 -0
  265. package/dist/durable/Scheduling.mjs +2 -0
  266. package/dist/durable/SqlMemoryStore.d.mts +29 -0
  267. package/dist/durable/SqlMemoryStore.mjs +436 -0
  268. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  269. package/dist/durable/SqlMessageDeliveryStore.d.mts +42 -0
  270. package/dist/durable/SqlMessageDeliveryStore.mjs +173 -0
  271. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  272. package/dist/durable/SqlStorageV2Upgrade.d.mts +21 -0
  273. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  274. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  275. package/dist/durable/SqlSubscriptionStore.d.mts +62 -0
  276. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  277. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  278. package/dist/durable/SqlThreadNativeReads.d.mts +49 -0
  279. package/dist/durable/SqlThreadNativeReads.mjs +153 -0
  280. package/dist/durable/SqlThreadNativeReads.mjs.map +1 -0
  281. package/dist/durable/SubmissionLedger.d.mts +3 -0
  282. package/dist/durable/SubmissionLedger.mjs +918 -0
  283. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  284. package/dist/durable/SubmissionLedgerConformance.d.mts +29 -0
  285. package/dist/durable/SubmissionLedgerConformance.mjs +1993 -0
  286. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  287. package/dist/durable/SubmissionStatus.d.mts +2 -0
  288. package/dist/durable/SubmissionStatus.mjs +18 -0
  289. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  290. package/dist/durable/Subscription.d.mts +2 -0
  291. package/dist/durable/Subscription.mjs +360 -0
  292. package/dist/durable/Subscription.mjs.map +1 -0
  293. package/dist/durable/SubscriptionInput.d.mts +2 -0
  294. package/dist/durable/SubscriptionInput.mjs +52 -0
  295. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  296. package/dist/durable/SubscriptionStoreConformance.d.mts +16 -0
  297. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  298. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  299. package/dist/durable/SubscriptionTools.d.mts +273 -0
  300. package/dist/durable/SubscriptionTools.mjs +190 -0
  301. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  302. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  303. package/dist/durable/SubscriptionTransition.mjs +148 -0
  304. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  305. package/dist/durable/Subscriptions.d.mts +73 -0
  306. package/dist/durable/Subscriptions.mjs +627 -0
  307. package/dist/durable/Subscriptions.mjs.map +1 -0
  308. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  309. package/dist/durable/ThreadContextHistory.mjs +152 -0
  310. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  311. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  312. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  313. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  314. package/dist/durable/ThreadInvariants.d.mts +76 -0
  315. package/dist/durable/ThreadInvariants.mjs +246 -0
  316. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  317. package/dist/durable/ThreadProjection.d.mts +78 -0
  318. package/dist/durable/ThreadProjection.mjs +158 -0
  319. package/dist/durable/ThreadProjection.mjs.map +1 -0
  320. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  321. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  322. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  323. package/dist/durable/ThreadStore.d.mts +2 -0
  324. package/dist/durable/ThreadStore.mjs +336 -0
  325. package/dist/durable/ThreadStore.mjs.map +1 -0
  326. package/dist/durable/ThreadStoreConformance.d.mts +28 -0
  327. package/dist/durable/ThreadStoreConformance.mjs +503 -0
  328. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  329. package/dist/durable/ToolReconciler.d.mts +2 -0
  330. package/dist/durable/ToolReconciler.mjs +85 -0
  331. package/dist/durable/ToolReconciler.mjs.map +1 -0
  332. package/dist/durable/WakeScheduler.d.mts +2 -0
  333. package/dist/durable/WakeScheduler.mjs +85 -0
  334. package/dist/durable/WakeScheduler.mjs.map +1 -0
  335. package/dist/durable/WorkerHost.d.mts +129 -0
  336. package/dist/durable/WorkerHost.mjs +77 -0
  337. package/dist/durable/WorkerHost.mjs.map +1 -0
  338. package/dist/engine/AgentRuntime.d.mts +2 -0
  339. package/dist/engine/AgentRuntime.mjs +2 -0
  340. package/dist/engine/Compaction.d.mts +7 -0
  341. package/dist/engine/Compaction.mjs +16 -0
  342. package/dist/engine/Compaction.mjs.map +1 -0
  343. package/dist/engine/ContextCompactor.d.mts +2 -0
  344. package/dist/engine/ContextCompactor.mjs +119 -0
  345. package/dist/engine/ContextCompactor.mjs.map +1 -0
  346. package/dist/engine/ContextHistory.d.mts +65 -0
  347. package/dist/engine/ContextHistory.mjs +76 -0
  348. package/dist/engine/ContextHistory.mjs.map +1 -0
  349. package/dist/engine/ContextWindow.d.mts +2 -0
  350. package/dist/engine/ContextWindow.mjs +59 -0
  351. package/dist/engine/ContextWindow.mjs.map +1 -0
  352. package/dist/engine/DurableStep.d.mts +2 -0
  353. package/dist/engine/DurableStep.mjs +62 -0
  354. package/dist/engine/DurableStep.mjs.map +1 -0
  355. package/dist/engine/MessagingHost.d.mts +2 -0
  356. package/dist/engine/MessagingHost.mjs +2 -0
  357. package/dist/engine/Output.d.mts +2 -0
  358. package/dist/engine/Output.mjs +8 -0
  359. package/dist/engine/Output.mjs.map +1 -0
  360. package/dist/engine/RunEventSink.d.mts +2 -0
  361. package/dist/engine/RunEventSink.mjs +22 -0
  362. package/dist/engine/RunEventSink.mjs.map +1 -0
  363. package/dist/engine/RunOptions.d.mts +2 -0
  364. package/dist/engine/RunOptions.mjs +124 -0
  365. package/dist/engine/RunOptions.mjs.map +1 -0
  366. package/dist/engine/SubagentHost.d.mts +2 -0
  367. package/dist/engine/SubagentHost.mjs +72 -0
  368. package/dist/engine/SubagentHost.mjs.map +1 -0
  369. package/dist/engine/ThreadHistory.d.mts +2 -0
  370. package/dist/engine/ThreadHistory.mjs +67 -0
  371. package/dist/engine/ThreadHistory.mjs.map +1 -0
  372. package/dist/engine/ToolBroker.d.mts +2 -0
  373. package/dist/engine/ToolBroker.mjs +42 -0
  374. package/dist/engine/ToolBroker.mjs.map +1 -0
  375. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  376. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  377. package/dist/index.d.mts +91 -6
  378. package/dist/index.mjs +100 -6
  379. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  380. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  381. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  382. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  383. package/dist/sandbox/CodeExecutor.mjs +278 -0
  384. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  385. package/dist/sandbox/InteractiveBrowser.d.mts +257 -0
  386. package/dist/sandbox/InteractiveBrowser.mjs +236 -0
  387. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  388. package/dist/sandbox/PageCapture.d.mts +2 -0
  389. package/dist/sandbox/PageCapture.mjs +450 -0
  390. package/dist/sandbox/PageCapture.mjs.map +1 -0
  391. package/dist/sandbox/PageCrawl.d.mts +88 -0
  392. package/dist/sandbox/PageCrawl.mjs +124 -0
  393. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  394. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  395. package/dist/sandbox/PageScreenshot.mjs +53 -0
  396. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  397. package/dist/sandbox/ProtectedBrowser.d.mts +273 -0
  398. package/dist/sandbox/ProtectedBrowser.mjs +287 -0
  399. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  400. package/dist/sandbox/Sandbox.d.mts +2 -0
  401. package/dist/sandbox/Sandbox.mjs +208 -0
  402. package/dist/sandbox/Sandbox.mjs.map +1 -0
  403. package/dist/utf8-BYfhEkcj.mjs +11 -0
  404. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  405. package/dist/utf8-DchGZRBd.mjs +23 -0
  406. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  407. package/package.json +1 -40
  408. package/src/InMemory.ts +19 -0
  409. package/src/ToolExposure.ts +2 -0
  410. package/src/capabilities/Approval.ts +352 -0
  411. package/src/capabilities/Budget.ts +536 -0
  412. package/src/capabilities/CodeMode.ts +1090 -0
  413. package/src/capabilities/Commands.ts +86 -0
  414. package/src/capabilities/ContextTools.ts +184 -0
  415. package/src/capabilities/Mcp.ts +427 -0
  416. package/src/capabilities/McpClient.ts +967 -0
  417. package/src/capabilities/MemoryNotes.ts +174 -0
  418. package/src/capabilities/Messaging.ts +261 -0
  419. package/src/capabilities/ModelContext.ts +354 -0
  420. package/src/capabilities/Redaction.ts +157 -0
  421. package/src/capabilities/Remembering.ts +550 -0
  422. package/src/capabilities/RunHooks.ts +280 -0
  423. package/src/capabilities/SemanticMemory.ts +447 -0
  424. package/src/capabilities/Subagent.ts +2488 -0
  425. package/src/capabilities/SubagentReservations.ts +850 -0
  426. package/src/capabilities/ToolDiscovery.ts +369 -0
  427. package/src/capabilities/WebCapture.ts +722 -0
  428. package/src/capabilities/WebSearch.ts +190 -0
  429. package/src/capabilities/internal/subagent-background.ts +1246 -0
  430. package/src/capabilities/internal/subagent-contract.ts +146 -0
  431. package/src/capabilities/internal/subagent-policy.ts +235 -0
  432. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  433. package/src/capabilities/internal/utf8.ts +10 -0
  434. package/src/core/Agent.ts +595 -0
  435. package/src/core/AgentError.ts +172 -0
  436. package/src/core/AgentPolicy.ts +153 -0
  437. package/src/core/AgentUpdates.ts +100 -0
  438. package/src/core/FailureDiagnostic.ts +343 -0
  439. package/src/core/IdGenerator.ts +39 -0
  440. package/src/core/Identifiers.ts +48 -0
  441. package/src/core/Memory.ts +290 -0
  442. package/src/core/MemoryNamespace.ts +196 -0
  443. package/src/core/MemoryReference.ts +121 -0
  444. package/src/core/MemoryRevalidation.ts +185 -0
  445. package/src/core/MemoryStore.ts +368 -0
  446. package/src/core/Messaging.ts +72 -0
  447. package/src/core/Receipt.ts +42 -0
  448. package/src/core/RememberingStore.ts +300 -0
  449. package/src/core/RunEvent.ts +366 -0
  450. package/src/core/RunPolicyUsage.ts +17 -0
  451. package/src/core/SemanticMemoryIndex.ts +250 -0
  452. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  453. package/src/core/SubagentContract.ts +196 -0
  454. package/src/core/Thread.ts +371 -0
  455. package/src/core/ToolExposure.ts +74 -0
  456. package/src/core/ToolResult.ts +190 -0
  457. package/src/core/Usage.ts +529 -0
  458. package/src/core/Worker.ts +184 -0
  459. package/src/core/internal/agent-updates.ts +34 -0
  460. package/src/core/internal/message-status.ts +60 -0
  461. package/src/core/internal/strict-schema.ts +14 -0
  462. package/src/core/internal/utf8.ts +23 -0
  463. package/src/durable/ActivityStore.ts +160 -0
  464. package/src/durable/Admin.ts +505 -0
  465. package/src/durable/AgentRegistration.ts +14 -0
  466. package/src/durable/Certification.ts +210 -0
  467. package/src/durable/CommittedActivity.ts +296 -0
  468. package/src/durable/Digest.ts +87 -0
  469. package/src/durable/DurableAgentRuntime.ts +10950 -0
  470. package/src/durable/DurableFailpoint.ts +107 -0
  471. package/src/durable/DurableFailpointTestControl.ts +39 -0
  472. package/src/durable/EventSource.ts +172 -0
  473. package/src/durable/GitHubWorkflowSource.ts +447 -0
  474. package/src/durable/MessageDelivery.ts +817 -0
  475. package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
  476. package/src/durable/OperationAuthorizer.ts +85 -0
  477. package/src/durable/PersistentHistory.ts +260 -0
  478. package/src/durable/PreparedInputAdmission.ts +57 -0
  479. package/src/durable/Records.ts +1065 -0
  480. package/src/durable/Recovery.ts +1018 -0
  481. package/src/durable/RunJournal.ts +1631 -0
  482. package/src/durable/Schedule.ts +513 -0
  483. package/src/durable/ScheduleStoreConformance.ts +638 -0
  484. package/src/durable/ScheduleTransition.ts +265 -0
  485. package/src/durable/Scheduling.ts +1077 -0
  486. package/src/durable/SqlMemoryStore.ts +778 -0
  487. package/src/durable/SqlMessageDeliveryStore.ts +321 -0
  488. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  489. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  490. package/src/durable/SqlThreadNativeReads.ts +256 -0
  491. package/src/durable/SubmissionLedger.ts +1205 -0
  492. package/src/durable/SubmissionLedgerConformance.ts +4590 -0
  493. package/src/durable/SubmissionStatus.ts +14 -0
  494. package/src/durable/Subscription.ts +544 -0
  495. package/src/durable/SubscriptionInput.ts +144 -0
  496. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  497. package/src/durable/SubscriptionTools.ts +327 -0
  498. package/src/durable/SubscriptionTransition.ts +302 -0
  499. package/src/durable/Subscriptions.ts +1210 -0
  500. package/src/durable/ThreadContextHistory.ts +227 -0
  501. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  502. package/src/durable/ThreadInvariants.ts +507 -0
  503. package/src/durable/ThreadProjection.ts +269 -0
  504. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  505. package/src/durable/ThreadStore.ts +552 -0
  506. package/src/durable/ThreadStoreConformance.ts +1156 -0
  507. package/src/durable/ToolReconciler.ts +109 -0
  508. package/src/durable/WakeScheduler.ts +134 -0
  509. package/src/durable/WorkerHost.ts +171 -0
  510. package/src/durable/internal/agent-registration.ts +621 -0
  511. package/src/durable/internal/agent-updates.ts +302 -0
  512. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  513. package/src/durable/internal/journal-checkpoint.ts +104 -0
  514. package/src/durable/internal/journal-metadata.ts +117 -0
  515. package/src/durable/internal/message-status.ts +20 -0
  516. package/src/durable/internal/messaging-host.ts +637 -0
  517. package/src/durable/internal/schedule-time.ts +303 -0
  518. package/src/durable/internal/storage-v2-layout.ts +163 -0
  519. package/src/durable/internal/storage-v2.ts +73 -0
  520. package/src/durable/internal/worker-host.ts +2678 -0
  521. package/src/durable/internal/worker-runtime.ts +9 -0
  522. package/src/engine/AgentRuntime.ts +37 -0
  523. package/src/engine/Compaction.ts +11 -0
  524. package/src/engine/ContextCompactor.ts +277 -0
  525. package/src/engine/ContextHistory.ts +73 -0
  526. package/src/engine/ContextWindow.ts +72 -0
  527. package/src/engine/DurableStep.ts +132 -0
  528. package/src/engine/MessagingHost.ts +110 -0
  529. package/src/engine/Output.ts +2 -0
  530. package/src/engine/RunEventSink.ts +132 -0
  531. package/src/engine/RunOptions.ts +1101 -0
  532. package/src/engine/SubagentHost.ts +193 -0
  533. package/src/engine/ThreadHistory.ts +120 -0
  534. package/src/engine/ToolBroker.ts +157 -0
  535. package/src/engine/ToolExposure.ts +48 -0
  536. package/src/engine/internal/agent-runtime.ts +10485 -0
  537. package/src/engine/internal/bounded-value.ts +315 -0
  538. package/src/engine/internal/compaction.ts +678 -0
  539. package/src/engine/internal/error-diagnostic.ts +39 -0
  540. package/src/engine/internal/output-contract.ts +173 -0
  541. package/src/engine/internal/primitive-delta.ts +80 -0
  542. package/src/engine/internal/provider-result-staging.ts +211 -0
  543. package/src/engine/internal/tool-derivative.ts +106 -0
  544. package/src/engine/internal/tool-exposure.ts +224 -0
  545. package/src/engine/internal/tool-telemetry.ts +484 -0
  546. package/src/index.ts +99 -21
  547. package/src/sandbox/CodeExecutor.ts +352 -0
  548. package/src/sandbox/InteractiveBrowser.ts +339 -0
  549. package/src/sandbox/PageCapture.ts +691 -0
  550. package/src/sandbox/PageCrawl.ts +148 -0
  551. package/src/sandbox/PageScreenshot.ts +81 -0
  552. package/src/sandbox/ProtectedBrowser.ts +436 -0
  553. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,376 @@
1
+ import { d as SubagentReservationAmounts, l as SubagentGrant, o as SubagentDelegationCaps, s as SubagentExecutionFailure } from "../SubagentContract-DdT7Cqe6.mjs";
2
+ import { a as Receipt } from "../Receipt-BAHyigAF.mjs";
3
+ import { r as Update } from "../AgentUpdates-DMJ-_xow.mjs";
4
+ import { r as Diagnostic } from "../FailureDiagnostic-CaAkzGHL.mjs";
5
+ import { t as AgentPolicy } from "../AgentPolicy-BqDoSXO6.mjs";
6
+ import { co as Settlement, h as DefinitionDigests, mi as DigestError } from "../Records-4qnRmniE.mjs";
7
+ import { MessageDeliveryError, MessageDeliveryFailure, MessageDeliveryStore } from "./MessageDelivery.mjs";
8
+ import { Effect, Schema } from "effect";
9
+ //#region src/durable/MessageDeliveryStoreConformance.d.ts
10
+ declare const MessageDeliveryConformanceViolation_base: Schema.Class<MessageDeliveryConformanceViolation, Schema.TaggedStruct<"MessageDeliveryConformanceViolation", {
11
+ readonly message: Schema.String;
12
+ }>, import("effect/Cause").YieldableError>;
13
+ export declare class MessageDeliveryConformanceViolation extends MessageDeliveryConformanceViolation_base {}
14
+ /** One valid frozen envelope shared by real storage and restart tests. */
15
+ export declare const makeMessageDeliveryFixture: (messageId?: any, owner?: any, text?: any) => Effect.Effect<{
16
+ readonly schemaVersion: 1;
17
+ readonly key: {
18
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
19
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
20
+ };
21
+ readonly envelope: {
22
+ readonly schemaVersion: 1;
23
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
24
+ readonly deliveryPrincipal: string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">;
25
+ readonly admissionGroup?: string | undefined;
26
+ readonly admissionFence?: {
27
+ readonly policyId: string;
28
+ readonly key: string;
29
+ readonly revision: string;
30
+ } | undefined;
31
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
32
+ readonly definitions: DefinitionDigests;
33
+ readonly input: Schema.Json;
34
+ readonly inputDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
35
+ readonly admissionKey: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
36
+ readonly authorization: {
37
+ readonly policyId: string;
38
+ readonly decisionId: string;
39
+ };
40
+ readonly workerAdmission?: {
41
+ readonly origin: {
42
+ readonly worker: {
43
+ readonly schemaVersion: 1;
44
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
45
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
46
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
47
+ };
48
+ readonly source: {
49
+ readonly _tag: "tool";
50
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
51
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
52
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
53
+ readonly toolCallId: string & import("effect/Brand").Brand<"@effect-agent/core/ToolCallId">;
54
+ } | {
55
+ readonly _tag: "programmatic";
56
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
57
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
58
+ };
59
+ readonly budgetScope?: "source-subtree" | "worker-run" | undefined;
60
+ readonly targetDigests: DefinitionDigests;
61
+ readonly policy: AgentPolicy;
62
+ readonly budget: {
63
+ readonly caps: SubagentDelegationCaps;
64
+ readonly allocation: SubagentReservationAmounts;
65
+ readonly descendantInvocations?: number | undefined;
66
+ };
67
+ readonly grant: SubagentGrant;
68
+ readonly depth: number;
69
+ readonly toolCallAllowance?: number | undefined;
70
+ readonly firstMessageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
71
+ readonly createdAtMillis: number;
72
+ readonly expiresAtMillis: number;
73
+ readonly reporting?: {
74
+ readonly mode?: "standard" | undefined;
75
+ readonly sourceDigests: DefinitionDigests;
76
+ readonly destinationDelegationId?: (string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">) | undefined;
77
+ readonly returnAddress?: {
78
+ readonly input: Schema.Json;
79
+ readonly principal: string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">;
80
+ readonly policy: AgentPolicy;
81
+ readonly depth: number;
82
+ readonly grant?: SubagentGrant | undefined;
83
+ readonly workerAdmission?: Schema.Json | undefined;
84
+ } | undefined;
85
+ } | undefined;
86
+ };
87
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
88
+ readonly parameters: Schema.Json;
89
+ readonly createdAtMillis: number;
90
+ readonly sourceSubmissionId?: (string & import("effect/Brand").Brand<"@effect-agent/core/SubmissionId">) | undefined;
91
+ readonly deliveryPrincipal?: (string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">) | undefined;
92
+ readonly reportKind?: "update" | undefined;
93
+ } | undefined;
94
+ readonly messageAdmission?: {
95
+ readonly schemaVersion: 1;
96
+ readonly message: {
97
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
98
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
99
+ };
100
+ readonly peerName: string;
101
+ readonly sender: {
102
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
103
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
104
+ };
105
+ readonly returnAddress: {
106
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
107
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
108
+ };
109
+ readonly inReplyTo?: {
110
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
111
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
112
+ } | undefined;
113
+ } | {
114
+ readonly _tag: "WorkerCompletion";
115
+ readonly budgetExhausted: boolean;
116
+ readonly schemaVersion: 1;
117
+ readonly report: {
118
+ readonly _tag: "Settled";
119
+ readonly worker: {
120
+ readonly schemaVersion: 1;
121
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
122
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
123
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
124
+ };
125
+ readonly receipt: Receipt;
126
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
127
+ readonly settlementId: string & import("effect/Brand").Brand<"@effect-agent/core/SettlementId">;
128
+ readonly outcome: "completed";
129
+ readonly result: Schema.Json;
130
+ } | {
131
+ readonly _tag: "Settled";
132
+ readonly worker: {
133
+ readonly schemaVersion: 1;
134
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
135
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
136
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
137
+ };
138
+ readonly receipt: Receipt;
139
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
140
+ readonly settlementId: string & import("effect/Brand").Brand<"@effect-agent/core/SettlementId">;
141
+ readonly outcome: "aborted" | "failed";
142
+ readonly failure: SubagentExecutionFailure;
143
+ };
144
+ } | {
145
+ readonly _tag: "WorkerUpdate";
146
+ readonly schemaVersion: 1;
147
+ readonly worker: {
148
+ readonly schemaVersion: 1;
149
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
150
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
151
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
152
+ };
153
+ readonly update: Update;
154
+ } | undefined;
155
+ };
156
+ readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
157
+ readonly predecessor?: (string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">) | undefined;
158
+ readonly createdAtMillis: number;
159
+ readonly initialDeadlineAtMillis: number;
160
+ readonly deadlineAtMillis: number;
161
+ readonly policy: {
162
+ readonly maxAutomaticAttempts: number;
163
+ readonly attemptTimeoutMillis: number;
164
+ readonly retryBaseMillis: number;
165
+ readonly retryMaxMillis: number;
166
+ readonly settlementPollMillis: number;
167
+ };
168
+ readonly version: number;
169
+ readonly status: "accepted" | "parked" | "pending" | "processed" | "refused";
170
+ readonly receipt: Receipt | null;
171
+ readonly settlement: Settlement | null;
172
+ readonly refusal: string | null;
173
+ readonly parkReason: "deadline" | "exhausted" | "status-unavailable" | null;
174
+ readonly leaseUntilMillis: number | null;
175
+ readonly retry: {
176
+ readonly attempts: number;
177
+ readonly generation: number;
178
+ readonly automaticAttempts: number;
179
+ readonly parked: boolean;
180
+ readonly nextAttemptAtMillis: number;
181
+ readonly lastAttemptAtMillis: number | null;
182
+ readonly lastFailure: "ambiguous" | "capacity" | "host-closed" | "storage" | "timeout" | "transport" | null;
183
+ };
184
+ readonly lastFailureDiagnostic?: Diagnostic | undefined;
185
+ }, DigestError | MessageDeliveryError, import("effect/Crypto").Crypto>;
186
+ export declare const messageDeliveryFixtureReceipt: Receipt;
187
+ export declare const makeWorkerUpdateDeliveryFixture: (id: string) => Effect.Effect<{
188
+ readonly schemaVersion: 1;
189
+ readonly key: {
190
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
191
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
192
+ };
193
+ readonly envelope: {
194
+ readonly schemaVersion: 1;
195
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
196
+ readonly deliveryPrincipal: string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">;
197
+ readonly admissionGroup?: string | undefined;
198
+ readonly admissionFence?: {
199
+ readonly policyId: string;
200
+ readonly key: string;
201
+ readonly revision: string;
202
+ } | undefined;
203
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
204
+ readonly definitions: DefinitionDigests;
205
+ readonly input: Schema.Json;
206
+ readonly inputDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
207
+ readonly admissionKey: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
208
+ readonly authorization: {
209
+ readonly policyId: string;
210
+ readonly decisionId: string;
211
+ };
212
+ readonly workerAdmission?: {
213
+ readonly origin: {
214
+ readonly worker: {
215
+ readonly schemaVersion: 1;
216
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
217
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
218
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
219
+ };
220
+ readonly source: {
221
+ readonly _tag: "tool";
222
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
223
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
224
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
225
+ readonly toolCallId: string & import("effect/Brand").Brand<"@effect-agent/core/ToolCallId">;
226
+ } | {
227
+ readonly _tag: "programmatic";
228
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
229
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
230
+ };
231
+ readonly budgetScope?: "source-subtree" | "worker-run" | undefined;
232
+ readonly targetDigests: DefinitionDigests;
233
+ readonly policy: AgentPolicy;
234
+ readonly budget: {
235
+ readonly caps: SubagentDelegationCaps;
236
+ readonly allocation: SubagentReservationAmounts;
237
+ readonly descendantInvocations?: number | undefined;
238
+ };
239
+ readonly grant: SubagentGrant;
240
+ readonly depth: number;
241
+ readonly toolCallAllowance?: number | undefined;
242
+ readonly firstMessageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
243
+ readonly createdAtMillis: number;
244
+ readonly expiresAtMillis: number;
245
+ readonly reporting?: {
246
+ readonly mode?: "standard" | undefined;
247
+ readonly sourceDigests: DefinitionDigests;
248
+ readonly destinationDelegationId?: (string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">) | undefined;
249
+ readonly returnAddress?: {
250
+ readonly input: Schema.Json;
251
+ readonly principal: string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">;
252
+ readonly policy: AgentPolicy;
253
+ readonly depth: number;
254
+ readonly grant?: SubagentGrant | undefined;
255
+ readonly workerAdmission?: Schema.Json | undefined;
256
+ } | undefined;
257
+ } | undefined;
258
+ };
259
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
260
+ readonly parameters: Schema.Json;
261
+ readonly createdAtMillis: number;
262
+ readonly sourceSubmissionId?: (string & import("effect/Brand").Brand<"@effect-agent/core/SubmissionId">) | undefined;
263
+ readonly deliveryPrincipal?: (string & import("effect/Brand").Brand<"@effect-agent/thread/Principal">) | undefined;
264
+ readonly reportKind?: "update" | undefined;
265
+ } | undefined;
266
+ readonly messageAdmission?: {
267
+ readonly schemaVersion: 1;
268
+ readonly message: {
269
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
270
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
271
+ };
272
+ readonly peerName: string;
273
+ readonly sender: {
274
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
275
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
276
+ };
277
+ readonly returnAddress: {
278
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
279
+ readonly agentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
280
+ };
281
+ readonly inReplyTo?: {
282
+ readonly ownerThreadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
283
+ readonly messageId: string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">;
284
+ } | undefined;
285
+ } | {
286
+ readonly _tag: "WorkerCompletion";
287
+ readonly budgetExhausted: boolean;
288
+ readonly schemaVersion: 1;
289
+ readonly report: {
290
+ readonly _tag: "Settled";
291
+ readonly worker: {
292
+ readonly schemaVersion: 1;
293
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
294
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
295
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
296
+ };
297
+ readonly receipt: Receipt;
298
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
299
+ readonly settlementId: string & import("effect/Brand").Brand<"@effect-agent/core/SettlementId">;
300
+ readonly outcome: "completed";
301
+ readonly result: Schema.Json;
302
+ } | {
303
+ readonly _tag: "Settled";
304
+ readonly worker: {
305
+ readonly schemaVersion: 1;
306
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
307
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
308
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
309
+ };
310
+ readonly receipt: Receipt;
311
+ readonly runId: string & import("effect/Brand").Brand<"@effect-agent/core/RunId">;
312
+ readonly settlementId: string & import("effect/Brand").Brand<"@effect-agent/core/SettlementId">;
313
+ readonly outcome: "aborted" | "failed";
314
+ readonly failure: SubagentExecutionFailure;
315
+ };
316
+ } | {
317
+ readonly _tag: "WorkerUpdate";
318
+ readonly schemaVersion: 1;
319
+ readonly worker: {
320
+ readonly schemaVersion: 1;
321
+ readonly delegationId: string & import("effect/Brand").Brand<"@effect-agent/core/DelegationId">;
322
+ readonly targetAgentId: string & import("effect/Brand").Brand<"@effect-agent/core/AgentId">;
323
+ readonly threadId: string & import("effect/Brand").Brand<"@effect-agent/core/ThreadId">;
324
+ };
325
+ readonly update: Update;
326
+ } | undefined;
327
+ };
328
+ readonly envelopeDigest: string & import("effect/Brand").Brand<"@effect-agent/thread/Digest">;
329
+ readonly predecessor?: (string & import("effect/Brand").Brand<"@effect-agent/thread/IdempotencyKey">) | undefined;
330
+ readonly createdAtMillis: number;
331
+ readonly initialDeadlineAtMillis: number;
332
+ readonly deadlineAtMillis: number;
333
+ readonly policy: {
334
+ readonly maxAutomaticAttempts: number;
335
+ readonly attemptTimeoutMillis: number;
336
+ readonly retryBaseMillis: number;
337
+ readonly retryMaxMillis: number;
338
+ readonly settlementPollMillis: number;
339
+ };
340
+ readonly version: number;
341
+ readonly status: "accepted" | "parked" | "pending" | "processed" | "refused";
342
+ readonly receipt: Receipt | null;
343
+ readonly settlement: Settlement | null;
344
+ readonly refusal: string | null;
345
+ readonly parkReason: "deadline" | "exhausted" | "status-unavailable" | null;
346
+ readonly leaseUntilMillis: number | null;
347
+ readonly retry: {
348
+ readonly attempts: number;
349
+ readonly generation: number;
350
+ readonly automaticAttempts: number;
351
+ readonly parked: boolean;
352
+ readonly nextAttemptAtMillis: number;
353
+ readonly lastAttemptAtMillis: number | null;
354
+ readonly lastFailure: "ambiguous" | "capacity" | "host-closed" | "storage" | "timeout" | "transport" | null;
355
+ };
356
+ readonly lastFailureDiagnostic?: Diagnostic | undefined;
357
+ }, DigestError | MessageDeliveryError, import("effect/Crypto").Crypto>;
358
+ /** Every case starts with an empty store; all clocks and expected values are explicit. */
359
+ export declare const messageDeliveryStoreConformanceCases: readonly [{
360
+ readonly name: "reserves ordinary delivery capacity when worker updates saturate their separate bound";
361
+ readonly run: Effect.Effect<void, DigestError | MessageDeliveryConformanceViolation | MessageDeliveryFailure, import("effect/Crypto").Crypto | MessageDeliveryStore>;
362
+ }, {
363
+ readonly name: "retains predecessor identity and defers ordering waits without spending attempts";
364
+ readonly run: Effect.Effect<void, DigestError | MessageDeliveryConformanceViolation | MessageDeliveryFailure, import("effect/Crypto").Crypto | MessageDeliveryStore>;
365
+ }, {
366
+ readonly name: "retains pending, accepted and processed facts with stable duplicate admission";
367
+ readonly run: Effect.Effect<void, DigestError | MessageDeliveryConformanceViolation | MessageDeliveryFailure, import("effect/Crypto").Crypto | MessageDeliveryStore>;
368
+ }, {
369
+ readonly name: "rejects conflicting identity and scopes cursors and discovery to the source owner";
370
+ readonly run: Effect.Effect<void, DigestError | MessageDeliveryConformanceViolation | MessageDeliveryFailure, import("effect/Crypto").Crypto | MessageDeliveryStore>;
371
+ }, {
372
+ readonly name: "fences stale completion and preserves parked work for explicit recovery";
373
+ readonly run: Effect.Effect<void, DigestError | MessageDeliveryConformanceViolation | MessageDeliveryFailure, import("effect/Crypto").Crypto | MessageDeliveryStore>;
374
+ }];
375
+ //#endregion
376
+ //# sourceMappingURL=MessageDeliveryStoreConformance.d.mts.map
@@ -0,0 +1,270 @@
1
+ import { AgentId, DelegationId, ReceiptId, RunId, SettlementId, SubmissionId, ThreadId } from "../core/Identifiers.mjs";
2
+ import { IdempotencyKey, Principal, QueueSequence, Receipt } from "../core/Receipt.mjs";
3
+ import { Update } from "../core/AgentUpdates.mjs";
4
+ import { p as WorkerUpdate } from "../Worker-T_3RbaKc.mjs";
5
+ import { DefinitionDigests, Digest } from "./Records.mjs";
6
+ import { Settlement } from "./SubmissionLedger.mjs";
7
+ import { digestJson } from "./Digest.mjs";
8
+ import { MessageDeliveryStore, messageDeliveryCapacity, prepareMessageDelivery, readPending } from "./MessageDelivery.mjs";
9
+ import { DateTime, Effect, Equal, Result, Schema } from "effect";
10
+ //#region src/durable/MessageDeliveryStoreConformance.ts
11
+ var MessageDeliveryConformanceViolation = class extends Schema.TaggedError()("MessageDeliveryConformanceViolation", { message: Schema.String }) {};
12
+ const verify = (condition, message) => condition ? Effect.void : Effect.fail(MessageDeliveryConformanceViolation.make({ message }));
13
+ /** One valid frozen envelope shared by real storage and restart tests. */
14
+ const makeMessageDeliveryFixture = Effect.fn("MessageDeliveryConformance.fixture")(function* (messageId = "message", owner = "sender", text = "hello") {
15
+ const digest = Schema.decodeSync(Digest)("a".repeat(64));
16
+ const input = { text };
17
+ return yield* prepareMessageDelivery({
18
+ key: {
19
+ ownerThreadId: Schema.decodeSync(ThreadId)(owner),
20
+ messageId: Schema.decodeSync(IdempotencyKey)(messageId)
21
+ },
22
+ createdAtMillis: 0,
23
+ deadlineAtMillis: 1e3,
24
+ policy: {
25
+ maxAutomaticAttempts: 3,
26
+ attemptTimeoutMillis: 100,
27
+ retryBaseMillis: 10,
28
+ retryMaxMillis: 20,
29
+ settlementPollMillis: 5
30
+ },
31
+ envelope: {
32
+ schemaVersion: 1,
33
+ threadId: Schema.decodeSync(ThreadId)("receiver"),
34
+ deliveryPrincipal: Schema.decodeSync(Principal)("principal"),
35
+ agentId: Schema.decodeSync(AgentId)("agent"),
36
+ definitions: DefinitionDigests.make({
37
+ agent: digest,
38
+ model: digest,
39
+ tools: digest
40
+ }),
41
+ input,
42
+ inputDigest: yield* digestJson(input),
43
+ admissionKey: Schema.decodeSync(IdempotencyKey)(`admit:${owner}:${messageId}`),
44
+ authorization: {
45
+ policyId: "policy",
46
+ decisionId: "decision"
47
+ }
48
+ }
49
+ });
50
+ });
51
+ const messageDeliveryFixtureReceipt = Receipt.make({
52
+ threadId: Schema.decodeSync(ThreadId)("receiver"),
53
+ receiptId: Schema.decodeSync(ReceiptId)("receipt"),
54
+ submissionId: Schema.decodeSync(SubmissionId)("submission"),
55
+ queueSequence: Schema.decodeSync(QueueSequence)(0)
56
+ });
57
+ const makeWorkerUpdateDeliveryFixture = Effect.fn("MessageDeliveryConformance.updateFixture")(function* (id) {
58
+ const base = yield* makeMessageDeliveryFixture(id);
59
+ return yield* prepareMessageDelivery({
60
+ key: base.key,
61
+ createdAtMillis: base.createdAtMillis,
62
+ deadlineAtMillis: base.deadlineAtMillis,
63
+ policy: base.policy,
64
+ envelope: {
65
+ ...base.envelope,
66
+ messageAdmission: WorkerUpdate.make({
67
+ _tag: "WorkerUpdate",
68
+ schemaVersion: 1,
69
+ worker: {
70
+ schemaVersion: 1,
71
+ delegationId: Schema.decodeSync(DelegationId)("worker"),
72
+ targetAgentId: Schema.decodeSync(AgentId)("child"),
73
+ threadId: base.key.ownerThreadId
74
+ },
75
+ update: Update.make({
76
+ schemaVersion: 1,
77
+ agentId: Schema.decodeSync(AgentId)("child"),
78
+ threadId: base.key.ownerThreadId,
79
+ runId: Schema.decodeSync(RunId)("run"),
80
+ updateId: base.key.messageId,
81
+ sequence: 1,
82
+ value: { finding: id }
83
+ })
84
+ })
85
+ }
86
+ });
87
+ });
88
+ /** Every case starts with an empty store; all clocks and expected values are explicit. */
89
+ const messageDeliveryStoreConformanceCases = [
90
+ {
91
+ name: "reserves ordinary delivery capacity when worker updates saturate their separate bound",
92
+ run: Effect.gen(function* () {
93
+ const store = yield* MessageDeliveryStore;
94
+ const capacity = messageDeliveryCapacity(store.limits, true);
95
+ for (let index = 0; index < capacity.pending; index++) yield* store.insert(yield* makeWorkerUpdateDeliveryFixture(`update-${index}`));
96
+ const refused = yield* store.insert(yield* makeWorkerUpdateDeliveryFixture("overflow")).pipe(Effect.result);
97
+ yield* verify(Result.isFailure(refused) && refused.failure._tag === "MessageDeliveryError" && refused.failure.reason === "capacity", "Updates must stop at their independent pending bound");
98
+ const terminal = yield* makeMessageDeliveryFixture("terminal");
99
+ yield* verify((yield* store.insert(terminal)).status === "pending", "Update pressure must preserve ordinary terminal capacity");
100
+ yield* verify((yield* store.get({
101
+ ...terminal.key,
102
+ messageId: Schema.decodeSync(IdempotencyKey)("overflow")
103
+ })) === null, "Rejected update must not mutate delivery storage");
104
+ })
105
+ },
106
+ {
107
+ name: "retains predecessor identity and defers ordering waits without spending attempts",
108
+ run: Effect.gen(function* () {
109
+ const store = yield* MessageDeliveryStore;
110
+ const initial = {
111
+ ...yield* makeMessageDeliveryFixture("later"),
112
+ predecessor: Schema.decodeSync(IdempotencyKey)("earlier")
113
+ };
114
+ yield* store.insert(initial);
115
+ const deferred = yield* store.change(initial.key, {
116
+ _tag: "Defer",
117
+ expectedVersion: 1,
118
+ nowMillis: 0,
119
+ untilMillis: 100
120
+ });
121
+ yield* verify(deferred.retry.attempts === 0 && deferred.retry.automaticAttempts === 0 && deferred.retry.nextAttemptAtMillis === 100, "Ordering waits must remain bounded without exhausting transport retries");
122
+ yield* verify((yield* store.due(99, 10)).length === 0 && (yield* store.due(100, 10)).length === 1, "Deferral must advance the persisted wake deadline");
123
+ yield* verify(Equal.equals(yield* readPending({
124
+ ownerThreadId: initial.key.ownerThreadId,
125
+ limit: 1
126
+ }), [deferred]), "Future-due retained work must remain visible before any canonical reservation");
127
+ const changed = yield* store.insert({
128
+ ...initial,
129
+ predecessor: Schema.decodeSync(IdempotencyKey)("different")
130
+ }).pipe(Effect.result);
131
+ yield* verify(Result.isFailure(changed) && changed.failure._tag === "MessageDeliveryError" && changed.failure.reason === "conflict", "A retry cannot replace its ordering predecessor");
132
+ })
133
+ },
134
+ {
135
+ name: "retains pending, accepted and processed facts with stable duplicate admission",
136
+ run: Effect.gen(function* () {
137
+ const store = yield* MessageDeliveryStore;
138
+ const initial = yield* makeMessageDeliveryFixture();
139
+ yield* store.insert(initial);
140
+ yield* verify(Equal.equals(yield* store.due(0, 10), [initial.key]), "Pending work must be independently discoverable");
141
+ const claim = yield* store.change(initial.key, {
142
+ _tag: "Claim",
143
+ nowMillis: 0,
144
+ expectedVersion: 1
145
+ });
146
+ const accepted = yield* store.change(initial.key, {
147
+ _tag: "Accept",
148
+ nowMillis: 1,
149
+ expectedVersion: claim.version,
150
+ receipt: messageDeliveryFixtureReceipt
151
+ });
152
+ yield* verify(accepted.status === "accepted" && accepted.settlement === null, "Acceptance must not claim processing");
153
+ yield* verify(Equal.equals(yield* readPending({
154
+ ownerThreadId: initial.key.ownerThreadId,
155
+ limit: 1
156
+ }), [accepted]), "Accepted work must retain its exact receipt and envelope in the pending read");
157
+ const secondClaim = yield* store.change(initial.key, {
158
+ _tag: "Claim",
159
+ nowMillis: 6,
160
+ expectedVersion: accepted.version
161
+ });
162
+ const settlement = Settlement.make({
163
+ receiptId: messageDeliveryFixtureReceipt.receiptId,
164
+ submissionId: messageDeliveryFixtureReceipt.submissionId,
165
+ settlementId: Schema.decodeSync(SettlementId)("settlement"),
166
+ outcome: "completed",
167
+ settledAt: DateTime.makeUnsafe(7)
168
+ });
169
+ const processed = yield* store.change(initial.key, {
170
+ _tag: "Process",
171
+ nowMillis: 7,
172
+ expectedVersion: secondClaim.version,
173
+ settlement
174
+ });
175
+ yield* verify(processed.status === "processed", "Canonical settlement must finish processing");
176
+ yield* verify(Equal.equals(yield* store.insert(initial), processed), "Replay must preserve terminal evidence");
177
+ yield* verify((yield* store.nextDeadline()) === null, "Processed work must release its wake deadline");
178
+ yield* verify((yield* readPending({
179
+ ownerThreadId: initial.key.ownerThreadId,
180
+ limit: 1
181
+ })).length === 0, "Processed history must not enter pending authorization reads");
182
+ })
183
+ },
184
+ {
185
+ name: "rejects conflicting identity and scopes cursors and discovery to the source owner",
186
+ run: Effect.gen(function* () {
187
+ const store = yield* MessageDeliveryStore;
188
+ const a = yield* makeMessageDeliveryFixture("a");
189
+ const b = yield* makeMessageDeliveryFixture("b");
190
+ const other = yield* makeMessageDeliveryFixture("a", "other");
191
+ yield* store.insert(a);
192
+ yield* store.insert(b);
193
+ yield* store.insert(other);
194
+ const conflict = yield* store.insert(yield* makeMessageDeliveryFixture("a", "sender", "changed")).pipe(Effect.result);
195
+ yield* verify(Result.isFailure(conflict) && conflict.failure._tag === "MessageDeliveryError" && conflict.failure.reason === "conflict", "Conflicting replay must be refused");
196
+ yield* verify(Equal.equals(yield* store.get(a.key), a), "Refusal must preserve original input");
197
+ const overflow = yield* readPending({
198
+ ownerThreadId: a.key.ownerThreadId,
199
+ limit: 1
200
+ }).pipe(Effect.result);
201
+ yield* verify(Result.isFailure(overflow) && overflow.failure.reason === "capacity", "Overflow must fail without a partial inventory");
202
+ yield* verify(Equal.equals(yield* readPending({
203
+ ownerThreadId: other.key.ownerThreadId,
204
+ limit: 1
205
+ }), [other]), "Pending reads must use the source owner");
206
+ const page = yield* store.list({
207
+ ownerThreadId: a.key.ownerThreadId,
208
+ limit: 1,
209
+ pendingOnly: true
210
+ });
211
+ yield* verify(page.items.length === 1 && page.items[0]?.key.messageId === "a" && page.next === "a", "First page must remain owner scoped");
212
+ const next = yield* store.list({
213
+ ownerThreadId: a.key.ownerThreadId,
214
+ limit: 1,
215
+ after: a.key.messageId,
216
+ pendingOnly: true
217
+ });
218
+ yield* verify(next.items.length === 1 && next.items[0]?.key.messageId === "b" && next.next === null, "Cursor must be stable");
219
+ yield* verify(Equal.equals(yield* store.due(0, 10, other.key.ownerThreadId), [other.key]), "Owner-scoped scans must not expose another source");
220
+ })
221
+ },
222
+ {
223
+ name: "fences stale completion and preserves parked work for explicit recovery",
224
+ run: Effect.gen(function* () {
225
+ const store = yield* MessageDeliveryStore;
226
+ const initial = yield* makeMessageDeliveryFixture();
227
+ yield* store.insert(initial);
228
+ const old = yield* store.change(initial.key, {
229
+ _tag: "Claim",
230
+ nowMillis: 0,
231
+ expectedVersion: 1
232
+ });
233
+ const current = yield* store.change(initial.key, {
234
+ _tag: "Claim",
235
+ nowMillis: 101,
236
+ expectedVersion: old.version
237
+ });
238
+ const stale = yield* store.change(initial.key, {
239
+ _tag: "Accept",
240
+ nowMillis: 102,
241
+ expectedVersion: old.version,
242
+ receipt: messageDeliveryFixtureReceipt
243
+ }).pipe(Effect.result);
244
+ yield* verify(Result.isFailure(stale) && stale.failure._tag === "MessageDeliveryError" && stale.failure.reason === "conflict", "Old claims cannot commit");
245
+ const parked = yield* store.change(initial.key, {
246
+ _tag: "Park",
247
+ nowMillis: 102,
248
+ expectedVersion: current.version,
249
+ reason: "exhausted"
250
+ });
251
+ yield* verify((yield* store.nextDeadline()) === null && parked.status === "parked", "Parked work must remain inspectable without busy polling");
252
+ yield* verify(Equal.equals(yield* readPending({
253
+ ownerThreadId: initial.key.ownerThreadId,
254
+ limit: 1
255
+ }), [parked]), "Parked uncertainty must remain visible without a wake deadline");
256
+ const recovered = yield* store.change(initial.key, {
257
+ _tag: "Recover",
258
+ nowMillis: 103,
259
+ expectedVersion: parked.version,
260
+ deadlineAtMillis: 2e3
261
+ });
262
+ yield* verify(recovered.retry.generation === 1 && Equal.equals(recovered.envelope, initial.envelope), "Explicit retry must preserve the frozen envelope");
263
+ yield* verify((yield* store.nextDeadline()) === 103, "Recovered work must be discoverable");
264
+ })
265
+ }
266
+ ];
267
+ //#endregion
268
+ export { MessageDeliveryConformanceViolation, makeMessageDeliveryFixture, makeWorkerUpdateDeliveryFixture, messageDeliveryFixtureReceipt, messageDeliveryStoreConformanceCases };
269
+
270
+ //# sourceMappingURL=MessageDeliveryStoreConformance.mjs.map