effect-agent 0.1.0-beta.85 → 0.1.0-beta.87

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 (751) 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-BLyETCPo.mjs +4562 -0
  7. package/dist/AgentRuntime-BLyETCPo.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-uggeJpv3.mjs +6368 -0
  13. package/dist/DurableAgentRuntime-uggeJpv3.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-Cy_hU1tv.mjs +1469 -0
  45. package/dist/Subagent-Cy_hU1tv.mjs.map +1 -0
  46. package/dist/Subagent-DyfzHNdv.d.mts +826 -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 +6 -5
  61. package/dist/ToolExposure.mjs +17 -9
  62. package/dist/ToolExposure.mjs.map +1 -1
  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 +435 -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 +88 -54
  368. package/dist/index.mjs +97 -54
  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 +252 -0
  388. package/dist/sandbox/ProtectedBrowser.mjs +270 -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 -1
  398. package/src/Ephemeral.ts +17 -0
  399. package/src/ToolExposure.ts +2 -2
  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 +774 -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 +10117 -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 +96 -53
  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 +413 -0
  538. package/src/sandbox/Sandbox.ts +241 -0
  539. package/dist/Agent.d.mts +0 -5
  540. package/dist/Agent.mjs +0 -10
  541. package/dist/Agent.mjs.map +0 -1
  542. package/dist/AgentError.d.mts +0 -5
  543. package/dist/AgentError.mjs +0 -10
  544. package/dist/AgentError.mjs.map +0 -1
  545. package/dist/AgentPolicy.d.mts +0 -5
  546. package/dist/AgentPolicy.mjs +0 -10
  547. package/dist/AgentPolicy.mjs.map +0 -1
  548. package/dist/AgentRuntime.d.mts +0 -5
  549. package/dist/AgentRuntime.mjs +0 -10
  550. package/dist/AgentRuntime.mjs.map +0 -1
  551. package/dist/AgentUpdates.d.mts +0 -5
  552. package/dist/AgentUpdates.mjs +0 -10
  553. package/dist/AgentUpdates.mjs.map +0 -1
  554. package/dist/Approval.d.mts +0 -5
  555. package/dist/Approval.mjs +0 -10
  556. package/dist/Approval.mjs.map +0 -1
  557. package/dist/Budget.d.mts +0 -5
  558. package/dist/Budget.mjs +0 -10
  559. package/dist/Budget.mjs.map +0 -1
  560. package/dist/CodeMode.d.mts +0 -5
  561. package/dist/CodeMode.mjs +0 -10
  562. package/dist/CodeMode.mjs.map +0 -1
  563. package/dist/Commands.d.mts +0 -5
  564. package/dist/Commands.mjs +0 -10
  565. package/dist/Commands.mjs.map +0 -1
  566. package/dist/Compaction.d.mts +0 -5
  567. package/dist/Compaction.mjs +0 -10
  568. package/dist/Compaction.mjs.map +0 -1
  569. package/dist/ContextCompactor.d.mts +0 -5
  570. package/dist/ContextCompactor.mjs +0 -10
  571. package/dist/ContextCompactor.mjs.map +0 -1
  572. package/dist/ContextHistory.d.mts +0 -5
  573. package/dist/ContextHistory.mjs +0 -10
  574. package/dist/ContextHistory.mjs.map +0 -1
  575. package/dist/ContextTools.d.mts +0 -5
  576. package/dist/ContextTools.mjs +0 -10
  577. package/dist/ContextTools.mjs.map +0 -1
  578. package/dist/ContextWindow.d.mts +0 -5
  579. package/dist/ContextWindow.mjs +0 -10
  580. package/dist/ContextWindow.mjs.map +0 -1
  581. package/dist/DurableStep.d.mts +0 -5
  582. package/dist/DurableStep.mjs +0 -10
  583. package/dist/DurableStep.mjs.map +0 -1
  584. package/dist/EphemeralThreads.d.mts +0 -5
  585. package/dist/EphemeralThreads.mjs +0 -10
  586. package/dist/EphemeralThreads.mjs.map +0 -1
  587. package/dist/IdGenerator.d.mts +0 -5
  588. package/dist/IdGenerator.mjs +0 -10
  589. package/dist/IdGenerator.mjs.map +0 -1
  590. package/dist/Identifiers.d.mts +0 -5
  591. package/dist/Identifiers.mjs +0 -10
  592. package/dist/Identifiers.mjs.map +0 -1
  593. package/dist/Mcp.d.mts +0 -5
  594. package/dist/Mcp.mjs +0 -10
  595. package/dist/Mcp.mjs.map +0 -1
  596. package/dist/McpClient.d.mts +0 -5
  597. package/dist/McpClient.mjs +0 -10
  598. package/dist/McpClient.mjs.map +0 -1
  599. package/dist/Memory.d.mts +0 -5
  600. package/dist/Memory.mjs +0 -10
  601. package/dist/Memory.mjs.map +0 -1
  602. package/dist/MemoryNamespace.d.mts +0 -5
  603. package/dist/MemoryNamespace.mjs +0 -10
  604. package/dist/MemoryNamespace.mjs.map +0 -1
  605. package/dist/MemoryNotes.d.mts +0 -5
  606. package/dist/MemoryNotes.mjs +0 -10
  607. package/dist/MemoryNotes.mjs.map +0 -1
  608. package/dist/MemoryReference.d.mts +0 -5
  609. package/dist/MemoryReference.mjs +0 -10
  610. package/dist/MemoryReference.mjs.map +0 -1
  611. package/dist/MemoryRevalidation.d.mts +0 -5
  612. package/dist/MemoryRevalidation.mjs +0 -10
  613. package/dist/MemoryRevalidation.mjs.map +0 -1
  614. package/dist/MemoryStore.d.mts +0 -5
  615. package/dist/MemoryStore.mjs +0 -10
  616. package/dist/MemoryStore.mjs.map +0 -1
  617. package/dist/Messaging.d.mts +0 -5
  618. package/dist/Messaging.mjs +0 -10
  619. package/dist/Messaging.mjs.map +0 -1
  620. package/dist/MessagingHost.d.mts +0 -5
  621. package/dist/MessagingHost.mjs +0 -10
  622. package/dist/MessagingHost.mjs.map +0 -1
  623. package/dist/ModelContext.d.mts +0 -5
  624. package/dist/ModelContext.mjs +0 -10
  625. package/dist/ModelContext.mjs.map +0 -1
  626. package/dist/Receipt.d.mts +0 -5
  627. package/dist/Receipt.mjs +0 -10
  628. package/dist/Receipt.mjs.map +0 -1
  629. package/dist/Redaction.d.mts +0 -5
  630. package/dist/Redaction.mjs +0 -10
  631. package/dist/Redaction.mjs.map +0 -1
  632. package/dist/Remembering.d.mts +0 -5
  633. package/dist/Remembering.mjs +0 -10
  634. package/dist/Remembering.mjs.map +0 -1
  635. package/dist/RememberingStore.d.mts +0 -5
  636. package/dist/RememberingStore.mjs +0 -10
  637. package/dist/RememberingStore.mjs.map +0 -1
  638. package/dist/RunEvent.d.mts +0 -5
  639. package/dist/RunEvent.mjs +0 -10
  640. package/dist/RunEvent.mjs.map +0 -1
  641. package/dist/RunEventSink.d.mts +0 -5
  642. package/dist/RunEventSink.mjs +0 -10
  643. package/dist/RunEventSink.mjs.map +0 -1
  644. package/dist/RunHooks.d.mts +0 -5
  645. package/dist/RunHooks.mjs +0 -10
  646. package/dist/RunHooks.mjs.map +0 -1
  647. package/dist/RunOptions.d.mts +0 -5
  648. package/dist/RunOptions.mjs +0 -10
  649. package/dist/RunOptions.mjs.map +0 -1
  650. package/dist/RunPolicyUsage.d.mts +0 -5
  651. package/dist/RunPolicyUsage.mjs +0 -10
  652. package/dist/RunPolicyUsage.mjs.map +0 -1
  653. package/dist/SemanticMemory.d.mts +0 -5
  654. package/dist/SemanticMemory.mjs +0 -10
  655. package/dist/SemanticMemory.mjs.map +0 -1
  656. package/dist/SemanticMemoryIndex.d.mts +0 -5
  657. package/dist/SemanticMemoryIndex.mjs +0 -10
  658. package/dist/SemanticMemoryIndex.mjs.map +0 -1
  659. package/dist/SemanticMemoryRevalidation.d.mts +0 -5
  660. package/dist/SemanticMemoryRevalidation.mjs +0 -10
  661. package/dist/SemanticMemoryRevalidation.mjs.map +0 -1
  662. package/dist/Subagent.d.mts +0 -5
  663. package/dist/Subagent.mjs +0 -10
  664. package/dist/Subagent.mjs.map +0 -1
  665. package/dist/SubagentContract.d.mts +0 -5
  666. package/dist/SubagentContract.mjs +0 -10
  667. package/dist/SubagentContract.mjs.map +0 -1
  668. package/dist/SubagentHost.d.mts +0 -5
  669. package/dist/SubagentHost.mjs +0 -10
  670. package/dist/SubagentHost.mjs.map +0 -1
  671. package/dist/SubagentReservations.d.mts +0 -5
  672. package/dist/SubagentReservations.mjs +0 -10
  673. package/dist/SubagentReservations.mjs.map +0 -1
  674. package/dist/ThreadHistory.d.mts +0 -5
  675. package/dist/ThreadHistory.mjs +0 -10
  676. package/dist/ThreadHistory.mjs.map +0 -1
  677. package/dist/ToolBroker.d.mts +0 -5
  678. package/dist/ToolBroker.mjs +0 -10
  679. package/dist/ToolBroker.mjs.map +0 -1
  680. package/dist/ToolDiscovery.d.mts +0 -5
  681. package/dist/ToolDiscovery.mjs +0 -10
  682. package/dist/ToolDiscovery.mjs.map +0 -1
  683. package/dist/ToolResult.d.mts +0 -5
  684. package/dist/ToolResult.mjs +0 -10
  685. package/dist/ToolResult.mjs.map +0 -1
  686. package/dist/Usage.d.mts +0 -5
  687. package/dist/Usage.mjs +0 -10
  688. package/dist/Usage.mjs.map +0 -1
  689. package/dist/WebCapture.d.mts +0 -5
  690. package/dist/WebCapture.mjs +0 -10
  691. package/dist/WebCapture.mjs.map +0 -1
  692. package/dist/WebSearch.d.mts +0 -5
  693. package/dist/WebSearch.mjs +0 -10
  694. package/dist/WebSearch.mjs.map +0 -1
  695. package/dist/Worker.d.mts +0 -5
  696. package/dist/Worker.mjs +0 -10
  697. package/dist/Worker.mjs.map +0 -1
  698. package/dist/rolldown-runtime-BBjsoOtd.mjs +0 -27
  699. package/src/Agent.ts +0 -1
  700. package/src/AgentError.ts +0 -1
  701. package/src/AgentPolicy.ts +0 -1
  702. package/src/AgentRuntime.ts +0 -1
  703. package/src/AgentUpdates.ts +0 -1
  704. package/src/Approval.ts +0 -1
  705. package/src/Budget.ts +0 -1
  706. package/src/CodeMode.ts +0 -1
  707. package/src/Commands.ts +0 -1
  708. package/src/Compaction.ts +0 -1
  709. package/src/ContextCompactor.ts +0 -1
  710. package/src/ContextHistory.ts +0 -1
  711. package/src/ContextTools.ts +0 -1
  712. package/src/ContextWindow.ts +0 -1
  713. package/src/DurableStep.ts +0 -1
  714. package/src/EphemeralThreads.ts +0 -1
  715. package/src/IdGenerator.ts +0 -1
  716. package/src/Identifiers.ts +0 -1
  717. package/src/Mcp.ts +0 -1
  718. package/src/McpClient.ts +0 -1
  719. package/src/Memory.ts +0 -1
  720. package/src/MemoryNamespace.ts +0 -1
  721. package/src/MemoryNotes.ts +0 -1
  722. package/src/MemoryReference.ts +0 -1
  723. package/src/MemoryRevalidation.ts +0 -1
  724. package/src/MemoryStore.ts +0 -1
  725. package/src/Messaging.ts +0 -1
  726. package/src/MessagingHost.ts +0 -1
  727. package/src/ModelContext.ts +0 -1
  728. package/src/Receipt.ts +0 -1
  729. package/src/Redaction.ts +0 -1
  730. package/src/Remembering.ts +0 -1
  731. package/src/RememberingStore.ts +0 -1
  732. package/src/RunEvent.ts +0 -1
  733. package/src/RunEventSink.ts +0 -1
  734. package/src/RunHooks.ts +0 -1
  735. package/src/RunOptions.ts +0 -1
  736. package/src/RunPolicyUsage.ts +0 -1
  737. package/src/SemanticMemory.ts +0 -1
  738. package/src/SemanticMemoryIndex.ts +0 -1
  739. package/src/SemanticMemoryRevalidation.ts +0 -1
  740. package/src/Subagent.ts +0 -1
  741. package/src/SubagentContract.ts +0 -1
  742. package/src/SubagentHost.ts +0 -1
  743. package/src/SubagentReservations.ts +0 -1
  744. package/src/ThreadHistory.ts +0 -1
  745. package/src/ToolBroker.ts +0 -1
  746. package/src/ToolDiscovery.ts +0 -1
  747. package/src/ToolResult.ts +0 -1
  748. package/src/Usage.ts +0 -1
  749. package/src/WebCapture.ts +0 -1
  750. package/src/WebSearch.ts +0 -1
  751. package/src/Worker.ts +0 -1
