effect-agent 0.1.0-beta.9 → 0.1.0-beta.91

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 (538) hide show
  1. package/dist/Agent-CN0EWRsR.d.mts +226 -0
  2. package/dist/Agent-RklVROrm.mjs +83 -0
  3. package/dist/Agent-RklVROrm.mjs.map +1 -0
  4. package/dist/AgentError-CggcAQ7V.d.mts +101 -0
  5. package/dist/AgentPolicy-CetmQrf3.d.mts +96 -0
  6. package/dist/AgentRuntime-CHipL2jG.mjs +4598 -0
  7. package/dist/AgentRuntime-CHipL2jG.mjs.map +1 -0
  8. package/dist/AgentRuntime-uxR_a4VM.d.mts +346 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-Dxu5zhOL.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-D7gDKGjH.mjs +6368 -0
  13. package/dist/DurableAgentRuntime-D7gDKGjH.mjs.map +1 -0
  14. package/dist/DurableFailpoint-Oinuuedm.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/Ephemeral.d.mts +22 -0
  17. package/dist/Ephemeral.mjs +22 -0
  18. package/dist/Ephemeral.mjs.map +1 -0
  19. package/dist/EventSource-OqS_P9ug.d.mts +51 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  22. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  23. package/dist/Messaging-CkcIdt4I.d.mts +490 -0
  24. package/dist/MessagingHost-CRk0kXzT.d.mts +246 -0
  25. package/dist/MessagingHost-CWi_PP3g.mjs +137 -0
  26. package/dist/MessagingHost-CWi_PP3g.mjs.map +1 -0
  27. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  28. package/dist/Output-D6SkedVx.d.mts +25 -0
  29. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  30. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  31. package/dist/PreparedInputAdmission-C4HbjHgl.d.mts +38 -0
  32. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  33. package/dist/Records-BAGkekt8.d.mts +3570 -0
  34. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  35. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  36. package/dist/RunJournal-Cgg1kNvc.mjs +825 -0
  37. package/dist/RunJournal-Cgg1kNvc.mjs.map +1 -0
  38. package/dist/RunOptions-g1aigcKI.d.mts +915 -0
  39. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  40. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  41. package/dist/Schedule-H3SEYX9g.d.mts +842 -0
  42. package/dist/Scheduling-C9aIP8zT.mjs +691 -0
  43. package/dist/Scheduling-C9aIP8zT.mjs.map +1 -0
  44. package/dist/Subagent-DyfzHNdv.d.mts +826 -0
  45. package/dist/Subagent-U5qXOFE8.mjs +1469 -0
  46. package/dist/Subagent-U5qXOFE8.mjs.map +1 -0
  47. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  48. package/dist/SubagentHost-CJUBQlcc.d.mts +140 -0
  49. package/dist/Subscription-BEP8oQO5.d.mts +921 -0
  50. package/dist/SubscriptionInput-vAAOBrK7.d.mts +41 -0
  51. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  52. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  53. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  54. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  55. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  56. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  57. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  58. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  59. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  60. package/dist/ToolExposure.d.mts +8 -0
  61. package/dist/ToolExposure.mjs +21 -0
  62. package/dist/ToolExposure.mjs.map +1 -0
  63. package/dist/ToolReconciler-DQVaJfpE.d.mts +76 -0
  64. package/dist/ToolResult-DmmgoChv.d.mts +61 -0
  65. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  66. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  67. package/dist/Worker-CaPYykpe.d.mts +228 -0
  68. package/dist/agent-registration-CWDMOAZA.mjs +172 -0
  69. package/dist/agent-registration-CWDMOAZA.mjs.map +1 -0
  70. package/dist/capabilities/Approval.d.mts +114 -0
  71. package/dist/capabilities/Approval.mjs +226 -0
  72. package/dist/capabilities/Approval.mjs.map +1 -0
  73. package/dist/capabilities/Budget.d.mts +112 -0
  74. package/dist/capabilities/Budget.mjs +346 -0
  75. package/dist/capabilities/Budget.mjs.map +1 -0
  76. package/dist/capabilities/CodeMode.d.mts +157 -0
  77. package/dist/capabilities/CodeMode.mjs +522 -0
  78. package/dist/capabilities/CodeMode.mjs.map +1 -0
  79. package/dist/capabilities/Commands.d.mts +55 -0
  80. package/dist/capabilities/Commands.mjs +57 -0
  81. package/dist/capabilities/Commands.mjs.map +1 -0
  82. package/dist/capabilities/ContextTools.d.mts +321 -0
  83. package/dist/capabilities/ContextTools.mjs +126 -0
  84. package/dist/capabilities/ContextTools.mjs.map +1 -0
  85. package/dist/capabilities/Mcp.d.mts +108 -0
  86. package/dist/capabilities/Mcp.mjs +260 -0
  87. package/dist/capabilities/Mcp.mjs.map +1 -0
  88. package/dist/capabilities/McpClient.d.mts +115 -0
  89. package/dist/capabilities/McpClient.mjs +506 -0
  90. package/dist/capabilities/McpClient.mjs.map +1 -0
  91. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  92. package/dist/capabilities/MemoryNotes.mjs +128 -0
  93. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  94. package/dist/capabilities/Messaging.d.mts +3 -0
  95. package/dist/capabilities/Messaging.mjs +151 -0
  96. package/dist/capabilities/Messaging.mjs.map +1 -0
  97. package/dist/capabilities/ModelContext.d.mts +89 -0
  98. package/dist/capabilities/ModelContext.mjs +168 -0
  99. package/dist/capabilities/ModelContext.mjs.map +1 -0
  100. package/dist/capabilities/Redaction.d.mts +37 -0
  101. package/dist/capabilities/Redaction.mjs +104 -0
  102. package/dist/capabilities/Redaction.mjs.map +1 -0
  103. package/dist/capabilities/Remembering.d.mts +434 -0
  104. package/dist/capabilities/Remembering.mjs +290 -0
  105. package/dist/capabilities/Remembering.mjs.map +1 -0
  106. package/dist/capabilities/RunHooks.d.mts +82 -0
  107. package/dist/capabilities/RunHooks.mjs +144 -0
  108. package/dist/capabilities/RunHooks.mjs.map +1 -0
  109. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  110. package/dist/capabilities/SemanticMemory.mjs +315 -0
  111. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  112. package/dist/capabilities/Subagent.d.mts +4 -0
  113. package/dist/capabilities/Subagent.mjs +5 -0
  114. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  115. package/dist/capabilities/SubagentReservations.mjs +479 -0
  116. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  117. package/dist/capabilities/ToolDiscovery.d.mts +109 -0
  118. package/dist/capabilities/ToolDiscovery.mjs +211 -0
  119. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  120. package/dist/capabilities/WebCapture.d.mts +163 -0
  121. package/dist/capabilities/WebCapture.mjs +335 -0
  122. package/dist/capabilities/WebCapture.mjs.map +1 -0
  123. package/dist/capabilities/WebSearch.d.mts +71 -0
  124. package/dist/capabilities/WebSearch.mjs +112 -0
  125. package/dist/capabilities/WebSearch.mjs.map +1 -0
  126. package/dist/compaction-C2OTceKw.mjs +505 -0
  127. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  128. package/dist/core/Agent.d.mts +2 -0
  129. package/dist/core/Agent.mjs +2 -0
  130. package/dist/core/AgentError.d.mts +2 -0
  131. package/dist/core/AgentError.mjs +117 -0
  132. package/dist/core/AgentError.mjs.map +1 -0
  133. package/dist/core/AgentPolicy.d.mts +2 -0
  134. package/dist/core/AgentPolicy.mjs +94 -0
  135. package/dist/core/AgentPolicy.mjs.map +1 -0
  136. package/dist/core/AgentUpdates.d.mts +2 -0
  137. package/dist/core/AgentUpdates.mjs +63 -0
  138. package/dist/core/AgentUpdates.mjs.map +1 -0
  139. package/dist/core/IdGenerator.d.mts +26 -0
  140. package/dist/core/IdGenerator.mjs +27 -0
  141. package/dist/core/IdGenerator.mjs.map +1 -0
  142. package/dist/core/Identifiers.d.mts +2 -0
  143. package/dist/core/Identifiers.mjs +43 -0
  144. package/dist/core/Identifiers.mjs.map +1 -0
  145. package/dist/core/Memory.d.mts +57 -0
  146. package/dist/core/Memory.mjs +203 -0
  147. package/dist/core/Memory.mjs.map +1 -0
  148. package/dist/core/MemoryNamespace.d.mts +2 -0
  149. package/dist/core/MemoryNamespace.mjs +116 -0
  150. package/dist/core/MemoryNamespace.mjs.map +1 -0
  151. package/dist/core/MemoryReference.d.mts +2 -0
  152. package/dist/core/MemoryReference.mjs +109 -0
  153. package/dist/core/MemoryReference.mjs.map +1 -0
  154. package/dist/core/MemoryRevalidation.d.mts +65 -0
  155. package/dist/core/MemoryRevalidation.mjs +126 -0
  156. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  157. package/dist/core/MemoryStore.d.mts +186 -0
  158. package/dist/core/MemoryStore.mjs +243 -0
  159. package/dist/core/MemoryStore.mjs.map +1 -0
  160. package/dist/core/Receipt.d.mts +2 -0
  161. package/dist/core/Receipt.mjs +36 -0
  162. package/dist/core/Receipt.mjs.map +1 -0
  163. package/dist/core/RememberingStore.d.mts +1562 -0
  164. package/dist/core/RememberingStore.mjs +190 -0
  165. package/dist/core/RememberingStore.mjs.map +1 -0
  166. package/dist/core/RunEvent.d.mts +2 -0
  167. package/dist/core/RunEvent.mjs +337 -0
  168. package/dist/core/RunEvent.mjs.map +1 -0
  169. package/dist/core/RunPolicyUsage.d.mts +2 -0
  170. package/dist/core/RunPolicyUsage.mjs +21 -0
  171. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  172. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  173. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  174. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  175. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  176. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  177. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  178. package/dist/core/SubagentContract.d.mts +2 -0
  179. package/dist/core/SubagentContract.mjs +148 -0
  180. package/dist/core/SubagentContract.mjs.map +1 -0
  181. package/dist/core/Thread.d.mts +2 -0
  182. package/dist/core/Thread.mjs +250 -0
  183. package/dist/core/Thread.mjs.map +1 -0
  184. package/dist/core/ToolResult.d.mts +2 -0
  185. package/dist/core/ToolResult.mjs +140 -0
  186. package/dist/core/ToolResult.mjs.map +1 -0
  187. package/dist/core/Usage.d.mts +2 -0
  188. package/dist/core/Usage.mjs +319 -0
  189. package/dist/core/Usage.mjs.map +1 -0
  190. package/dist/core/Worker.d.mts +3 -0
  191. package/dist/core/Worker.mjs +147 -0
  192. package/dist/core/Worker.mjs.map +1 -0
  193. package/dist/durable/ActivityStore.d.mts +116 -0
  194. package/dist/durable/ActivityStore.mjs +131 -0
  195. package/dist/durable/ActivityStore.mjs.map +1 -0
  196. package/dist/durable/Admin.d.mts +2 -0
  197. package/dist/durable/Admin.mjs +328 -0
  198. package/dist/durable/Admin.mjs.map +1 -0
  199. package/dist/durable/AgentRegistration.d.mts +2 -0
  200. package/dist/durable/AgentRegistration.mjs +14 -0
  201. package/dist/durable/AgentRegistration.mjs.map +1 -0
  202. package/dist/durable/Certification.d.mts +111 -0
  203. package/dist/durable/Certification.mjs +159 -0
  204. package/dist/durable/Certification.mjs.map +1 -0
  205. package/dist/durable/CommittedActivity.d.mts +62 -0
  206. package/dist/durable/CommittedActivity.mjs +159 -0
  207. package/dist/durable/CommittedActivity.mjs.map +1 -0
  208. package/dist/durable/Digest.d.mts +2 -0
  209. package/dist/durable/Digest.mjs +50 -0
  210. package/dist/durable/Digest.mjs.map +1 -0
  211. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  212. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  213. package/dist/durable/DurableFailpoint.d.mts +2 -0
  214. package/dist/durable/DurableFailpoint.mjs +94 -0
  215. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  216. package/dist/durable/DurableFailpointTestControl.d.mts +15 -0
  217. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  218. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  219. package/dist/durable/EventSource.d.mts +2 -0
  220. package/dist/durable/EventSource.mjs +65 -0
  221. package/dist/durable/EventSource.mjs.map +1 -0
  222. package/dist/durable/GitHubWorkflowSource.d.mts +144 -0
  223. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  224. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  225. package/dist/durable/MessageDelivery.d.mts +492 -0
  226. package/dist/durable/MessageDelivery.mjs +495 -0
  227. package/dist/durable/MessageDelivery.mjs.map +1 -0
  228. package/dist/durable/MessageDeliveryStoreConformance.d.mts +358 -0
  229. package/dist/durable/MessageDeliveryStoreConformance.mjs +243 -0
  230. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  231. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  232. package/dist/durable/OperationAuthorizer.mjs +70 -0
  233. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  234. package/dist/durable/PersistentHistory.d.mts +16 -0
  235. package/dist/durable/PersistentHistory.mjs +125 -0
  236. package/dist/durable/PersistentHistory.mjs.map +1 -0
  237. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  238. package/dist/durable/PreparedInputAdmission.mjs +34 -0
  239. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  240. package/dist/durable/Records.d.mts +2 -0
  241. package/dist/durable/Records.mjs +795 -0
  242. package/dist/durable/Records.mjs.map +1 -0
  243. package/dist/durable/Recovery.d.mts +2 -0
  244. package/dist/durable/Recovery.mjs +739 -0
  245. package/dist/durable/Recovery.mjs.map +1 -0
  246. package/dist/durable/RunJournal.d.mts +2 -0
  247. package/dist/durable/RunJournal.mjs +2 -0
  248. package/dist/durable/Schedule.d.mts +2 -0
  249. package/dist/durable/Schedule.mjs +382 -0
  250. package/dist/durable/Schedule.mjs.map +1 -0
  251. package/dist/durable/ScheduleStoreConformance.d.mts +18 -0
  252. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  253. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  254. package/dist/durable/ScheduleTransition.d.mts +24 -0
  255. package/dist/durable/ScheduleTransition.mjs +180 -0
  256. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  257. package/dist/durable/Scheduling.d.mts +54 -0
  258. package/dist/durable/Scheduling.mjs +2 -0
  259. package/dist/durable/SqlMemoryStore.d.mts +30 -0
  260. package/dist/durable/SqlMemoryStore.mjs +436 -0
  261. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  262. package/dist/durable/SqlMessageDeliveryStore.d.mts +40 -0
  263. package/dist/durable/SqlMessageDeliveryStore.mjs +167 -0
  264. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  265. package/dist/durable/SqlStorageV2Upgrade.d.mts +22 -0
  266. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  267. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  268. package/dist/durable/SqlSubscriptionStore.d.mts +63 -0
  269. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  270. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  271. package/dist/durable/SubmissionLedger.d.mts +3 -0
  272. package/dist/durable/SubmissionLedger.mjs +914 -0
  273. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  274. package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
  275. package/dist/durable/SubmissionLedgerConformance.mjs +1986 -0
  276. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  277. package/dist/durable/SubmissionStatus.d.mts +2 -0
  278. package/dist/durable/SubmissionStatus.mjs +18 -0
  279. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  280. package/dist/durable/Subscription.d.mts +2 -0
  281. package/dist/durable/Subscription.mjs +360 -0
  282. package/dist/durable/Subscription.mjs.map +1 -0
  283. package/dist/durable/SubscriptionInput.d.mts +2 -0
  284. package/dist/durable/SubscriptionInput.mjs +52 -0
  285. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  286. package/dist/durable/SubscriptionStoreConformance.d.mts +17 -0
  287. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  288. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  289. package/dist/durable/SubscriptionTools.d.mts +273 -0
  290. package/dist/durable/SubscriptionTools.mjs +190 -0
  291. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  292. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  293. package/dist/durable/SubscriptionTransition.mjs +148 -0
  294. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  295. package/dist/durable/Subscriptions.d.mts +73 -0
  296. package/dist/durable/Subscriptions.mjs +627 -0
  297. package/dist/durable/Subscriptions.mjs.map +1 -0
  298. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  299. package/dist/durable/ThreadContextHistory.mjs +152 -0
  300. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  301. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  302. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  303. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  304. package/dist/durable/ThreadInvariants.d.mts +74 -0
  305. package/dist/durable/ThreadInvariants.mjs +200 -0
  306. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  307. package/dist/durable/ThreadProjection.d.mts +78 -0
  308. package/dist/durable/ThreadProjection.mjs +158 -0
  309. package/dist/durable/ThreadProjection.mjs.map +1 -0
  310. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  311. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  312. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  313. package/dist/durable/ThreadStore.d.mts +2 -0
  314. package/dist/durable/ThreadStore.mjs +147 -0
  315. package/dist/durable/ThreadStore.mjs.map +1 -0
  316. package/dist/durable/ThreadStoreConformance.d.mts +29 -0
  317. package/dist/durable/ThreadStoreConformance.mjs +248 -0
  318. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  319. package/dist/durable/ToolReconciler.d.mts +2 -0
  320. package/dist/durable/ToolReconciler.mjs +81 -0
  321. package/dist/durable/ToolReconciler.mjs.map +1 -0
  322. package/dist/durable/WakeScheduler.d.mts +2 -0
  323. package/dist/durable/WakeScheduler.mjs +85 -0
  324. package/dist/durable/WakeScheduler.mjs.map +1 -0
  325. package/dist/durable/WorkerHost.d.mts +129 -0
  326. package/dist/durable/WorkerHost.mjs +77 -0
  327. package/dist/durable/WorkerHost.mjs.map +1 -0
  328. package/dist/engine/AgentRuntime.d.mts +2 -0
  329. package/dist/engine/AgentRuntime.mjs +2 -0
  330. package/dist/engine/Compaction.d.mts +7 -0
  331. package/dist/engine/Compaction.mjs +16 -0
  332. package/dist/engine/Compaction.mjs.map +1 -0
  333. package/dist/engine/ContextCompactor.d.mts +2 -0
  334. package/dist/engine/ContextCompactor.mjs +119 -0
  335. package/dist/engine/ContextCompactor.mjs.map +1 -0
  336. package/dist/engine/ContextHistory.d.mts +65 -0
  337. package/dist/engine/ContextHistory.mjs +76 -0
  338. package/dist/engine/ContextHistory.mjs.map +1 -0
  339. package/dist/engine/ContextWindow.d.mts +2 -0
  340. package/dist/engine/ContextWindow.mjs +59 -0
  341. package/dist/engine/ContextWindow.mjs.map +1 -0
  342. package/dist/engine/DurableStep.d.mts +2 -0
  343. package/dist/engine/DurableStep.mjs +62 -0
  344. package/dist/engine/DurableStep.mjs.map +1 -0
  345. package/dist/engine/MessagingHost.d.mts +2 -0
  346. package/dist/engine/MessagingHost.mjs +2 -0
  347. package/dist/engine/Output.d.mts +2 -0
  348. package/dist/engine/Output.mjs +8 -0
  349. package/dist/engine/Output.mjs.map +1 -0
  350. package/dist/engine/RunEventSink.d.mts +2 -0
  351. package/dist/engine/RunEventSink.mjs +22 -0
  352. package/dist/engine/RunEventSink.mjs.map +1 -0
  353. package/dist/engine/RunOptions.d.mts +2 -0
  354. package/dist/engine/RunOptions.mjs +122 -0
  355. package/dist/engine/RunOptions.mjs.map +1 -0
  356. package/dist/engine/SubagentHost.d.mts +2 -0
  357. package/dist/engine/SubagentHost.mjs +72 -0
  358. package/dist/engine/SubagentHost.mjs.map +1 -0
  359. package/dist/engine/ThreadHistory.d.mts +2 -0
  360. package/dist/engine/ThreadHistory.mjs +67 -0
  361. package/dist/engine/ThreadHistory.mjs.map +1 -0
  362. package/dist/engine/ToolBroker.d.mts +2 -0
  363. package/dist/engine/ToolBroker.mjs +42 -0
  364. package/dist/engine/ToolBroker.mjs.map +1 -0
  365. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  366. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  367. package/dist/index.d.mts +89 -6
  368. package/dist/index.mjs +98 -6
  369. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  370. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  371. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  372. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  373. package/dist/sandbox/CodeExecutor.mjs +278 -0
  374. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  375. package/dist/sandbox/InteractiveBrowser.d.mts +142 -0
  376. package/dist/sandbox/InteractiveBrowser.mjs +165 -0
  377. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  378. package/dist/sandbox/PageCapture.d.mts +2 -0
  379. package/dist/sandbox/PageCapture.mjs +450 -0
  380. package/dist/sandbox/PageCapture.mjs.map +1 -0
  381. package/dist/sandbox/PageCrawl.d.mts +88 -0
  382. package/dist/sandbox/PageCrawl.mjs +124 -0
  383. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  384. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  385. package/dist/sandbox/PageScreenshot.mjs +53 -0
  386. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  387. package/dist/sandbox/ProtectedBrowser.d.mts +273 -0
  388. package/dist/sandbox/ProtectedBrowser.mjs +287 -0
  389. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  390. package/dist/sandbox/Sandbox.d.mts +2 -0
  391. package/dist/sandbox/Sandbox.mjs +208 -0
  392. package/dist/sandbox/Sandbox.mjs.map +1 -0
  393. package/dist/utf8-BYfhEkcj.mjs +11 -0
  394. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  395. package/dist/utf8-DchGZRBd.mjs +23 -0
  396. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  397. package/package.json +1 -40
  398. package/src/Ephemeral.ts +17 -0
  399. package/src/ToolExposure.ts +2 -0
  400. package/src/capabilities/Approval.ts +352 -0
  401. package/src/capabilities/Budget.ts +536 -0
  402. package/src/capabilities/CodeMode.ts +1090 -0
  403. package/src/capabilities/Commands.ts +86 -0
  404. package/src/capabilities/ContextTools.ts +184 -0
  405. package/src/capabilities/Mcp.ts +427 -0
  406. package/src/capabilities/McpClient.ts +967 -0
  407. package/src/capabilities/MemoryNotes.ts +174 -0
  408. package/src/capabilities/Messaging.ts +261 -0
  409. package/src/capabilities/ModelContext.ts +354 -0
  410. package/src/capabilities/Redaction.ts +157 -0
  411. package/src/capabilities/Remembering.ts +550 -0
  412. package/src/capabilities/RunHooks.ts +280 -0
  413. package/src/capabilities/SemanticMemory.ts +447 -0
  414. package/src/capabilities/Subagent.ts +2277 -0
  415. package/src/capabilities/SubagentReservations.ts +850 -0
  416. package/src/capabilities/ToolDiscovery.ts +339 -0
  417. package/src/capabilities/WebCapture.ts +722 -0
  418. package/src/capabilities/WebSearch.ts +184 -0
  419. package/src/capabilities/internal/subagent-background.ts +1106 -0
  420. package/src/capabilities/internal/subagent-contract.ts +142 -0
  421. package/src/capabilities/internal/subagent-policy.ts +235 -0
  422. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  423. package/src/capabilities/internal/utf8.ts +10 -0
  424. package/src/core/Agent.ts +575 -0
  425. package/src/core/AgentError.ts +152 -0
  426. package/src/core/AgentPolicy.ts +153 -0
  427. package/src/core/AgentUpdates.ts +100 -0
  428. package/src/core/IdGenerator.ts +39 -0
  429. package/src/core/Identifiers.ts +48 -0
  430. package/src/core/Memory.ts +290 -0
  431. package/src/core/MemoryNamespace.ts +196 -0
  432. package/src/core/MemoryReference.ts +121 -0
  433. package/src/core/MemoryRevalidation.ts +185 -0
  434. package/src/core/MemoryStore.ts +368 -0
  435. package/src/core/Messaging.ts +90 -0
  436. package/src/core/Receipt.ts +42 -0
  437. package/src/core/RememberingStore.ts +300 -0
  438. package/src/core/RunEvent.ts +366 -0
  439. package/src/core/RunPolicyUsage.ts +17 -0
  440. package/src/core/SemanticMemoryIndex.ts +250 -0
  441. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  442. package/src/core/SubagentContract.ts +196 -0
  443. package/src/core/Thread.ts +371 -0
  444. package/src/core/ToolExposure.ts +74 -0
  445. package/src/core/ToolResult.ts +170 -0
  446. package/src/core/Usage.ts +529 -0
  447. package/src/core/Worker.ts +173 -0
  448. package/src/core/internal/agent-updates.ts +32 -0
  449. package/src/core/internal/utf8.ts +23 -0
  450. package/src/durable/ActivityStore.ts +160 -0
  451. package/src/durable/Admin.ts +496 -0
  452. package/src/durable/AgentRegistration.ts +13 -0
  453. package/src/durable/Certification.ts +210 -0
  454. package/src/durable/CommittedActivity.ts +296 -0
  455. package/src/durable/Digest.ts +93 -0
  456. package/src/durable/DurableAgentRuntime.ts +10340 -0
  457. package/src/durable/DurableFailpoint.ts +103 -0
  458. package/src/durable/DurableFailpointTestControl.ts +39 -0
  459. package/src/durable/EventSource.ts +172 -0
  460. package/src/durable/GitHubWorkflowSource.ts +453 -0
  461. package/src/durable/MessageDelivery.ts +708 -0
  462. package/src/durable/MessageDeliveryStoreConformance.ts +363 -0
  463. package/src/durable/OperationAuthorizer.ts +85 -0
  464. package/src/durable/PersistentHistory.ts +260 -0
  465. package/src/durable/PreparedInputAdmission.ts +44 -0
  466. package/src/durable/Records.ts +1010 -0
  467. package/src/durable/Recovery.ts +1018 -0
  468. package/src/durable/RunJournal.ts +1479 -0
  469. package/src/durable/Schedule.ts +504 -0
  470. package/src/durable/ScheduleStoreConformance.ts +638 -0
  471. package/src/durable/ScheduleTransition.ts +265 -0
  472. package/src/durable/Scheduling.ts +1077 -0
  473. package/src/durable/SqlMemoryStore.ts +778 -0
  474. package/src/durable/SqlMessageDeliveryStore.ts +302 -0
  475. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  476. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  477. package/src/durable/SubmissionLedger.ts +1201 -0
  478. package/src/durable/SubmissionLedgerConformance.ts +4579 -0
  479. package/src/durable/SubmissionStatus.ts +14 -0
  480. package/src/durable/Subscription.ts +544 -0
  481. package/src/durable/SubscriptionInput.ts +144 -0
  482. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  483. package/src/durable/SubscriptionTools.ts +327 -0
  484. package/src/durable/SubscriptionTransition.ts +302 -0
  485. package/src/durable/Subscriptions.ts +1210 -0
  486. package/src/durable/ThreadContextHistory.ts +227 -0
  487. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  488. package/src/durable/ThreadInvariants.ts +442 -0
  489. package/src/durable/ThreadProjection.ts +269 -0
  490. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  491. package/src/durable/ThreadStore.ts +242 -0
  492. package/src/durable/ThreadStoreConformance.ts +710 -0
  493. package/src/durable/ToolReconciler.ts +105 -0
  494. package/src/durable/WakeScheduler.ts +134 -0
  495. package/src/durable/WorkerHost.ts +171 -0
  496. package/src/durable/internal/agent-registration.ts +525 -0
  497. package/src/durable/internal/agent-updates.ts +302 -0
  498. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  499. package/src/durable/internal/journal-checkpoint.ts +104 -0
  500. package/src/durable/internal/journal-metadata.ts +107 -0
  501. package/src/durable/internal/messaging-host.ts +608 -0
  502. package/src/durable/internal/schedule-time.ts +303 -0
  503. package/src/durable/internal/storage-v2-layout.ts +163 -0
  504. package/src/durable/internal/storage-v2.ts +73 -0
  505. package/src/durable/internal/worker-host.ts +2467 -0
  506. package/src/durable/internal/worker-runtime.ts +9 -0
  507. package/src/engine/AgentRuntime.ts +37 -0
  508. package/src/engine/Compaction.ts +11 -0
  509. package/src/engine/ContextCompactor.ts +277 -0
  510. package/src/engine/ContextHistory.ts +73 -0
  511. package/src/engine/ContextWindow.ts +72 -0
  512. package/src/engine/DurableStep.ts +132 -0
  513. package/src/engine/MessagingHost.ts +110 -0
  514. package/src/engine/Output.ts +2 -0
  515. package/src/engine/RunEventSink.ts +132 -0
  516. package/src/engine/RunOptions.ts +1077 -0
  517. package/src/engine/SubagentHost.ts +181 -0
  518. package/src/engine/ThreadHistory.ts +120 -0
  519. package/src/engine/ToolBroker.ts +157 -0
  520. package/src/engine/ToolExposure.ts +48 -0
  521. package/src/engine/internal/agent-runtime.ts +10162 -0
  522. package/src/engine/internal/bounded-value.ts +315 -0
  523. package/src/engine/internal/compaction.ts +678 -0
  524. package/src/engine/internal/error-diagnostic.ts +39 -0
  525. package/src/engine/internal/output-contract.ts +173 -0
  526. package/src/engine/internal/primitive-delta.ts +80 -0
  527. package/src/engine/internal/provider-result-staging.ts +211 -0
  528. package/src/engine/internal/tool-derivative.ts +106 -0
  529. package/src/engine/internal/tool-exposure.ts +224 -0
  530. package/src/engine/internal/tool-telemetry.ts +484 -0
  531. package/src/index.ts +97 -22
  532. package/src/sandbox/CodeExecutor.ts +352 -0
  533. package/src/sandbox/InteractiveBrowser.ts +257 -0
  534. package/src/sandbox/PageCapture.ts +692 -0
  535. package/src/sandbox/PageCrawl.ts +148 -0
  536. package/src/sandbox/PageScreenshot.ts +81 -0
  537. package/src/sandbox/ProtectedBrowser.ts +436 -0
  538. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,500 @@
