effect-agent 0.1.0-beta.12 → 0.1.0-beta.121

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-D9cXqfF3.d.mts +252 -0
  4. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  5. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  6. package/dist/AgentRuntime-BUxDdLpw.d.mts +346 -0
  7. package/dist/AgentRuntime-Cp1hAb-W.mjs +4739 -0
  8. package/dist/AgentRuntime-Cp1hAb-W.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-B-9w7jDt.mjs +7061 -0
  13. package/dist/DurableAgentRuntime-B-9w7jDt.mjs.map +1 -0
  14. package/dist/DurableFailpoint-Cnr3wx1L.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/EventSource-CnlZ3Kma.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-Dkg87ebg.d.mts +221 -0
  27. package/dist/Messaging-JYYN3oYS.d.mts +1067 -0
  28. package/dist/MessagingHost-CqzpxbGz.d.mts +74 -0
  29. package/dist/MessagingHost-DfsbMPvq.mjs +110 -0
  30. package/dist/MessagingHost-DfsbMPvq.mjs.map +1 -0
  31. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  32. package/dist/Output-V-6YL1_Z.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-BQLGldl-.d.mts +42 -0
  36. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  37. package/dist/Records-D88mgvyS.d.mts +4214 -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-CSBsSj0X.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-BIOHA6RR.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-CNik9RiA.d.mts +1635 -0
  49. package/dist/Subagent-DCrB7an7.mjs +1498 -0
  50. package/dist/Subagent-DCrB7an7.mjs.map +1 -0
  51. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  52. package/dist/SubagentHost-4WB8Hj0C.d.mts +164 -0
  53. package/dist/Subscription-CRteOKRf.d.mts +948 -0
  54. package/dist/SubscriptionInput-oNcwTPti.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-CfwzMZEK.mjs +271 -0
  72. package/dist/Worker-CfwzMZEK.mjs.map +1 -0
  73. package/dist/Worker-fwWkBg12.d.mts +472 -0
  74. package/dist/agent-registration-CKNsrpwo.mjs +201 -0
  75. package/dist/agent-registration-CKNsrpwo.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 +259 -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 +102 -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 +893 -0
  233. package/dist/durable/MessageDelivery.mjs +557 -0
  234. package/dist/durable/MessageDelivery.mjs.map +1 -0
  235. package/dist/durable/MessageDeliveryStoreConformance.d.mts +378 -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 +848 -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 +179 -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 +53 -0
  279. package/dist/durable/SqlThreadNativeReads.mjs +159 -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 +959 -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 +2187 -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 +355 -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 +76 -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 +283 -0
  398. package/dist/sandbox/ProtectedBrowser.mjs +298 -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 +426 -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 +2489 -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 +1273 -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 +136 -0
  433. package/src/capabilities/internal/utf8.ts +10 -0
  434. package/src/core/Agent.ts +602 -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 +240 -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 +11275 -0
  470. package/src/durable/DurableFailpoint.ts +111 -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 +832 -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 +1075 -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 +335 -0
  488. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  489. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  490. package/src/durable/SqlThreadNativeReads.ts +270 -0
  491. package/src/durable/SubmissionLedger.ts +1265 -0
  492. package/src/durable/SubmissionLedgerConformance.ts +4820 -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 +573 -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 +587 -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 +2885 -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 +230 -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 +10500 -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 +452 -0
  553. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,573 @@
