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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/dist/Agent-1DMSO_Fl.mjs +86 -0
  2. package/dist/Agent-1DMSO_Fl.mjs.map +1 -0
  3. package/dist/Agent-DriBcXBN.d.mts +245 -0
  4. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  5. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  6. package/dist/AgentRuntime-CWkHuzyt.d.mts +346 -0
  7. package/dist/AgentRuntime-DLwPoEVH.mjs +4735 -0
  8. package/dist/AgentRuntime-DLwPoEVH.mjs.map +1 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-WwSIG_Z2.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-PyIgNYXF.mjs +6772 -0
  13. package/dist/DurableAgentRuntime-PyIgNYXF.mjs.map +1 -0
  14. package/dist/DurableFailpoint-mx3-nsxU.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/EventSource-BUYLmL77.d.mts +51 -0
  17. package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
  18. package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
  19. package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/InMemory.d.mts +24 -0
  22. package/dist/InMemory.mjs +24 -0
  23. package/dist/InMemory.mjs.map +1 -0
  24. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  25. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  26. package/dist/Messaging-DaZDlBqh.d.mts +1067 -0
  27. package/dist/Messaging-Dkg87ebg.d.mts +221 -0
  28. package/dist/MessagingHost-D89X7ma8.mjs +110 -0
  29. package/dist/MessagingHost-D89X7ma8.mjs.map +1 -0
  30. package/dist/MessagingHost-e1Sbzfao.d.mts +74 -0
  31. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  32. package/dist/Output-CAFJTAbP.d.mts +25 -0
  33. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  34. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  35. package/dist/PreparedInputAdmission-J3YK6LAm.d.mts +42 -0
  36. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  37. package/dist/Records-4qnRmniE.d.mts +4058 -0
  38. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  39. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  40. package/dist/RunJournal-BXrq0VIK.mjs +931 -0
  41. package/dist/RunJournal-BXrq0VIK.mjs.map +1 -0
  42. package/dist/RunOptions-BoESJrxw.d.mts +935 -0
  43. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  44. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  45. package/dist/Schedule-C2lH2kxY.d.mts +847 -0
  46. package/dist/Scheduling-DPb2QyAK.mjs +691 -0
  47. package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
  48. package/dist/Subagent-D9eYdGTl.mjs +1537 -0
  49. package/dist/Subagent-D9eYdGTl.mjs.map +1 -0
  50. package/dist/Subagent-F72tuaxy.d.mts +1360 -0
  51. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  52. package/dist/SubagentHost-CmiNTOBZ.d.mts +149 -0
  53. package/dist/Subscription-pQUv0QD6.d.mts +945 -0
  54. package/dist/SubscriptionInput-DdJOiNMY.d.mts +41 -0
  55. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  56. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  57. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  58. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  59. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  60. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  61. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  62. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  63. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  64. package/dist/ToolExposure.d.mts +8 -0
  65. package/dist/ToolExposure.mjs +21 -0
  66. package/dist/ToolExposure.mjs.map +1 -0
  67. package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
  68. package/dist/ToolResult-BKdqWRff.d.mts +78 -0
  69. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  70. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  71. package/dist/Worker-Du9dhVnp.d.mts +279 -0
  72. package/dist/Worker-T_3RbaKc.mjs +210 -0
  73. package/dist/Worker-T_3RbaKc.mjs.map +1 -0
  74. package/dist/agent-registration-B5CI-Ygk.mjs +201 -0
  75. package/dist/agent-registration-B5CI-Ygk.mjs.map +1 -0
  76. package/dist/capabilities/Approval.d.mts +114 -0
  77. package/dist/capabilities/Approval.mjs +226 -0
  78. package/dist/capabilities/Approval.mjs.map +1 -0
  79. package/dist/capabilities/Budget.d.mts +112 -0
  80. package/dist/capabilities/Budget.mjs +346 -0
  81. package/dist/capabilities/Budget.mjs.map +1 -0
  82. package/dist/capabilities/CodeMode.d.mts +157 -0
  83. package/dist/capabilities/CodeMode.mjs +522 -0
  84. package/dist/capabilities/CodeMode.mjs.map +1 -0
  85. package/dist/capabilities/Commands.d.mts +55 -0
  86. package/dist/capabilities/Commands.mjs +57 -0
  87. package/dist/capabilities/Commands.mjs.map +1 -0
  88. package/dist/capabilities/ContextTools.d.mts +321 -0
  89. package/dist/capabilities/ContextTools.mjs +126 -0
  90. package/dist/capabilities/ContextTools.mjs.map +1 -0
  91. package/dist/capabilities/Mcp.d.mts +108 -0
  92. package/dist/capabilities/Mcp.mjs +260 -0
  93. package/dist/capabilities/Mcp.mjs.map +1 -0
  94. package/dist/capabilities/McpClient.d.mts +115 -0
  95. package/dist/capabilities/McpClient.mjs +506 -0
  96. package/dist/capabilities/McpClient.mjs.map +1 -0
  97. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  98. package/dist/capabilities/MemoryNotes.mjs +128 -0
  99. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  100. package/dist/capabilities/Messaging.d.mts +3 -0
  101. package/dist/capabilities/Messaging.mjs +152 -0
  102. package/dist/capabilities/Messaging.mjs.map +1 -0
  103. package/dist/capabilities/ModelContext.d.mts +89 -0
  104. package/dist/capabilities/ModelContext.mjs +168 -0
  105. package/dist/capabilities/ModelContext.mjs.map +1 -0
  106. package/dist/capabilities/Redaction.d.mts +37 -0
  107. package/dist/capabilities/Redaction.mjs +104 -0
  108. package/dist/capabilities/Redaction.mjs.map +1 -0
  109. package/dist/capabilities/Remembering.d.mts +434 -0
  110. package/dist/capabilities/Remembering.mjs +290 -0
  111. package/dist/capabilities/Remembering.mjs.map +1 -0
  112. package/dist/capabilities/RunHooks.d.mts +82 -0
  113. package/dist/capabilities/RunHooks.mjs +144 -0
  114. package/dist/capabilities/RunHooks.mjs.map +1 -0
  115. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  116. package/dist/capabilities/SemanticMemory.mjs +315 -0
  117. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  118. package/dist/capabilities/Subagent.d.mts +4 -0
  119. package/dist/capabilities/Subagent.mjs +5 -0
  120. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  121. package/dist/capabilities/SubagentReservations.mjs +479 -0
  122. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  123. package/dist/capabilities/ToolDiscovery.d.mts +124 -0
  124. package/dist/capabilities/ToolDiscovery.mjs +230 -0
  125. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  126. package/dist/capabilities/WebCapture.d.mts +163 -0
  127. package/dist/capabilities/WebCapture.mjs +335 -0
  128. package/dist/capabilities/WebCapture.mjs.map +1 -0
  129. package/dist/capabilities/WebSearch.d.mts +71 -0
  130. package/dist/capabilities/WebSearch.mjs +115 -0
  131. package/dist/capabilities/WebSearch.mjs.map +1 -0
  132. package/dist/compaction-C2OTceKw.mjs +505 -0
  133. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  134. package/dist/core/Agent.d.mts +2 -0
  135. package/dist/core/Agent.mjs +2 -0
  136. package/dist/core/AgentError.d.mts +2 -0
  137. package/dist/core/AgentError.mjs +134 -0
  138. package/dist/core/AgentError.mjs.map +1 -0
  139. package/dist/core/AgentPolicy.d.mts +2 -0
  140. package/dist/core/AgentPolicy.mjs +94 -0
  141. package/dist/core/AgentPolicy.mjs.map +1 -0
  142. package/dist/core/AgentUpdates.d.mts +2 -0
  143. package/dist/core/AgentUpdates.mjs +63 -0
  144. package/dist/core/AgentUpdates.mjs.map +1 -0
  145. package/dist/core/FailureDiagnostic.d.mts +2 -0
  146. package/dist/core/FailureDiagnostic.mjs +2 -0
  147. package/dist/core/IdGenerator.d.mts +26 -0
  148. package/dist/core/IdGenerator.mjs +27 -0
  149. package/dist/core/IdGenerator.mjs.map +1 -0
  150. package/dist/core/Identifiers.d.mts +2 -0
  151. package/dist/core/Identifiers.mjs +43 -0
  152. package/dist/core/Identifiers.mjs.map +1 -0
  153. package/dist/core/Memory.d.mts +57 -0
  154. package/dist/core/Memory.mjs +203 -0
  155. package/dist/core/Memory.mjs.map +1 -0
  156. package/dist/core/MemoryNamespace.d.mts +2 -0
  157. package/dist/core/MemoryNamespace.mjs +116 -0
  158. package/dist/core/MemoryNamespace.mjs.map +1 -0
  159. package/dist/core/MemoryReference.d.mts +2 -0
  160. package/dist/core/MemoryReference.mjs +109 -0
  161. package/dist/core/MemoryReference.mjs.map +1 -0
  162. package/dist/core/MemoryRevalidation.d.mts +65 -0
  163. package/dist/core/MemoryRevalidation.mjs +126 -0
  164. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  165. package/dist/core/MemoryStore.d.mts +186 -0
  166. package/dist/core/MemoryStore.mjs +243 -0
  167. package/dist/core/MemoryStore.mjs.map +1 -0
  168. package/dist/core/Receipt.d.mts +2 -0
  169. package/dist/core/Receipt.mjs +36 -0
  170. package/dist/core/Receipt.mjs.map +1 -0
  171. package/dist/core/RememberingStore.d.mts +1562 -0
  172. package/dist/core/RememberingStore.mjs +190 -0
  173. package/dist/core/RememberingStore.mjs.map +1 -0
  174. package/dist/core/RunEvent.d.mts +2 -0
  175. package/dist/core/RunEvent.mjs +337 -0
  176. package/dist/core/RunEvent.mjs.map +1 -0
  177. package/dist/core/RunPolicyUsage.d.mts +2 -0
  178. package/dist/core/RunPolicyUsage.mjs +21 -0
  179. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  180. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  181. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  182. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  183. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  184. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  185. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  186. package/dist/core/SubagentContract.d.mts +2 -0
  187. package/dist/core/SubagentContract.mjs +148 -0
  188. package/dist/core/SubagentContract.mjs.map +1 -0
  189. package/dist/core/Thread.d.mts +2 -0
  190. package/dist/core/Thread.mjs +250 -0
  191. package/dist/core/Thread.mjs.map +1 -0
  192. package/dist/core/ToolResult.d.mts +2 -0
  193. package/dist/core/ToolResult.mjs +156 -0
  194. package/dist/core/ToolResult.mjs.map +1 -0
  195. package/dist/core/Usage.d.mts +2 -0
  196. package/dist/core/Usage.mjs +319 -0
  197. package/dist/core/Usage.mjs.map +1 -0
  198. package/dist/core/Worker.d.mts +3 -0
  199. package/dist/core/Worker.mjs +3 -0
  200. package/dist/durable/ActivityStore.d.mts +116 -0
  201. package/dist/durable/ActivityStore.mjs +131 -0
  202. package/dist/durable/ActivityStore.mjs.map +1 -0
  203. package/dist/durable/Admin.d.mts +2 -0
  204. package/dist/durable/Admin.mjs +330 -0
  205. package/dist/durable/Admin.mjs.map +1 -0
  206. package/dist/durable/AgentRegistration.d.mts +2 -0
  207. package/dist/durable/AgentRegistration.mjs +14 -0
  208. package/dist/durable/AgentRegistration.mjs.map +1 -0
  209. package/dist/durable/Certification.d.mts +110 -0
  210. package/dist/durable/Certification.mjs +159 -0
  211. package/dist/durable/Certification.mjs.map +1 -0
  212. package/dist/durable/CommittedActivity.d.mts +62 -0
  213. package/dist/durable/CommittedActivity.mjs +159 -0
  214. package/dist/durable/CommittedActivity.mjs.map +1 -0
  215. package/dist/durable/Digest.d.mts +2 -0
  216. package/dist/durable/Digest.mjs +50 -0
  217. package/dist/durable/Digest.mjs.map +1 -0
  218. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  219. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  220. package/dist/durable/DurableFailpoint.d.mts +2 -0
  221. package/dist/durable/DurableFailpoint.mjs +98 -0
  222. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  223. package/dist/durable/DurableFailpointTestControl.d.mts +14 -0
  224. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  225. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  226. package/dist/durable/EventSource.d.mts +2 -0
  227. package/dist/durable/EventSource.mjs +65 -0
  228. package/dist/durable/EventSource.mjs.map +1 -0
  229. package/dist/durable/GitHubWorkflowSource.d.mts +185 -0
  230. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  231. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  232. package/dist/durable/MessageDelivery.d.mts +876 -0
  233. package/dist/durable/MessageDelivery.mjs +549 -0
  234. package/dist/durable/MessageDelivery.mjs.map +1 -0
  235. package/dist/durable/MessageDeliveryStoreConformance.d.mts +376 -0
  236. package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -0
  237. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  238. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  239. package/dist/durable/OperationAuthorizer.mjs +70 -0
  240. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  241. package/dist/durable/PersistentHistory.d.mts +16 -0
  242. package/dist/durable/PersistentHistory.mjs +125 -0
  243. package/dist/durable/PersistentHistory.mjs.map +1 -0
  244. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  245. package/dist/durable/PreparedInputAdmission.mjs +38 -0
  246. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  247. package/dist/durable/Records.d.mts +2 -0
  248. package/dist/durable/Records.mjs +841 -0
  249. package/dist/durable/Records.mjs.map +1 -0
  250. package/dist/durable/Recovery.d.mts +2 -0
  251. package/dist/durable/Recovery.mjs +739 -0
  252. package/dist/durable/Recovery.mjs.map +1 -0
  253. package/dist/durable/RunJournal.d.mts +2 -0
  254. package/dist/durable/RunJournal.mjs +2 -0
  255. package/dist/durable/Schedule.d.mts +2 -0
  256. package/dist/durable/Schedule.mjs +391 -0
  257. package/dist/durable/Schedule.mjs.map +1 -0
  258. package/dist/durable/ScheduleStoreConformance.d.mts +17 -0
  259. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  260. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  261. package/dist/durable/ScheduleTransition.d.mts +24 -0
  262. package/dist/durable/ScheduleTransition.mjs +180 -0
  263. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  264. package/dist/durable/Scheduling.d.mts +54 -0
  265. package/dist/durable/Scheduling.mjs +2 -0
  266. package/dist/durable/SqlMemoryStore.d.mts +29 -0
  267. package/dist/durable/SqlMemoryStore.mjs +436 -0
  268. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  269. package/dist/durable/SqlMessageDeliveryStore.d.mts +42 -0
  270. package/dist/durable/SqlMessageDeliveryStore.mjs +173 -0
  271. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  272. package/dist/durable/SqlStorageV2Upgrade.d.mts +21 -0
  273. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  274. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  275. package/dist/durable/SqlSubscriptionStore.d.mts +62 -0
  276. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  277. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  278. package/dist/durable/SqlThreadNativeReads.d.mts +49 -0
  279. package/dist/durable/SqlThreadNativeReads.mjs +153 -0
  280. package/dist/durable/SqlThreadNativeReads.mjs.map +1 -0
  281. package/dist/durable/SubmissionLedger.d.mts +3 -0
  282. package/dist/durable/SubmissionLedger.mjs +918 -0
  283. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  284. package/dist/durable/SubmissionLedgerConformance.d.mts +29 -0
  285. package/dist/durable/SubmissionLedgerConformance.mjs +1993 -0
  286. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  287. package/dist/durable/SubmissionStatus.d.mts +2 -0
  288. package/dist/durable/SubmissionStatus.mjs +18 -0
  289. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  290. package/dist/durable/Subscription.d.mts +2 -0
  291. package/dist/durable/Subscription.mjs +360 -0
  292. package/dist/durable/Subscription.mjs.map +1 -0
  293. package/dist/durable/SubscriptionInput.d.mts +2 -0
  294. package/dist/durable/SubscriptionInput.mjs +52 -0
  295. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  296. package/dist/durable/SubscriptionStoreConformance.d.mts +16 -0
  297. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  298. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  299. package/dist/durable/SubscriptionTools.d.mts +273 -0
  300. package/dist/durable/SubscriptionTools.mjs +190 -0
  301. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  302. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  303. package/dist/durable/SubscriptionTransition.mjs +148 -0
  304. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  305. package/dist/durable/Subscriptions.d.mts +73 -0
  306. package/dist/durable/Subscriptions.mjs +627 -0
  307. package/dist/durable/Subscriptions.mjs.map +1 -0
  308. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  309. package/dist/durable/ThreadContextHistory.mjs +152 -0
  310. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  311. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  312. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  313. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  314. package/dist/durable/ThreadInvariants.d.mts +76 -0
  315. package/dist/durable/ThreadInvariants.mjs +246 -0
  316. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  317. package/dist/durable/ThreadProjection.d.mts +78 -0
  318. package/dist/durable/ThreadProjection.mjs +158 -0
  319. package/dist/durable/ThreadProjection.mjs.map +1 -0
  320. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  321. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  322. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  323. package/dist/durable/ThreadStore.d.mts +2 -0
  324. package/dist/durable/ThreadStore.mjs +336 -0
  325. package/dist/durable/ThreadStore.mjs.map +1 -0
  326. package/dist/durable/ThreadStoreConformance.d.mts +28 -0
  327. package/dist/durable/ThreadStoreConformance.mjs +503 -0
  328. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  329. package/dist/durable/ToolReconciler.d.mts +2 -0
  330. package/dist/durable/ToolReconciler.mjs +85 -0
  331. package/dist/durable/ToolReconciler.mjs.map +1 -0
  332. package/dist/durable/WakeScheduler.d.mts +2 -0
  333. package/dist/durable/WakeScheduler.mjs +85 -0
  334. package/dist/durable/WakeScheduler.mjs.map +1 -0
  335. package/dist/durable/WorkerHost.d.mts +129 -0
  336. package/dist/durable/WorkerHost.mjs +77 -0
  337. package/dist/durable/WorkerHost.mjs.map +1 -0
  338. package/dist/engine/AgentRuntime.d.mts +2 -0
  339. package/dist/engine/AgentRuntime.mjs +2 -0
  340. package/dist/engine/Compaction.d.mts +7 -0
  341. package/dist/engine/Compaction.mjs +16 -0
  342. package/dist/engine/Compaction.mjs.map +1 -0
  343. package/dist/engine/ContextCompactor.d.mts +2 -0
  344. package/dist/engine/ContextCompactor.mjs +119 -0
  345. package/dist/engine/ContextCompactor.mjs.map +1 -0
  346. package/dist/engine/ContextHistory.d.mts +65 -0
  347. package/dist/engine/ContextHistory.mjs +76 -0
  348. package/dist/engine/ContextHistory.mjs.map +1 -0
  349. package/dist/engine/ContextWindow.d.mts +2 -0
  350. package/dist/engine/ContextWindow.mjs +59 -0
  351. package/dist/engine/ContextWindow.mjs.map +1 -0
  352. package/dist/engine/DurableStep.d.mts +2 -0
  353. package/dist/engine/DurableStep.mjs +62 -0
  354. package/dist/engine/DurableStep.mjs.map +1 -0
  355. package/dist/engine/MessagingHost.d.mts +2 -0
  356. package/dist/engine/MessagingHost.mjs +2 -0
  357. package/dist/engine/Output.d.mts +2 -0
  358. package/dist/engine/Output.mjs +8 -0
  359. package/dist/engine/Output.mjs.map +1 -0
  360. package/dist/engine/RunEventSink.d.mts +2 -0
  361. package/dist/engine/RunEventSink.mjs +22 -0
  362. package/dist/engine/RunEventSink.mjs.map +1 -0
  363. package/dist/engine/RunOptions.d.mts +2 -0
  364. package/dist/engine/RunOptions.mjs +124 -0
  365. package/dist/engine/RunOptions.mjs.map +1 -0
  366. package/dist/engine/SubagentHost.d.mts +2 -0
  367. package/dist/engine/SubagentHost.mjs +72 -0
  368. package/dist/engine/SubagentHost.mjs.map +1 -0
  369. package/dist/engine/ThreadHistory.d.mts +2 -0
  370. package/dist/engine/ThreadHistory.mjs +67 -0
  371. package/dist/engine/ThreadHistory.mjs.map +1 -0
  372. package/dist/engine/ToolBroker.d.mts +2 -0
  373. package/dist/engine/ToolBroker.mjs +42 -0
  374. package/dist/engine/ToolBroker.mjs.map +1 -0
  375. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  376. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  377. package/dist/index.d.mts +91 -6
  378. package/dist/index.mjs +100 -6
  379. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  380. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  381. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  382. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  383. package/dist/sandbox/CodeExecutor.mjs +278 -0
  384. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  385. package/dist/sandbox/InteractiveBrowser.d.mts +257 -0
  386. package/dist/sandbox/InteractiveBrowser.mjs +236 -0
  387. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  388. package/dist/sandbox/PageCapture.d.mts +2 -0
  389. package/dist/sandbox/PageCapture.mjs +450 -0
  390. package/dist/sandbox/PageCapture.mjs.map +1 -0
  391. package/dist/sandbox/PageCrawl.d.mts +88 -0
  392. package/dist/sandbox/PageCrawl.mjs +124 -0
  393. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  394. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  395. package/dist/sandbox/PageScreenshot.mjs +53 -0
  396. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  397. package/dist/sandbox/ProtectedBrowser.d.mts +273 -0
  398. package/dist/sandbox/ProtectedBrowser.mjs +287 -0
  399. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  400. package/dist/sandbox/Sandbox.d.mts +2 -0
  401. package/dist/sandbox/Sandbox.mjs +208 -0
  402. package/dist/sandbox/Sandbox.mjs.map +1 -0
  403. package/dist/utf8-BYfhEkcj.mjs +11 -0
  404. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  405. package/dist/utf8-DchGZRBd.mjs +23 -0
  406. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  407. package/package.json +1 -40
  408. package/src/InMemory.ts +19 -0
  409. package/src/ToolExposure.ts +2 -0
  410. package/src/capabilities/Approval.ts +352 -0
  411. package/src/capabilities/Budget.ts +536 -0
  412. package/src/capabilities/CodeMode.ts +1090 -0
  413. package/src/capabilities/Commands.ts +86 -0
  414. package/src/capabilities/ContextTools.ts +184 -0
  415. package/src/capabilities/Mcp.ts +427 -0
  416. package/src/capabilities/McpClient.ts +967 -0
  417. package/src/capabilities/MemoryNotes.ts +174 -0
  418. package/src/capabilities/Messaging.ts +261 -0
  419. package/src/capabilities/ModelContext.ts +354 -0
  420. package/src/capabilities/Redaction.ts +157 -0
  421. package/src/capabilities/Remembering.ts +550 -0
  422. package/src/capabilities/RunHooks.ts +280 -0
  423. package/src/capabilities/SemanticMemory.ts +447 -0
  424. package/src/capabilities/Subagent.ts +2488 -0
  425. package/src/capabilities/SubagentReservations.ts +850 -0
  426. package/src/capabilities/ToolDiscovery.ts +369 -0
  427. package/src/capabilities/WebCapture.ts +722 -0
  428. package/src/capabilities/WebSearch.ts +190 -0
  429. package/src/capabilities/internal/subagent-background.ts +1246 -0
  430. package/src/capabilities/internal/subagent-contract.ts +146 -0
  431. package/src/capabilities/internal/subagent-policy.ts +235 -0
  432. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  433. package/src/capabilities/internal/utf8.ts +10 -0
  434. package/src/core/Agent.ts +595 -0
  435. package/src/core/AgentError.ts +172 -0
  436. package/src/core/AgentPolicy.ts +153 -0
  437. package/src/core/AgentUpdates.ts +100 -0
  438. package/src/core/FailureDiagnostic.ts +343 -0
  439. package/src/core/IdGenerator.ts +39 -0
  440. package/src/core/Identifiers.ts +48 -0
  441. package/src/core/Memory.ts +290 -0
  442. package/src/core/MemoryNamespace.ts +196 -0
  443. package/src/core/MemoryReference.ts +121 -0
  444. package/src/core/MemoryRevalidation.ts +185 -0
  445. package/src/core/MemoryStore.ts +368 -0
  446. package/src/core/Messaging.ts +72 -0
  447. package/src/core/Receipt.ts +42 -0
  448. package/src/core/RememberingStore.ts +300 -0
  449. package/src/core/RunEvent.ts +366 -0
  450. package/src/core/RunPolicyUsage.ts +17 -0
  451. package/src/core/SemanticMemoryIndex.ts +250 -0
  452. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  453. package/src/core/SubagentContract.ts +196 -0
  454. package/src/core/Thread.ts +371 -0
  455. package/src/core/ToolExposure.ts +74 -0
  456. package/src/core/ToolResult.ts +190 -0
  457. package/src/core/Usage.ts +529 -0
  458. package/src/core/Worker.ts +184 -0
  459. package/src/core/internal/agent-updates.ts +34 -0
  460. package/src/core/internal/message-status.ts +60 -0
  461. package/src/core/internal/strict-schema.ts +14 -0
  462. package/src/core/internal/utf8.ts +23 -0
  463. package/src/durable/ActivityStore.ts +160 -0
  464. package/src/durable/Admin.ts +505 -0
  465. package/src/durable/AgentRegistration.ts +14 -0
  466. package/src/durable/Certification.ts +210 -0
  467. package/src/durable/CommittedActivity.ts +296 -0
  468. package/src/durable/Digest.ts +87 -0
  469. package/src/durable/DurableAgentRuntime.ts +10950 -0
  470. package/src/durable/DurableFailpoint.ts +107 -0
  471. package/src/durable/DurableFailpointTestControl.ts +39 -0
  472. package/src/durable/EventSource.ts +172 -0
  473. package/src/durable/GitHubWorkflowSource.ts +447 -0
  474. package/src/durable/MessageDelivery.ts +817 -0
  475. package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
  476. package/src/durable/OperationAuthorizer.ts +85 -0
  477. package/src/durable/PersistentHistory.ts +260 -0
  478. package/src/durable/PreparedInputAdmission.ts +57 -0
  479. package/src/durable/Records.ts +1065 -0
  480. package/src/durable/Recovery.ts +1018 -0
  481. package/src/durable/RunJournal.ts +1631 -0
  482. package/src/durable/Schedule.ts +513 -0
  483. package/src/durable/ScheduleStoreConformance.ts +638 -0
  484. package/src/durable/ScheduleTransition.ts +265 -0
  485. package/src/durable/Scheduling.ts +1077 -0
  486. package/src/durable/SqlMemoryStore.ts +778 -0
  487. package/src/durable/SqlMessageDeliveryStore.ts +321 -0
  488. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  489. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  490. package/src/durable/SqlThreadNativeReads.ts +256 -0
  491. package/src/durable/SubmissionLedger.ts +1205 -0
  492. package/src/durable/SubmissionLedgerConformance.ts +4590 -0
  493. package/src/durable/SubmissionStatus.ts +14 -0
  494. package/src/durable/Subscription.ts +544 -0
  495. package/src/durable/SubscriptionInput.ts +144 -0
  496. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  497. package/src/durable/SubscriptionTools.ts +327 -0
  498. package/src/durable/SubscriptionTransition.ts +302 -0
  499. package/src/durable/Subscriptions.ts +1210 -0
  500. package/src/durable/ThreadContextHistory.ts +227 -0
  501. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  502. package/src/durable/ThreadInvariants.ts +507 -0
  503. package/src/durable/ThreadProjection.ts +269 -0
  504. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  505. package/src/durable/ThreadStore.ts +552 -0
  506. package/src/durable/ThreadStoreConformance.ts +1156 -0
  507. package/src/durable/ToolReconciler.ts +109 -0
  508. package/src/durable/WakeScheduler.ts +134 -0
  509. package/src/durable/WorkerHost.ts +171 -0
  510. package/src/durable/internal/agent-registration.ts +621 -0
  511. package/src/durable/internal/agent-updates.ts +302 -0
  512. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  513. package/src/durable/internal/journal-checkpoint.ts +104 -0
  514. package/src/durable/internal/journal-metadata.ts +117 -0
  515. package/src/durable/internal/message-status.ts +20 -0
  516. package/src/durable/internal/messaging-host.ts +637 -0
  517. package/src/durable/internal/schedule-time.ts +303 -0
  518. package/src/durable/internal/storage-v2-layout.ts +163 -0
  519. package/src/durable/internal/storage-v2.ts +73 -0
  520. package/src/durable/internal/worker-host.ts +2678 -0
  521. package/src/durable/internal/worker-runtime.ts +9 -0
  522. package/src/engine/AgentRuntime.ts +37 -0
  523. package/src/engine/Compaction.ts +11 -0
  524. package/src/engine/ContextCompactor.ts +277 -0
  525. package/src/engine/ContextHistory.ts +73 -0
  526. package/src/engine/ContextWindow.ts +72 -0
  527. package/src/engine/DurableStep.ts +132 -0
  528. package/src/engine/MessagingHost.ts +110 -0
  529. package/src/engine/Output.ts +2 -0
  530. package/src/engine/RunEventSink.ts +132 -0
  531. package/src/engine/RunOptions.ts +1101 -0
  532. package/src/engine/SubagentHost.ts +193 -0
  533. package/src/engine/ThreadHistory.ts +120 -0
  534. package/src/engine/ToolBroker.ts +157 -0
  535. package/src/engine/ToolExposure.ts +48 -0
  536. package/src/engine/internal/agent-runtime.ts +10485 -0
  537. package/src/engine/internal/bounded-value.ts +315 -0
  538. package/src/engine/internal/compaction.ts +678 -0
  539. package/src/engine/internal/error-diagnostic.ts +39 -0
  540. package/src/engine/internal/output-contract.ts +173 -0
  541. package/src/engine/internal/primitive-delta.ts +80 -0
  542. package/src/engine/internal/provider-result-staging.ts +211 -0
  543. package/src/engine/internal/tool-derivative.ts +106 -0
  544. package/src/engine/internal/tool-exposure.ts +224 -0
  545. package/src/engine/internal/tool-telemetry.ts +484 -0
  546. package/src/index.ts +99 -21
  547. package/src/sandbox/CodeExecutor.ts +352 -0
  548. package/src/sandbox/InteractiveBrowser.ts +339 -0
  549. package/src/sandbox/PageCapture.ts +691 -0
  550. package/src/sandbox/PageCrawl.ts +148 -0
  551. package/src/sandbox/PageScreenshot.ts +81 -0
  552. package/src/sandbox/ProtectedBrowser.ts +436 -0
  553. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,226 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { RunId, ThreadId, ToolCallId } from "../core/Identifiers.mjs";