1
+ import { Effect, Schema } from "effect";
2
+ import * as SqlClient from "effect/unstable/sql/SqlClient";
3
+
4
+ import { digestJson } from "./Digest.ts";
5
+ import { v2Columns } from "./internal/storage-v2-layout.ts";
6
+ import { V2Delivery, V2Schedule, V2Subscription } from "./internal/storage-v2.ts";
7
+ import { DefinitionDigests } from "./Records.ts";
8
+ import { ScheduleRecord, ScheduleFailpoint } from "./Schedule.ts";
9
+ import { scheduleDeadline } from "./ScheduleTransition.ts";
10
+ import {
11
+ SubscriptionConfiguration,
12
+ SubscriptionFailpoint,
13
+ SubscriptionRecord,
14
+ SubscriptionDelivery,
15
+ PreparedInput,
16
+ subscriptionDeliveryKeyString,
17
+ } from "./Subscription.ts";
18
+
19
+ /** Adapter initialization preserves this diagnosis; no payloads are included in diagnostics. */
20
+ export class StorageUpgradeError extends Schema.TaggedError<StorageUpgradeError>()(
21
+ "StorageUpgradeError",
22
+ {
23
+ table: Schema.String,
24
+ rowKey: Schema.String,
25
+ reason: Schema.Literals(["corrupt", "unsupported", "storage"]),
26
+ message: Schema.String,
27
+ },
28
+ ) {}
29
+
30
+ const invalid = (table: string, rowKey: string, message: string) =>
31
+ StorageUpgradeError.make({ table, rowKey, reason: "corrupt", message });
32
+
33
+ const decode = <A, I>(schema: Schema.Codec<A, I>, input: unknown, table: string, rowKey: string) =>
34
+ Schema.decodeUnknownEffect(schema)(input, { onExcessProperty: "error" }).pipe(
35
+ Effect.mapError(() =>
36
+ invalid(
37
+ table,
38
+ rowKey,
39
+ "The stored value does not match the unpatched beta49/beta50 contract. Restore or repair this row using its original writer; no upgrade was committed.",
40
+ ),
41
+ ),
42
+ );
43
+
44
+ const json = <A, I>(schema: Schema.Codec<A, I>, input: string, table: string, rowKey: string) =>
45
+ decode(Schema.fromJsonString(schema), input, table, rowKey);
46
+
47
+ const encode = <A, I>(schema: Schema.Codec<A, I>, input: A, table: string, rowKey: string) =>
48
+ Schema.encodeEffect(Schema.fromJsonString(schema))(input).pipe(
49
+ Effect.mapError(() =>
50
+ invalid(table, rowKey, "The translated row does not match the current contract."),
51
+ ),
52
+ );
53
+
54
+ const digest = (value: Schema.Json, table: string, rowKey: string) =>
55
+ digestJson(value).pipe(
56
+ Effect.mapError(() => invalid(table, rowKey, "Unable to verify stored digest.")),
57
+ );
58
+
59
+ const JsonRow = Schema.Struct({ record_json: Schema.String });
60
+
61
+ const rows = <A, I>(schema: Schema.Codec<A, I>, input: unknown, table: string) =>
62
+ // SQL rows may contain the indexed columns in addition to the requested payload.
63
+ Schema.decodeUnknownEffect(Schema.Array(schema))(input).pipe(
64
+ Effect.mapError(() => invalid(table, "rows", "Invalid SQL row shape.")),
65
+ );
66
+
67
+ const checkColumns = Effect.fn("SqlStorageV2Upgrade.checkColumns")(function* (
68
+ tables: ReadonlyArray<keyof typeof v2Columns>,
69
+ ) {
70
+ const sql = yield* SqlClient.SqlClient;
71
+
72
+ for (const table of tables) {
73
+ const columns = yield* rows(
74
+ Schema.Struct({ name: Schema.String }),
75
+ yield* sql.unsafe(`PRAGMA table_info(${table})`),
76
+ table,
77
+ );
78
+
79
+ if (JSON.stringify(columns.map((column) => column.name)) !== JSON.stringify(v2Columns[table]))
80
+ return yield* invalid(
81
+ table,
82
+ "schema",
83
+ "The table does not match the supported unpatched v2 layout. Keep the original writer available to inspect this store; no upgrade was committed.",
84
+ );
85
+ }
86
+ });
87
+
88
+ /** Native SQL only; callers own one transaction, recheck the version inside it, and advance it last. */
89
+ export const upgradeV2Schedules = Effect.fn("SqlStorageV2Upgrade.schedules")(function* (
90
+ maxBytes: number,
91
+ ) {
92
+ const sql = yield* SqlClient.SqlClient;
93
+ const { hit } = yield* ScheduleFailpoint;
94
+
95
+ yield* checkColumns(["effect_agent_schedules"]);
96
+ const table = "effect_agent_schedules";
97
+ let after: number | undefined;
98
+
99
+ while (true) {
100
+ const stored = yield* rows(
101
+ Schema.Struct({
102
+ storage_rowid: Schema.Int,
103
+ ...JsonRow.fields,
104
+ tenant_id: Schema.String,
105
+ owner_id: Schema.String,
106
+ schedule_id: Schema.String,
107
+ deadline_at_millis: Schema.NullOr(Schema.Number),
108
+ }),
109
+ yield* after === undefined
110
+ ? sql`SELECT rowid AS storage_rowid, * FROM effect_agent_schedules ORDER BY rowid LIMIT 16`
111
+ : sql`SELECT rowid AS storage_rowid, * FROM effect_agent_schedules WHERE rowid > ${after} ORDER BY rowid LIMIT 16`,
112
+ table,
113
+ );
114
+
115
+ if (stored.length === 0) break;
116
+ for (const row of stored) {
117
+ after = row.storage_rowid;
118
+ const key = `${row.tenant_id}/${row.owner_id}/${row.schedule_id}`;
119
+ const old = yield* json(V2Schedule, row.record_json, table, key);
120
+
121
+ const record = yield* decode(
122
+ ScheduleRecord,
123
+ {
124
+ ...old,
125
+ pending:
126
+ old.pending === null
127
+ ? null
128
+ : {
129
+ envelope: old.pending.envelope,
130
+ retry: {
131
+ ...old.pending.retry,
132
+ generation: 0,
133
+ automaticAttempts: old.pending.retry.attempts,
134
+ parked: false,
135
+ },
136
+ },
137
+ },
138
+ table,
139
+ key,
140
+ );
141
+
142
+ if (
143
+ record.owner.tenantId !== row.tenant_id ||
144
+ record.owner.ownerId !== row.owner_id ||
145
+ record.scheduleId !== row.schedule_id ||
146
+ scheduleDeadline(record) !== row.deadline_at_millis
147
+ )
148
+ return yield* invalid(
149
+ table,
150
+ key,
151
+ "Schedule identity or deadline disagrees with its index.",
152
+ );
153
+ if (record.pending !== null) {
154
+ const value = yield* encode(ScheduleRecord, record, table, key);
155
+
156
+ if (new TextEncoder().encode(value).byteLength > maxBytes)
157
+ return yield* invalid(
158
+ table,
159
+ key,
160
+ "Translated schedule exceeds the adapter value bound; original data was retained.",
161
+ );
162
+ yield* hit("upgrade:before-mutation");
163
+ yield* sql`UPDATE effect_agent_schedules SET record_json=${value} WHERE tenant_id=${row.tenant_id} AND owner_id=${row.owner_id} AND schedule_id=${row.schedule_id}`;
164
+ yield* hit("upgrade:after-mutation");
165
+ }
166
+ }
167
+ }
168
+ });
169
+
170
+ /** v2 registrations were immutable: revision 1 and the delivery snapshot have one possible value. */
171
+ export const upgradeV2Subscriptions = Effect.fn("SqlStorageV2Upgrade.subscriptions")(function* (
172
+ maxBytes: number,
173
+ ) {
174
+ const sql = yield* SqlClient.SqlClient;
175
+ const { hit } = yield* SubscriptionFailpoint;
176
+
177
+ yield* checkColumns([
178
+ "effect_agent_subscriptions",
179
+ "effect_agent_subscription_events",
180
+ "effect_agent_subscription_deliveries",
181
+ "effect_agent_subscription_sequences",
182
+ ]);
183
+ const registrationTable = "effect_agent_subscriptions";
184
+ const eventTable = "effect_agent_subscription_events";
185
+ const deliveryTable = "effect_agent_subscription_deliveries";
186
+
187
+ // Rebuild only the registration table to remove the old NOT NULL expiry constraint.
188
+ // The original rows, keys, ordinals and expiry values are copied before the swap.
189
+ const mutate = <A, E2>(body: Effect.Effect<A, E2>) =>
190
+ Effect.gen(function* () {
191
+ yield* hit("upgrade:before-mutation");
192
+ const result = yield* body;
193
+
194
+ yield* hit("upgrade:after-mutation");
195
+
196
+ return result;
197
+ });
198
+
199
+ yield* mutate(sql`CREATE TABLE effect_agent_subscriptions_v3 (
200
+ tenant_id TEXT NOT NULL, source_address TEXT NOT NULL, owner_id TEXT NOT NULL, subscription_id TEXT NOT NULL,
201
+ ordinal INTEGER NOT NULL, source_name TEXT NOT NULL, source_version TEXT NOT NULL, matching_key TEXT NOT NULL,
202
+ state TEXT NOT NULL, expires_at_millis INTEGER, recovery_at_millis INTEGER, recovery_present INTEGER NOT NULL DEFAULT 0, record_json TEXT NOT NULL,
203
+ PRIMARY KEY (tenant_id, source_address, owner_id, subscription_id), UNIQUE (tenant_id, source_address, ordinal))`);
204
+
205
+ let registrationAfter: number | undefined;
206
+
207
+ while (true) {
208
+ const registrations = yield* rows(
209
+ Schema.Struct({
210
+ storage_rowid: Schema.Int,
211
+ ...JsonRow.fields,
212
+ tenant_id: Schema.String,
213
+ source_address: Schema.String,
214
+ owner_id: Schema.String,
215
+ subscription_id: Schema.String,
216
+ ordinal: Schema.Natural,
217
+ source_name: Schema.String,
218
+ source_version: Schema.String,
219
+ matching_key: Schema.String,
220
+ state: Schema.String,
221
+ expires_at_millis: Schema.Number,
222
+ recovery_at_millis: Schema.NullOr(Schema.Number),
223
+ }),
224
+ yield* registrationAfter === undefined
225
+ ? sql`SELECT rowid AS storage_rowid, * FROM effect_agent_subscriptions ORDER BY rowid LIMIT 16`
226
+ : sql`SELECT rowid AS storage_rowid, * FROM effect_agent_subscriptions WHERE rowid > ${registrationAfter} ORDER BY rowid LIMIT 16`,
227
+ registrationTable,
228
+ );
229
+
230
+ if (registrations.length === 0) break;
231
+
232
+ const registrationKey = (key: SubscriptionRecord["key"]) =>
233
+ JSON.stringify([
234
+ key.partition.tenantId,
235
+ key.partition.address,
236
+ key.ownerId,
237
+ key.subscriptionId,
238
+ ]);
239
+
240
+ for (const row of registrations) {
241
+ registrationAfter = row.storage_rowid;
242
+
243
+ const key = JSON.stringify([
244
+ row.tenant_id,
245
+ row.source_address,
246
+ row.owner_id,
247
+ row.subscription_id,
248
+ ]);
249
+
250
+ const old = yield* json(V2Subscription, row.record_json, registrationTable, key);
251
+
252
+ const record = yield* decode(
253
+ SubscriptionRecord,
254
+ {
255
+ ...old,
256
+ configurationRevision: 1,
257
+ configurationFingerprint: old.creationFingerprint,
258
+ creationConfiguration: old.configuration,
259
+ },
260
+ registrationTable,
261
+ key,
262
+ );
263
+
264
+ if (
265
+ registrationKey(record.key) !== key ||
266
+ record.ordinal !== row.ordinal ||
267
+ record.configuration.source.name !== row.source_name ||
268
+ record.configuration.source.version !== row.source_version ||
269
+ record.configuration.matchingKey !== row.matching_key ||
270
+ record.state !== row.state ||
271
+ record.configuration.expiresAtMillis !== row.expires_at_millis ||
272
+ (record.recovery?.nextAttemptAtMillis ?? null) !== row.recovery_at_millis
273
+ )
274
+ return yield* invalid(
275
+ registrationTable,
276
+ key,
277
+ "Subscription identity or operational indexes disagree with its record.",
278
+ );
279
+ if (
280
+ (yield* digest(
281
+ {
282
+ key: record.key,
283
+ createdBy: record.createdBy,
284
+ configuration: yield* Schema.encodeEffect(SubscriptionConfiguration)(old.configuration),
285
+ },
286
+ registrationTable,
287
+ key,
288
+ )) !== record.creationFingerprint
289
+ )
290
+ return yield* invalid(
291
+ registrationTable,
292
+ key,
293
+ "The immutable v2 configuration does not match its fingerprint; a delivery snapshot cannot safely be inferred.",
294
+ );
295
+ const value = yield* encode(SubscriptionRecord, record, registrationTable, key);
296
+
297
+ if (new TextEncoder().encode(value).byteLength > maxBytes)
298
+ return yield* invalid(
299
+ registrationTable,
300
+ key,
301
+ "Adding the creation configuration exceeds the adapter value bound; original data was retained.",
302
+ );
303
+ yield* mutate(
304
+ sql`INSERT INTO effect_agent_subscriptions_v3 VALUES (${row.tenant_id}, ${row.source_address}, ${row.owner_id}, ${row.subscription_id}, ${row.ordinal}, ${row.source_name}, ${row.source_version}, ${row.matching_key}, ${row.state}, ${row.expires_at_millis}, ${row.recovery_at_millis}, ${record.recovery === null ? 0 : 1}, ${value})`,
305
+ );
306
+ }
307
+ }
308
+ let deliveryAfter: number | undefined;
309
+
310
+ while (true) {
311
+ const deliveries = yield* rows(
312
+ Schema.Struct({
313
+ storage_rowid: Schema.Int,
314
+ ...JsonRow.fields,
315
+ tenant_id: Schema.String,
316
+ source_address: Schema.String,
317
+ owner_id: Schema.String,
318
+ subscription_id: Schema.String,
319
+ event_id: Schema.String,
320
+ delivery_key: Schema.String,
321
+ state: Schema.String,
322
+ next_attempt_at_millis: Schema.Number,
323
+ }),
324
+ yield* deliveryAfter === undefined
325
+ ? sql`SELECT rowid AS storage_rowid, * FROM effect_agent_subscription_deliveries ORDER BY rowid LIMIT 16`
326
+ : sql`SELECT rowid AS storage_rowid, * FROM effect_agent_subscription_deliveries WHERE rowid > ${deliveryAfter} ORDER BY rowid LIMIT 16`,
327
+ deliveryTable,
328
+ );
329
+
330
+ if (deliveries.length === 0) break;
331
+ for (const row of deliveries) {
332
+ deliveryAfter = row.storage_rowid;
333
+ const key = row.delivery_key;
334
+ const old = yield* json(V2Delivery, row.record_json, deliveryTable, key);
335
+
336
+ const registrations = yield* rows(
337
+ JsonRow,
338
+ yield* sql`SELECT record_json FROM effect_agent_subscriptions_v3 WHERE tenant_id=${row.tenant_id} AND source_address=${row.source_address} AND owner_id=${row.owner_id} AND subscription_id=${row.subscription_id}`,
339
+ registrationTable,
340
+ );
341
+
342
+ // Indexed immutable identity is sufficient here. Event payloads are not transformed or scanned.
343
+ const events = yield* rows(
344
+ Schema.Struct({
345
+ event_id: Schema.String,
346
+ source_name: Schema.String,
347
+ source_version: Schema.String,
348
+ payload_digest: Schema.String,
349
+ }),
350
+ yield* sql`SELECT event_id, source_name, source_version, payload_digest FROM effect_agent_subscription_events WHERE tenant_id=${row.tenant_id} AND source_address=${row.source_address} AND event_id=${row.event_id}`,
351
+ eventTable,
352
+ );
353
+
354
+ if (registrations.length !== 1 || events.length !== 1)
355
+ return yield* invalid(
356
+ deliveryTable,
357
+ key,
358
+ "Missing original registration or event. Restore the referenced row from the original store; the delivery configuration cannot be reconstructed safely.",
359
+ );
360
+
361
+ const registration = yield* json(
362
+ SubscriptionRecord,
363
+ registrations[0].record_json,
364
+ registrationTable,
365
+ key,
366
+ );
367
+
368
+ const event = events[0];
369
+
370
+ const record = yield* decode(
371
+ SubscriptionDelivery,
372
+ {
373
+ ...old,
374
+ configurationRevision: 1,
375
+ configuration: registration.configuration,
376
+ retry: {
377
+ ...old.retry,
378
+ generation: 0,
379
+ automaticAttempts: old.retry.attempts,
380
+ parked: false,
381
+ },
382
+ },
383
+ deliveryTable,
384
+ key,
385
+ );
386
+
387
+ const expectedId = yield* digest(
388
+ { schemaVersion: 1, subscription: registration.key, eventId: event.event_id },
389
+ deliveryTable,
390
+ key,
391
+ );
392
+
393
+ const destination = registration.configuration.destination;
394
+
395
+ if (
396
+ record.key.subscription.partition.tenantId !== row.tenant_id ||
397
+ record.key.subscription.partition.address !== row.source_address ||
398
+ record.key.subscription.ownerId !== row.owner_id ||
399
+ record.key.subscription.subscriptionId !== row.subscription_id ||
400
+ record.key.eventId !== row.event_id ||
401
+ subscriptionDeliveryKeyString(record.key) !== key ||
402
+ record.state !== row.state ||
403
+ record.retry.nextAttemptAtMillis !== row.next_attempt_at_millis ||
404
+ record.subscriptionFingerprint !== registration.creationFingerprint ||
405
+ record.eventDigest !== event.payload_digest ||
406
+ record.source.name !== event.source_name ||
407
+ record.source.version !== event.source_version ||
408
+ record.source.name !== registration.configuration.source.name ||
409
+ record.source.version !== registration.configuration.source.version ||
410
+ record.deliveryId !== expectedId ||
411
+ record.admissionKey !== `subscription:${expectedId}` ||
412
+ record.threadId !==
413
+ (destination._tag === "ExistingThread"
414
+ ? destination.threadId
415
+ : `subscription:${expectedId}`)
416
+ )
417
+ return yield* invalid(
418
+ deliveryTable,
419
+ key,
420
+ "Delivery identity or immutable selection evidence disagrees with its registration/event.",
421
+ );
422
+ if (record.envelope !== null) {
423
+ const envelope = record.envelope;
424
+ const encoded = yield* Schema.encodeEffect(PreparedInput)(envelope);
425
+
426
+ if (
427
+ envelope.threadId !== record.threadId ||
428
+ envelope.admissionKey !== record.admissionKey ||
429
+ envelope.deliveryPrincipal !== registration.configuration.deliveryPrincipal ||
430
+ envelope.agentId !== registration.configuration.agentId ||
431
+ !Schema.toEquivalence(DefinitionDigests)(
432
+ envelope.definitions,
433
+ registration.configuration.definitions,
434
+ ) ||
435
+ (yield* digest(envelope.input, deliveryTable, key)) !== envelope.inputDigest ||
436
+ (yield* digest(
437
+ {
438
+ deliveryId: record.deliveryId,
439
+ subscriptionFingerprint: record.subscriptionFingerprint,
440
+ eventDigest: record.eventDigest,
441
+ envelope: encoded,
442
+ },
443
+ deliveryTable,
444
+ key,
445
+ )) !== record.envelopeDigest
446
+ )
447
+ return yield* invalid(
448
+ deliveryTable,
449
+ key,
450
+ "Prepared envelope identity or digest is inconsistent. Its admission may already have happened; no replacement input or receipt can be invented.",
451
+ );
452
+ }
453
+ const value = yield* encode(SubscriptionDelivery, record, deliveryTable, key);
454
+
455
+ if (new TextEncoder().encode(value).byteLength > maxBytes)
456
+ return yield* invalid(
457
+ deliveryTable,
458
+ key,
459
+ "Adding the immutable configuration exceeds the adapter value bound; original data was retained.",
460
+ );
461
+ yield* mutate(
462
+ sql`UPDATE effect_agent_subscription_deliveries SET record_json=${value} WHERE tenant_id=${row.tenant_id} AND source_address=${row.source_address} AND owner_id=${row.owner_id} AND subscription_id=${row.subscription_id} AND event_id=${row.event_id}`,
463
+ );
464
+ }
465
+ }
466
+ yield* mutate(sql`DROP TABLE effect_agent_subscriptions`);
467
+ yield* mutate(
468
+ sql`ALTER TABLE effect_agent_subscriptions_v3 RENAME TO effect_agent_subscriptions`,
469
+ );
470
+ yield* mutate(
471
+ sql`CREATE INDEX effect_agent_subscriptions_owner ON effect_agent_subscriptions (tenant_id, source_address, owner_id, ordinal)`,
472
+ );
473
+ yield* mutate(
474
+ sql`CREATE INDEX effect_agent_subscriptions_candidates ON effect_agent_subscriptions (tenant_id, source_address, source_name, source_version, matching_key, ordinal)`,
475
+ );
476
+ yield* mutate(
477
+ sql`CREATE INDEX effect_agent_subscriptions_recovery ON effect_agent_subscriptions (tenant_id, source_address, recovery_at_millis, ordinal) WHERE recovery_at_millis IS NOT NULL`,
478
+ );
479
+ yield* mutate(
480
+ sql`ALTER TABLE effect_agent_subscription_events ADD COLUMN tombstone INTEGER NOT NULL DEFAULT 0`,
481
+ );
482
+ });
483
+
484
+ /** Check the shared layout without reading journal, receipt, lease or settlement payloads. */
485
+ export const checkV2ThreadLayout = Effect.fn("SqlStorageV2Upgrade.threadLayout")(function* () {
486
+ yield* checkColumns([
487
+ "effect_agent_threads",
488
+ "effect_agent_canonical_batches",
489
+ "effect_agent_canonical_records",
490
+ "effect_agent_checkpoints",
491
+ "effect_agent_submissions",
492
+ "effect_agent_submission_ownership",
493
+ "effect_agent_attempts",
494
+ "effect_agent_settlement_reservations",
495
+ "effect_agent_abort_intents",
496
+ "effect_agent_approval_decisions",
497
+ "effect_agent_unknown_resolutions",
498
+ "effect_agent_child_reservations",
499
+ ]);
500
+ });