1
+ import { Context, Effect, Option, Schema, Stream } from "effect";
2
+
3
+ import { RunId, SubmissionId, ThreadId } from "../core/Identifiers.ts";
4
+ import type { ToolCallPrepared, WorkerInputRequested } from "./Records.ts";
5
+ import {
6
+ BatchId,
7
+ CanonicalBatch,
8
+ CanonicalRecordEnvelope,
9
+ CanonicalSequence,
10
+ Digest,
11
+ ObservationOffset,
12
+ PersistedJson,
13
+ ProducerEpoch,
14
+ RecordId,
15
+ } from "./Records.ts";
16
+ import { runIdForSubmission, toolCallPreparedRecordId } from "./RunJournal.ts";
17
+ import { SubmissionLedger, SubmissionLookupById } from "./SubmissionLedger.ts";
18
+
19
+ export const MAX_THREAD_EXPORT_RECORDS = 131_072;
20
+
21
+ /** Exact canonical identity; absence is not proof that an admission was never accepted. */
22
+ export const ThreadRecordRequest = Schema.Struct({ threadId: ThreadId, recordId: RecordId });
23
+ export type ThreadRecordRequest = typeof ThreadRecordRequest.Type;
24
+
25
+ /** The original user input for a Run, excluding later joined inputs. */
26
+ export const ThreadRunInputRequest = Schema.Struct({ threadId: ThreadId, runId: RunId });
27
+ export type ThreadRunInputRequest = typeof ThreadRunInputRequest.Type;
28
+
29
+ export const ThreadOutstandingRequest = Schema.Struct({
30
+ threadId: ThreadId,
31
+ /** Exceeding this bound fails; a truncated inventory never grants authority. */
32
+ limit: Schema.Int.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(4_096)),
33
+ });
34
+
35
+ export type ThreadOutstandingRequest = typeof ThreadOutstandingRequest.Type;
36
+
37
+ export interface ThreadOutstanding {
38
+ readonly threadId: ThreadId;
39
+ readonly throughSequence: CanonicalSequence;
40
+ readonly complete: true;
41
+ readonly operations: ReadonlyArray<{
42
+ readonly submissionId: SubmissionId;
43
+ readonly prepared: ToolCallPrepared;
44
+ /** Prepared is not an unknown outcome or a grant to execute. */
45
+ readonly state: "prepared" | "unknown";
46
+ }>;
47
+ /** Source reservations without proof that external effects are resolved. */
48
+ readonly workerInputs: ReadonlyArray<WorkerInputRequested>;
49
+ }
50
+
51
+ /** Native worker reservation/accounting snapshot at a captured canonical tail. */
52
+ export const ThreadWorkerStateRequest = Schema.Struct({
53
+ threadId: ThreadId,
54
+ sourceSubmissionId: Schema.optionalKey(SubmissionId),
55
+ limit: Schema.Int.check(
56
+ Schema.isGreaterThan(0),
57
+ Schema.isLessThanOrEqualTo(MAX_THREAD_EXPORT_RECORDS),
58
+ ),
59
+ });
60
+
61
+ export type ThreadWorkerStateRequest = typeof ThreadWorkerStateRequest.Type;
62
+
63
+ /** Saturating lifetime peer-message count: the result is at most the requested cap. */
64
+ export const ThreadPeerCountRequest = Schema.Struct({
65
+ threadId: ThreadId,
66
+ limit: Schema.Int.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(1000)),
67
+ });
68
+
69
+ export type ThreadPeerCountRequest = typeof ThreadPeerCountRequest.Type;
70
+
71
+ const incomplete = (operation: string) =>
72
+ ThreadStoreError.make({
73
+ operation,
74
+ message: "Native canonical read is incomplete or corrupt",
75
+ });
76
+
77
+ /** Collect a complete bounded selection, using canonical sequence as a sparse cursor. */
78
+ const selectedRecords = Effect.fnUntraced(function* (
79
+ threadId: ThreadId,
80
+ selection: ThreadSelection,
81
+ limit: number,
82
+ ) {
83
+ const store = yield* ThreadStore;
84
+ const records: Array<CanonicalRecordEnvelope> = [];
85
+ let afterSequence: CanonicalSequence | undefined;
86
+
87
+ while (true) {
88
+ const pageLimit = Math.min(1024, limit + 1 - records.length);
89
+
90
+ const page = yield* Stream.runCollect(
91
+ store.read({
92
+ threadId,
93
+ selection,
94
+ page: { limit: pageLimit, ...(afterSequence === undefined ? {} : { afterSequence }) },
95
+ }),
96
+ );
97
+
98
+ for (const entry of page) {
99
+ if (
100
+ entry.threadId !== threadId ||
101
+ entry.sequence <= (afterSequence ?? 0) ||
102
+ ("expectedTailSequence" in selection && entry.sequence > selection.expectedTailSequence)
103
+ )
104
+ return yield* incomplete("read selection identity");
105
+ afterSequence = entry.sequence;
106
+ records.push(entry);
107
+ }
108
+ if (page.length > pageLimit || records.length > limit)
109
+ return yield* incomplete("read selection limit");
110
+ if (page.length < pageLimit) return records;
111
+ }
112
+ });
113
+
114
+ /** Host-owned read: authenticate the Thread and exact locator before calling. */
115
+ export const getRecord = Effect.fn("ThreadStore.getRecord")(function* (
116
+ request: ThreadRecordRequest,
117
+ ) {
118
+ yield* Schema.decodeEffect(ThreadRecordRequest)(request).pipe(
119
+ Effect.mapError(() => incomplete("getRecord request")),
120
+ );
121
+
122
+ const records = yield* selectedRecords(
123
+ request.threadId,
124
+ { _tag: "RecordId", recordId: request.recordId },
125
+ 1,
126
+ );
127
+
128
+ if (records.some((entry) => entry.record.recordId !== request.recordId))
129
+ return yield* incomplete("getRecord identity");
130
+
131
+ return Option.fromUndefinedOr(records[0]);
132
+ });
133
+
134
+ export const getRunInput = Effect.fn("ThreadStore.getRunInput")(function* (
135
+ request: ThreadRunInputRequest,
136
+ ) {
137
+ yield* Schema.decodeEffect(ThreadRunInputRequest)(request).pipe(
138
+ Effect.mapError(() => incomplete("getRunInput request")),
139
+ );
140
+
141
+ const records = yield* selectedRecords(
142
+ request.threadId,
143
+ { _tag: "RunInput", runId: request.runId },
144
+ 1,
145
+ );
146
+
147
+ if (
148
+ records.some(
149
+ ({ record: { payload } }) =>
150
+ payload._tag !== "UserInputRecorded" ||
151
+ payload.kind !== "user" ||
152
+ payload.runId !== request.runId,
153
+ )
154
+ )
155
+ return yield* incomplete("getRunInput identity");
156
+
157
+ return Option.fromUndefinedOr(records[0]);
158
+ });
159
+
160
+ /** A bounded snapshot of native lifetime and source-submission worker accounting. */
161
+ export const readWorkerState = Effect.fn("ThreadStore.readWorkerState")(function* (
162
+ request: ThreadWorkerStateRequest,
163
+ ) {
164
+ yield* Schema.decodeEffect(ThreadWorkerStateRequest)(request).pipe(
165
+ Effect.mapError(() => incomplete("readWorkerState request")),
166
+ );
167
+ const store = yield* ThreadStore;
168
+ const tail = yield* store.inspectTail(ThreadTailRequest.make({ threadId: request.threadId }));
169
+
170
+ const records = yield* selectedRecords(
171
+ request.threadId,
172
+ {
173
+ _tag: "WorkerState",
174
+ expectedTailSequence: tail.tailSequence,
175
+ expectedTailDigest: tail.tailDigest,
176
+ ...(request.sourceSubmissionId === undefined
177
+ ? {}
178
+ : { sourceSubmissionId: request.sourceSubmissionId }),
179
+ },
180
+ request.limit,
181
+ );
182
+
183
+ return {
184
+ threadId: request.threadId,
185
+ tailSequence: tail.tailSequence,
186
+ tailDigest: tail.tailDigest,
187
+ records,
188
+ };
189
+ });
190
+
191
+ /**
192
+ * Work is proportional to outstanding records, independent of completed history. Unknown
193
+ * effects survive abort and resolution intent; only canonical closure removes them. A
194
+ * preparation from another Run still requires native recovery before it can be treated as
195
+ * safe. This snapshot grants no execution authority and does not freeze other owners.
196
+ */
197
+ export const readOutstanding = Effect.fn("ThreadStore.readOutstanding")(function* (
198
+ request: ThreadOutstandingRequest,
199
+ ) {
200
+ yield* Schema.decodeEffect(ThreadOutstandingRequest)(request).pipe(
201
+ Effect.mapError(() => incomplete("readOutstanding request")),
202
+ );
203
+ const store = yield* ThreadStore;
204
+ const ledger = yield* SubmissionLedger;
205
+ const tail = yield* store.inspectTail(ThreadTailRequest.make({ threadId: request.threadId }));
206
+
207
+ const records = yield* selectedRecords(
208
+ request.threadId,
209
+ {
210
+ _tag: "Outstanding",
211
+ expectedTailSequence: tail.tailSequence,
212
+ expectedTailDigest: tail.tailDigest,
213
+ },
214
+ request.limit,
215
+ );
216
+
217
+ const operations: Array<ThreadOutstanding["operations"][number]> = [];
218
+ const workerInputs: Array<WorkerInputRequested> = [];
219
+
220
+ for (const entry of records) {
221
+ const payload = entry.record.payload;
222
+
223
+ if (payload._tag === "WorkerInputRequested") {
224
+ workerInputs.push(payload);
225
+ continue;
226
+ }
227
+ if (payload._tag !== "ToolCallPrepared" && payload._tag !== "ToolCallUnknown")
228
+ return yield* incomplete("readOutstanding record");
229
+
230
+ const preparedEntry =
231
+ payload._tag === "ToolCallPrepared"
232
+ ? entry
233
+ : Option.getOrUndefined(
234
+ yield* getRecord({
235
+ threadId: request.threadId,
236
+ recordId: toolCallPreparedRecordId(payload.runId, payload.turn, payload.toolCallId),
237
+ }),
238
+ );
239
+
240
+ const inputEntry = Option.getOrUndefined(
241
+ yield* getRunInput({ threadId: request.threadId, runId: payload.runId }),
242
+ );
243
+
244
+ if (
245
+ preparedEntry === undefined ||
246
+ inputEntry === undefined ||
247
+ preparedEntry.sequence > tail.tailSequence ||
248
+ inputEntry.sequence > tail.tailSequence
249
+ )
250
+ return yield* incomplete("readOutstanding proof beyond snapshot");
251
+ const prepared = preparedEntry.record.payload;
252
+ const input = inputEntry.record.payload;
253
+
254
+ if (
255
+ prepared?._tag !== "ToolCallPrepared" ||
256
+ prepared.runId !== payload.runId ||
257
+ prepared.turn !== payload.turn ||
258
+ prepared.toolCallId !== payload.toolCallId ||
259
+ prepared.toolName !== payload.toolName ||
260
+ input?._tag !== "UserInputRecorded" ||
261
+ input.submissionId === undefined ||
262
+ runIdForSubmission(input.submissionId) !== prepared.runId
263
+ )
264
+ return yield* incomplete("readOutstanding canonical ownership");
265
+
266
+ const submission = yield* ledger.lookup(
267
+ SubmissionLookupById.make({ submissionId: input.submissionId }),
268
+ );
269
+
270
+ if (Option.isNone(submission) || submission.value.threadId !== request.threadId)
271
+ return yield* incomplete("readOutstanding native admission");
272
+ operations.push({
273
+ submissionId: input.submissionId,
274
+ prepared,
275
+ state: payload._tag === "ToolCallUnknown" ? "unknown" : "prepared",
276
+ });
277
+ }
278
+
279
+ return {
280
+ threadId: request.threadId,
281
+ throughSequence: tail.tailSequence,
282
+ complete: true as const,
283
+ operations,
284
+ workerInputs,
285
+ };
286
+ });
287
+
288
+ export class ThreadMaterialization extends Schema.Class<ThreadMaterialization>(
289
+ "@effect-agent/thread/ThreadMaterialization",
290
+ )({
291
+ threadId: ThreadId,
292
+ producerEpoch: ProducerEpoch,
293
+ }) {}
294
+
295
+ export class FencedAppendRequest extends Schema.Class<FencedAppendRequest>(
296
+ "@effect-agent/thread/FencedAppendRequest",
297
+ )({
298
+ threadId: ThreadId,
299
+ batch: CanonicalBatch,
300
+ expectedTailSequence: CanonicalSequence,
301
+ expectedTailDigest: Digest,
302
+ producerEpoch: ProducerEpoch,
303
+ }) {}
304
+
305
+ export class AppendResult extends Schema.Class<AppendResult>("@effect-agent/thread/AppendResult")({
306
+ firstSequence: CanonicalSequence,
307
+ lastSequence: CanonicalSequence,
308
+ tailDigest: Digest,
309
+ replayed: Schema.Boolean,
310
+ }) {}
311
+
312
+ export class ThreadRead extends Schema.Class<ThreadRead>("@effect-agent/thread/ThreadRead")({
313
+ threadId: ThreadId,
314
+ afterSequence: Schema.optionalKey(CanonicalSequence),
315
+ limit: Schema.Natural.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(1_024)),
316
+ }) {}
317
+
318
+ /** Closed native selections; mutable metadata is read at this exact canonical tail. */
319
+ export const ThreadSelection = Schema.Union([
320
+ Schema.Struct({ _tag: Schema.Literal("RecordId"), recordId: RecordId }),
321
+ Schema.Struct({ _tag: Schema.Literal("RunInput"), runId: RunId }),
322
+ Schema.Struct({
323
+ _tag: Schema.Literal("Outstanding"),
324
+ expectedTailSequence: CanonicalSequence,
325
+ expectedTailDigest: Digest,
326
+ }),
327
+ Schema.Struct({
328
+ _tag: Schema.Literal("WorkerExecution"),
329
+ expectedTailSequence: CanonicalSequence,
330
+ expectedTailDigest: Digest,
331
+ }),
332
+ Schema.Struct({
333
+ _tag: Schema.Literal("WorkerState"),
334
+ expectedTailSequence: CanonicalSequence,
335
+ expectedTailDigest: Digest,
336
+ sourceSubmissionId: Schema.optionalKey(SubmissionId),
337
+ }),
338
+ ]);
339
+
340
+ export type ThreadSelection = typeof ThreadSelection.Type;
341
+
342
+ /** Nested page makes an old ThreadRead decoder reject, never strip a selection into history. */
343
+ export const SelectedThreadRead = Schema.Struct({
344
+ threadId: ThreadId,
345
+ selection: ThreadSelection,
346
+ page: Schema.Struct({
347
+ afterSequence: Schema.optionalKey(CanonicalSequence),
348
+ limit: ThreadRead.fields.limit,
349
+ }),
350
+ });
351
+
352
+ export type SelectedThreadRead = typeof SelectedThreadRead.Type;
353
+ export const ThreadReadRequest = Schema.Union([SelectedThreadRead, ThreadRead]);
354
+ export type ThreadReadRequest = typeof ThreadReadRequest.Type;
355
+
356
+ export class ThreadObservation extends Schema.Class<ThreadObservation>(
357
+ "@effect-agent/thread/ThreadObservation",
358
+ )({
359
+ threadId: ThreadId,
360
+ afterOffset: Schema.optionalKey(ObservationOffset),
361
+ }) {}
362
+
363
+ export class ThreadExportRequest extends Schema.Class<ThreadExportRequest>(
364
+ "@effect-agent/thread/ThreadExportRequest",
365
+ )({
366
+ threadId: ThreadId,
367
+ }) {}
368
+
369
+ export class ThreadTailRequest extends Schema.Class<ThreadTailRequest>(
370
+ "@effect-agent/thread/ThreadTailRequest",
371
+ )({
372
+ threadId: ThreadId,
373
+ }) {}
374
+
375
+ /**
376
+ * The committed tail of one Thread Log. A resuming producer composes its next
377
+ * FencedAppendRequest from this value instead of exporting the whole log.
378
+ */
379
+ export class ThreadTail extends Schema.Class<ThreadTail>("@effect-agent/thread/ThreadTail")({
380
+ threadId: ThreadId,
381
+ tailSequence: CanonicalSequence,
382
+ tailDigest: Digest,
383
+ producerEpoch: ProducerEpoch,
384
+ }) {}
385
+
386
+ /** Maximum canonical records represented by one Thread export. */
387
+
388
+ export class ThreadExport extends Schema.Class<ThreadExport>("@effect-agent/thread/ThreadExport")({
389
+ format: Schema.Literal("effect-agent/thread@1"),
390
+ threadId: ThreadId,
391
+ tailSequence: CanonicalSequence,
392
+ tailDigest: Digest,
393
+ records: Schema.Array(CanonicalRecordEnvelope).check(
394
+ Schema.isMaxLength(MAX_THREAD_EXPORT_RECORDS),
395
+ ),
396
+ }) {}
397
+
398
+ /**
399
+ * A disposable projection snapshot. Adapters bind its sequence and digest to the canonical
400
+ * log; consumers decode `state` and decide projection compatibility before suffix replay.
401
+ * Legacy metadata is optional for application projections and preserved when supplied.
402
+ * Runtime-owned recovery checkpoints populate and compare it before using cached state.
403
+ */
404
+ export class ThreadCheckpoint extends Schema.Class<ThreadCheckpoint>(
405
+ "@effect-agent/thread/ThreadCheckpoint",
406
+ )({
407
+ schemaVersion: Schema.Literal(1),
408
+ threadId: ThreadId,
409
+ throughSequence: CanonicalSequence,
410
+ tailDigest: Digest,
411
+ /** @deprecated For application projections; retained for existing data and runtime recovery. */
412
+ engineVersion: Schema.optionalKey(Schema.NonEmptyString),
413
+ /** @deprecated For application projections; retained for existing data and runtime recovery. */
414
+ agentDefinitionDigest: Schema.optionalKey(Digest),
415
+ /** @deprecated For application projections; retained for existing data and runtime recovery. */
416
+ modelDigest: Schema.optionalKey(Digest),
417
+ /** @deprecated For application projections; retained for existing data and runtime recovery. */
418
+ toolDigest: Schema.optionalKey(Digest),
419
+ state: PersistedJson,
420
+ createdAt: Schema.DateTimeUtcFromString,
421
+ }) {}
422
+
423
+ export class SaveCheckpointRequest extends Schema.Class<SaveCheckpointRequest>(
424
+ "@effect-agent/thread/SaveCheckpointRequest",
425
+ )({
426
+ checkpoint: ThreadCheckpoint,
427
+ }) {}
428
+
429
+ /** Replace the disposable recovery view only under the current canonical producer fence. */
430
+ export class SaveRecoveryCheckpointRequest extends Schema.Class<SaveRecoveryCheckpointRequest>(
431
+ "@effect-agent/thread/SaveRecoveryCheckpointRequest",
432
+ )({
433
+ checkpoint: ThreadCheckpoint,
434
+ producerEpoch: ProducerEpoch,
435
+ }) {}
436
+
437
+ export class LoadCheckpointRequest extends Schema.Class<LoadCheckpointRequest>(
438
+ "@effect-agent/thread/LoadCheckpointRequest",
439
+ )({
440
+ threadId: ThreadId,
441
+ atOrBeforeSequence: Schema.optionalKey(CanonicalSequence),
442
+ }) {}
443
+
444
+ /**
445
+ * Content-free storage provenance constructed by adapters from source-authored labels.
446
+ * Raw foreign lookalikes are not trusted diagnostics. Never include rejected values, SQL,
447
+ * or schema messages.
448
+ */
449
+ export class ThreadStoreDiagnostic extends Schema.Class<ThreadStoreDiagnostic>(
450
+ "@effect-agent/thread/ThreadStoreDiagnostic",
451
+ )({
452
+ causeTag: Schema.String.check(Schema.isMaxLength(128)),
453
+ operation: Schema.String.check(Schema.isMaxLength(256)),
454
+ decoder: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(128))),
455
+ issueTag: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(128))),
456
+ sequence: Schema.optionalKey(CanonicalSequence),
457
+ }) {}
458
+
459
+ export class ThreadStoreError extends Schema.TaggedError<ThreadStoreError>()("ThreadStoreError", {
460
+ operation: Schema.String,
461
+ message: Schema.String,
462
+ cause: Schema.optionalKey(Schema.Defect()),
463
+ diagnostic: Schema.optionalKey(ThreadStoreDiagnostic),
464
+ }) {}
465
+
466
+ export class ThreadNotMaterialized extends Schema.TaggedError<ThreadNotMaterialized>()(
467
+ "ThreadNotMaterialized",
468
+ { threadId: ThreadId },
469
+ ) {}
470
+
471
+ /**
472
+ * A canonical append that cannot commit: `batch-digest` replays a batch ID with different
473
+ * content, `record-identity` reuses a canonical record ID, and `tail` declares a stale expected
474
+ * tail. Tail conflicts carry the actual committed tail as a diagnostic resume hint.
475
+ */
476
+ export class AppendConflict extends Schema.TaggedError<AppendConflict>()("AppendConflict", {
477
+ threadId: ThreadId,
478
+ batchId: BatchId,
479
+ reason: Schema.Literals(["batch-digest", "record-identity", "tail"]),
480
+ actualTailSequence: Schema.optionalKey(CanonicalSequence),
481
+ actualTailDigest: Schema.optionalKey(Digest),
482
+ }) {}
483
+
484
+ export class FenceRejected extends Schema.TaggedError<FenceRejected>()("FenceRejected", {
485
+ threadId: ThreadId,
486
+ actualEpoch: ProducerEpoch,
487
+ attemptedEpoch: ProducerEpoch,
488
+ }) {}
489
+
490
+ export class CheckpointRejected extends Schema.TaggedError<CheckpointRejected>()(
491
+ "CheckpointRejected",
492
+ {
493
+ threadId: ThreadId,
494
+ reason: Schema.Literals(["ahead-of-tail", "digest-mismatch", "unsupported-version", "corrupt"]),
495
+ },
496
+ ) {}
497
+
498
+ export type ThreadStoreFailure =
499
+ | ThreadStoreError
500
+ | ThreadNotMaterialized
501
+ | AppendConflict
502
+ | FenceRejected;
503
+
504
+ /**
505
+ * Optional, disposable projection storage. Neither history execution nor durable recovery
506
+ * requires it. Adapters that offer it must bind every checkpoint to a canonical batch tail.
507
+ * Application consumers own projection compatibility; this port does not interpret metadata.
508
+ */
509
+ export interface ThreadCheckpoints {
510
+ readonly save: (
511
+ request: SaveCheckpointRequest,
512
+ ) => Effect.Effect<void, ThreadStoreError | ThreadNotMaterialized | CheckpointRejected>;
513
+ readonly load: (
514
+ request: LoadCheckpointRequest,
515
+ ) => Effect.Effect<
516
+ Option.Option<ThreadCheckpoint>,
517
+ ThreadStoreError | ThreadNotMaterialized | CheckpointRejected
518
+ >;
519
+ }
520
+
521
+ /**
522
+ * Optional latest-only recovery cache, independent of application projection checkpoints.
523
+ * Saves atomically validate the producer epoch and canonical batch tail. An older snapshot
524
+ * cannot replace a newer one; equal-tail replacement repairs disposable state. Invalid cached
525
+ * data fails with CheckpointRejected, while infrastructure failures remain ThreadStoreError.
526
+ * Loading at an earlier tail or outside the adapter's cache locality may return none so callers
527
+ * can replay canonical records. Canonical records and the ledger remain authority.
528
+ */
529
+ export interface ThreadRecoveryCheckpoints {
530
+ readonly save: (
531
+ request: SaveRecoveryCheckpointRequest,
532
+ ) => Effect.Effect<
533
+ void,
534
+ ThreadStoreError | ThreadNotMaterialized | CheckpointRejected | FenceRejected
535
+ >;
536
+ readonly load: ThreadCheckpoints["load"];
537
+ }
538
+
539
+ export class ThreadStore extends Context.Service<
540
+ ThreadStore,
541
+ {
542
+ readonly materialize: (
543
+ request: ThreadMaterialization,
544
+ ) => Effect.Effect<void, ThreadStoreError | FenceRejected>;
545
+ readonly append: (
546
+ request: FencedAppendRequest,
547
+ ) => Effect.Effect<
548
+ AppendResult,
549
+ ThreadStoreError | ThreadNotMaterialized | AppendConflict | FenceRejected
550
+ >;
551
+ readonly read: (
552
+ request: ThreadReadRequest,
553
+ ) => Stream.Stream<CanonicalRecordEnvelope, ThreadStoreError | ThreadNotMaterialized>;
554
+ readonly observe: (
555
+ request: ThreadObservation,
556
+ ) => Stream.Stream<CanonicalRecordEnvelope, ThreadStoreError | ThreadNotMaterialized>;
557
+ readonly export: (
558
+ request: ThreadExportRequest,
559
+ ) => Effect.Effect<ThreadExport, ThreadStoreError | ThreadNotMaterialized>;
560
+ readonly inspectTail: (
561
+ request: ThreadTailRequest,
562
+ ) => Effect.Effect<ThreadTail, ThreadStoreError | ThreadNotMaterialized>;
563
+ /** Absent when this adapter does not support disposable checkpoints. */
564
+ readonly checkpoints?: ThreadCheckpoints | undefined;
565
+ readonly recoveryCheckpoints?: ThreadRecoveryCheckpoints | undefined;
566
+ /** Indexed scalar count; unsupported adapters fail closed at the caller. */
567
+ readonly countPeerMessages?:
568
+ | ((
569
+ request: ThreadPeerCountRequest,
570
+ ) => Effect.Effect<number, ThreadStoreError | ThreadNotMaterialized>)
571
+ | undefined;
572
+ }
573
+ >()("@effect-agent/thread/ThreadStore") {}