@@ -0,0 +1,210 @@
1
+ import type { Crypto } from "effect";
2
+ import { Cause, Effect, Exit, Option, Schema } from "effect";
3
+
4
+ import { DurableRuntimeFailpointLocation } from "./DurableFailpoint.ts";
5
+ import { inspectForeignDiagnostic, safeUnknownString } from "./internal/foreign-diagnostic.ts";
6
+ import type { SubmissionLedger } from "./SubmissionLedger.ts";
7
+ import { LedgerCapabilities } from "./SubmissionLedger.ts";
8
+ import { submissionLedgerConformanceCases } from "./SubmissionLedgerConformance.ts";
9
+ import type { ThreadStore } from "./ThreadStore.ts";
10
+ import { threadStoreConformanceCases } from "./ThreadStoreConformance.ts";
11
+
12
+ // ---------------------------------------------------------------------------
13
+ // Certification report vocabulary (WP2, plan §1)
14
+ // ---------------------------------------------------------------------------
15
+
16
+ const BoundedCertificationDetail = Schema.String.check(Schema.isMaxLength(4_096));
17
+
18
+ /**
19
+ * Adapter self-description carried by a certificate. `durability` is read from the candidate
20
+ * ledger's `capabilities` — the adapter's honest claim (persistence.md), never inferred by the
21
+ * certification runner.
22
+ */
23
+ export class CertifiedAdapterIdentity extends Schema.Class<CertifiedAdapterIdentity>(
24
+ "@effect-agent/thread/CertifiedAdapterIdentity",
25
+ )({
26
+ /** Workspace/package name of the adapter pair under certification. */
27
+ name: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
28
+ version: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(256))),
29
+ durability: LedgerCapabilities.fields.durability,
30
+ }) {}
31
+
32
+ /** Which shared suite one Tier-1 (or lever-driven Tier-3) case belongs to. */
33
+ export const CertificationSuite = Schema.Literals([
34
+ "submission-ledger",
35
+ "thread-store",
36
+ "real-loss",
37
+ ]);
38
+
39
+ export type CertificationSuite = typeof CertificationSuite.Type;
40
+
41
+ /** One executed certification case: a conformance contract case or a Tier-3 lever row. */
42
+ export class CertificationCaseResult extends Schema.Class<CertificationCaseResult>(
43
+ "@effect-agent/thread/CertificationCaseResult",
44
+ )({
45
+ suite: CertificationSuite,
46
+ name: Schema.NonEmptyString.check(Schema.isMaxLength(512)),
47
+ status: Schema.Literals(["passed", "failed"]),
48
+ detail: Schema.optionalKey(BoundedCertificationDetail),
49
+ }) {}
50
+
51
+ /**
52
+ * The six Tier-2 scenario shapes: each reached coordinator fault boundary is armed once
53
+ * per shape. Locations outside a shape's path share its verified clean run.
54
+ */
55
+ export const CertificationScenario = Schema.Literals([
56
+ "plain",
57
+ "uncertain-tool",
58
+ "durable-steps",
59
+ "approval",
60
+ "join",
61
+ "delegation",
62
+ ]);
63
+
64
+ export type CertificationScenario = typeof CertificationScenario.Type;
65
+
66
+ /**
67
+ * Outcome of one Tier-2 sweep cell:
68
+ *
69
+ * - `converged` — the armed fault fired once, recovery classified the state, and the re-drive
70
+ * converged to verified invariants;
71
+ * - `not-triggered` — the location was not reached with that fault armed, or was absent from
72
+ * the scenario's verified clean path (shared across such locations). Never fault coverage;
73
+ * - `failed` — anything else.
74
+ */
75
+ export const CertificationSweepStatus = Schema.Literals(["converged", "not-triggered", "failed"]);
76
+ export type CertificationSweepStatus = typeof CertificationSweepStatus.Type;
77
+
78
+ /** One Tier-2 scenario/location result, including locations outside the verified path. */
79
+ export class CertificationSweepResult extends Schema.Class<CertificationSweepResult>(
80
+ "@effect-agent/thread/CertificationSweepResult",
81
+ )({
82
+ scenario: CertificationScenario,
83
+ location: DurableRuntimeFailpointLocation,
84
+ /** The armed fault actually fired (one-shot) somewhere in the cell's drive or re-drive. */
85
+ failpointFired: Schema.Boolean,
86
+ status: CertificationSweepStatus,
87
+ /**
88
+ * Every lane's digest chain recomputed from `EMPTY_TAIL_DIGEST` and matched the exported
89
+ * tail — fully discharged here because the runner captures per-batch producer identity at
90
+ * append time (the port-only admin `verify` reports this check `skipped` instead).
91
+ * Unreached locations may share the scenario's clean-run verification.
92
+ */
93
+ digestChainVerified: Schema.Boolean,
94
+ detail: Schema.optionalKey(BoundedCertificationDetail),
95
+ }) {}
96
+
97
+ /**
98
+ * How the real-loss tier was discharged. Tier 3 is never silently claimed: an adapter either
99
+ * exercised a real loss lever in this run (`exercised`), cites committed real-loss evidence
100
+ * (`recorded-evidence`), honestly records that nothing exercised it (`not-exercised`), or is a
101
+ * non-durable reference adapter with no real loss to exercise (`not-applicable`).
102
+ */
103
+ export const CertificationTierThreeStatus = Schema.Literals([
104
+ "exercised",
105
+ "recorded-evidence",
106
+ "not-exercised",
107
+ "not-applicable",
108
+ ]);
109
+
110
+ export type CertificationTierThreeStatus = typeof CertificationTierThreeStatus.Type;
111
+
112
+ /** The Tier-3 (real loss lever) section of a certificate. */
113
+ export class CertificationTierThreeReport extends Schema.Class<CertificationTierThreeReport>(
114
+ "@effect-agent/thread/CertificationTierThreeReport",
115
+ )({
116
+ status: CertificationTierThreeStatus,
117
+ /** Cited real-loss suites. The runner does not execute or verify these references. */
118
+ evidence: Schema.Array(BoundedCertificationDetail),
119
+ /** Rows executed by a supplied crash lever in THIS run (`suite: "real-loss"`). */
120
+ cases: Schema.Array(CertificationCaseResult),
121
+ detail: Schema.optionalKey(BoundedCertificationDetail),
122
+ }) {}
123
+
124
+ /**
125
+ * The Schema-encoded certification report (plan §1): Tier 1 = the two shared port contract
126
+ * suites verbatim; Tier 2 = the coordinator failpoint convergence sweep; Tier 3 = the real
127
+ * loss lever record. `ok` is true exactly when every EXECUTED check passed — honest scope
128
+ * statements (`not-triggered`, `recorded-evidence`, `not-exercised`, `not-applicable`) never
129
+ * count as failures and never count as silent coverage. `fullyCertified` additionally requires
130
+ * a durable adapter and passing real-loss cases executed in this run. Citations alone do not
131
+ * certify recovery. A non-durable adapter can pass conformance but is never fully certified.
132
+ * The semantic assertions live in the runner tests.
133
+ */
134
+ export class CertificationReport extends Schema.Class<CertificationReport>(
135
+ "@effect-agent/thread/CertificationReport",
136
+ )({
137
+ format: Schema.Literal("effect-agent/certification@2"),
138
+ adapter: CertifiedAdapterIdentity,
139
+ generatedAt: Schema.DateTimeUtcFromString,
140
+ tier1: Schema.Array(CertificationCaseResult),
141
+ tier2: Schema.Array(CertificationSweepResult),
142
+ tier3: CertificationTierThreeReport,
143
+ ok: Schema.Boolean,
144
+ fullyCertified: Schema.Boolean,
145
+ }) {}
146
+
147
+ /** Bounded operator-readable rendering of one failure Cause for a certification detail. */
148
+ const causeDetail = (cause: Cause.Cause<unknown>): string => {
149
+ const failure = Cause.findErrorOption(cause);
150
+
151
+ if (Option.isSome(failure)) {
152
+ const diagnostic = inspectForeignDiagnostic(failure.value);
153
+
154
+ if (diagnostic.tag !== undefined || diagnostic.message !== undefined) {
155
+ const tag = diagnostic.tag ?? "Error";
156
+
157
+ return `${tag}${diagnostic.message === undefined ? "" : `: ${diagnostic.message}`}`.slice(
158
+ 0,
159
+ 4_096,
160
+ );
161
+ }
162
+
163
+ return safeUnknownString(failure.value, "Unknown foreign failure").slice(0, 4_096);
164
+ }
165
+
166
+ return `defect: ${safeUnknownString(cause, "Unknown defect")}`.slice(0, 4_096);
167
+ };
168
+
169
+ const caseResult = <A, E>(
170
+ suite: CertificationSuite,
171
+ name: string,
172
+ exit: Exit.Exit<A, E>,
173
+ ): CertificationCaseResult =>
174
+ Exit.isSuccess(exit)
175
+ ? CertificationCaseResult.make({ suite, name, status: "passed" })
176
+ : CertificationCaseResult.make({
177
+ suite,
178
+ name,
179
+ status: "failed",
180
+ detail: causeDetail(exit.cause),
181
+ });
182
+
183
+ /**
184
+ * Tier 1 — port contract (plan §1): run BOTH shared conformance case arrays verbatim against
185
+ * the provided candidate adapters and fold every case into a typed result. Case failures are
186
+ * captured per-case (never short-circuiting the sweep), so a certificate always reports the
187
+ * complete contract surface. Requires the candidate `SubmissionLedger` and `ThreadStore`
188
+ * plus `Crypto.Crypto`, and must run under a TestClock (the ledger cases drive lease expiry
189
+ * through virtual time).
190
+ */
191
+ export const certifyPorts = Effect.fn("Thread.certifyPorts")(function* (): Effect.fn.Return<
192
+ ReadonlyArray<CertificationCaseResult>,
193
+ never,
194
+ SubmissionLedger | ThreadStore | Crypto.Crypto
195
+ > {
196
+ const results: Array<CertificationCaseResult> = [];
197
+
198
+ for (const contractCase of submissionLedgerConformanceCases) {
199
+ const exit = yield* Effect.exit(contractCase.run);
200
+
201
+ results.push(caseResult("submission-ledger", contractCase.name, exit));
202
+ }
203
+ for (const contractCase of threadStoreConformanceCases) {
204
+ const exit = yield* Effect.exit(contractCase.run);
205
+
206
+ results.push(caseResult("thread-store", contractCase.name, exit));
207
+ }
208
+
209
+ return results;
210
+ });
@@ -0,0 +1,296 @@
1
+ import { Clock, Effect, Schema, Stream, type Crypto, type Scope } from "effect";
2
+
3
+ import {
4
+ ActivityClaim,
5
+ ActivityClaimRequest,
6
+ ActivityProcessorKey,
7
+ ActivityProcessorStore,
8
+ PreparedActivity,
9
+ type ActivityStoreFailure,
10
+ } from "./ActivityStore.ts";
11
+ import { digestJson, type DigestError } from "./Digest.ts";
12
+ import {
13
+ CanonicalRecordEnvelope,
14
+ CanonicalSequence,
15
+ PersistedJson,
16
+ RecordEnvelope,
17
+ } from "./Records.ts";
18
+ import {
19
+ ThreadRead,
20
+ ThreadStore,
21
+ ThreadTail,
22
+ ThreadTailRequest,
23
+ type ThreadNotMaterialized,
24
+ type ThreadStoreError,
25
+ } from "./ThreadStore.ts";
26
+
27
+ export class ActivityPassLimits extends Schema.Class<ActivityPassLimits>(
28
+ "@effect-agent/thread/ActivityPassLimits",
29
+ )({
30
+ maxRecords: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 4_096 })),
31
+ pageSize: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 128 })),
32
+ timeoutMillis: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 300_000 })),
33
+ leaseMillis: ActivityClaimRequest.fields.leaseMillis,
34
+ }) {}
35
+
36
+ export class ActivityProcessingError extends Schema.TaggedError<ActivityProcessingError>()(
37
+ "ActivityProcessingError",
38
+ {
39
+ reason: Schema.Literals(["invalid-input", "noncontiguous", "timeout"]),
40
+ message: Schema.String.check(Schema.isMaxLength(1_024)),
41
+ },
42
+ ) {}
43
+
44
+ export class ActivityPassResult extends Schema.Class<ActivityPassResult>(
45
+ "@effect-agent/thread/ActivityPassResult",
46
+ )({
47
+ key: ActivityProcessorKey,
48
+ capturedTail: CanonicalSequence,
49
+ throughSequence: CanonicalSequence,
50
+ processed: Schema.Natural,
51
+ pendingRecords: Schema.Natural,
52
+ startedAt: Schema.Finite,
53
+ finishedAt: Schema.Finite,
54
+ }) {}
55
+
56
+ export interface CommittedActivityProcessor<E = never, R = never, EApply = never, RApply = never> {
57
+ readonly key: ActivityProcessorKey;
58
+ /** Unique to this worker lifetime; it is not canonical Thread ownership. */
59
+ readonly owner: string;
60
+ readonly limits: ActivityPassLimits;
61
+ /** Select eligibility and encode an application Schema; null can represent no output. */
62
+ readonly extract: (record: CanonicalRecordEnvelope) => Effect.Effect<PersistedJson, E, R>;
63
+ /**
64
+ * Must durably reconcile workId before returning, using atomic idempotency and conditional
65
+ * writes. This may run again after any lost acknowledgement. A stale invocation can finish
66
+ * only the already pinned output; it must not overwrite a later correction or withdrawal.
67
+ * Retain reconciliation evidence for the lifetime of pending work, including any supported
68
+ * backup/restore window. Returning before durable application would permit skipped output.
69
+ */
70
+ readonly apply: (work: PreparedActivity) => Effect.Effect<void, EApply, RApply>;
71
+ }
72
+
73
+ const invalid = (message: string) =>
74
+ ActivityProcessingError.make({ reason: "invalid-input", message });
75
+
76
+ const contiguous = () =>
77
+ ActivityProcessingError.make({
78
+ reason: "noncontiguous",
79
+ message: "Committed activity does not match its captured Thread prefix or pinned record",
80
+ });
81
+
82
+ /** Stable work identity independent of worker claims, retry count, extraction, and clocks. */
83
+ export const activityWorkId = Effect.fn("activityWorkId")(function* (
84
+ key: ActivityProcessorKey,
85
+ sequence: CanonicalSequence,
86
+ ) {
87
+ return yield* digestJson([
88
+ "effect-agent/activity@1",
89
+ key.processorId,
90
+ key.processorVersion,
91
+ key.threadId,
92
+ sequence,
93
+ ]);
94
+ });
95
+
96
+ /**
97
+ * Process one bounded committed prefix of one application-selected Thread. Nothing runs until
98
+ * invoked, and no daemon, global Thread directory, admission ledger, or engine checkpoint is
99
+ * involved. PersistentHistory makes a successful Run's batch visible together; durable Runs
100
+ * expose incremental committed records. The application decides what each record means.
101
+ *
102
+ * A durable pending output wins over a new extraction after restart. Apply finishes before
103
+ * progress advances, so separate output stores require durable idempotency. This does not
104
+ * promise exactly-once external side effects. Each callback owns a Scope; the finite pass has
105
+ * a timeout and a longer lease. Claim release has a separate 500ms deadline; failure leaves
106
+ * the bounded lease to expire.
107
+ */
108
+ export const processCommittedActivity = Effect.fn("processCommittedActivity")(function* <
109
+ E = never,
110
+ R = never,
111
+ EApply = never,
112
+ RApply = never,
113
+ >(
114
+ processor: CommittedActivityProcessor<E, R, EApply, RApply>,
115
+ ): Effect.fn.Return<
116
+ ActivityPassResult,
117
+ | E
118
+ | EApply
119
+ | ActivityStoreFailure
120
+ | ActivityProcessingError
121
+ | DigestError
122
+ | ThreadStoreError
123
+ | ThreadNotMaterialized,
124
+ ActivityProcessorStore | ThreadStore | Crypto.Crypto | Exclude<R | RApply, Scope.Scope>
125
+ > {
126
+ const key = yield* Schema.decodeEffect(ActivityProcessorKey)(processor.key).pipe(
127
+ Effect.mapError(() => invalid("Invalid activity processor key")),
128
+ );
129
+
130
+ const limits = yield* Schema.decodeEffect(ActivityPassLimits)(processor.limits).pipe(
131
+ Effect.mapError(() => invalid("Invalid activity pass limits")),
132
+ );
133
+
134
+ if (limits.leaseMillis < limits.timeoutMillis + 1_000) {
135
+ return yield* invalid("The activity lease must exceed the pass timeout by at least 1000ms");
136
+ }
137
+
138
+ const request = yield* ActivityClaimRequest.makeEffect({
139
+ key,
140
+ owner: processor.owner,
141
+ leaseMillis: limits.leaseMillis,
142
+ }).pipe(Effect.mapError(() => invalid("Invalid activity worker identity")));
143
+
144
+ const progress = yield* ActivityProcessorStore;
145
+ const threads = yield* ThreadStore;
146
+
147
+ return yield* Effect.scoped(
148
+ Effect.gen(function* () {
149
+ const acquired = yield* Effect.acquireRelease(
150
+ progress.claim(request).pipe(Effect.interruptible),
151
+ (claim) =>
152
+ progress
153
+ .release(claim)
154
+ .pipe(Effect.interruptible, Effect.timeoutOption(500), Effect.ignore),
155
+ );
156
+
157
+ let claim = yield* Schema.decodeEffect(ActivityClaim)(acquired).pipe(
158
+ Effect.mapError(() => invalid("Malformed activity claim")),
159
+ );
160
+
161
+ if (
162
+ !Schema.toEquivalence(ActivityProcessorKey)(claim.key, key) ||
163
+ claim.owner !== request.owner
164
+ )
165
+ return yield* invalid("Activity claim identity does not match its request");
166
+ const startedAt = yield* Clock.currentTimeMillis;
167
+
168
+ const tail = yield* threads
169
+ .inspectTail(ThreadTailRequest.make({ threadId: key.threadId }))
170
+ .pipe(
171
+ Effect.flatMap((value) =>
172
+ Schema.decodeEffect(ThreadTail)(value).pipe(Effect.mapError(contiguous)),
173
+ ),
174
+ );
175
+
176
+ if (
177
+ tail.threadId !== key.threadId ||
178
+ tail.tailSequence < claim.throughSequence ||
179
+ (claim.pending !== null && tail.tailSequence < claim.pending.sequence)
180
+ ) {
181
+ return yield* contiguous();
182
+ }
183
+ const through = Math.min(tail.tailSequence, claim.throughSequence + limits.maxRecords);
184
+ let processed = 0;
185
+
186
+ while (claim.throughSequence < through) {
187
+ const limit = Math.min(limits.pageSize, through - claim.throughSequence);
188
+
189
+ const page = yield* threads
190
+ .read(
191
+ ThreadRead.make({
192
+ threadId: key.threadId,
193
+ afterSequence: claim.throughSequence,
194
+ limit,
195
+ }),
196
+ )
197
+ .pipe(Stream.take(limit + 1), Stream.runCollect);
198
+
199
+ if (page.length !== limit) return yield* contiguous();
200
+ for (const rawRecord of page) {
201
+ const record = yield* Schema.decodeEffect(Schema.toType(CanonicalRecordEnvelope))(
202
+ rawRecord,
203
+ ).pipe(Effect.mapError(contiguous));
204
+
205
+ if (record.threadId !== key.threadId || record.sequence !== claim.throughSequence + 1) {
206
+ return yield* contiguous();
207
+ }
208
+ const workId = yield* activityWorkId(key, record.sequence);
209
+
210
+ const encodedRecord = yield* Schema.encodeEffect(RecordEnvelope)(record.record).pipe(
211
+ Effect.mapError(contiguous),
212
+ );
213
+
214
+ const recordDigest = yield* digestJson(encodedRecord);
215
+ let work = claim.pending;
216
+
217
+ if (work === null) {
218
+ const output = yield* Effect.scoped(processor.extract(record)).pipe(
219
+ Effect.flatMap((value) =>
220
+ Schema.decodeEffect(PersistedJson)(value).pipe(
221
+ Effect.mapError(() => invalid("Malformed activity output")),
222
+ ),
223
+ ),
224
+ );
225
+
226
+ work = yield* progress.prepare({
227
+ claim,
228
+ work: PreparedActivity.make({
229
+ version: 1,
230
+ key,
231
+ sequence: record.sequence,
232
+ workId,
233
+ recordId: record.record.recordId,
234
+ recordDigest,
235
+ output,
236
+ }),
237
+ });
238
+ }
239
+
240
+ const prepared = yield* Schema.decodeEffect(PreparedActivity)(work).pipe(
241
+ Effect.mapError(() => invalid("Malformed prepared activity")),
242
+ );
243
+
244
+ if (
245
+ !Schema.toEquivalence(ActivityProcessorKey)(prepared.key, key) ||
246
+ prepared.sequence !== record.sequence ||
247
+ prepared.workId !== workId ||
248
+ prepared.recordId !== record.record.recordId ||
249
+ prepared.recordDigest !== recordDigest
250
+ )
251
+ return yield* contiguous();
252
+ yield* Effect.scoped(processor.apply(prepared));
253
+
254
+ const next = yield* progress
255
+ .advance({ claim, workId })
256
+ .pipe(
257
+ Effect.flatMap((value) =>
258
+ Schema.decodeEffect(ActivityClaim)(value).pipe(
259
+ Effect.mapError(() => invalid("Malformed activity progress")),
260
+ ),
261
+ ),
262
+ );
263
+
264
+ if (
265
+ !Schema.toEquivalence(ActivityProcessorKey)(next.key, key) ||
266
+ next.owner !== claim.owner ||
267
+ next.epoch !== claim.epoch ||
268
+ next.throughSequence !== record.sequence ||
269
+ next.pending !== null
270
+ )
271
+ return yield* invalid("Activity progress advanced outside the claimed record");
272
+ claim = next;
273
+ processed += 1;
274
+ }
275
+ }
276
+
277
+ return ActivityPassResult.make({
278
+ key,
279
+ capturedTail: tail.tailSequence,
280
+ throughSequence: claim.throughSequence,
281
+ processed,
282
+ pendingRecords: tail.tailSequence - claim.throughSequence,
283
+ startedAt,
284
+ finishedAt: yield* Clock.currentTimeMillis,
285
+ });
286
+ }),
287
+ ).pipe(
288
+ Effect.timeoutOrElse({
289
+ duration: limits.timeoutMillis,
290
+ orElse: () =>
291
+ Effect.fail(
292
+ ActivityProcessingError.make({ reason: "timeout", message: "Activity pass timed out" }),
293
+ ),
294
+ }),
295
+ );
296
+ });
@@ -0,0 +1,93 @@
1
+ import type { PlatformError } from "effect";
2
+ import { Array, Crypto, Effect, Encoding, Schema } from "effect";
3
+
4
+ import type { DefinitionDigestInput } from "./Records.ts";
5
+ import { CanonicalBatch, DefinitionDigests, Digest } from "./Records.ts";
6
+
7
+ export class DigestError extends Schema.TaggedError<DigestError>()("DigestError", {
8
+ message: Schema.String,
9
+ cause: Schema.optionalKey(Schema.Defect()),
10
+ }) {}
11
+
12
+ const utf8 = new TextEncoder();
13
+
14
+ const canonicalJson = (value: Schema.Json): string => {
15
+ if (
16
+ value === null ||
17
+ typeof value === "boolean" ||
18
+ typeof value === "number" ||
19
+ typeof value === "string"
20
+ ) {
21
+ return JSON.stringify(value);
22
+ }
23
+ if (Array.isArray<Schema.Json>(value)) {
24
+ return `[${globalThis.Array.from(value, canonicalJson).join(",")}]`;
25
+ }
26
+
27
+ const entries = Object.entries(value).sort(([left], [right]) =>
28
+ left < right ? -1 : left > right ? 1 : 0,
29
+ );
30
+
31
+ return `{${entries
32
+ .map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`)
33
+ .join(",")}}`;
34
+ };
35
+
36
+ /** Digest a JSON value using a stable, locale-independent object-key ordering (UTF-16 code units, RFC 8785 style). */
37
+ export const digestJson = Effect.fn("Thread.digestJson")(function* (
38
+ value: Schema.Json,
39
+ ): Effect.fn.Return<Digest, DigestError, Crypto.Crypto> {
40
+ const crypto = yield* Crypto.Crypto;
41
+
42
+ const bytes = utf8.encode(canonicalJson(value));
43
+
44
+ const digest = yield* crypto
45
+ .digest("SHA-256", bytes)
46
+ .pipe(
47
+ Effect.mapError((error: PlatformError.PlatformError) =>
48
+ DigestError.make({ message: `SHA-256 failed: ${error.message}`, cause: error }),
49
+ ),
50
+ );
51
+
52
+ return yield* Schema.decodeEffect(Digest)(Encoding.encodeHex(digest)).pipe(
53
+ Effect.mapError(() => DigestError.make({ message: "SHA-256 returned an invalid digest" })),
54
+ );
55
+ });
56
+
57
+ /** Digest a canonical batch together with the prior tail to form an append-only hash chain. */
58
+ export const digestCanonicalBatch = Effect.fn("Thread.digestCanonicalBatch")(
59
+ (
60
+ previousTailDigest: Digest,
61
+ batch: CanonicalBatch,
62
+ ): Effect.Effect<Digest, DigestError, Crypto.Crypto> =>
63
+ Schema.encodeEffect(CanonicalBatch)(batch).pipe(
64
+ Effect.mapError(() => DigestError.make({ message: "Canonical batch encoding failed" })),
65
+ Effect.flatMap((encoded) =>
66
+ digestJson({
67
+ previousTailDigest,
68
+ batch: encoded,
69
+ }),
70
+ ),
71
+ ),
72
+ );
73
+
74
+ /** Digest one schema-encoded Agent, Model, or Toolkit definition. */
75
+ export const digestDefinition = Effect.fn("Thread.digestDefinition")((definition: Schema.Json) =>
76
+ digestJson(definition),
77
+ );
78
+
79
+ /** Digest all replay-relevant definitions without hiding which authority changed. */
80
+ export const digestDefinitions = Effect.fn("Thread.digestDefinitions")(
81
+ (
82
+ definitions: DefinitionDigestInput,
83
+ ): Effect.Effect<DefinitionDigests, DigestError, Crypto.Crypto> =>
84
+ Effect.all({
85
+ agent: digestDefinition(definitions.agent),
86
+ model: digestDefinition(definitions.model),
87
+ tools: digestDefinition(definitions.tools),
88
+ }).pipe(Effect.map((digests) => DefinitionDigests.make(digests))),
89
+ );
90
+
91
+ export const EMPTY_TAIL_DIGEST = Schema.decodeSync(Digest)(
92
+ "0000000000000000000000000000000000000000000000000000000000000000",
93
+ );