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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/dist/Agent-1DMSO_Fl.mjs +86 -0
  2. package/dist/Agent-1DMSO_Fl.mjs.map +1 -0
  3. package/dist/Agent-D9cXqfF3.d.mts +252 -0
  4. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  5. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  6. package/dist/AgentRuntime-BUxDdLpw.d.mts +346 -0
  7. package/dist/AgentRuntime-Cp1hAb-W.mjs +4739 -0
  8. package/dist/AgentRuntime-Cp1hAb-W.mjs.map +1 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-WwSIG_Z2.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-B-9w7jDt.mjs +7061 -0
  13. package/dist/DurableAgentRuntime-B-9w7jDt.mjs.map +1 -0
  14. package/dist/DurableFailpoint-Cnr3wx1L.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/EventSource-CnlZ3Kma.d.mts +51 -0
  17. package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
  18. package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
  19. package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/InMemory.d.mts +24 -0
  22. package/dist/InMemory.mjs +24 -0
  23. package/dist/InMemory.mjs.map +1 -0
  24. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  25. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  26. package/dist/Messaging-Dkg87ebg.d.mts +221 -0
  27. package/dist/Messaging-JYYN3oYS.d.mts +1067 -0
  28. package/dist/MessagingHost-CqzpxbGz.d.mts +74 -0
  29. package/dist/MessagingHost-DfsbMPvq.mjs +110 -0
  30. package/dist/MessagingHost-DfsbMPvq.mjs.map +1 -0
  31. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  32. package/dist/Output-V-6YL1_Z.d.mts +25 -0
  33. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  34. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  35. package/dist/PreparedInputAdmission-BQLGldl-.d.mts +42 -0
  36. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  37. package/dist/Records-D88mgvyS.d.mts +4214 -0
  38. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  39. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  40. package/dist/RunJournal-BXrq0VIK.mjs +931 -0
  41. package/dist/RunJournal-BXrq0VIK.mjs.map +1 -0
  42. package/dist/RunOptions-CSBsSj0X.d.mts +935 -0
  43. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  44. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  45. package/dist/Schedule-BIOHA6RR.d.mts +847 -0
  46. package/dist/Scheduling-DPb2QyAK.mjs +691 -0
  47. package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
  48. package/dist/Subagent-CNik9RiA.d.mts +1635 -0
  49. package/dist/Subagent-DCrB7an7.mjs +1498 -0
  50. package/dist/Subagent-DCrB7an7.mjs.map +1 -0
  51. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  52. package/dist/SubagentHost-4WB8Hj0C.d.mts +164 -0
  53. package/dist/Subscription-CRteOKRf.d.mts +948 -0
  54. package/dist/SubscriptionInput-oNcwTPti.d.mts +41 -0
  55. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  56. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  57. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  58. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  59. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  60. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  61. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  62. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  63. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  64. package/dist/ToolExposure.d.mts +8 -0
  65. package/dist/ToolExposure.mjs +21 -0
  66. package/dist/ToolExposure.mjs.map +1 -0
  67. package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
  68. package/dist/ToolResult-BKdqWRff.d.mts +78 -0
  69. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  70. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  71. package/dist/Worker-CfwzMZEK.mjs +271 -0
  72. package/dist/Worker-CfwzMZEK.mjs.map +1 -0
  73. package/dist/Worker-fwWkBg12.d.mts +472 -0
  74. package/dist/agent-registration-CKNsrpwo.mjs +201 -0
  75. package/dist/agent-registration-CKNsrpwo.mjs.map +1 -0
  76. package/dist/capabilities/Approval.d.mts +114 -0
  77. package/dist/capabilities/Approval.mjs +226 -0
  78. package/dist/capabilities/Approval.mjs.map +1 -0
  79. package/dist/capabilities/Budget.d.mts +112 -0
  80. package/dist/capabilities/Budget.mjs +346 -0
  81. package/dist/capabilities/Budget.mjs.map +1 -0
  82. package/dist/capabilities/CodeMode.d.mts +157 -0
  83. package/dist/capabilities/CodeMode.mjs +522 -0
  84. package/dist/capabilities/CodeMode.mjs.map +1 -0
  85. package/dist/capabilities/Commands.d.mts +55 -0
  86. package/dist/capabilities/Commands.mjs +57 -0
  87. package/dist/capabilities/Commands.mjs.map +1 -0
  88. package/dist/capabilities/ContextTools.d.mts +321 -0
  89. package/dist/capabilities/ContextTools.mjs +126 -0
  90. package/dist/capabilities/ContextTools.mjs.map +1 -0
  91. package/dist/capabilities/Mcp.d.mts +108 -0
  92. package/dist/capabilities/Mcp.mjs +259 -0
  93. package/dist/capabilities/Mcp.mjs.map +1 -0
  94. package/dist/capabilities/McpClient.d.mts +115 -0
  95. package/dist/capabilities/McpClient.mjs +506 -0
  96. package/dist/capabilities/McpClient.mjs.map +1 -0
  97. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  98. package/dist/capabilities/MemoryNotes.mjs +128 -0
  99. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  100. package/dist/capabilities/Messaging.d.mts +3 -0
  101. package/dist/capabilities/Messaging.mjs +152 -0
  102. package/dist/capabilities/Messaging.mjs.map +1 -0
  103. package/dist/capabilities/ModelContext.d.mts +89 -0
  104. package/dist/capabilities/ModelContext.mjs +168 -0
  105. package/dist/capabilities/ModelContext.mjs.map +1 -0
  106. package/dist/capabilities/Redaction.d.mts +37 -0
  107. package/dist/capabilities/Redaction.mjs +104 -0
  108. package/dist/capabilities/Redaction.mjs.map +1 -0
  109. package/dist/capabilities/Remembering.d.mts +434 -0
  110. package/dist/capabilities/Remembering.mjs +290 -0
  111. package/dist/capabilities/Remembering.mjs.map +1 -0
  112. package/dist/capabilities/RunHooks.d.mts +82 -0
  113. package/dist/capabilities/RunHooks.mjs +144 -0
  114. package/dist/capabilities/RunHooks.mjs.map +1 -0
  115. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  116. package/dist/capabilities/SemanticMemory.mjs +315 -0
  117. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  118. package/dist/capabilities/Subagent.d.mts +4 -0
  119. package/dist/capabilities/Subagent.mjs +5 -0
  120. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  121. package/dist/capabilities/SubagentReservations.mjs +479 -0
  122. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  123. package/dist/capabilities/ToolDiscovery.d.mts +124 -0
  124. package/dist/capabilities/ToolDiscovery.mjs +230 -0
  125. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  126. package/dist/capabilities/WebCapture.d.mts +163 -0
  127. package/dist/capabilities/WebCapture.mjs +335 -0
  128. package/dist/capabilities/WebCapture.mjs.map +1 -0
  129. package/dist/capabilities/WebSearch.d.mts +71 -0
  130. package/dist/capabilities/WebSearch.mjs +115 -0
  131. package/dist/capabilities/WebSearch.mjs.map +1 -0
  132. package/dist/compaction-C2OTceKw.mjs +505 -0
  133. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  134. package/dist/core/Agent.d.mts +2 -0
  135. package/dist/core/Agent.mjs +2 -0
  136. package/dist/core/AgentError.d.mts +2 -0
  137. package/dist/core/AgentError.mjs +134 -0
  138. package/dist/core/AgentError.mjs.map +1 -0
  139. package/dist/core/AgentPolicy.d.mts +2 -0
  140. package/dist/core/AgentPolicy.mjs +94 -0
  141. package/dist/core/AgentPolicy.mjs.map +1 -0
  142. package/dist/core/AgentUpdates.d.mts +2 -0
  143. package/dist/core/AgentUpdates.mjs +63 -0
  144. package/dist/core/AgentUpdates.mjs.map +1 -0
  145. package/dist/core/FailureDiagnostic.d.mts +2 -0
  146. package/dist/core/FailureDiagnostic.mjs +2 -0
  147. package/dist/core/IdGenerator.d.mts +26 -0
  148. package/dist/core/IdGenerator.mjs +27 -0
  149. package/dist/core/IdGenerator.mjs.map +1 -0
  150. package/dist/core/Identifiers.d.mts +2 -0
  151. package/dist/core/Identifiers.mjs +43 -0
  152. package/dist/core/Identifiers.mjs.map +1 -0
  153. package/dist/core/Memory.d.mts +57 -0
  154. package/dist/core/Memory.mjs +203 -0
  155. package/dist/core/Memory.mjs.map +1 -0
  156. package/dist/core/MemoryNamespace.d.mts +2 -0
  157. package/dist/core/MemoryNamespace.mjs +116 -0
  158. package/dist/core/MemoryNamespace.mjs.map +1 -0
  159. package/dist/core/MemoryReference.d.mts +2 -0
  160. package/dist/core/MemoryReference.mjs +109 -0
  161. package/dist/core/MemoryReference.mjs.map +1 -0
  162. package/dist/core/MemoryRevalidation.d.mts +65 -0
  163. package/dist/core/MemoryRevalidation.mjs +126 -0
  164. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  165. package/dist/core/MemoryStore.d.mts +186 -0
  166. package/dist/core/MemoryStore.mjs +243 -0
  167. package/dist/core/MemoryStore.mjs.map +1 -0
  168. package/dist/core/Receipt.d.mts +2 -0
  169. package/dist/core/Receipt.mjs +36 -0
  170. package/dist/core/Receipt.mjs.map +1 -0
  171. package/dist/core/RememberingStore.d.mts +1562 -0
  172. package/dist/core/RememberingStore.mjs +190 -0
  173. package/dist/core/RememberingStore.mjs.map +1 -0
  174. package/dist/core/RunEvent.d.mts +2 -0
  175. package/dist/core/RunEvent.mjs +337 -0
  176. package/dist/core/RunEvent.mjs.map +1 -0
  177. package/dist/core/RunPolicyUsage.d.mts +2 -0
  178. package/dist/core/RunPolicyUsage.mjs +21 -0
  179. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  180. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  181. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  182. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  183. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  184. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  185. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  186. package/dist/core/SubagentContract.d.mts +2 -0
  187. package/dist/core/SubagentContract.mjs +148 -0
  188. package/dist/core/SubagentContract.mjs.map +1 -0
  189. package/dist/core/Thread.d.mts +2 -0
  190. package/dist/core/Thread.mjs +250 -0
  191. package/dist/core/Thread.mjs.map +1 -0
  192. package/dist/core/ToolResult.d.mts +2 -0
  193. package/dist/core/ToolResult.mjs +156 -0
  194. package/dist/core/ToolResult.mjs.map +1 -0
  195. package/dist/core/Usage.d.mts +2 -0
  196. package/dist/core/Usage.mjs +319 -0
  197. package/dist/core/Usage.mjs.map +1 -0
  198. package/dist/core/Worker.d.mts +3 -0
  199. package/dist/core/Worker.mjs +3 -0
  200. package/dist/durable/ActivityStore.d.mts +116 -0
  201. package/dist/durable/ActivityStore.mjs +131 -0
  202. package/dist/durable/ActivityStore.mjs.map +1 -0
  203. package/dist/durable/Admin.d.mts +2 -0
  204. package/dist/durable/Admin.mjs +330 -0
  205. package/dist/durable/Admin.mjs.map +1 -0
  206. package/dist/durable/AgentRegistration.d.mts +2 -0
  207. package/dist/durable/AgentRegistration.mjs +14 -0
  208. package/dist/durable/AgentRegistration.mjs.map +1 -0
  209. package/dist/durable/Certification.d.mts +110 -0
  210. package/dist/durable/Certification.mjs +159 -0
  211. package/dist/durable/Certification.mjs.map +1 -0
  212. package/dist/durable/CommittedActivity.d.mts +62 -0
  213. package/dist/durable/CommittedActivity.mjs +159 -0
  214. package/dist/durable/CommittedActivity.mjs.map +1 -0
  215. package/dist/durable/Digest.d.mts +2 -0
  216. package/dist/durable/Digest.mjs +50 -0
  217. package/dist/durable/Digest.mjs.map +1 -0
  218. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  219. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  220. package/dist/durable/DurableFailpoint.d.mts +2 -0
  221. package/dist/durable/DurableFailpoint.mjs +102 -0
  222. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  223. package/dist/durable/DurableFailpointTestControl.d.mts +14 -0
  224. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  225. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  226. package/dist/durable/EventSource.d.mts +2 -0
  227. package/dist/durable/EventSource.mjs +65 -0
  228. package/dist/durable/EventSource.mjs.map +1 -0
  229. package/dist/durable/GitHubWorkflowSource.d.mts +185 -0
  230. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  231. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  232. package/dist/durable/MessageDelivery.d.mts +893 -0
  233. package/dist/durable/MessageDelivery.mjs +557 -0
  234. package/dist/durable/MessageDelivery.mjs.map +1 -0
  235. package/dist/durable/MessageDeliveryStoreConformance.d.mts +378 -0
  236. package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -0
  237. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  238. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  239. package/dist/durable/OperationAuthorizer.mjs +70 -0
  240. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  241. package/dist/durable/PersistentHistory.d.mts +16 -0
  242. package/dist/durable/PersistentHistory.mjs +125 -0
  243. package/dist/durable/PersistentHistory.mjs.map +1 -0
  244. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  245. package/dist/durable/PreparedInputAdmission.mjs +38 -0
  246. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  247. package/dist/durable/Records.d.mts +2 -0
  248. package/dist/durable/Records.mjs +848 -0
  249. package/dist/durable/Records.mjs.map +1 -0
  250. package/dist/durable/Recovery.d.mts +2 -0
  251. package/dist/durable/Recovery.mjs +739 -0
  252. package/dist/durable/Recovery.mjs.map +1 -0
  253. package/dist/durable/RunJournal.d.mts +2 -0
  254. package/dist/durable/RunJournal.mjs +2 -0
  255. package/dist/durable/Schedule.d.mts +2 -0
  256. package/dist/durable/Schedule.mjs +391 -0
  257. package/dist/durable/Schedule.mjs.map +1 -0
  258. package/dist/durable/ScheduleStoreConformance.d.mts +17 -0
  259. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  260. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  261. package/dist/durable/ScheduleTransition.d.mts +24 -0
  262. package/dist/durable/ScheduleTransition.mjs +180 -0
  263. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  264. package/dist/durable/Scheduling.d.mts +54 -0
  265. package/dist/durable/Scheduling.mjs +2 -0
  266. package/dist/durable/SqlMemoryStore.d.mts +29 -0
  267. package/dist/durable/SqlMemoryStore.mjs +436 -0
  268. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  269. package/dist/durable/SqlMessageDeliveryStore.d.mts +42 -0
  270. package/dist/durable/SqlMessageDeliveryStore.mjs +179 -0
  271. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  272. package/dist/durable/SqlStorageV2Upgrade.d.mts +21 -0
  273. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  274. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  275. package/dist/durable/SqlSubscriptionStore.d.mts +62 -0
  276. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  277. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  278. package/dist/durable/SqlThreadNativeReads.d.mts +53 -0
  279. package/dist/durable/SqlThreadNativeReads.mjs +159 -0
  280. package/dist/durable/SqlThreadNativeReads.mjs.map +1 -0
  281. package/dist/durable/SubmissionLedger.d.mts +3 -0
  282. package/dist/durable/SubmissionLedger.mjs +959 -0
  283. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  284. package/dist/durable/SubmissionLedgerConformance.d.mts +29 -0
  285. package/dist/durable/SubmissionLedgerConformance.mjs +2187 -0
  286. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  287. package/dist/durable/SubmissionStatus.d.mts +2 -0
  288. package/dist/durable/SubmissionStatus.mjs +18 -0
  289. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  290. package/dist/durable/Subscription.d.mts +2 -0
  291. package/dist/durable/Subscription.mjs +360 -0
  292. package/dist/durable/Subscription.mjs.map +1 -0
  293. package/dist/durable/SubscriptionInput.d.mts +2 -0
  294. package/dist/durable/SubscriptionInput.mjs +52 -0
  295. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  296. package/dist/durable/SubscriptionStoreConformance.d.mts +16 -0
  297. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  298. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  299. package/dist/durable/SubscriptionTools.d.mts +273 -0
  300. package/dist/durable/SubscriptionTools.mjs +190 -0
  301. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  302. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  303. package/dist/durable/SubscriptionTransition.mjs +148 -0
  304. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  305. package/dist/durable/Subscriptions.d.mts +73 -0
  306. package/dist/durable/Subscriptions.mjs +627 -0
  307. package/dist/durable/Subscriptions.mjs.map +1 -0
  308. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  309. package/dist/durable/ThreadContextHistory.mjs +152 -0
  310. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  311. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  312. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  313. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  314. package/dist/durable/ThreadInvariants.d.mts +76 -0
  315. package/dist/durable/ThreadInvariants.mjs +246 -0
  316. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  317. package/dist/durable/ThreadProjection.d.mts +78 -0
  318. package/dist/durable/ThreadProjection.mjs +158 -0
  319. package/dist/durable/ThreadProjection.mjs.map +1 -0
  320. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  321. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  322. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  323. package/dist/durable/ThreadStore.d.mts +2 -0
  324. package/dist/durable/ThreadStore.mjs +355 -0
  325. package/dist/durable/ThreadStore.mjs.map +1 -0
  326. package/dist/durable/ThreadStoreConformance.d.mts +28 -0
  327. package/dist/durable/ThreadStoreConformance.mjs +503 -0
  328. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  329. package/dist/durable/ToolReconciler.d.mts +2 -0
  330. package/dist/durable/ToolReconciler.mjs +85 -0
  331. package/dist/durable/ToolReconciler.mjs.map +1 -0
  332. package/dist/durable/WakeScheduler.d.mts +2 -0
  333. package/dist/durable/WakeScheduler.mjs +85 -0
  334. package/dist/durable/WakeScheduler.mjs.map +1 -0
  335. package/dist/durable/WorkerHost.d.mts +129 -0
  336. package/dist/durable/WorkerHost.mjs +77 -0
  337. package/dist/durable/WorkerHost.mjs.map +1 -0
  338. package/dist/engine/AgentRuntime.d.mts +2 -0
  339. package/dist/engine/AgentRuntime.mjs +2 -0
  340. package/dist/engine/Compaction.d.mts +7 -0
  341. package/dist/engine/Compaction.mjs +16 -0
  342. package/dist/engine/Compaction.mjs.map +1 -0
  343. package/dist/engine/ContextCompactor.d.mts +2 -0
  344. package/dist/engine/ContextCompactor.mjs +119 -0
  345. package/dist/engine/ContextCompactor.mjs.map +1 -0
  346. package/dist/engine/ContextHistory.d.mts +65 -0
  347. package/dist/engine/ContextHistory.mjs +76 -0
  348. package/dist/engine/ContextHistory.mjs.map +1 -0
  349. package/dist/engine/ContextWindow.d.mts +2 -0
  350. package/dist/engine/ContextWindow.mjs +59 -0
  351. package/dist/engine/ContextWindow.mjs.map +1 -0
  352. package/dist/engine/DurableStep.d.mts +2 -0
  353. package/dist/engine/DurableStep.mjs +62 -0
  354. package/dist/engine/DurableStep.mjs.map +1 -0
  355. package/dist/engine/MessagingHost.d.mts +2 -0
  356. package/dist/engine/MessagingHost.mjs +2 -0
  357. package/dist/engine/Output.d.mts +2 -0
  358. package/dist/engine/Output.mjs +8 -0
  359. package/dist/engine/Output.mjs.map +1 -0
  360. package/dist/engine/RunEventSink.d.mts +2 -0
  361. package/dist/engine/RunEventSink.mjs +22 -0
  362. package/dist/engine/RunEventSink.mjs.map +1 -0
  363. package/dist/engine/RunOptions.d.mts +2 -0
  364. package/dist/engine/RunOptions.mjs +124 -0
  365. package/dist/engine/RunOptions.mjs.map +1 -0
  366. package/dist/engine/SubagentHost.d.mts +2 -0
  367. package/dist/engine/SubagentHost.mjs +76 -0
  368. package/dist/engine/SubagentHost.mjs.map +1 -0
  369. package/dist/engine/ThreadHistory.d.mts +2 -0
  370. package/dist/engine/ThreadHistory.mjs +67 -0
  371. package/dist/engine/ThreadHistory.mjs.map +1 -0
  372. package/dist/engine/ToolBroker.d.mts +2 -0
  373. package/dist/engine/ToolBroker.mjs +42 -0
  374. package/dist/engine/ToolBroker.mjs.map +1 -0
  375. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  376. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  377. package/dist/index.d.mts +91 -6
  378. package/dist/index.mjs +100 -6
  379. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  380. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  381. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  382. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  383. package/dist/sandbox/CodeExecutor.mjs +278 -0
  384. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  385. package/dist/sandbox/InteractiveBrowser.d.mts +257 -0
  386. package/dist/sandbox/InteractiveBrowser.mjs +236 -0
  387. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  388. package/dist/sandbox/PageCapture.d.mts +2 -0
  389. package/dist/sandbox/PageCapture.mjs +450 -0
  390. package/dist/sandbox/PageCapture.mjs.map +1 -0
  391. package/dist/sandbox/PageCrawl.d.mts +88 -0
  392. package/dist/sandbox/PageCrawl.mjs +124 -0
  393. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  394. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  395. package/dist/sandbox/PageScreenshot.mjs +53 -0
  396. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  397. package/dist/sandbox/ProtectedBrowser.d.mts +283 -0
  398. package/dist/sandbox/ProtectedBrowser.mjs +298 -0
  399. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  400. package/dist/sandbox/Sandbox.d.mts +2 -0
  401. package/dist/sandbox/Sandbox.mjs +208 -0
  402. package/dist/sandbox/Sandbox.mjs.map +1 -0
  403. package/dist/utf8-BYfhEkcj.mjs +11 -0
  404. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  405. package/dist/utf8-DchGZRBd.mjs +23 -0
  406. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  407. package/package.json +1 -40
  408. package/src/InMemory.ts +19 -0
  409. package/src/ToolExposure.ts +2 -0
  410. package/src/capabilities/Approval.ts +352 -0
  411. package/src/capabilities/Budget.ts +536 -0
  412. package/src/capabilities/CodeMode.ts +1090 -0
  413. package/src/capabilities/Commands.ts +86 -0
  414. package/src/capabilities/ContextTools.ts +184 -0
  415. package/src/capabilities/Mcp.ts +426 -0
  416. package/src/capabilities/McpClient.ts +967 -0
  417. package/src/capabilities/MemoryNotes.ts +174 -0
  418. package/src/capabilities/Messaging.ts +261 -0
  419. package/src/capabilities/ModelContext.ts +354 -0
  420. package/src/capabilities/Redaction.ts +157 -0
  421. package/src/capabilities/Remembering.ts +550 -0
  422. package/src/capabilities/RunHooks.ts +280 -0
  423. package/src/capabilities/SemanticMemory.ts +447 -0
  424. package/src/capabilities/Subagent.ts +2489 -0
  425. package/src/capabilities/SubagentReservations.ts +850 -0
  426. package/src/capabilities/ToolDiscovery.ts +369 -0
  427. package/src/capabilities/WebCapture.ts +722 -0
  428. package/src/capabilities/WebSearch.ts +190 -0
  429. package/src/capabilities/internal/subagent-background.ts +1273 -0
  430. package/src/capabilities/internal/subagent-contract.ts +146 -0
  431. package/src/capabilities/internal/subagent-policy.ts +235 -0
  432. package/src/capabilities/internal/subagent-reporting.ts +136 -0
  433. package/src/capabilities/internal/utf8.ts +10 -0
  434. package/src/core/Agent.ts +602 -0
  435. package/src/core/AgentError.ts +172 -0
  436. package/src/core/AgentPolicy.ts +153 -0
  437. package/src/core/AgentUpdates.ts +100 -0
  438. package/src/core/FailureDiagnostic.ts +343 -0
  439. package/src/core/IdGenerator.ts +39 -0
  440. package/src/core/Identifiers.ts +48 -0
  441. package/src/core/Memory.ts +290 -0
  442. package/src/core/MemoryNamespace.ts +196 -0
  443. package/src/core/MemoryReference.ts +121 -0
  444. package/src/core/MemoryRevalidation.ts +185 -0
  445. package/src/core/MemoryStore.ts +368 -0
  446. package/src/core/Messaging.ts +72 -0
  447. package/src/core/Receipt.ts +42 -0
  448. package/src/core/RememberingStore.ts +300 -0
  449. package/src/core/RunEvent.ts +366 -0
  450. package/src/core/RunPolicyUsage.ts +17 -0
  451. package/src/core/SemanticMemoryIndex.ts +250 -0
  452. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  453. package/src/core/SubagentContract.ts +196 -0
  454. package/src/core/Thread.ts +371 -0
  455. package/src/core/ToolExposure.ts +74 -0
  456. package/src/core/ToolResult.ts +190 -0
  457. package/src/core/Usage.ts +529 -0
  458. package/src/core/Worker.ts +240 -0
  459. package/src/core/internal/agent-updates.ts +34 -0
  460. package/src/core/internal/message-status.ts +60 -0
  461. package/src/core/internal/strict-schema.ts +14 -0
  462. package/src/core/internal/utf8.ts +23 -0
  463. package/src/durable/ActivityStore.ts +160 -0
  464. package/src/durable/Admin.ts +505 -0
  465. package/src/durable/AgentRegistration.ts +14 -0
  466. package/src/durable/Certification.ts +210 -0
  467. package/src/durable/CommittedActivity.ts +296 -0
  468. package/src/durable/Digest.ts +87 -0
  469. package/src/durable/DurableAgentRuntime.ts +11275 -0
  470. package/src/durable/DurableFailpoint.ts +111 -0
  471. package/src/durable/DurableFailpointTestControl.ts +39 -0
  472. package/src/durable/EventSource.ts +172 -0
  473. package/src/durable/GitHubWorkflowSource.ts +447 -0
  474. package/src/durable/MessageDelivery.ts +832 -0
  475. package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
  476. package/src/durable/OperationAuthorizer.ts +85 -0
  477. package/src/durable/PersistentHistory.ts +260 -0
  478. package/src/durable/PreparedInputAdmission.ts +57 -0
  479. package/src/durable/Records.ts +1075 -0
  480. package/src/durable/Recovery.ts +1018 -0
  481. package/src/durable/RunJournal.ts +1631 -0
  482. package/src/durable/Schedule.ts +513 -0
  483. package/src/durable/ScheduleStoreConformance.ts +638 -0
  484. package/src/durable/ScheduleTransition.ts +265 -0
  485. package/src/durable/Scheduling.ts +1077 -0
  486. package/src/durable/SqlMemoryStore.ts +778 -0
  487. package/src/durable/SqlMessageDeliveryStore.ts +335 -0
  488. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  489. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  490. package/src/durable/SqlThreadNativeReads.ts +270 -0
  491. package/src/durable/SubmissionLedger.ts +1265 -0
  492. package/src/durable/SubmissionLedgerConformance.ts +4820 -0
  493. package/src/durable/SubmissionStatus.ts +14 -0
  494. package/src/durable/Subscription.ts +544 -0
  495. package/src/durable/SubscriptionInput.ts +144 -0
  496. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  497. package/src/durable/SubscriptionTools.ts +327 -0
  498. package/src/durable/SubscriptionTransition.ts +302 -0
  499. package/src/durable/Subscriptions.ts +1210 -0
  500. package/src/durable/ThreadContextHistory.ts +227 -0
  501. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  502. package/src/durable/ThreadInvariants.ts +507 -0
  503. package/src/durable/ThreadProjection.ts +269 -0
  504. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  505. package/src/durable/ThreadStore.ts +573 -0
  506. package/src/durable/ThreadStoreConformance.ts +1156 -0
  507. package/src/durable/ToolReconciler.ts +109 -0
  508. package/src/durable/WakeScheduler.ts +134 -0
  509. package/src/durable/WorkerHost.ts +171 -0
  510. package/src/durable/internal/agent-registration.ts +587 -0
  511. package/src/durable/internal/agent-updates.ts +302 -0
  512. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  513. package/src/durable/internal/journal-checkpoint.ts +104 -0
  514. package/src/durable/internal/journal-metadata.ts +117 -0
  515. package/src/durable/internal/message-status.ts +20 -0
  516. package/src/durable/internal/messaging-host.ts +637 -0
  517. package/src/durable/internal/schedule-time.ts +303 -0
  518. package/src/durable/internal/storage-v2-layout.ts +163 -0
  519. package/src/durable/internal/storage-v2.ts +73 -0
  520. package/src/durable/internal/worker-host.ts +2885 -0
  521. package/src/durable/internal/worker-runtime.ts +9 -0
  522. package/src/engine/AgentRuntime.ts +37 -0
  523. package/src/engine/Compaction.ts +11 -0
  524. package/src/engine/ContextCompactor.ts +277 -0
  525. package/src/engine/ContextHistory.ts +73 -0
  526. package/src/engine/ContextWindow.ts +72 -0
  527. package/src/engine/DurableStep.ts +132 -0
  528. package/src/engine/MessagingHost.ts +110 -0
  529. package/src/engine/Output.ts +2 -0
  530. package/src/engine/RunEventSink.ts +132 -0
  531. package/src/engine/RunOptions.ts +1101 -0
  532. package/src/engine/SubagentHost.ts +230 -0
  533. package/src/engine/ThreadHistory.ts +120 -0
  534. package/src/engine/ToolBroker.ts +157 -0
  535. package/src/engine/ToolExposure.ts +48 -0
  536. package/src/engine/internal/agent-runtime.ts +10500 -0
  537. package/src/engine/internal/bounded-value.ts +315 -0
  538. package/src/engine/internal/compaction.ts +678 -0
  539. package/src/engine/internal/error-diagnostic.ts +39 -0
  540. package/src/engine/internal/output-contract.ts +173 -0
  541. package/src/engine/internal/primitive-delta.ts +80 -0
  542. package/src/engine/internal/provider-result-staging.ts +211 -0
  543. package/src/engine/internal/tool-derivative.ts +106 -0
  544. package/src/engine/internal/tool-exposure.ts +224 -0
  545. package/src/engine/internal/tool-telemetry.ts +484 -0
  546. package/src/index.ts +99 -21
  547. package/src/sandbox/CodeExecutor.ts +352 -0
  548. package/src/sandbox/InteractiveBrowser.ts +339 -0
  549. package/src/sandbox/PageCapture.ts +691 -0
  550. package/src/sandbox/PageCrawl.ts +148 -0
  551. package/src/sandbox/PageScreenshot.ts +81 -0
  552. package/src/sandbox/ProtectedBrowser.ts +452 -0
  553. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,319 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { RunId } from "./Identifiers.mjs";