3
+ import { n as utf8ByteLength } from "../utf8-DchGZRBd.mjs";
4
+ import { RedactedPreview, Redactor } from "./Redaction.mjs";
5
+ import { Clock, Context, DateTime, Duration, Effect, Layer, Ref, Schema } from "effect";
6
+ //#region src/capabilities/Approval.ts
7
+ var Approval_exports = /* @__PURE__ */ __exportAll({
8
+ ApprovalApproved: () => ApprovalApproved,
9
+ ApprovalAudit: () => ApprovalAudit,
10
+ ApprovalAuditEvent: () => ApprovalAuditEvent,
11
+ ApprovalAuditEvents: () => ApprovalAuditEvents,
12
+ ApprovalAuditLimitExceeded: () => ApprovalAuditLimitExceeded,
13
+ ApprovalAuditMemoryLive: () => ApprovalAuditMemoryLive,
14
+ ApprovalDecision: () => ApprovalDecision,
15
+ ApprovalDecisionMismatch: () => ApprovalDecisionMismatch,
16
+ ApprovalDecisionRecorded: () => ApprovalDecisionRecorded,
17
+ ApprovalDenied: () => ApprovalDenied,
18
+ ApprovalDenyAll: () => ApprovalDenyAll,
19
+ ApprovalRequest: () => ApprovalRequest,
20
+ ApprovalRequestDraft: () => ApprovalRequestDraft,
21
+ ApprovalRequestRecorded: () => ApprovalRequestRecorded,
22
+ ApprovalResolver: () => ApprovalResolver,
23
+ ApprovalResolverError: () => ApprovalResolverError,
24
+ ApprovalTimedOut: () => ApprovalTimedOut,
25
+ makeApprovalRequest: () => makeApprovalRequest,
26
+ requestApproval: () => requestApproval
27
+ });
28
+ const MAX_APPROVAL_TARGETS = 32;
29
+ const MAX_APPROVAL_TARGET_BYTES = 65536;
30
+ const MAX_APPROVAL_AUDIT_EVENTS = 2048;
31
+ const ApprovalTargets = Schema.Array(Schema.String.check(Schema.isMaxLength(2048))).check(Schema.isMaxLength(MAX_APPROVAL_TARGETS)).pipe(Schema.refine((targets) => targets.reduce((total, target) => total + utf8ByteLength(target), 0) <= MAX_APPROVAL_TARGET_BYTES, { expected: `approval targets totaling at most ${MAX_APPROVAL_TARGET_BYTES} UTF-8 bytes` }));
32
+ const ApprovalRequestFields = {
33
+ requestId: Schema.NonEmptyString,
34
+ runId: RunId,
35
+ threadId: ThreadId,
36
+ toolCallId: ToolCallId,
37
+ toolName: Schema.NonEmptyString,
38
+ actionSummary: Schema.String.check(Schema.isMaxLength(2048)),
39
+ resourceTargets: ApprovalTargets,
40
+ risk: Schema.Literals([
41
+ "low",
42
+ "medium",
43
+ "high",
44
+ "critical"
45
+ ]),
46
+ expiresAt: Schema.DateTimeUtcFromString,
47
+ denial: Schema.Literals(["terminal", "recoverable"])
48
+ };
49
+ /** Decoded approval metadata before the Redactor owns Tool input preview creation. */
50
+ var ApprovalRequestDraft = class extends Schema.Class("@effect-agent/capabilities/ApprovalRequestDraft")(ApprovalRequestFields) {};
51
+ /** Fully decoded, structurally redacted approval input. */
52
+ var ApprovalRequest = class extends Schema.Class("@effect-agent/capabilities/ApprovalRequest")({
53
+ ...ApprovalRequestFields,
54
+ redactedInputPreview: RedactedPreview
55
+ }) {};
56
+ var ApprovalApproved = class extends Schema.TaggedClass()("ApprovalApproved", {
57
+ requestId: Schema.NonEmptyString,
58
+ decidedAt: Schema.DateTimeUtcFromString,
59
+ resolver: Schema.NonEmptyString
60
+ }) {};
61
+ var ApprovalDenied = class extends Schema.TaggedClass()("ApprovalDenied", {
62
+ requestId: Schema.NonEmptyString,
63
+ decidedAt: Schema.DateTimeUtcFromString,
64
+ resolver: Schema.NonEmptyString,
65
+ reason: Schema.String.check(Schema.isMaxLength(2048)),
66
+ timedOut: Schema.Boolean
67
+ }) {};
68
+ const ApprovalDecision = Schema.Union([ApprovalApproved, ApprovalDenied]);
69
+ /** Resolver infrastructure failed before it could make a policy decision. */
70
+ var ApprovalResolverError = class extends Schema.TaggedError()("ApprovalResolverError", { message: Schema.String }) {};
71
+ /** The resolver explicitly observed its request deadline; callers turn this into a denial. */
72
+ var ApprovalTimedOut = class extends Schema.TaggedError()("ApprovalTimedOut", { requestId: Schema.NonEmptyString }) {};
73
+ /** First-class approval authority. Interactive, policy, and remote adapters implement this service. */
74
+ var ApprovalResolver = class extends Context.Service()("@effect-agent/capabilities/ApprovalResolver") {};
75
+ var ApprovalRequestRecorded = class extends Schema.TaggedClass()("ApprovalRequestRecorded", {
76
+ sequence: Schema.Natural,
77
+ recordedAt: Schema.DateTimeUtcFromString,
78
+ request: ApprovalRequest
79
+ }) {};
80
+ var ApprovalDecisionRecorded = class extends Schema.TaggedClass()("ApprovalDecisionRecorded", {
81
+ sequence: Schema.Natural,
82
+ recordedAt: Schema.DateTimeUtcFromString,
83
+ decision: ApprovalDecision
84
+ }) {};
85
+ const ApprovalAuditEvent = Schema.Union([ApprovalRequestRecorded, ApprovalDecisionRecorded]);
86
+ const ApprovalAuditEvents = Schema.Array(ApprovalAuditEvent).check(Schema.isMaxLength(MAX_APPROVAL_AUDIT_EVENTS));
87
+ var ApprovalAuditLimitExceeded = class extends Schema.TaggedError()("ApprovalAuditLimitExceeded", {
88
+ limitValue: Schema.Natural,
89
+ observedValue: Schema.Natural
90
+ }) {};
91
+ /** A resolver or audit sink tried to associate a decision with another request. */
92
+ var ApprovalDecisionMismatch = class extends Schema.TaggedError()("ApprovalDecisionMismatch", {
93
+ expectedRequestId: Schema.NonEmptyString,
94
+ observedRequestId: Schema.NonEmptyString
95
+ }) {};
96
+ /** P2 semantic audit sink; durable runtimes replace this with canonical records. */
97
+ var ApprovalAudit = class extends Context.Service()("@effect-agent/capabilities/ApprovalAudit") {};
98
+ /** Scoped in-memory audit projection with monotonic event order. */
99
+ const ApprovalAuditMemoryLive = Layer.effect(ApprovalAudit, Effect.gen(function* () {
100
+ const state = yield* Ref.make({
101
+ events: [],
102
+ pending: /* @__PURE__ */ new Set()
103
+ });
104
+ return ApprovalAudit.of({
105
+ recordRequest: (request) => Effect.gen(function* () {
106
+ const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
107
+ const error = yield* Ref.modify(state, (current) => {
108
+ const reservedSize = current.events.length + current.pending.size + 2;
109
+ if (reservedSize > MAX_APPROVAL_AUDIT_EVENTS) return [ApprovalAuditLimitExceeded.make({
110
+ limitValue: MAX_APPROVAL_AUDIT_EVENTS,
111
+ observedValue: reservedSize
112
+ }), current];
113
+ const event = ApprovalRequestRecorded.make({
114
+ sequence: current.events.length,
115
+ recordedAt,
116
+ request
117
+ });
118
+ return [void 0, {
119
+ events: [...current.events, event],
120
+ pending: new Set(current.pending).add(request.requestId)
121
+ }];
122
+ });
123
+ if (error !== void 0) return yield* error;
124
+ }),
125
+ recordDecision: (decision) => Effect.gen(function* () {
126
+ const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
127
+ const error = yield* Ref.modify(state, (current) => {
128
+ if (!current.pending.has(decision.requestId)) return [ApprovalDecisionMismatch.make({
129
+ expectedRequestId: [...current.pending][0] ?? "no-pending-request",
130
+ observedRequestId: decision.requestId
131
+ }), current];
132
+ const pending = new Set(current.pending);
133
+ pending.delete(decision.requestId);
134
+ const event = ApprovalDecisionRecorded.make({
135
+ sequence: current.events.length,
136
+ recordedAt,
137
+ decision
138
+ });
139
+ return [void 0, {
140
+ events: [...current.events, event],
141
+ pending
142
+ }];
143
+ });
144
+ if (error !== void 0) return yield* error;
145
+ }),
146
+ events: Ref.get(state).pipe(Effect.map((current) => current.events))
147
+ });
148
+ }));
149
+ /** Construct an ApprovalRequest only after decoded input passes the configured Redactor. */
150
+ const makeApprovalRequest = Effect.fn("makeApprovalRequest")(function* (draft, decodedToolInput) {
151
+ const redactedInputPreview = yield* (yield* Redactor).redact(decodedToolInput);
152
+ return ApprovalRequest.make({
153
+ requestId: draft.requestId,
154
+ runId: draft.runId,
155
+ threadId: draft.threadId,
156
+ toolCallId: draft.toolCallId,
157
+ toolName: draft.toolName,
158
+ actionSummary: draft.actionSummary,
159
+ resourceTargets: draft.resourceTargets,
160
+ risk: draft.risk,
161
+ expiresAt: draft.expiresAt,
162
+ denial: draft.denial,
163
+ redactedInputPreview
164
+ });
165
+ });
166
+ const timeoutDenial = (request, decidedAt) => ApprovalDenied.make({
167
+ requestId: request.requestId,
168
+ decidedAt,
169
+ resolver: "effect-agent.timeout-deny",
170
+ reason: "Approval request expired before a decision was available",
171
+ timedOut: true
172
+ });
173
+ /**
174
+ * Resolve with fail-closed deadline semantics and record request/decision audit
175
+ * events around every successful, denied, timed-out, or resolver-failed
176
+ * resolution. A resolver infrastructure failure records a synthetic denial so
177
+ * the audit reservation is released before the typed error propagates.
178
+ */
179
+ const requestApproval = Effect.fn("requestApproval")(function* (request) {
180
+ const audit = yield* ApprovalAudit;
181
+ yield* audit.recordRequest(request);
182
+ const nowMillis = yield* Clock.currentTimeMillis;
183
+ const now = DateTime.toUtc(DateTime.makeUnsafe(nowMillis));
184
+ const remainingMillis = DateTime.toEpochMillis(request.expiresAt) - nowMillis;
185
+ let decision;
186
+ if (remainingMillis <= 0) decision = timeoutDenial(request, now);
187
+ else decision = yield* (yield* ApprovalResolver).request(request).pipe(Effect.timeoutOrElse({
188
+ duration: Duration.millis(remainingMillis),
189
+ orElse: () => Clock.currentTimeMillis.pipe(Effect.map((millis) => timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis)))))
190
+ }), Effect.catchTag("ApprovalTimedOut", () => Clock.currentTimeMillis.pipe(Effect.map((millis) => timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis)))))), Effect.tapError(() => Clock.currentTimeMillis.pipe(Effect.flatMap((millis) => audit.recordDecision(ApprovalDenied.make({
191
+ requestId: request.requestId,
192
+ decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),
193
+ resolver: "effect-agent.resolver-error",
194
+ reason: "Approval resolver failed before making a policy decision",
195
+ timedOut: false
196
+ }))))));
197
+ if (decision.requestId !== request.requestId) {
198
+ const mismatch = ApprovalDecisionMismatch.make({
199
+ expectedRequestId: request.requestId,
200
+ observedRequestId: decision.requestId
201
+ });
202
+ const denied = ApprovalDenied.make({
203
+ requestId: request.requestId,
204
+ decidedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),
205
+ resolver: "effect-agent.correlation-check",
206
+ reason: "Approval resolver returned a decision for another request",
207
+ timedOut: false
208
+ });
209
+ yield* audit.recordDecision(denied);
210
+ return yield* mismatch;
211
+ }
212
+ yield* audit.recordDecision(decision);
213
+ return decision;
214
+ });
215
+ /** Deterministic policy layer for tests and deny-by-default deployments. */
216
+ const ApprovalDenyAll = Layer.succeed(ApprovalResolver)({ request: (request) => Clock.currentTimeMillis.pipe(Effect.map((millis) => ApprovalDenied.make({
217
+ requestId: request.requestId,
218
+ decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),
219
+ resolver: "effect-agent.deny-all",
220
+ reason: "No approving policy is configured",
221
+ timedOut: false
222
+ }))) });
223
+ //#endregion
224
+ export { ApprovalApproved, ApprovalAudit, ApprovalAuditEvent, ApprovalAuditEvents, ApprovalAuditLimitExceeded, ApprovalAuditMemoryLive, ApprovalDecision, ApprovalDecisionMismatch, ApprovalDecisionRecorded, ApprovalDenied, ApprovalDenyAll, ApprovalRequest, ApprovalRequestDraft, ApprovalRequestRecorded, ApprovalResolver, ApprovalResolverError, ApprovalTimedOut, makeApprovalRequest, requestApproval, Approval_exports as t };
225
+
226
+ //# sourceMappingURL=Approval.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Approval.mjs","names":[],"sources":["../../src/capabilities/Approval.ts"],"sourcesContent":["import { Clock, Context, DateTime, Duration, Effect, Layer, Ref, Schema } from \"effect\";\n\nimport { ThreadId, RunId, ToolCallId } from \"../core/Identifiers.ts\";\nimport { utf8ByteLength } from \"../core/internal/utf8.ts\";\nimport { RedactedPreview, Redactor, type RedactionError } from \"./Redaction.ts\";\n\nconst MAX_APPROVAL_TARGETS = 32;\nconst MAX_APPROVAL_TARGET_BYTES = 64 * 1024;\nconst MAX_APPROVAL_AUDIT_EVENTS = 2_048;\n\nconst ApprovalTargets = Schema.Array(Schema.String.check(Schema.isMaxLength(2 * 1024)))\n .check(Schema.isMaxLength(MAX_APPROVAL_TARGETS))\n .pipe(\n Schema.refine(\n (targets): targets is ReadonlyArray<string> =>\n targets.reduce((total, target) => total + utf8ByteLength(target), 0) <=\n MAX_APPROVAL_TARGET_BYTES,\n { expected: `approval targets totaling at most ${MAX_APPROVAL_TARGET_BYTES} UTF-8 bytes` },\n ),\n );\n\nconst ApprovalRequestFields = {\n requestId: Schema.NonEmptyString,\n runId: RunId,\n threadId: ThreadId,\n toolCallId: ToolCallId,\n toolName: Schema.NonEmptyString,\n actionSummary: Schema.String.check(Schema.isMaxLength(2 * 1024)),\n resourceTargets: ApprovalTargets,\n risk: Schema.Literals([\"low\", \"medium\", \"high\", \"critical\"]),\n expiresAt: Schema.DateTimeUtcFromString,\n denial: Schema.Literals([\"terminal\", \"recoverable\"]),\n} as const;\n\n/** Decoded approval metadata before the Redactor owns Tool input preview creation. */\nexport class ApprovalRequestDraft extends Schema.Class<ApprovalRequestDraft>(\n \"@effect-agent/capabilities/ApprovalRequestDraft\",\n)(ApprovalRequestFields) {}\n\n/** Fully decoded, structurally redacted approval input. */\nexport class ApprovalRequest extends Schema.Class<ApprovalRequest>(\n \"@effect-agent/capabilities/ApprovalRequest\",\n)({\n ...ApprovalRequestFields,\n redactedInputPreview: RedactedPreview,\n}) {}\n\nexport class ApprovalApproved extends Schema.TaggedClass<ApprovalApproved>()(\"ApprovalApproved\", {\n requestId: Schema.NonEmptyString,\n decidedAt: Schema.DateTimeUtcFromString,\n resolver: Schema.NonEmptyString,\n}) {}\n\nexport class ApprovalDenied extends Schema.TaggedClass<ApprovalDenied>()(\"ApprovalDenied\", {\n requestId: Schema.NonEmptyString,\n decidedAt: Schema.DateTimeUtcFromString,\n resolver: Schema.NonEmptyString,\n reason: Schema.String.check(Schema.isMaxLength(2 * 1024)),\n timedOut: Schema.Boolean,\n}) {}\n\nexport const ApprovalDecision = Schema.Union([ApprovalApproved, ApprovalDenied]);\nexport type ApprovalDecision = typeof ApprovalDecision.Type;\n\n/** Resolver infrastructure failed before it could make a policy decision. */\nexport class ApprovalResolverError extends Schema.TaggedError<ApprovalResolverError>()(\n \"ApprovalResolverError\",\n { message: Schema.String },\n) {}\n\n/** The resolver explicitly observed its request deadline; callers turn this into a denial. */\nexport class ApprovalTimedOut extends Schema.TaggedError<ApprovalTimedOut>()(\"ApprovalTimedOut\", {\n requestId: Schema.NonEmptyString,\n}) {}\n\n/** First-class approval authority. Interactive, policy, and remote adapters implement this service. */\nexport class ApprovalResolver extends Context.Service<\n ApprovalResolver,\n {\n readonly request: (\n request: ApprovalRequest,\n ) => Effect.Effect<ApprovalDecision, ApprovalResolverError | ApprovalTimedOut>;\n }\n>()(\"@effect-agent/capabilities/ApprovalResolver\") {}\n\nexport class ApprovalRequestRecorded extends Schema.TaggedClass<ApprovalRequestRecorded>()(\n \"ApprovalRequestRecorded\",\n {\n sequence: Schema.Natural,\n recordedAt: Schema.DateTimeUtcFromString,\n request: ApprovalRequest,\n },\n) {}\n\nexport class ApprovalDecisionRecorded extends Schema.TaggedClass<ApprovalDecisionRecorded>()(\n \"ApprovalDecisionRecorded\",\n {\n sequence: Schema.Natural,\n recordedAt: Schema.DateTimeUtcFromString,\n decision: ApprovalDecision,\n },\n) {}\n\nexport const ApprovalAuditEvent = Schema.Union([ApprovalRequestRecorded, ApprovalDecisionRecorded]);\nexport type ApprovalAuditEvent = typeof ApprovalAuditEvent.Type;\n\nexport const ApprovalAuditEvents = Schema.Array(ApprovalAuditEvent).check(\n Schema.isMaxLength(MAX_APPROVAL_AUDIT_EVENTS),\n);\n\nexport class ApprovalAuditLimitExceeded extends Schema.TaggedError<ApprovalAuditLimitExceeded>()(\n \"ApprovalAuditLimitExceeded\",\n {\n limitValue: Schema.Natural,\n observedValue: Schema.Natural,\n },\n) {}\n\n/** A resolver or audit sink tried to associate a decision with another request. */\nexport class ApprovalDecisionMismatch extends Schema.TaggedError<ApprovalDecisionMismatch>()(\n \"ApprovalDecisionMismatch\",\n {\n expectedRequestId: Schema.NonEmptyString,\n observedRequestId: Schema.NonEmptyString,\n },\n) {}\n\n/** P2 semantic audit sink; durable runtimes replace this with canonical records. */\nexport class ApprovalAudit extends Context.Service<\n ApprovalAudit,\n {\n readonly recordRequest: (\n request: ApprovalRequest,\n ) => Effect.Effect<void, ApprovalAuditLimitExceeded>;\n readonly recordDecision: (\n decision: ApprovalDecision,\n ) => Effect.Effect<void, ApprovalAuditLimitExceeded | ApprovalDecisionMismatch>;\n readonly events: Effect.Effect<ReadonlyArray<ApprovalAuditEvent>>;\n }\n>()(\"@effect-agent/capabilities/ApprovalAudit\") {}\n\n/** Scoped in-memory audit projection with monotonic event order. */\nexport const ApprovalAuditMemoryLive = Layer.effect(\n ApprovalAudit,\n Effect.gen(function* () {\n interface AuditState {\n readonly events: ReadonlyArray<ApprovalAuditEvent>;\n readonly pending: ReadonlySet<string>;\n }\n const state = yield* Ref.make<AuditState>({ events: [], pending: new Set() });\n\n return ApprovalAudit.of({\n recordRequest: (request) =>\n Effect.gen(function* () {\n const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n const error = yield* Ref.modify(state, (current) => {\n // Each accepted request atomically reserves room for its decision.\n const reservedSize = current.events.length + current.pending.size + 2;\n\n if (reservedSize > MAX_APPROVAL_AUDIT_EVENTS) {\n return [\n ApprovalAuditLimitExceeded.make({\n limitValue: MAX_APPROVAL_AUDIT_EVENTS,\n observedValue: reservedSize,\n }),\n current,\n ] as const;\n }\n\n const event = ApprovalRequestRecorded.make({\n sequence: current.events.length,\n recordedAt,\n request,\n });\n\n return [\n undefined,\n {\n events: [...current.events, event],\n pending: new Set(current.pending).add(request.requestId),\n },\n ] as const;\n });\n\n if (error !== undefined) return yield* error;\n }),\n recordDecision: (decision) =>\n Effect.gen(function* () {\n const recordedAt = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n const error = yield* Ref.modify(state, (current) => {\n if (!current.pending.has(decision.requestId)) {\n return [\n ApprovalDecisionMismatch.make({\n expectedRequestId: [...current.pending][0] ?? \"no-pending-request\",\n observedRequestId: decision.requestId,\n }),\n current,\n ] as const;\n }\n const pending = new Set(current.pending);\n\n pending.delete(decision.requestId);\n\n const event = ApprovalDecisionRecorded.make({\n sequence: current.events.length,\n recordedAt,\n decision,\n });\n\n return [\n undefined,\n {\n events: [...current.events, event],\n pending,\n },\n ] as const;\n });\n\n if (error !== undefined) return yield* error;\n }),\n events: Ref.get(state).pipe(Effect.map((current) => current.events)),\n });\n }),\n);\n\n/** Construct an ApprovalRequest only after decoded input passes the configured Redactor. */\nexport const makeApprovalRequest = Effect.fn(\"makeApprovalRequest\")(function* (\n draft: ApprovalRequestDraft,\n decodedToolInput: unknown,\n): Effect.fn.Return<ApprovalRequest, RedactionError, Redactor> {\n const redactor = yield* Redactor;\n const redactedInputPreview = yield* redactor.redact(decodedToolInput);\n\n return ApprovalRequest.make({\n requestId: draft.requestId,\n runId: draft.runId,\n threadId: draft.threadId,\n toolCallId: draft.toolCallId,\n toolName: draft.toolName,\n actionSummary: draft.actionSummary,\n resourceTargets: draft.resourceTargets,\n risk: draft.risk,\n expiresAt: draft.expiresAt,\n denial: draft.denial,\n redactedInputPreview,\n });\n});\n\nconst timeoutDenial = (request: ApprovalRequest, decidedAt: DateTime.Utc): ApprovalDenied =>\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt,\n resolver: \"effect-agent.timeout-deny\",\n reason: \"Approval request expired before a decision was available\",\n timedOut: true,\n });\n\n/**\n * Resolve with fail-closed deadline semantics and record request/decision audit\n * events around every successful, denied, timed-out, or resolver-failed\n * resolution. A resolver infrastructure failure records a synthetic denial so\n * the audit reservation is released before the typed error propagates.\n */\nexport const requestApproval = Effect.fn(\"requestApproval\")(function* (request: ApprovalRequest) {\n const audit = yield* ApprovalAudit;\n\n yield* audit.recordRequest(request);\n const nowMillis = yield* Clock.currentTimeMillis;\n const now = DateTime.toUtc(DateTime.makeUnsafe(nowMillis));\n const remainingMillis = DateTime.toEpochMillis(request.expiresAt) - nowMillis;\n\n let decision: ApprovalDecision;\n\n if (remainingMillis <= 0) {\n decision = timeoutDenial(request, now);\n } else {\n const resolver = yield* ApprovalResolver;\n\n decision = yield* resolver.request(request).pipe(\n Effect.timeoutOrElse({\n duration: Duration.millis(remainingMillis),\n orElse: () =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis))),\n ),\n ),\n }),\n Effect.catchTag(\"ApprovalTimedOut\", () =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n timeoutDenial(request, DateTime.toUtc(DateTime.makeUnsafe(millis))),\n ),\n ),\n ),\n Effect.tapError(() =>\n Clock.currentTimeMillis.pipe(\n Effect.flatMap((millis) =>\n audit.recordDecision(\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),\n resolver: \"effect-agent.resolver-error\",\n reason: \"Approval resolver failed before making a policy decision\",\n timedOut: false,\n }),\n ),\n ),\n ),\n ),\n );\n }\n if (decision.requestId !== request.requestId) {\n const mismatch = ApprovalDecisionMismatch.make({\n expectedRequestId: request.requestId,\n observedRequestId: decision.requestId,\n });\n\n const denied = ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),\n resolver: \"effect-agent.correlation-check\",\n reason: \"Approval resolver returned a decision for another request\",\n timedOut: false,\n });\n\n yield* audit.recordDecision(denied);\n\n return yield* mismatch;\n }\n yield* audit.recordDecision(decision);\n\n return decision;\n});\n\n/** Deterministic policy layer for tests and deny-by-default deployments. */\nexport const ApprovalDenyAll = Layer.succeed(ApprovalResolver)({\n request: (request) =>\n Clock.currentTimeMillis.pipe(\n Effect.map((millis) =>\n ApprovalDenied.make({\n requestId: request.requestId,\n decidedAt: DateTime.toUtc(DateTime.makeUnsafe(millis)),\n resolver: \"effect-agent.deny-all\",\n reason: \"No approving policy is configured\",\n timedOut: false,\n }),\n ),\n ),\n});\n"],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import { Effect, Schema, Scope } from "effect";
2
+ declare namespace Budget_d_exports {
3
+ export { BudgetExceeded, BudgetLevel, BudgetNodeConflict, InvalidBudgetHierarchy, UsageBudgetLimits, UsageBudgetNode, UsageBudgetNodeConfig, UsageDelta, UsageTotals, makeUsageBudget, makeUsageBudgetRoot };
4
+ }
5
+ declare const BudgetLevel: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
6
+ type BudgetLevel = typeof BudgetLevel.Type;
7
+ declare const UsageTotals_base: Schema.Class<UsageTotals, Schema.Struct<{
8
+ /** Total input tokens across every model call, INCLUDING cache reads and writes at par. */
9
+ readonly inputTokens: Schema.Natural;
10
+ readonly outputTokens: Schema.Natural;
11
+ /** Informational split of `inputTokens` served from the provider prompt cache; never separately limited. */
12
+ readonly cacheReadInputTokens: Schema.Natural;
13
+ /** Informational split of `inputTokens` written to the provider prompt cache; never separately limited. */
14
+ readonly cacheWriteInputTokens: Schema.Natural;
15
+ /** The most recent model call's input tokens — the live model-context estimate (CAP-017). */
16
+ readonly lastInputTokens: Schema.Natural;
17
+ /** The most recent model call's output tokens. */
18
+ readonly lastOutputTokens: Schema.Natural;
19
+ readonly toolCalls: Schema.Natural;
20
+ readonly costMicrousd: Schema.Natural;
21
+ readonly elapsedMillis: Schema.Natural;
22
+ }>, {}>;
23
+ /** Fixed units avoid floating-point currency accounting: costs are micro-USD. */
24
+ export declare class UsageTotals extends UsageTotals_base {}
25
+ declare const UsageDelta_base: Schema.Class<UsageDelta, Schema.Struct<{
26
+ /** `1` for a model-response boundary, `0` for a mid-pass tool charge; gates last-call tracking. */
27
+ readonly modelCalls: Schema.Natural;
28
+ /** Total input tokens of this boundary, INCLUDING cache reads and writes at par. */
29
+ readonly inputTokens: Schema.Natural;
30
+ readonly outputTokens: Schema.Natural;
31
+ /** Informational split of `inputTokens` served from the provider prompt cache; never separately limited. */
32
+ readonly cacheReadInputTokens: Schema.Natural;
33
+ /** Informational split of `inputTokens` written to the provider prompt cache; never separately limited. */
34
+ readonly cacheWriteInputTokens: Schema.Natural;
35
+ readonly toolCalls: Schema.Natural;
36
+ readonly costMicrousd: Schema.Natural;
37
+ }>, {}>;
38
+ /** Increment recorded at one model/tool accounting boundary. */
39
+ export declare class UsageDelta extends UsageDelta_base {}
40
+ declare const UsageBudgetLimits_base: Schema.Class<UsageBudgetLimits, Schema.Struct<{
41
+ readonly maxInputTokens: Schema.optionalKey<Schema.Natural>;
42
+ readonly maxOutputTokens: Schema.optionalKey<Schema.Natural>;
43
+ readonly maxToolCalls: Schema.optionalKey<Schema.Natural>;
44
+ readonly maxCostMicrousd: Schema.optionalKey<Schema.Natural>;
45
+ readonly maxDurationMillis: Schema.optionalKey<Schema.Natural>;
46
+ }>, {}>;
47
+ /** All optional limits are finite when present; absent means not configured. */
48
+ export declare class UsageBudgetLimits extends UsageBudgetLimits_base {}
49
+ declare const UsageBudgetNodeConfig_base: Schema.Class<UsageBudgetNodeConfig, Schema.Struct<{
50
+ readonly level: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
51
+ readonly id: Schema.NonEmptyString;
52
+ readonly limits: typeof UsageBudgetLimits;
53
+ }>, {}>;
54
+ /** Identity and local limits for one node in a global-to-Run budget hierarchy. */
55
+ export declare class UsageBudgetNodeConfig extends UsageBudgetNodeConfig_base {}
56
+ declare const BudgetExceeded_base: Schema.Class<BudgetExceeded, Schema.TaggedStruct<"BudgetExceeded", {
57
+ readonly scopeLevel: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
58
+ readonly scopeId: Schema.NonEmptyString;
59
+ readonly limit: Schema.Literals<readonly ["input-tokens", "output-tokens", "tool-calls", "cost", "duration"]>;
60
+ readonly limitValue: Schema.Natural;
61
+ readonly observedValue: Schema.Natural;
62
+ }>, import("effect/Cause").YieldableError>;
63
+ /** Typed finite-budget rejection. A rejected increment is not committed at any hierarchy level. */
64
+ export declare class BudgetExceeded extends BudgetExceeded_base {}
65
+ /** Hierarchical accounting authority. All ancestors share one atomic Ref-backed transaction. */
66
+ export interface UsageBudgetNode {
67
+ readonly level: BudgetLevel;
68
+ readonly id: string;
69
+ /**
70
+ * Register or re-attach one child node. Re-attaching an already-registered
71
+ * `level:id` with identical limits returns a handle to the shared
72
+ * registration; different limits fail with BudgetNodeConflict rather than
73
+ * being silently ignored. Every returned handle owns one registration and
74
+ * must be retired when its lifetime ends; prefer `childScoped` when the
75
+ * lifetime already belongs to an Effect Scope.
76
+ */
77
+ readonly child: (config: UsageBudgetNodeConfig) => Effect.Effect<UsageBudgetNode, InvalidBudgetHierarchy | BudgetNodeConflict>;
78
+ /** Register a child whose registration is retired when the current Scope closes. */
79
+ readonly childScoped: (config: UsageBudgetNodeConfig) => Effect.Effect<UsageBudgetNode, InvalidBudgetHierarchy | BudgetNodeConflict, Scope.Scope>;
80
+ /**
81
+ * Release this handle's registration exactly once. Accumulated usage stays
82
+ * charged to every live ancestor; a node is reclaimed only after its last
83
+ * handle and every descendant have retired.
84
+ */
85
+ readonly retire: Effect.Effect<void>;
86
+ readonly consume: (delta: UsageDelta) => Effect.Effect<UsageTotals, BudgetExceeded>;
87
+ readonly snapshot: Effect.Effect<UsageTotals>;
88
+ /**
89
+ * Guard stalled model/tool work with the earliest configured ancestor deadline.
90
+ * The timeout is driven by Effect Clock and interrupts the guarded child effect.
91
+ */
92
+ readonly guard: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E | BudgetExceeded, R>;
93
+ }
94
+ declare const InvalidBudgetHierarchy_base: Schema.Class<InvalidBudgetHierarchy, Schema.TaggedStruct<"InvalidBudgetHierarchy", {
95
+ readonly parentLevel: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
96
+ readonly childLevel: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
97
+ }>, import("effect/Cause").YieldableError>;
98
+ /** A child budget must move strictly inward through the declared hierarchy. */
99
+ export declare class InvalidBudgetHierarchy extends InvalidBudgetHierarchy_base {}
100
+ declare const BudgetNodeConflict_base: Schema.Class<BudgetNodeConflict, Schema.TaggedStruct<"BudgetNodeConflict", {
101
+ readonly scopeLevel: Schema.Literals<readonly ["global", "tenant", "agent", "thread", "run"]>;
102
+ readonly scopeId: Schema.NonEmptyString;
103
+ }>, import("effect/Cause").YieldableError>;
104
+ /** A child `level:id` is already registered with different limits; neither set may win silently. */
105
+ export declare class BudgetNodeConflict extends BudgetNodeConflict_base {}
106
+ /** Create the outermost node of a hierarchy. Child nodes share its atomic ledger. */
107
+ export declare const makeUsageBudgetRoot: (config: UsageBudgetNodeConfig) => Effect.Effect<UsageBudgetNode, never, never>;
108
+ /** Compatibility constructor for a standalone Run budget. */
109
+ export declare const makeUsageBudget: (limits: UsageBudgetLimits) => Effect.Effect<UsageBudgetNode>;
110
+ //#endregion
111
+ export { BudgetLevel, Budget_d_exports as t };
112
+ //# sourceMappingURL=Budget.d.mts.map