3
+ import { Effect, Schema } from "effect";
4
+ //#region src/core/Usage.ts
5
+ var Usage_exports = /* @__PURE__ */ __exportAll({
6
+ ChildRunUsage: () => ChildRunUsage,
7
+ InputTokenUsage: () => InputTokenUsage,
8
+ ModelCallUsage: () => ModelCallUsage,
9
+ ModelResponseIdentity: () => ModelResponseIdentity,
10
+ ModelUsageGroup: () => ModelUsageGroup,
11
+ OutputTokenUsage: () => OutputTokenUsage,
12
+ RunTotals: () => RunTotals,
13
+ RunUsageReport: () => RunUsageReport,
14
+ RunUsageSummary: () => RunUsageSummary,
15
+ UsageAggregationError: () => UsageAggregationError,
16
+ UsageCompleteness: () => UsageCompleteness,
17
+ emptyRunTotals: () => emptyRunTotals,
18
+ runTotalsFromSummary: () => runTotalsFromSummary,
19
+ sumRunTotals: () => sumRunTotals,
20
+ summarizeModelUsage: () => summarizeModelUsage,
21
+ unknownRunTotals: () => unknownRunTotals
22
+ });
23
+ const UsageIdentity = Schema.NonEmptyString.check(Schema.isMaxLength(256));
24
+ /** Bounded provider response identity. Request configuration is not response evidence. */
25
+ var ModelResponseIdentity = class extends Schema.Class("@effect-agent/core/ModelResponseIdentity")({
26
+ id: Schema.optionalKey(UsageIdentity),
27
+ model: Schema.optionalKey(UsageIdentity)
28
+ }) {};
29
+ /** Missing legacy status means unknown, never a free call or a complete report. */
30
+ const UsageCompleteness = Schema.Literals([
31
+ "complete",
32
+ "partial",
33
+ "unknown"
34
+ ]);
35
+ const hasAdditiveTotal = (total, components) => {
36
+ const sum = components.reduce((accumulator, component) => accumulator + component, 0);
37
+ return Number.isSafeInteger(sum) && total === sum;
38
+ };
39
+ const InputTokenUsageFields = Schema.Struct({
40
+ total: Schema.Natural,
41
+ uncached: Schema.Natural,
42
+ cacheRead: Schema.Natural,
43
+ cacheWrite: Schema.Natural
44
+ }).check(Schema.makeFilter((usage) => hasAdditiveTotal(usage.total, [
45
+ usage.uncached,
46
+ usage.cacheRead,
47
+ usage.cacheWrite
48
+ ]), { title: "Input token total equals uncached, cache-read, and cache-write components" }));
49
+ /** Provider-reported input-token components for one completed model call. */
50
+ var InputTokenUsage = class extends Schema.Class("@effect-agent/core/InputTokenUsage")(InputTokenUsageFields) {};
51
+ const OutputTokenUsageFields = Schema.Struct({
52
+ total: Schema.Natural,
53
+ text: Schema.Natural,
54
+ reasoning: Schema.Natural
55
+ }).check(Schema.makeFilter((usage) => hasAdditiveTotal(usage.total, [usage.text, usage.reasoning]), { title: "Output token total equals text and reasoning components" }));
56
+ /** Provider-reported output-token components for one completed model call. */
57
+ var OutputTokenUsage = class extends Schema.Class("@effect-agent/core/OutputTokenUsage")(OutputTokenUsageFields) {};
58
+ /** Canonical, provider-independent accounting for one completed model call. */
59
+ var ModelCallUsage = class extends Schema.Class("@effect-agent/core/ModelCallUsage")({
60
+ provider: UsageIdentity,
61
+ /** Configured binding identity. See response.model for provider-reported identity. */
62
+ model: UsageIdentity,
63
+ serviceTier: Schema.optionalKey(UsageIdentity),
64
+ pricingVersion: Schema.optionalKey(UsageIdentity),
65
+ response: Schema.optionalKey(ModelResponseIdentity),
66
+ purpose: Schema.optionalKey(Schema.Literals(["turn", "summary"])),
67
+ usageStatus: Schema.optionalKey(UsageCompleteness),
68
+ pricingStatus: Schema.optionalKey(Schema.Literals(["estimated", "unknown"])),
69
+ inputTokens: InputTokenUsage,
70
+ outputTokens: OutputTokenUsage,
71
+ costMicrousd: Schema.Natural
72
+ }) {};
73
+ /**
74
+ * Observed model usage and estimated cost, without per-model attribution.
75
+ * Numeric zero with unknown coverage never establishes free execution. Missing legacy
76
+ * statuses mean unknown. Unobserved calls are excluded from the numeric call/token totals.
77
+ */
78
+ var RunTotals = class extends Schema.Class("@effect-agent/core/RunTotals")({
79
+ modelCalls: Schema.Natural,
80
+ inputTokens: Schema.Natural,
81
+ outputTokens: Schema.Natural,
82
+ costMicrousd: Schema.Natural,
83
+ usageStatus: Schema.optionalKey(UsageCompleteness),
84
+ pricingStatus: Schema.optionalKey(UsageCompleteness),
85
+ unobservedModelCalls: Schema.optionalKey(Schema.Natural)
86
+ }) {};
87
+ /** Own Run usage and disjoint attached-descendant usage. Add each component once. */
88
+ var RunUsageReport = class extends Schema.Class("@effect-agent/core/RunUsageReport")({
89
+ usage: RunTotals,
90
+ delegatedUsage: RunTotals
91
+ }) {};
92
+ /** A verified child report retained across durable parent Attempts. */
93
+ var ChildRunUsage = class extends Schema.Class("@effect-agent/core/ChildRunUsage")({
94
+ runId: RunId,
95
+ report: RunUsageReport
96
+ }) {};
97
+ /** Known absence of observed work. */
98
+ const emptyRunTotals = () => RunTotals.make({
99
+ modelCalls: 0,
100
+ inputTokens: 0,
101
+ outputTokens: 0,
102
+ costMicrousd: 0,
103
+ usageStatus: "complete",
104
+ pricingStatus: "complete",
105
+ unobservedModelCalls: 0
106
+ });
107
+ /** No accounting evidence, including legacy child reports. This is not known zero spend. */
108
+ const unknownRunTotals = () => RunTotals.make({
109
+ ...emptyRunTotals(),
110
+ usageStatus: "unknown",
111
+ pricingStatus: "unknown"
112
+ });
113
+ /** Settlement-sized aggregate for calls sharing one pricing identity. */
114
+ var ModelUsageGroup = class extends Schema.Class("@effect-agent/core/ModelUsageGroup")({
115
+ provider: UsageIdentity,
116
+ model: UsageIdentity,
117
+ /** Actual returned model; absent when only the configured binding is known. */
118
+ responseModel: Schema.optionalKey(UsageIdentity),
119
+ serviceTier: Schema.optionalKey(UsageIdentity),
120
+ pricingVersion: Schema.optionalKey(UsageIdentity),
121
+ modelCalls: Schema.Natural.check(Schema.isGreaterThan(0)),
122
+ inputTokens: InputTokenUsage,
123
+ outputTokens: OutputTokenUsage,
124
+ costMicrousd: Schema.Natural
125
+ }) {};
126
+ const RunUsageSummaryFields = Schema.Struct({
127
+ modelCalls: Schema.Natural,
128
+ inputTokens: InputTokenUsage,
129
+ outputTokens: OutputTokenUsage,
130
+ costMicrousd: Schema.Natural,
131
+ byModel: Schema.Array(ModelUsageGroup),
132
+ /** Coverage of recorded calls only; interruptions can make the Run less complete. */
133
+ usageStatus: Schema.optionalKey(UsageCompleteness),
134
+ pricingStatus: Schema.optionalKey(UsageCompleteness),
135
+ /** Observed invocations without retained accounting, excluded from numeric call/token totals. */
136
+ unobservedModelCalls: Schema.optionalKey(Schema.Natural)
137
+ }).check(Schema.makeFilter((summary) => {
138
+ const identities = summary.byModel.map((group) => JSON.stringify([
139
+ group.provider,
140
+ group.model,
141
+ group.responseModel ?? null,
142
+ group.serviceTier ?? null,
143
+ group.pricingVersion ?? null
144
+ ]));
145
+ return new Set(identities).size === identities.length && hasAdditiveTotal(summary.modelCalls, summary.byModel.map((group) => group.modelCalls)) && hasAdditiveTotal(summary.inputTokens.total, summary.byModel.map((group) => group.inputTokens.total)) && hasAdditiveTotal(summary.inputTokens.uncached, summary.byModel.map((group) => group.inputTokens.uncached)) && hasAdditiveTotal(summary.inputTokens.cacheRead, summary.byModel.map((group) => group.inputTokens.cacheRead)) && hasAdditiveTotal(summary.inputTokens.cacheWrite, summary.byModel.map((group) => group.inputTokens.cacheWrite)) && hasAdditiveTotal(summary.outputTokens.total, summary.byModel.map((group) => group.outputTokens.total)) && hasAdditiveTotal(summary.outputTokens.text, summary.byModel.map((group) => group.outputTokens.text)) && hasAdditiveTotal(summary.outputTokens.reasoning, summary.byModel.map((group) => group.outputTokens.reasoning)) && hasAdditiveTotal(summary.costMicrousd, summary.byModel.map((group) => group.costMicrousd));
146
+ }, { title: "Run usage totals equal unique per-model pricing groups within safe-integer accounting" }));
147
+ /** Settlement aggregate included with a terminal Run settlement. */
148
+ var RunUsageSummary = class extends Schema.Class("@effect-agent/core/RunUsageSummary")(RunUsageSummaryFields) {};
149
+ const emptyInputTokens = () => ({
150
+ total: 0,
151
+ uncached: 0,
152
+ cacheRead: 0,
153
+ cacheWrite: 0
154
+ });
155
+ const emptyOutputTokens = () => ({
156
+ total: 0,
157
+ text: 0,
158
+ reasoning: 0
159
+ });
160
+ /** Canonical usage could not be aggregated without exceeding safe-integer accounting. */
161
+ var UsageAggregationError = class extends Schema.TaggedError()("UsageAggregationError", {
162
+ field: Schema.NonEmptyString,
163
+ message: Schema.String
164
+ }) {};
165
+ const checkedAdd = (field, left, right) => {
166
+ const total = left + right;
167
+ return Number.isSafeInteger(left) && left >= 0 && Number.isSafeInteger(right) && right >= 0 && Number.isSafeInteger(total) ? Effect.succeed(total) : Effect.fail(UsageAggregationError.make({
168
+ field,
169
+ message: `Canonical usage aggregation exceeded the safe-integer range at ${field}`
170
+ }));
171
+ };
172
+ /** Combine disjoint totals, retaining uncertainty and rejecting numeric overflow. */
173
+ const sumRunTotals = Effect.fn("sumRunTotals")(function* (contributions) {
174
+ let modelCalls = 0;
175
+ let inputTokens = 0;
176
+ let outputTokens = 0;
177
+ let costMicrousd = 0;
178
+ let unobservedModelCalls = 0;
179
+ const usageStatuses = [];
180
+ const pricingStatuses = [];
181
+ for (const contribution of contributions) {
182
+ const value = yield* Schema.decodeEffect(RunTotals)(contribution).pipe(Effect.mapError(() => new UsageAggregationError({
183
+ field: "totals",
184
+ message: "Invalid Run totals"
185
+ })));
186
+ modelCalls = yield* checkedAdd("modelCalls", modelCalls, value.modelCalls);
187
+ inputTokens = yield* checkedAdd("inputTokens", inputTokens, value.inputTokens);
188
+ outputTokens = yield* checkedAdd("outputTokens", outputTokens, value.outputTokens);
189
+ costMicrousd = yield* checkedAdd("costMicrousd", costMicrousd, value.costMicrousd);
190
+ unobservedModelCalls = yield* checkedAdd("unobservedModelCalls", unobservedModelCalls, value.unobservedModelCalls ?? 0);
191
+ if (value.modelCalls > 0 || (value.unobservedModelCalls ?? 0) > 0 || value.usageStatus !== "complete") usageStatuses.push(value.usageStatus ?? "unknown");
192
+ if (value.modelCalls > 0 || (value.unobservedModelCalls ?? 0) > 0 || value.pricingStatus !== "complete") pricingStatuses.push(value.pricingStatus ?? "unknown");
193
+ }
194
+ const coverage = (statuses) => statuses.every((status) => status === "complete") ? "complete" : statuses.every((status) => status === "unknown") ? "unknown" : "partial";
195
+ return RunTotals.make({
196
+ modelCalls,
197
+ inputTokens,
198
+ outputTokens,
199
+ costMicrousd,
200
+ unobservedModelCalls,
201
+ usageStatus: coverage(usageStatuses),
202
+ pricingStatus: coverage(pricingStatuses)
203
+ });
204
+ });
205
+ /** Flatten a canonical settlement summary without discarding its coverage markers. */
206
+ const runTotalsFromSummary = (summary) => RunTotals.make({
207
+ modelCalls: summary.modelCalls,
208
+ inputTokens: summary.inputTokens.total,
209
+ outputTokens: summary.outputTokens.total,
210
+ costMicrousd: summary.costMicrousd,
211
+ usageStatus: summary.usageStatus ?? "unknown",
212
+ pricingStatus: summary.pricingStatus ?? "unknown",
213
+ unobservedModelCalls: summary.unobservedModelCalls ?? 0
214
+ });
215
+ /**
216
+ * Deterministically aggregate canonical per-call usage without making cached tokens free.
217
+ * A validated seed retains earlier call totals and pricing groups without retaining those calls.
218
+ * Empty contributions do not change completeness; the seed is never mutated.
219
+ */
220
+ const summarizeModelUsage = Effect.fn("summarizeModelUsage")(function* (calls, seed) {
221
+ const initial = seed === void 0 ? void 0 : yield* Schema.decodeEffect(RunUsageSummary)(seed).pipe(Effect.mapError(() => new UsageAggregationError({
222
+ field: "seed",
223
+ message: "Canonical usage seed does not satisfy the RunUsageSummary Schema"
224
+ })));
225
+ const inputTokens = initial === void 0 ? emptyInputTokens() : { ...initial.inputTokens };
226
+ const outputTokens = initial === void 0 ? emptyOutputTokens() : { ...initial.outputTokens };
227
+ const groups = /* @__PURE__ */ new Map();
228
+ let modelCalls = initial?.modelCalls ?? 0;
229
+ let costMicrousd = initial?.costMicrousd ?? 0;
230
+ const hasSeedCalls = modelCalls > 0;
231
+ let allUsageUnknown = !hasSeedCalls || initial?.usageStatus === void 0 || initial.usageStatus === "unknown";
232
+ let allUsageComplete = !hasSeedCalls || initial?.usageStatus === "complete";
233
+ let allPricingUnknown = !hasSeedCalls || initial?.pricingStatus === void 0 || initial.pricingStatus === "unknown";
234
+ let allPricingComplete = !hasSeedCalls || initial?.pricingStatus === "complete";
235
+ for (const group of initial?.byModel ?? []) {
236
+ const key = JSON.stringify([
237
+ group.provider,
238
+ group.model,
239
+ group.responseModel ?? null,
240
+ group.serviceTier ?? null,
241
+ group.pricingVersion ?? null
242
+ ]);
243
+ groups.set(key, {
244
+ ...group,
245
+ inputTokens: { ...group.inputTokens },
246
+ outputTokens: { ...group.outputTokens }
247
+ });
248
+ }
249
+ for (const call of calls) {
250
+ allUsageUnknown &&= call.usageStatus === void 0 || call.usageStatus === "unknown";
251
+ allUsageComplete &&= call.usageStatus === "complete";
252
+ allPricingUnknown &&= call.pricingStatus !== "estimated";
253
+ allPricingComplete &&= call.pricingStatus === "estimated";
254
+ modelCalls = yield* checkedAdd("modelCalls", modelCalls, 1);
255
+ inputTokens.total = yield* checkedAdd("inputTokens.total", inputTokens.total, call.inputTokens.total);
256
+ inputTokens.uncached = yield* checkedAdd("inputTokens.uncached", inputTokens.uncached, call.inputTokens.uncached);
257
+ inputTokens.cacheRead = yield* checkedAdd("inputTokens.cacheRead", inputTokens.cacheRead, call.inputTokens.cacheRead);
258
+ inputTokens.cacheWrite = yield* checkedAdd("inputTokens.cacheWrite", inputTokens.cacheWrite, call.inputTokens.cacheWrite);
259
+ outputTokens.total = yield* checkedAdd("outputTokens.total", outputTokens.total, call.outputTokens.total);
260
+ outputTokens.text = yield* checkedAdd("outputTokens.text", outputTokens.text, call.outputTokens.text);
261
+ outputTokens.reasoning = yield* checkedAdd("outputTokens.reasoning", outputTokens.reasoning, call.outputTokens.reasoning);
262
+ costMicrousd = yield* checkedAdd("costMicrousd", costMicrousd, call.costMicrousd);
263
+ const key = JSON.stringify([
264
+ call.provider,
265
+ call.model,
266
+ call.response?.model ?? null,
267
+ call.serviceTier ?? null,
268
+ call.pricingVersion ?? null
269
+ ]);
270
+ let group = groups.get(key);
271
+ if (group === void 0) {
272
+ group = {
273
+ provider: call.provider,
274
+ model: call.model,
275
+ ...call.response?.model === void 0 ? {} : { responseModel: call.response.model },
276
+ ...call.serviceTier === void 0 ? {} : { serviceTier: call.serviceTier },
277
+ ...call.pricingVersion === void 0 ? {} : { pricingVersion: call.pricingVersion },
278
+ modelCalls: 0,
279
+ inputTokens: emptyInputTokens(),
280
+ outputTokens: emptyOutputTokens(),
281
+ costMicrousd: 0
282
+ };
283
+ groups.set(key, group);
284
+ }
285
+ group.modelCalls = yield* checkedAdd("byModel.modelCalls", group.modelCalls, 1);
286
+ group.inputTokens.total = yield* checkedAdd("byModel.inputTokens.total", group.inputTokens.total, call.inputTokens.total);
287
+ group.inputTokens.uncached = yield* checkedAdd("byModel.inputTokens.uncached", group.inputTokens.uncached, call.inputTokens.uncached);
288
+ group.inputTokens.cacheRead = yield* checkedAdd("byModel.inputTokens.cacheRead", group.inputTokens.cacheRead, call.inputTokens.cacheRead);
289
+ group.inputTokens.cacheWrite = yield* checkedAdd("byModel.inputTokens.cacheWrite", group.inputTokens.cacheWrite, call.inputTokens.cacheWrite);
290
+ group.outputTokens.total = yield* checkedAdd("byModel.outputTokens.total", group.outputTokens.total, call.outputTokens.total);
291
+ group.outputTokens.text = yield* checkedAdd("byModel.outputTokens.text", group.outputTokens.text, call.outputTokens.text);
292
+ group.outputTokens.reasoning = yield* checkedAdd("byModel.outputTokens.reasoning", group.outputTokens.reasoning, call.outputTokens.reasoning);
293
+ group.costMicrousd = yield* checkedAdd("byModel.costMicrousd", group.costMicrousd, call.costMicrousd);
294
+ }
295
+ return RunUsageSummary.make({
296
+ modelCalls,
297
+ inputTokens: InputTokenUsage.make(inputTokens),
298
+ outputTokens: OutputTokenUsage.make(outputTokens),
299
+ costMicrousd,
300
+ usageStatus: allUsageUnknown ? "unknown" : allUsageComplete ? "complete" : "partial",
301
+ pricingStatus: allPricingUnknown ? "unknown" : allPricingComplete ? "complete" : "partial",
302
+ ...initial?.unobservedModelCalls === void 0 ? {} : { unobservedModelCalls: initial.unobservedModelCalls },
303
+ byModel: [...groups.values()].map((group) => ModelUsageGroup.make({
304
+ provider: group.provider,
305
+ model: group.model,
306
+ ...group.responseModel === void 0 ? {} : { responseModel: group.responseModel },
307
+ ...group.serviceTier === void 0 ? {} : { serviceTier: group.serviceTier },
308
+ ...group.pricingVersion === void 0 ? {} : { pricingVersion: group.pricingVersion },
309
+ modelCalls: group.modelCalls,
310
+ inputTokens: InputTokenUsage.make(group.inputTokens),
311
+ outputTokens: OutputTokenUsage.make(group.outputTokens),
312
+ costMicrousd: group.costMicrousd
313
+ }))
314
+ });
315
+ });
316
+ //#endregion
317
+ export { ChildRunUsage, InputTokenUsage, ModelCallUsage, ModelResponseIdentity, ModelUsageGroup, OutputTokenUsage, RunTotals, RunUsageReport, RunUsageSummary, UsageAggregationError, UsageCompleteness, emptyRunTotals, runTotalsFromSummary, sumRunTotals, summarizeModelUsage, Usage_exports as t, unknownRunTotals };
318
+
319
+ //# sourceMappingURL=Usage.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Usage.mjs","names":[],"sources":["../../src/core/Usage.ts"],"sourcesContent":["import { Effect, Schema } from \"effect\";\n\nimport { RunId } from \"./Identifiers.ts\";\n\nconst UsageIdentity = Schema.NonEmptyString.check(Schema.isMaxLength(256));\n\n/** Bounded provider response identity. Request configuration is not response evidence. */\nexport class ModelResponseIdentity extends Schema.Class<ModelResponseIdentity>(\n \"@effect-agent/core/ModelResponseIdentity\",\n)({\n id: Schema.optionalKey(UsageIdentity),\n model: Schema.optionalKey(UsageIdentity),\n}) {}\n\n/** Missing legacy status means unknown, never a free call or a complete report. */\nexport const UsageCompleteness = Schema.Literals([\"complete\", \"partial\", \"unknown\"]);\n\nconst hasAdditiveTotal = (total: number, components: ReadonlyArray<number>): boolean => {\n const sum = components.reduce((accumulator, component) => accumulator + component, 0);\n\n return Number.isSafeInteger(sum) && total === sum;\n};\n\nconst InputTokenUsageFields = Schema.Struct({\n total: Schema.Natural,\n uncached: Schema.Natural,\n cacheRead: Schema.Natural,\n cacheWrite: Schema.Natural,\n}).check(\n Schema.makeFilter(\n (usage) => hasAdditiveTotal(usage.total, [usage.uncached, usage.cacheRead, usage.cacheWrite]),\n { title: \"Input token total equals uncached, cache-read, and cache-write components\" },\n ),\n);\n\n/** Provider-reported input-token components for one completed model call. */\nexport class InputTokenUsage extends Schema.Class<InputTokenUsage>(\n \"@effect-agent/core/InputTokenUsage\",\n)(InputTokenUsageFields) {}\n\nconst OutputTokenUsageFields = Schema.Struct({\n total: Schema.Natural,\n text: Schema.Natural,\n reasoning: Schema.Natural,\n}).check(\n Schema.makeFilter((usage) => hasAdditiveTotal(usage.total, [usage.text, usage.reasoning]), {\n title: \"Output token total equals text and reasoning components\",\n }),\n);\n\n/** Provider-reported output-token components for one completed model call. */\nexport class OutputTokenUsage extends Schema.Class<OutputTokenUsage>(\n \"@effect-agent/core/OutputTokenUsage\",\n)(OutputTokenUsageFields) {}\n\n/** Canonical, provider-independent accounting for one completed model call. */\nexport class ModelCallUsage extends Schema.Class<ModelCallUsage>(\n \"@effect-agent/core/ModelCallUsage\",\n)({\n provider: UsageIdentity,\n /** Configured binding identity. See response.model for provider-reported identity. */\n model: UsageIdentity,\n serviceTier: Schema.optionalKey(UsageIdentity),\n pricingVersion: Schema.optionalKey(UsageIdentity),\n response: Schema.optionalKey(ModelResponseIdentity),\n purpose: Schema.optionalKey(Schema.Literals([\"turn\", \"summary\"])),\n usageStatus: Schema.optionalKey(UsageCompleteness),\n pricingStatus: Schema.optionalKey(Schema.Literals([\"estimated\", \"unknown\"])),\n inputTokens: InputTokenUsage,\n outputTokens: OutputTokenUsage,\n costMicrousd: Schema.Natural,\n}) {}\n\n/**\n * Observed model usage and estimated cost, without per-model attribution.\n * Numeric zero with unknown coverage never establishes free execution. Missing legacy\n * statuses mean unknown. Unobserved calls are excluded from the numeric call/token totals.\n */\nexport class RunTotals extends Schema.Class<RunTotals>(\"@effect-agent/core/RunTotals\")({\n modelCalls: Schema.Natural,\n inputTokens: Schema.Natural,\n outputTokens: Schema.Natural,\n costMicrousd: Schema.Natural,\n usageStatus: Schema.optionalKey(UsageCompleteness),\n pricingStatus: Schema.optionalKey(UsageCompleteness),\n unobservedModelCalls: Schema.optionalKey(Schema.Natural),\n}) {}\n\n/** Own Run usage and disjoint attached-descendant usage. Add each component once. */\nexport class RunUsageReport extends Schema.Class<RunUsageReport>(\n \"@effect-agent/core/RunUsageReport\",\n)({\n usage: RunTotals,\n delegatedUsage: RunTotals,\n}) {}\n\n/** A verified child report retained across durable parent Attempts. */\nexport class ChildRunUsage extends Schema.Class<ChildRunUsage>(\"@effect-agent/core/ChildRunUsage\")({\n runId: RunId,\n report: RunUsageReport,\n}) {}\n\n/** Known absence of observed work. */\nexport const emptyRunTotals = (): RunTotals =>\n RunTotals.make({\n modelCalls: 0,\n inputTokens: 0,\n outputTokens: 0,\n costMicrousd: 0,\n usageStatus: \"complete\",\n pricingStatus: \"complete\",\n unobservedModelCalls: 0,\n });\n\n/** No accounting evidence, including legacy child reports. This is not known zero spend. */\nexport const unknownRunTotals = (): RunTotals =>\n RunTotals.make({\n ...emptyRunTotals(),\n usageStatus: \"unknown\",\n pricingStatus: \"unknown\",\n });\n\n/** Settlement-sized aggregate for calls sharing one pricing identity. */\nexport class ModelUsageGroup extends Schema.Class<ModelUsageGroup>(\n \"@effect-agent/core/ModelUsageGroup\",\n)({\n provider: UsageIdentity,\n model: UsageIdentity,\n /** Actual returned model; absent when only the configured binding is known. */\n responseModel: Schema.optionalKey(UsageIdentity),\n serviceTier: Schema.optionalKey(UsageIdentity),\n pricingVersion: Schema.optionalKey(UsageIdentity),\n modelCalls: Schema.Natural.check(Schema.isGreaterThan(0)),\n inputTokens: InputTokenUsage,\n outputTokens: OutputTokenUsage,\n costMicrousd: Schema.Natural,\n}) {}\n\nconst RunUsageSummaryFields = Schema.Struct({\n modelCalls: Schema.Natural,\n inputTokens: InputTokenUsage,\n outputTokens: OutputTokenUsage,\n costMicrousd: Schema.Natural,\n byModel: Schema.Array(ModelUsageGroup),\n /** Coverage of recorded calls only; interruptions can make the Run less complete. */\n usageStatus: Schema.optionalKey(UsageCompleteness),\n pricingStatus: Schema.optionalKey(UsageCompleteness),\n /** Observed invocations without retained accounting, excluded from numeric call/token totals. */\n unobservedModelCalls: Schema.optionalKey(Schema.Natural),\n}).check(\n Schema.makeFilter(\n (summary) => {\n const identities = summary.byModel.map((group) =>\n JSON.stringify([\n group.provider,\n group.model,\n group.responseModel ?? null,\n group.serviceTier ?? null,\n group.pricingVersion ?? null,\n ]),\n );\n\n return (\n new Set(identities).size === identities.length &&\n hasAdditiveTotal(\n summary.modelCalls,\n summary.byModel.map((group) => group.modelCalls),\n ) &&\n hasAdditiveTotal(\n summary.inputTokens.total,\n summary.byModel.map((group) => group.inputTokens.total),\n ) &&\n hasAdditiveTotal(\n summary.inputTokens.uncached,\n summary.byModel.map((group) => group.inputTokens.uncached),\n ) &&\n hasAdditiveTotal(\n summary.inputTokens.cacheRead,\n summary.byModel.map((group) => group.inputTokens.cacheRead),\n ) &&\n hasAdditiveTotal(\n summary.inputTokens.cacheWrite,\n summary.byModel.map((group) => group.inputTokens.cacheWrite),\n ) &&\n hasAdditiveTotal(\n summary.outputTokens.total,\n summary.byModel.map((group) => group.outputTokens.total),\n ) &&\n hasAdditiveTotal(\n summary.outputTokens.text,\n summary.byModel.map((group) => group.outputTokens.text),\n ) &&\n hasAdditiveTotal(\n summary.outputTokens.reasoning,\n summary.byModel.map((group) => group.outputTokens.reasoning),\n ) &&\n hasAdditiveTotal(\n summary.costMicrousd,\n summary.byModel.map((group) => group.costMicrousd),\n )\n );\n },\n {\n title:\n \"Run usage totals equal unique per-model pricing groups within safe-integer accounting\",\n },\n ),\n);\n\n/** Settlement aggregate included with a terminal Run settlement. */\nexport class RunUsageSummary extends Schema.Class<RunUsageSummary>(\n \"@effect-agent/core/RunUsageSummary\",\n)(RunUsageSummaryFields) {}\n\ninterface MutableUsageGroup {\n readonly provider: string;\n readonly model: string;\n readonly responseModel?: string | undefined;\n readonly serviceTier?: string | undefined;\n readonly pricingVersion?: string | undefined;\n modelCalls: number;\n inputTokens: {\n total: number;\n uncached: number;\n cacheRead: number;\n cacheWrite: number;\n };\n outputTokens: { total: number; text: number; reasoning: number };\n costMicrousd: number;\n}\n\nconst emptyInputTokens = () => ({ total: 0, uncached: 0, cacheRead: 0, cacheWrite: 0 });\nconst emptyOutputTokens = () => ({ total: 0, text: 0, reasoning: 0 });\n\n/** Canonical usage could not be aggregated without exceeding safe-integer accounting. */\nexport class UsageAggregationError extends Schema.TaggedError<UsageAggregationError>()(\n \"UsageAggregationError\",\n {\n field: Schema.NonEmptyString,\n message: Schema.String,\n },\n) {}\n\nconst checkedAdd = (\n field: string,\n left: number,\n right: number,\n): Effect.Effect<number, UsageAggregationError> => {\n const total = left + right;\n\n return Number.isSafeInteger(left) &&\n left >= 0 &&\n Number.isSafeInteger(right) &&\n right >= 0 &&\n Number.isSafeInteger(total)\n ? Effect.succeed(total)\n : Effect.fail(\n UsageAggregationError.make({\n field,\n message: `Canonical usage aggregation exceeded the safe-integer range at ${field}`,\n }),\n );\n};\n\n/** Combine disjoint totals, retaining uncertainty and rejecting numeric overflow. */\nexport const sumRunTotals = Effect.fn(\"sumRunTotals\")(function* (\n contributions: ReadonlyArray<RunTotals>,\n): Effect.fn.Return<RunTotals, UsageAggregationError> {\n let modelCalls = 0;\n let inputTokens = 0;\n let outputTokens = 0;\n let costMicrousd = 0;\n let unobservedModelCalls = 0;\n const usageStatuses: Array<typeof UsageCompleteness.Type> = [];\n const pricingStatuses: Array<typeof UsageCompleteness.Type> = [];\n\n for (const contribution of contributions) {\n const value = yield* Schema.decodeEffect(RunTotals)(contribution).pipe(\n Effect.mapError(\n () => new UsageAggregationError({ field: \"totals\", message: \"Invalid Run totals\" }),\n ),\n );\n\n modelCalls = yield* checkedAdd(\"modelCalls\", modelCalls, value.modelCalls);\n inputTokens = yield* checkedAdd(\"inputTokens\", inputTokens, value.inputTokens);\n outputTokens = yield* checkedAdd(\"outputTokens\", outputTokens, value.outputTokens);\n costMicrousd = yield* checkedAdd(\"costMicrousd\", costMicrousd, value.costMicrousd);\n unobservedModelCalls = yield* checkedAdd(\n \"unobservedModelCalls\",\n unobservedModelCalls,\n value.unobservedModelCalls ?? 0,\n );\n // Known empty contributions are identities; unknown empty contributions are evidence gaps.\n if (\n value.modelCalls > 0 ||\n (value.unobservedModelCalls ?? 0) > 0 ||\n value.usageStatus !== \"complete\"\n ) {\n usageStatuses.push(value.usageStatus ?? \"unknown\");\n }\n if (\n value.modelCalls > 0 ||\n (value.unobservedModelCalls ?? 0) > 0 ||\n value.pricingStatus !== \"complete\"\n ) {\n pricingStatuses.push(value.pricingStatus ?? \"unknown\");\n }\n }\n\n const coverage = (statuses: ReadonlyArray<typeof UsageCompleteness.Type>) =>\n statuses.every((status) => status === \"complete\")\n ? (\"complete\" as const)\n : statuses.every((status) => status === \"unknown\")\n ? (\"unknown\" as const)\n : (\"partial\" as const);\n\n return RunTotals.make({\n modelCalls,\n inputTokens,\n outputTokens,\n costMicrousd,\n unobservedModelCalls,\n usageStatus: coverage(usageStatuses),\n pricingStatus: coverage(pricingStatuses),\n });\n});\n\n/** Flatten a canonical settlement summary without discarding its coverage markers. */\nexport const runTotalsFromSummary = (summary: RunUsageSummary): RunTotals =>\n RunTotals.make({\n modelCalls: summary.modelCalls,\n inputTokens: summary.inputTokens.total,\n outputTokens: summary.outputTokens.total,\n costMicrousd: summary.costMicrousd,\n usageStatus: summary.usageStatus ?? \"unknown\",\n pricingStatus: summary.pricingStatus ?? \"unknown\",\n unobservedModelCalls: summary.unobservedModelCalls ?? 0,\n });\n\n/**\n * Deterministically aggregate canonical per-call usage without making cached tokens free.\n * A validated seed retains earlier call totals and pricing groups without retaining those calls.\n * Empty contributions do not change completeness; the seed is never mutated.\n */\nexport const summarizeModelUsage = Effect.fn(\"summarizeModelUsage\")(function* (\n calls: ReadonlyArray<ModelCallUsage>,\n seed?: RunUsageSummary,\n): Effect.fn.Return<RunUsageSummary, UsageAggregationError> {\n const initial =\n seed === undefined\n ? undefined\n : yield* Schema.decodeEffect(RunUsageSummary)(seed).pipe(\n Effect.mapError(\n () =>\n new UsageAggregationError({\n field: \"seed\",\n message: \"Canonical usage seed does not satisfy the RunUsageSummary Schema\",\n }),\n ),\n );\n\n const inputTokens = initial === undefined ? emptyInputTokens() : { ...initial.inputTokens };\n const outputTokens = initial === undefined ? emptyOutputTokens() : { ...initial.outputTokens };\n const groups = new Map<string, MutableUsageGroup>();\n let modelCalls = initial?.modelCalls ?? 0;\n let costMicrousd = initial?.costMicrousd ?? 0;\n const hasSeedCalls = modelCalls > 0;\n\n let allUsageUnknown =\n !hasSeedCalls || initial?.usageStatus === undefined || initial.usageStatus === \"unknown\";\n\n let allUsageComplete = !hasSeedCalls || initial?.usageStatus === \"complete\";\n\n let allPricingUnknown =\n !hasSeedCalls || initial?.pricingStatus === undefined || initial.pricingStatus === \"unknown\";\n\n let allPricingComplete = !hasSeedCalls || initial?.pricingStatus === \"complete\";\n\n for (const group of initial?.byModel ?? []) {\n const key = JSON.stringify([\n group.provider,\n group.model,\n group.responseModel ?? null,\n group.serviceTier ?? null,\n group.pricingVersion ?? null,\n ]);\n\n groups.set(key, {\n ...group,\n inputTokens: { ...group.inputTokens },\n outputTokens: { ...group.outputTokens },\n });\n }\n\n for (const call of calls) {\n allUsageUnknown &&= call.usageStatus === undefined || call.usageStatus === \"unknown\";\n allUsageComplete &&= call.usageStatus === \"complete\";\n allPricingUnknown &&= call.pricingStatus !== \"estimated\";\n allPricingComplete &&= call.pricingStatus === \"estimated\";\n modelCalls = yield* checkedAdd(\"modelCalls\", modelCalls, 1);\n inputTokens.total = yield* checkedAdd(\n \"inputTokens.total\",\n inputTokens.total,\n call.inputTokens.total,\n );\n inputTokens.uncached = yield* checkedAdd(\n \"inputTokens.uncached\",\n inputTokens.uncached,\n call.inputTokens.uncached,\n );\n inputTokens.cacheRead = yield* checkedAdd(\n \"inputTokens.cacheRead\",\n inputTokens.cacheRead,\n call.inputTokens.cacheRead,\n );\n inputTokens.cacheWrite = yield* checkedAdd(\n \"inputTokens.cacheWrite\",\n inputTokens.cacheWrite,\n call.inputTokens.cacheWrite,\n );\n outputTokens.total = yield* checkedAdd(\n \"outputTokens.total\",\n outputTokens.total,\n call.outputTokens.total,\n );\n outputTokens.text = yield* checkedAdd(\n \"outputTokens.text\",\n outputTokens.text,\n call.outputTokens.text,\n );\n outputTokens.reasoning = yield* checkedAdd(\n \"outputTokens.reasoning\",\n outputTokens.reasoning,\n call.outputTokens.reasoning,\n );\n costMicrousd = yield* checkedAdd(\"costMicrousd\", costMicrousd, call.costMicrousd);\n\n const key = JSON.stringify([\n call.provider,\n call.model,\n call.response?.model ?? null,\n call.serviceTier ?? null,\n call.pricingVersion ?? null,\n ]);\n\n let group = groups.get(key);\n\n if (group === undefined) {\n group = {\n provider: call.provider,\n model: call.model,\n ...(call.response?.model === undefined ? {} : { responseModel: call.response.model }),\n ...(call.serviceTier === undefined ? {} : { serviceTier: call.serviceTier }),\n ...(call.pricingVersion === undefined ? {} : { pricingVersion: call.pricingVersion }),\n modelCalls: 0,\n inputTokens: emptyInputTokens(),\n outputTokens: emptyOutputTokens(),\n costMicrousd: 0,\n };\n groups.set(key, group);\n }\n group.modelCalls = yield* checkedAdd(\"byModel.modelCalls\", group.modelCalls, 1);\n group.inputTokens.total = yield* checkedAdd(\n \"byModel.inputTokens.total\",\n group.inputTokens.total,\n call.inputTokens.total,\n );\n group.inputTokens.uncached = yield* checkedAdd(\n \"byModel.inputTokens.uncached\",\n group.inputTokens.uncached,\n call.inputTokens.uncached,\n );\n group.inputTokens.cacheRead = yield* checkedAdd(\n \"byModel.inputTokens.cacheRead\",\n group.inputTokens.cacheRead,\n call.inputTokens.cacheRead,\n );\n group.inputTokens.cacheWrite = yield* checkedAdd(\n \"byModel.inputTokens.cacheWrite\",\n group.inputTokens.cacheWrite,\n call.inputTokens.cacheWrite,\n );\n group.outputTokens.total = yield* checkedAdd(\n \"byModel.outputTokens.total\",\n group.outputTokens.total,\n call.outputTokens.total,\n );\n group.outputTokens.text = yield* checkedAdd(\n \"byModel.outputTokens.text\",\n group.outputTokens.text,\n call.outputTokens.text,\n );\n group.outputTokens.reasoning = yield* checkedAdd(\n \"byModel.outputTokens.reasoning\",\n group.outputTokens.reasoning,\n call.outputTokens.reasoning,\n );\n group.costMicrousd = yield* checkedAdd(\n \"byModel.costMicrousd\",\n group.costMicrousd,\n call.costMicrousd,\n );\n }\n\n return RunUsageSummary.make({\n modelCalls,\n inputTokens: InputTokenUsage.make(inputTokens),\n outputTokens: OutputTokenUsage.make(outputTokens),\n costMicrousd,\n usageStatus: allUsageUnknown ? \"unknown\" : allUsageComplete ? \"complete\" : \"partial\",\n pricingStatus: allPricingUnknown ? \"unknown\" : allPricingComplete ? \"complete\" : \"partial\",\n ...(initial?.unobservedModelCalls === undefined\n ? {}\n : { unobservedModelCalls: initial.unobservedModelCalls }),\n byModel: [...groups.values()].map((group) =>\n ModelUsageGroup.make({\n provider: group.provider,\n model: group.model,\n ...(group.responseModel === undefined ? {} : { responseModel: group.responseModel }),\n ...(group.serviceTier === undefined ? {} : { serviceTier: group.serviceTier }),\n ...(group.pricingVersion === undefined ? {} : { pricingVersion: group.pricingVersion }),\n modelCalls: group.modelCalls,\n inputTokens: InputTokenUsage.make(group.inputTokens),\n outputTokens: OutputTokenUsage.make(group.outputTokens),\n costMicrousd: group.costMicrousd,\n }),\n ),\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { p as WorkerOperationTool } from "../SubagentContract-DdT7Cqe6.mjs";
2
+ import { _ as WorkerStop, a as WorkerBudgetScope, b as WorkerUpdate, c as WorkerError, d as WorkerPage, f as WorkerRef, g as WorkerStarted, h as WorkerSource, i as WorkerAppliedInput, l as WorkerHistoryEntry, m as WorkerRun, n as AssignmentTerminal, o as WorkerCompletion, p as WorkerReport, r as FrameworkMessage, s as WorkerContext, t as AssignmentDisposition, u as WorkerInput, v as WorkerStopped, y as WorkerSummary } from "../Worker-fwWkBg12.mjs";
3
+ export { AssignmentDisposition, AssignmentTerminal, FrameworkMessage, WorkerAppliedInput, WorkerBudgetScope, WorkerCompletion, WorkerContext, WorkerError, WorkerHistoryEntry, WorkerInput, WorkerOperationTool, WorkerPage, WorkerRef, WorkerReport, WorkerRun, WorkerSource, WorkerStarted, WorkerStop, WorkerStopped, WorkerSummary, WorkerUpdate };
@@ -0,0 +1,3 @@
1
+ import { WorkerOperationTool } from "./SubagentContract.mjs";
2
+ import { _ as WorkerStop, a as WorkerBudgetScope, b as WorkerUpdate, c as WorkerError, d as WorkerPage, f as WorkerRef, g as WorkerStarted, h as WorkerSource, i as WorkerAppliedInput, l as WorkerHistoryEntry, m as WorkerRun, n as AssignmentTerminal, o as WorkerCompletion, p as WorkerReport, r as FrameworkMessage, s as WorkerContext, t as AssignmentDisposition, u as WorkerInput, v as WorkerStopped, y as WorkerSummary } from "../Worker-CfwzMZEK.mjs";
3
+ export { AssignmentDisposition, AssignmentTerminal, FrameworkMessage, WorkerAppliedInput, WorkerBudgetScope, WorkerCompletion, WorkerContext, WorkerError, WorkerHistoryEntry, WorkerInput, WorkerOperationTool, WorkerPage, WorkerRef, WorkerReport, WorkerRun, WorkerSource, WorkerStarted, WorkerStop, WorkerStopped, WorkerSummary, WorkerUpdate };
@@ -0,0 +1,116 @@
1
+ import { _ as Digest } from "../Records-D88mgvyS.mjs";
2
+ import { Context, Effect, Layer, Schema } from "effect";
3
+ declare namespace ActivityStore_d_exports {
4
+ export { ActivityBusy, ActivityClaim, ActivityClaimRequest, ActivityMutationFailpoint, ActivityMutationFailure, ActivityMutationPoint, ActivityOwnershipLost, ActivityProcessorKey, ActivityProcessorStore, ActivityProgress, ActivityStoreError, ActivityStoreFailure, ActivityWorkConflict, PreparedActivity };
5
+ }
6
+ declare const ActivityProcessorKey_base: Schema.Class<ActivityProcessorKey, Schema.Struct<{
7
+ readonly processorId: Schema.NonEmptyString;
8
+ readonly processorVersion: Schema.NonEmptyString;
9
+ readonly threadId: Schema.brand<Schema.NonEmptyString, "@effect-agent/core/ThreadId">;
10
+ }>, {}>;
11
+ /** Application-owned processor identity. Changing the version starts independent progress. */
12
+ export declare class ActivityProcessorKey extends ActivityProcessorKey_base {}
13
+ declare const PreparedActivity_base: Schema.Class<PreparedActivity, Schema.Struct<{
14
+ readonly version: Schema.Literal<1>;
15
+ readonly key: typeof ActivityProcessorKey;
16
+ readonly sequence: Schema.brand<Schema.Natural, "@effect-agent/thread/CanonicalSequence">;
17
+ readonly workId: Schema.brand<Schema.String, "@effect-agent/thread/Digest">;
18
+ readonly recordId: Schema.brand<Schema.NonEmptyString, "@effect-agent/thread/RecordId">;
19
+ readonly recordDigest: Schema.brand<Schema.String, "@effect-agent/thread/Digest">;
20
+ readonly output: Schema.declare<Schema.Json, Schema.Json>;
21
+ }>, {}>;
22
+ /** Durable extraction output, pinned before any external application of that output. */
23
+ export declare class PreparedActivity extends PreparedActivity_base {}
24
+ declare const ActivityClaim_base: Schema.Class<ActivityClaim, Schema.Struct<{
25
+ readonly key: typeof ActivityProcessorKey;
26
+ readonly owner: Schema.NonEmptyString;
27
+ readonly epoch: Schema.Int;
28
+ readonly throughSequence: Schema.brand<Schema.Natural, "@effect-agent/thread/CanonicalSequence">;
29
+ readonly leaseExpiresAt: Schema.Finite;
30
+ /** Pending output captured atomically at acquisition; advance returns null here. */
31
+ readonly pending: Schema.NullOr<typeof PreparedActivity>;
32
+ }>, {}>;
33
+ /** Independent from Thread ownership, submission delivery, and canonical checkpoints. */
34
+ export declare class ActivityClaim extends ActivityClaim_base {}
35
+ declare const ActivityProgress_base: Schema.Class<ActivityProgress, Schema.Struct<{
36
+ readonly version: Schema.Literal<1>;
37
+ readonly key: typeof ActivityProcessorKey;
38
+ readonly throughSequence: Schema.brand<Schema.Natural, "@effect-agent/thread/CanonicalSequence">;
39
+ readonly epoch: Schema.Int;
40
+ readonly owner: Schema.NullOr<Schema.NonEmptyString>;
41
+ readonly leaseExpiresAt: Schema.Finite;
42
+ readonly pending: Schema.NullOr<typeof PreparedActivity>;
43
+ /** Time of the last cursor advance, not the activity time or a global freshness clock. */
44
+ readonly advancedAt: Schema.NullOr<Schema.Finite>;
45
+ }>, {}>;
46
+ export declare class ActivityProgress extends ActivityProgress_base {}
47
+ declare const ActivityStoreError_base: Schema.Class<ActivityStoreError, Schema.TaggedStruct<"ActivityStoreError", {
48
+ readonly operation: Schema.NonEmptyString;
49
+ readonly reason: Schema.Literals<readonly ["invalid-input", "unavailable", "corrupt", "incompatible"]>;
50
+ }>, import("effect/Cause").YieldableError>;
51
+ export declare class ActivityStoreError extends ActivityStoreError_base {}
52
+ declare const ActivityBusy_base: Schema.Class<ActivityBusy, Schema.TaggedStruct<"ActivityBusy", {
53
+ readonly key: typeof ActivityProcessorKey;
54
+ readonly leaseExpiresAt: Schema.Finite;
55
+ }>, import("effect/Cause").YieldableError>;
56
+ export declare class ActivityBusy extends ActivityBusy_base {}
57
+ declare const ActivityOwnershipLost_base: Schema.Class<ActivityOwnershipLost, Schema.TaggedStruct<"ActivityOwnershipLost", {
58
+ readonly key: typeof ActivityProcessorKey;
59
+ readonly owner: Schema.NonEmptyString;
60
+ readonly epoch: Schema.Int;
61
+ }>, import("effect/Cause").YieldableError>;
62
+ export declare class ActivityOwnershipLost extends ActivityOwnershipLost_base {}
63
+ declare const ActivityWorkConflict_base: Schema.Class<ActivityWorkConflict, Schema.TaggedStruct<"ActivityWorkConflict", {
64
+ readonly key: typeof ActivityProcessorKey;
65
+ readonly workId: Schema.brand<Schema.String, "@effect-agent/thread/Digest">;
66
+ }>, import("effect/Cause").YieldableError>;
67
+ export declare class ActivityWorkConflict extends ActivityWorkConflict_base {}
68
+ export declare const ActivityMutationPoint: Schema.Literals<readonly ["activity:initialize:before", "activity:initialize:after", "activity:claim:before", "activity:claim:after-state", "activity:claim:after", "activity:prepare:before", "activity:prepare:after-state", "activity:prepare:after", "activity:advance:before", "activity:advance:after-state", "activity:advance:after", "activity:release:before", "activity:release:after-state", "activity:release:after"]>;
69
+ export type ActivityMutationPoint = typeof ActivityMutationPoint.Type;
70
+ declare const ActivityMutationFailure_base: Schema.Class<ActivityMutationFailure, Schema.TaggedStruct<"ActivityMutationFailure", {
71
+ readonly point: Schema.Literals<readonly ["activity:initialize:before", "activity:initialize:after", "activity:claim:before", "activity:claim:after-state", "activity:claim:after", "activity:prepare:before", "activity:prepare:after-state", "activity:prepare:after", "activity:advance:before", "activity:advance:after-state", "activity:advance:after", "activity:release:before", "activity:release:after-state", "activity:release:after"]>;
72
+ }>, import("effect/Cause").YieldableError>;
73
+ export declare class ActivityMutationFailure extends ActivityMutationFailure_base {}
74
+ declare const ActivityMutationFailpoint_base: Context.ServiceClass<ActivityMutationFailpoint, "@effect-agent/thread/ActivityMutationFailpoint", {
75
+ readonly hit: (point: ActivityMutationPoint) => Effect.Effect<void, ActivityMutationFailure>;
76
+ }>;
77
+ export declare class ActivityMutationFailpoint extends ActivityMutationFailpoint_base {
78
+ static readonly layer: Layer.Layer<ActivityMutationFailpoint, never, never>;
79
+ }
80
+ export type ActivityStoreFailure = ActivityStoreError | ActivityBusy | ActivityOwnershipLost | ActivityWorkConflict | ActivityMutationFailure;
81
+ declare const ActivityClaimRequest_base: Schema.Class<ActivityClaimRequest, Schema.Struct<{
82
+ readonly key: typeof ActivityProcessorKey;
83
+ readonly owner: Schema.NonEmptyString;
84
+ readonly leaseMillis: Schema.Int;
85
+ }>, {}>;
86
+ export declare class ActivityClaimRequest extends ActivityClaimRequest_base {}
87
+ declare const ActivityProcessorStore_base: Context.ServiceClass<ActivityProcessorStore, "@effect-agent/thread/ActivityProcessorStore", {
88
+ readonly inspect: (key: ActivityProcessorKey) => Effect.Effect<ActivityProgress | null, ActivityStoreError>;
89
+ readonly claim: (request: ActivityClaimRequest) => Effect.Effect<ActivityClaim, ActivityStoreFailure>;
90
+ readonly prepare: (request: {
91
+ readonly claim: ActivityClaim;
92
+ readonly work: PreparedActivity;
93
+ }) => Effect.Effect<PreparedActivity, ActivityStoreFailure>;
94
+ readonly advance: (request: {
95
+ readonly claim: ActivityClaim;
96
+ readonly workId: Digest;
97
+ }) => Effect.Effect<ActivityClaim, ActivityStoreFailure>;
98
+ readonly release: (claim: ActivityClaim) => Effect.Effect<void, ActivityStoreFailure>;
99
+ }>;
100
+ /**
101
+ * Optional durable progress for finite committed-activity passes. Every mutation is atomic.
102
+ * claim rejects an unexpired owner and allocates a strictly newer epoch on every successful
103
+ * acquisition, including an initial grant and reacquisition after release with the same owner. It preserves
104
+ * pending output and returns it with the claim. prepare and advance reject expired or superseded claims and
105
+ * require the claim's throughSequence to equal current progress. prepare accepts only the next
106
+ * sequence, pins one output, and rejects divergent reuse. advance requires its pending work ID,
107
+ * increments progress by exactly one, and clears pending in the same transaction.
108
+ *
109
+ * release checks owner/epoch, independent of the cursor, and never discards pending output.
110
+ * The adapter owns its lease clock. A failed release leaves only a bounded lease to expire.
111
+ * This port never owns, mutates, or checkpoints the canonical Thread log.
112
+ */
113
+ export declare class ActivityProcessorStore extends ActivityProcessorStore_base {}
114
+ //#endregion
115
+ export { ActivityStore_d_exports as t };
116
+ //# sourceMappingURL=ActivityStore.d.mts.map
@@ -0,0 +1,131 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { ThreadId } from "../core/Identifiers.mjs";
3
+ import { CanonicalSequence, Digest, PersistedJson, RecordId } from "./Records.mjs";
4
+ import { Context, Effect, Layer, Schema } from "effect";
5
+ //#region src/durable/ActivityStore.ts
6
+ var ActivityStore_exports = /* @__PURE__ */ __exportAll({
7
+ ActivityBusy: () => ActivityBusy,
8
+ ActivityClaim: () => ActivityClaim,
9
+ ActivityClaimRequest: () => ActivityClaimRequest,
10
+ ActivityMutationFailpoint: () => ActivityMutationFailpoint,
11
+ ActivityMutationFailure: () => ActivityMutationFailure,
12
+ ActivityMutationPoint: () => ActivityMutationPoint,
13
+ ActivityOwnershipLost: () => ActivityOwnershipLost,
14
+ ActivityProcessorKey: () => ActivityProcessorKey,
15
+ ActivityProcessorStore: () => ActivityProcessorStore,
16
+ ActivityProgress: () => ActivityProgress,
17
+ ActivityStoreError: () => ActivityStoreError,
18
+ ActivityWorkConflict: () => ActivityWorkConflict,
19
+ PreparedActivity: () => PreparedActivity
20
+ });
21
+ const Identity = Schema.NonEmptyString.check(Schema.isMaxLength(256));
22
+ const Epoch = Schema.Int.check(Schema.isBetween({
23
+ minimum: 0,
24
+ maximum: Number.MAX_SAFE_INTEGER
25
+ }));
26
+ const Timestamp = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
27
+ /** Application-owned processor identity. Changing the version starts independent progress. */
28
+ var ActivityProcessorKey = class extends Schema.Class("@effect-agent/thread/ActivityProcessorKey")({
29
+ processorId: Identity,
30
+ processorVersion: Identity,
31
+ threadId: ThreadId.check(Schema.isMaxLength(1024))
32
+ }) {};
33
+ /** Durable extraction output, pinned before any external application of that output. */
34
+ var PreparedActivity = class extends Schema.Class("@effect-agent/thread/PreparedActivity")({
35
+ version: Schema.Literal(1),
36
+ key: ActivityProcessorKey,
37
+ sequence: CanonicalSequence.check(Schema.isGreaterThan(0)),
38
+ workId: Digest,
39
+ recordId: RecordId,
40
+ recordDigest: Digest,
41
+ output: PersistedJson
42
+ }) {};
43
+ /** Independent from Thread ownership, submission delivery, and canonical checkpoints. */
44
+ var ActivityClaim = class extends Schema.Class("@effect-agent/thread/ActivityClaim")({
45
+ key: ActivityProcessorKey,
46
+ owner: Identity,
47
+ epoch: Epoch,
48
+ throughSequence: CanonicalSequence,
49
+ leaseExpiresAt: Timestamp,
50
+ /** Pending output captured atomically at acquisition; advance returns null here. */
51
+ pending: Schema.NullOr(PreparedActivity)
52
+ }) {};
53
+ var ActivityProgress = class extends Schema.Class("@effect-agent/thread/ActivityProgress")({
54
+ version: Schema.Literal(1),
55
+ key: ActivityProcessorKey,
56
+ throughSequence: CanonicalSequence,
57
+ epoch: Epoch,
58
+ owner: Schema.NullOr(Identity),
59
+ leaseExpiresAt: Timestamp,
60
+ pending: Schema.NullOr(PreparedActivity),
61
+ /** Time of the last cursor advance, not the activity time or a global freshness clock. */
62
+ advancedAt: Schema.NullOr(Timestamp)
63
+ }) {};
64
+ var ActivityStoreError = class extends Schema.TaggedError()("ActivityStoreError", {
65
+ operation: Schema.NonEmptyString,
66
+ reason: Schema.Literals([
67
+ "invalid-input",
68
+ "unavailable",
69
+ "corrupt",
70
+ "incompatible"
71
+ ])
72
+ }) {};
73
+ var ActivityBusy = class extends Schema.TaggedError()("ActivityBusy", {
74
+ key: ActivityProcessorKey,
75
+ leaseExpiresAt: Timestamp
76
+ }) {};
77
+ var ActivityOwnershipLost = class extends Schema.TaggedError()("ActivityOwnershipLost", {
78
+ key: ActivityProcessorKey,
79
+ owner: Identity,
80
+ epoch: Epoch
81
+ }) {};
82
+ var ActivityWorkConflict = class extends Schema.TaggedError()("ActivityWorkConflict", {
83
+ key: ActivityProcessorKey,
84
+ workId: Digest
85
+ }) {};
86
+ const ActivityMutationPoint = Schema.Literals([
87
+ "activity:initialize:before",
88
+ "activity:initialize:after",
89
+ "activity:claim:before",
90
+ "activity:claim:after-state",
91
+ "activity:claim:after",
92
+ "activity:prepare:before",
93
+ "activity:prepare:after-state",
94
+ "activity:prepare:after",
95
+ "activity:advance:before",
96
+ "activity:advance:after-state",
97
+ "activity:advance:after",
98
+ "activity:release:before",
99
+ "activity:release:after-state",
100
+ "activity:release:after"
101
+ ]);
102
+ var ActivityMutationFailure = class extends Schema.TaggedError()("ActivityMutationFailure", { point: ActivityMutationPoint }) {};
103
+ var ActivityMutationFailpoint = class extends Context.Service()("@effect-agent/thread/ActivityMutationFailpoint") {
104
+ static layer = Layer.succeed(this, { hit: () => Effect.void });
105
+ };
106
+ var ActivityClaimRequest = class extends Schema.Class("@effect-agent/thread/ActivityClaimRequest")({
107
+ key: ActivityProcessorKey,
108
+ owner: Identity,
109
+ leaseMillis: Schema.Int.check(Schema.isBetween({
110
+ minimum: 1,
111
+ maximum: 6e5
112
+ }))
113
+ }) {};
114
+ /**
115
+ * Optional durable progress for finite committed-activity passes. Every mutation is atomic.
116
+ * claim rejects an unexpired owner and allocates a strictly newer epoch on every successful
117
+ * acquisition, including an initial grant and reacquisition after release with the same owner. It preserves
118
+ * pending output and returns it with the claim. prepare and advance reject expired or superseded claims and
119
+ * require the claim's throughSequence to equal current progress. prepare accepts only the next
120
+ * sequence, pins one output, and rejects divergent reuse. advance requires its pending work ID,
121
+ * increments progress by exactly one, and clears pending in the same transaction.
122
+ *
123
+ * release checks owner/epoch, independent of the cursor, and never discards pending output.
124
+ * The adapter owns its lease clock. A failed release leaves only a bounded lease to expire.
125
+ * This port never owns, mutates, or checkpoints the canonical Thread log.
126
+ */
127
+ var ActivityProcessorStore = class extends Context.Service()("@effect-agent/thread/ActivityProcessorStore") {};
128
+ //#endregion
129
+ export { ActivityBusy, ActivityClaim, ActivityClaimRequest, ActivityMutationFailpoint, ActivityMutationFailure, ActivityMutationPoint, ActivityOwnershipLost, ActivityProcessorKey, ActivityProcessorStore, ActivityProgress, ActivityStoreError, ActivityWorkConflict, PreparedActivity, ActivityStore_exports as t };
130
+
131
+ //# sourceMappingURL=ActivityStore.mjs.map