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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (751) hide show
  1. package/dist/Agent-CN0EWRsR.d.mts +226 -0
  2. package/dist/Agent-RklVROrm.mjs +83 -0
  3. package/dist/Agent-RklVROrm.mjs.map +1 -0
  4. package/dist/AgentError-CggcAQ7V.d.mts +101 -0
  5. package/dist/AgentPolicy-CetmQrf3.d.mts +96 -0
  6. package/dist/AgentRuntime-BLyETCPo.mjs +4562 -0
  7. package/dist/AgentRuntime-BLyETCPo.mjs.map +1 -0
  8. package/dist/AgentRuntime-uxR_a4VM.d.mts +346 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-Dxu5zhOL.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-uggeJpv3.mjs +6368 -0
  13. package/dist/DurableAgentRuntime-uggeJpv3.mjs.map +1 -0
  14. package/dist/DurableFailpoint-Oinuuedm.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/Ephemeral.d.mts +22 -0
  17. package/dist/Ephemeral.mjs +22 -0
  18. package/dist/Ephemeral.mjs.map +1 -0
  19. package/dist/EventSource-OqS_P9ug.d.mts +51 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  22. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  23. package/dist/Messaging-CkcIdt4I.d.mts +490 -0
  24. package/dist/MessagingHost-CRk0kXzT.d.mts +246 -0
  25. package/dist/MessagingHost-CWi_PP3g.mjs +137 -0
  26. package/dist/MessagingHost-CWi_PP3g.mjs.map +1 -0
  27. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  28. package/dist/Output-D6SkedVx.d.mts +25 -0
  29. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  30. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  31. package/dist/PreparedInputAdmission-C4HbjHgl.d.mts +38 -0
  32. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  33. package/dist/Records-BAGkekt8.d.mts +3570 -0
  34. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  35. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  36. package/dist/RunJournal-Cgg1kNvc.mjs +825 -0
  37. package/dist/RunJournal-Cgg1kNvc.mjs.map +1 -0
  38. package/dist/RunOptions-g1aigcKI.d.mts +915 -0
  39. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  40. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  41. package/dist/Schedule-H3SEYX9g.d.mts +842 -0
  42. package/dist/Scheduling-C9aIP8zT.mjs +691 -0
  43. package/dist/Scheduling-C9aIP8zT.mjs.map +1 -0
  44. package/dist/Subagent-Cy_hU1tv.mjs +1469 -0
  45. package/dist/Subagent-Cy_hU1tv.mjs.map +1 -0
  46. package/dist/Subagent-DyfzHNdv.d.mts +826 -0
  47. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  48. package/dist/SubagentHost-CJUBQlcc.d.mts +140 -0
  49. package/dist/Subscription-BEP8oQO5.d.mts +921 -0
  50. package/dist/SubscriptionInput-vAAOBrK7.d.mts +41 -0
  51. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  52. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  53. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  54. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  55. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  56. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  57. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  58. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  59. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  60. package/dist/ToolExposure.d.mts +6 -5
  61. package/dist/ToolExposure.mjs +17 -9
  62. package/dist/ToolExposure.mjs.map +1 -1
  63. package/dist/ToolReconciler-DQVaJfpE.d.mts +76 -0
  64. package/dist/ToolResult-DmmgoChv.d.mts +61 -0
  65. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  66. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  67. package/dist/Worker-CaPYykpe.d.mts +228 -0
  68. package/dist/agent-registration-CWDMOAZA.mjs +172 -0
  69. package/dist/agent-registration-CWDMOAZA.mjs.map +1 -0
  70. package/dist/capabilities/Approval.d.mts +114 -0
  71. package/dist/capabilities/Approval.mjs +226 -0
  72. package/dist/capabilities/Approval.mjs.map +1 -0
  73. package/dist/capabilities/Budget.d.mts +112 -0
  74. package/dist/capabilities/Budget.mjs +346 -0
  75. package/dist/capabilities/Budget.mjs.map +1 -0
  76. package/dist/capabilities/CodeMode.d.mts +157 -0
  77. package/dist/capabilities/CodeMode.mjs +522 -0
  78. package/dist/capabilities/CodeMode.mjs.map +1 -0
  79. package/dist/capabilities/Commands.d.mts +55 -0
  80. package/dist/capabilities/Commands.mjs +57 -0
  81. package/dist/capabilities/Commands.mjs.map +1 -0
  82. package/dist/capabilities/ContextTools.d.mts +321 -0
  83. package/dist/capabilities/ContextTools.mjs +126 -0
  84. package/dist/capabilities/ContextTools.mjs.map +1 -0
  85. package/dist/capabilities/Mcp.d.mts +108 -0
  86. package/dist/capabilities/Mcp.mjs +260 -0
  87. package/dist/capabilities/Mcp.mjs.map +1 -0
  88. package/dist/capabilities/McpClient.d.mts +115 -0
  89. package/dist/capabilities/McpClient.mjs +506 -0
  90. package/dist/capabilities/McpClient.mjs.map +1 -0
  91. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  92. package/dist/capabilities/MemoryNotes.mjs +128 -0
  93. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  94. package/dist/capabilities/Messaging.d.mts +3 -0
  95. package/dist/capabilities/Messaging.mjs +151 -0
  96. package/dist/capabilities/Messaging.mjs.map +1 -0
  97. package/dist/capabilities/ModelContext.d.mts +89 -0
  98. package/dist/capabilities/ModelContext.mjs +168 -0
  99. package/dist/capabilities/ModelContext.mjs.map +1 -0
  100. package/dist/capabilities/Redaction.d.mts +37 -0
  101. package/dist/capabilities/Redaction.mjs +104 -0
  102. package/dist/capabilities/Redaction.mjs.map +1 -0
  103. package/dist/capabilities/Remembering.d.mts +434 -0
  104. package/dist/capabilities/Remembering.mjs +290 -0
  105. package/dist/capabilities/Remembering.mjs.map +1 -0
  106. package/dist/capabilities/RunHooks.d.mts +82 -0
  107. package/dist/capabilities/RunHooks.mjs +144 -0
  108. package/dist/capabilities/RunHooks.mjs.map +1 -0
  109. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  110. package/dist/capabilities/SemanticMemory.mjs +315 -0
  111. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  112. package/dist/capabilities/Subagent.d.mts +4 -0
  113. package/dist/capabilities/Subagent.mjs +5 -0
  114. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  115. package/dist/capabilities/SubagentReservations.mjs +479 -0
  116. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  117. package/dist/capabilities/ToolDiscovery.d.mts +109 -0
  118. package/dist/capabilities/ToolDiscovery.mjs +211 -0
  119. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  120. package/dist/capabilities/WebCapture.d.mts +163 -0
  121. package/dist/capabilities/WebCapture.mjs +335 -0
  122. package/dist/capabilities/WebCapture.mjs.map +1 -0
  123. package/dist/capabilities/WebSearch.d.mts +71 -0
  124. package/dist/capabilities/WebSearch.mjs +112 -0
  125. package/dist/capabilities/WebSearch.mjs.map +1 -0
  126. package/dist/compaction-C2OTceKw.mjs +505 -0
  127. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  128. package/dist/core/Agent.d.mts +2 -0
  129. package/dist/core/Agent.mjs +2 -0
  130. package/dist/core/AgentError.d.mts +2 -0
  131. package/dist/core/AgentError.mjs +117 -0
  132. package/dist/core/AgentError.mjs.map +1 -0
  133. package/dist/core/AgentPolicy.d.mts +2 -0
  134. package/dist/core/AgentPolicy.mjs +94 -0
  135. package/dist/core/AgentPolicy.mjs.map +1 -0
  136. package/dist/core/AgentUpdates.d.mts +2 -0
  137. package/dist/core/AgentUpdates.mjs +63 -0
  138. package/dist/core/AgentUpdates.mjs.map +1 -0
  139. package/dist/core/IdGenerator.d.mts +26 -0
  140. package/dist/core/IdGenerator.mjs +27 -0
  141. package/dist/core/IdGenerator.mjs.map +1 -0
  142. package/dist/core/Identifiers.d.mts +2 -0
  143. package/dist/core/Identifiers.mjs +43 -0
  144. package/dist/core/Identifiers.mjs.map +1 -0
  145. package/dist/core/Memory.d.mts +57 -0
  146. package/dist/core/Memory.mjs +203 -0
  147. package/dist/core/Memory.mjs.map +1 -0
  148. package/dist/core/MemoryNamespace.d.mts +2 -0
  149. package/dist/core/MemoryNamespace.mjs +116 -0
  150. package/dist/core/MemoryNamespace.mjs.map +1 -0
  151. package/dist/core/MemoryReference.d.mts +2 -0
  152. package/dist/core/MemoryReference.mjs +109 -0
  153. package/dist/core/MemoryReference.mjs.map +1 -0
  154. package/dist/core/MemoryRevalidation.d.mts +65 -0
  155. package/dist/core/MemoryRevalidation.mjs +126 -0
  156. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  157. package/dist/core/MemoryStore.d.mts +186 -0
  158. package/dist/core/MemoryStore.mjs +243 -0
  159. package/dist/core/MemoryStore.mjs.map +1 -0
  160. package/dist/core/Receipt.d.mts +2 -0
  161. package/dist/core/Receipt.mjs +36 -0
  162. package/dist/core/Receipt.mjs.map +1 -0
  163. package/dist/core/RememberingStore.d.mts +1562 -0
  164. package/dist/core/RememberingStore.mjs +190 -0
  165. package/dist/core/RememberingStore.mjs.map +1 -0
  166. package/dist/core/RunEvent.d.mts +2 -0
  167. package/dist/core/RunEvent.mjs +337 -0
  168. package/dist/core/RunEvent.mjs.map +1 -0
  169. package/dist/core/RunPolicyUsage.d.mts +2 -0
  170. package/dist/core/RunPolicyUsage.mjs +21 -0
  171. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  172. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  173. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  174. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  175. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  176. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  177. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  178. package/dist/core/SubagentContract.d.mts +2 -0
  179. package/dist/core/SubagentContract.mjs +148 -0
  180. package/dist/core/SubagentContract.mjs.map +1 -0
  181. package/dist/core/Thread.d.mts +2 -0
  182. package/dist/core/Thread.mjs +250 -0
  183. package/dist/core/Thread.mjs.map +1 -0
  184. package/dist/core/ToolResult.d.mts +2 -0
  185. package/dist/core/ToolResult.mjs +140 -0
  186. package/dist/core/ToolResult.mjs.map +1 -0
  187. package/dist/core/Usage.d.mts +2 -0
  188. package/dist/core/Usage.mjs +319 -0
  189. package/dist/core/Usage.mjs.map +1 -0
  190. package/dist/core/Worker.d.mts +3 -0
  191. package/dist/core/Worker.mjs +147 -0
  192. package/dist/core/Worker.mjs.map +1 -0
  193. package/dist/durable/ActivityStore.d.mts +116 -0
  194. package/dist/durable/ActivityStore.mjs +131 -0
  195. package/dist/durable/ActivityStore.mjs.map +1 -0
  196. package/dist/durable/Admin.d.mts +2 -0
  197. package/dist/durable/Admin.mjs +328 -0
  198. package/dist/durable/Admin.mjs.map +1 -0
  199. package/dist/durable/AgentRegistration.d.mts +2 -0
  200. package/dist/durable/AgentRegistration.mjs +14 -0
  201. package/dist/durable/AgentRegistration.mjs.map +1 -0
  202. package/dist/durable/Certification.d.mts +111 -0
  203. package/dist/durable/Certification.mjs +159 -0
  204. package/dist/durable/Certification.mjs.map +1 -0
  205. package/dist/durable/CommittedActivity.d.mts +62 -0
  206. package/dist/durable/CommittedActivity.mjs +159 -0
  207. package/dist/durable/CommittedActivity.mjs.map +1 -0
  208. package/dist/durable/Digest.d.mts +2 -0
  209. package/dist/durable/Digest.mjs +50 -0
  210. package/dist/durable/Digest.mjs.map +1 -0
  211. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  212. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  213. package/dist/durable/DurableFailpoint.d.mts +2 -0
  214. package/dist/durable/DurableFailpoint.mjs +94 -0
  215. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  216. package/dist/durable/DurableFailpointTestControl.d.mts +15 -0
  217. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  218. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  219. package/dist/durable/EventSource.d.mts +2 -0
  220. package/dist/durable/EventSource.mjs +65 -0
  221. package/dist/durable/EventSource.mjs.map +1 -0
  222. package/dist/durable/GitHubWorkflowSource.d.mts +144 -0
  223. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  224. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  225. package/dist/durable/MessageDelivery.d.mts +492 -0
  226. package/dist/durable/MessageDelivery.mjs +495 -0
  227. package/dist/durable/MessageDelivery.mjs.map +1 -0
  228. package/dist/durable/MessageDeliveryStoreConformance.d.mts +358 -0
  229. package/dist/durable/MessageDeliveryStoreConformance.mjs +243 -0
  230. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  231. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  232. package/dist/durable/OperationAuthorizer.mjs +70 -0
  233. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  234. package/dist/durable/PersistentHistory.d.mts +16 -0
  235. package/dist/durable/PersistentHistory.mjs +125 -0
  236. package/dist/durable/PersistentHistory.mjs.map +1 -0
  237. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  238. package/dist/durable/PreparedInputAdmission.mjs +34 -0
  239. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  240. package/dist/durable/Records.d.mts +2 -0
  241. package/dist/durable/Records.mjs +795 -0
  242. package/dist/durable/Records.mjs.map +1 -0
  243. package/dist/durable/Recovery.d.mts +2 -0
  244. package/dist/durable/Recovery.mjs +739 -0
  245. package/dist/durable/Recovery.mjs.map +1 -0
  246. package/dist/durable/RunJournal.d.mts +2 -0
  247. package/dist/durable/RunJournal.mjs +2 -0
  248. package/dist/durable/Schedule.d.mts +2 -0
  249. package/dist/durable/Schedule.mjs +382 -0
  250. package/dist/durable/Schedule.mjs.map +1 -0
  251. package/dist/durable/ScheduleStoreConformance.d.mts +18 -0
  252. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  253. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  254. package/dist/durable/ScheduleTransition.d.mts +24 -0
  255. package/dist/durable/ScheduleTransition.mjs +180 -0
  256. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  257. package/dist/durable/Scheduling.d.mts +54 -0
  258. package/dist/durable/Scheduling.mjs +2 -0
  259. package/dist/durable/SqlMemoryStore.d.mts +30 -0
  260. package/dist/durable/SqlMemoryStore.mjs +435 -0
  261. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  262. package/dist/durable/SqlMessageDeliveryStore.d.mts +40 -0
  263. package/dist/durable/SqlMessageDeliveryStore.mjs +167 -0
  264. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  265. package/dist/durable/SqlStorageV2Upgrade.d.mts +22 -0
  266. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  267. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  268. package/dist/durable/SqlSubscriptionStore.d.mts +63 -0
  269. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  270. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  271. package/dist/durable/SubmissionLedger.d.mts +3 -0
  272. package/dist/durable/SubmissionLedger.mjs +914 -0
  273. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  274. package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
  275. package/dist/durable/SubmissionLedgerConformance.mjs +1986 -0
  276. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  277. package/dist/durable/SubmissionStatus.d.mts +2 -0
  278. package/dist/durable/SubmissionStatus.mjs +18 -0
  279. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  280. package/dist/durable/Subscription.d.mts +2 -0
  281. package/dist/durable/Subscription.mjs +360 -0
  282. package/dist/durable/Subscription.mjs.map +1 -0
  283. package/dist/durable/SubscriptionInput.d.mts +2 -0
  284. package/dist/durable/SubscriptionInput.mjs +52 -0
  285. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  286. package/dist/durable/SubscriptionStoreConformance.d.mts +17 -0
  287. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  288. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  289. package/dist/durable/SubscriptionTools.d.mts +273 -0
  290. package/dist/durable/SubscriptionTools.mjs +190 -0
  291. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  292. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  293. package/dist/durable/SubscriptionTransition.mjs +148 -0
  294. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  295. package/dist/durable/Subscriptions.d.mts +73 -0
  296. package/dist/durable/Subscriptions.mjs +627 -0
  297. package/dist/durable/Subscriptions.mjs.map +1 -0
  298. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  299. package/dist/durable/ThreadContextHistory.mjs +152 -0
  300. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  301. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  302. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  303. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  304. package/dist/durable/ThreadInvariants.d.mts +74 -0
  305. package/dist/durable/ThreadInvariants.mjs +200 -0
  306. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  307. package/dist/durable/ThreadProjection.d.mts +78 -0
  308. package/dist/durable/ThreadProjection.mjs +158 -0
  309. package/dist/durable/ThreadProjection.mjs.map +1 -0
  310. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  311. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  312. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  313. package/dist/durable/ThreadStore.d.mts +2 -0
  314. package/dist/durable/ThreadStore.mjs +147 -0
  315. package/dist/durable/ThreadStore.mjs.map +1 -0
  316. package/dist/durable/ThreadStoreConformance.d.mts +29 -0
  317. package/dist/durable/ThreadStoreConformance.mjs +248 -0
  318. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  319. package/dist/durable/ToolReconciler.d.mts +2 -0
  320. package/dist/durable/ToolReconciler.mjs +81 -0
  321. package/dist/durable/ToolReconciler.mjs.map +1 -0
  322. package/dist/durable/WakeScheduler.d.mts +2 -0
  323. package/dist/durable/WakeScheduler.mjs +85 -0
  324. package/dist/durable/WakeScheduler.mjs.map +1 -0
  325. package/dist/durable/WorkerHost.d.mts +129 -0
  326. package/dist/durable/WorkerHost.mjs +77 -0
  327. package/dist/durable/WorkerHost.mjs.map +1 -0
  328. package/dist/engine/AgentRuntime.d.mts +2 -0
  329. package/dist/engine/AgentRuntime.mjs +2 -0
  330. package/dist/engine/Compaction.d.mts +7 -0
  331. package/dist/engine/Compaction.mjs +16 -0
  332. package/dist/engine/Compaction.mjs.map +1 -0
  333. package/dist/engine/ContextCompactor.d.mts +2 -0
  334. package/dist/engine/ContextCompactor.mjs +119 -0
  335. package/dist/engine/ContextCompactor.mjs.map +1 -0
  336. package/dist/engine/ContextHistory.d.mts +65 -0
  337. package/dist/engine/ContextHistory.mjs +76 -0
  338. package/dist/engine/ContextHistory.mjs.map +1 -0
  339. package/dist/engine/ContextWindow.d.mts +2 -0
  340. package/dist/engine/ContextWindow.mjs +59 -0
  341. package/dist/engine/ContextWindow.mjs.map +1 -0
  342. package/dist/engine/DurableStep.d.mts +2 -0
  343. package/dist/engine/DurableStep.mjs +62 -0
  344. package/dist/engine/DurableStep.mjs.map +1 -0
  345. package/dist/engine/MessagingHost.d.mts +2 -0
  346. package/dist/engine/MessagingHost.mjs +2 -0
  347. package/dist/engine/Output.d.mts +2 -0
  348. package/dist/engine/Output.mjs +8 -0
  349. package/dist/engine/Output.mjs.map +1 -0
  350. package/dist/engine/RunEventSink.d.mts +2 -0
  351. package/dist/engine/RunEventSink.mjs +22 -0
  352. package/dist/engine/RunEventSink.mjs.map +1 -0
  353. package/dist/engine/RunOptions.d.mts +2 -0
  354. package/dist/engine/RunOptions.mjs +122 -0
  355. package/dist/engine/RunOptions.mjs.map +1 -0
  356. package/dist/engine/SubagentHost.d.mts +2 -0
  357. package/dist/engine/SubagentHost.mjs +72 -0
  358. package/dist/engine/SubagentHost.mjs.map +1 -0
  359. package/dist/engine/ThreadHistory.d.mts +2 -0
  360. package/dist/engine/ThreadHistory.mjs +67 -0
  361. package/dist/engine/ThreadHistory.mjs.map +1 -0
  362. package/dist/engine/ToolBroker.d.mts +2 -0
  363. package/dist/engine/ToolBroker.mjs +42 -0
  364. package/dist/engine/ToolBroker.mjs.map +1 -0
  365. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  366. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  367. package/dist/index.d.mts +88 -54
  368. package/dist/index.mjs +97 -54
  369. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  370. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  371. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  372. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  373. package/dist/sandbox/CodeExecutor.mjs +278 -0
  374. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  375. package/dist/sandbox/InteractiveBrowser.d.mts +142 -0
  376. package/dist/sandbox/InteractiveBrowser.mjs +165 -0
  377. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  378. package/dist/sandbox/PageCapture.d.mts +2 -0
  379. package/dist/sandbox/PageCapture.mjs +450 -0
  380. package/dist/sandbox/PageCapture.mjs.map +1 -0
  381. package/dist/sandbox/PageCrawl.d.mts +88 -0
  382. package/dist/sandbox/PageCrawl.mjs +124 -0
  383. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  384. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  385. package/dist/sandbox/PageScreenshot.mjs +53 -0
  386. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  387. package/dist/sandbox/ProtectedBrowser.d.mts +252 -0
  388. package/dist/sandbox/ProtectedBrowser.mjs +270 -0
  389. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  390. package/dist/sandbox/Sandbox.d.mts +2 -0
  391. package/dist/sandbox/Sandbox.mjs +208 -0
  392. package/dist/sandbox/Sandbox.mjs.map +1 -0
  393. package/dist/utf8-BYfhEkcj.mjs +11 -0
  394. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  395. package/dist/utf8-DchGZRBd.mjs +23 -0
  396. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  397. package/package.json +1 -1
  398. package/src/Ephemeral.ts +17 -0
  399. package/src/ToolExposure.ts +2 -2
  400. package/src/capabilities/Approval.ts +352 -0
  401. package/src/capabilities/Budget.ts +536 -0
  402. package/src/capabilities/CodeMode.ts +1090 -0
  403. package/src/capabilities/Commands.ts +86 -0
  404. package/src/capabilities/ContextTools.ts +184 -0
  405. package/src/capabilities/Mcp.ts +427 -0
  406. package/src/capabilities/McpClient.ts +967 -0
  407. package/src/capabilities/MemoryNotes.ts +174 -0
  408. package/src/capabilities/Messaging.ts +261 -0
  409. package/src/capabilities/ModelContext.ts +354 -0
  410. package/src/capabilities/Redaction.ts +157 -0
  411. package/src/capabilities/Remembering.ts +550 -0
  412. package/src/capabilities/RunHooks.ts +280 -0
  413. package/src/capabilities/SemanticMemory.ts +447 -0
  414. package/src/capabilities/Subagent.ts +2277 -0
  415. package/src/capabilities/SubagentReservations.ts +850 -0
  416. package/src/capabilities/ToolDiscovery.ts +339 -0
  417. package/src/capabilities/WebCapture.ts +722 -0
  418. package/src/capabilities/WebSearch.ts +184 -0
  419. package/src/capabilities/internal/subagent-background.ts +1106 -0
  420. package/src/capabilities/internal/subagent-contract.ts +142 -0
  421. package/src/capabilities/internal/subagent-policy.ts +235 -0
  422. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  423. package/src/capabilities/internal/utf8.ts +10 -0
  424. package/src/core/Agent.ts +575 -0
  425. package/src/core/AgentError.ts +152 -0
  426. package/src/core/AgentPolicy.ts +153 -0
  427. package/src/core/AgentUpdates.ts +100 -0
  428. package/src/core/IdGenerator.ts +39 -0
  429. package/src/core/Identifiers.ts +48 -0
  430. package/src/core/Memory.ts +290 -0
  431. package/src/core/MemoryNamespace.ts +196 -0
  432. package/src/core/MemoryReference.ts +121 -0
  433. package/src/core/MemoryRevalidation.ts +185 -0
  434. package/src/core/MemoryStore.ts +368 -0
  435. package/src/core/Messaging.ts +90 -0
  436. package/src/core/Receipt.ts +42 -0
  437. package/src/core/RememberingStore.ts +300 -0
  438. package/src/core/RunEvent.ts +366 -0
  439. package/src/core/RunPolicyUsage.ts +17 -0
  440. package/src/core/SemanticMemoryIndex.ts +250 -0
  441. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  442. package/src/core/SubagentContract.ts +196 -0
  443. package/src/core/Thread.ts +371 -0
  444. package/src/core/ToolExposure.ts +74 -0
  445. package/src/core/ToolResult.ts +170 -0
  446. package/src/core/Usage.ts +529 -0
  447. package/src/core/Worker.ts +173 -0
  448. package/src/core/internal/agent-updates.ts +32 -0
  449. package/src/core/internal/utf8.ts +23 -0
  450. package/src/durable/ActivityStore.ts +160 -0
  451. package/src/durable/Admin.ts +496 -0
  452. package/src/durable/AgentRegistration.ts +13 -0
  453. package/src/durable/Certification.ts +210 -0
  454. package/src/durable/CommittedActivity.ts +296 -0
  455. package/src/durable/Digest.ts +93 -0
  456. package/src/durable/DurableAgentRuntime.ts +10340 -0
  457. package/src/durable/DurableFailpoint.ts +103 -0
  458. package/src/durable/DurableFailpointTestControl.ts +39 -0
  459. package/src/durable/EventSource.ts +172 -0
  460. package/src/durable/GitHubWorkflowSource.ts +453 -0
  461. package/src/durable/MessageDelivery.ts +708 -0
  462. package/src/durable/MessageDeliveryStoreConformance.ts +363 -0
  463. package/src/durable/OperationAuthorizer.ts +85 -0
  464. package/src/durable/PersistentHistory.ts +260 -0
  465. package/src/durable/PreparedInputAdmission.ts +44 -0
  466. package/src/durable/Records.ts +1010 -0
  467. package/src/durable/Recovery.ts +1018 -0
  468. package/src/durable/RunJournal.ts +1479 -0
  469. package/src/durable/Schedule.ts +504 -0
  470. package/src/durable/ScheduleStoreConformance.ts +638 -0
  471. package/src/durable/ScheduleTransition.ts +265 -0
  472. package/src/durable/Scheduling.ts +1077 -0
  473. package/src/durable/SqlMemoryStore.ts +774 -0
  474. package/src/durable/SqlMessageDeliveryStore.ts +302 -0
  475. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  476. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  477. package/src/durable/SubmissionLedger.ts +1201 -0
  478. package/src/durable/SubmissionLedgerConformance.ts +4579 -0
  479. package/src/durable/SubmissionStatus.ts +14 -0
  480. package/src/durable/Subscription.ts +544 -0
  481. package/src/durable/SubscriptionInput.ts +144 -0
  482. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  483. package/src/durable/SubscriptionTools.ts +327 -0
  484. package/src/durable/SubscriptionTransition.ts +302 -0
  485. package/src/durable/Subscriptions.ts +1210 -0
  486. package/src/durable/ThreadContextHistory.ts +227 -0
  487. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  488. package/src/durable/ThreadInvariants.ts +442 -0
  489. package/src/durable/ThreadProjection.ts +269 -0
  490. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  491. package/src/durable/ThreadStore.ts +242 -0
  492. package/src/durable/ThreadStoreConformance.ts +710 -0
  493. package/src/durable/ToolReconciler.ts +105 -0
  494. package/src/durable/WakeScheduler.ts +134 -0
  495. package/src/durable/WorkerHost.ts +171 -0
  496. package/src/durable/internal/agent-registration.ts +525 -0
  497. package/src/durable/internal/agent-updates.ts +302 -0
  498. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  499. package/src/durable/internal/journal-checkpoint.ts +104 -0
  500. package/src/durable/internal/journal-metadata.ts +107 -0
  501. package/src/durable/internal/messaging-host.ts +608 -0
  502. package/src/durable/internal/schedule-time.ts +303 -0
  503. package/src/durable/internal/storage-v2-layout.ts +163 -0
  504. package/src/durable/internal/storage-v2.ts +73 -0
  505. package/src/durable/internal/worker-host.ts +2467 -0
  506. package/src/durable/internal/worker-runtime.ts +9 -0
  507. package/src/engine/AgentRuntime.ts +37 -0
  508. package/src/engine/Compaction.ts +11 -0
  509. package/src/engine/ContextCompactor.ts +277 -0
  510. package/src/engine/ContextHistory.ts +73 -0
  511. package/src/engine/ContextWindow.ts +72 -0
  512. package/src/engine/DurableStep.ts +132 -0
  513. package/src/engine/MessagingHost.ts +110 -0
  514. package/src/engine/Output.ts +2 -0
  515. package/src/engine/RunEventSink.ts +132 -0
  516. package/src/engine/RunOptions.ts +1077 -0
  517. package/src/engine/SubagentHost.ts +181 -0
  518. package/src/engine/ThreadHistory.ts +120 -0
  519. package/src/engine/ToolBroker.ts +157 -0
  520. package/src/engine/ToolExposure.ts +48 -0
  521. package/src/engine/internal/agent-runtime.ts +10117 -0
  522. package/src/engine/internal/bounded-value.ts +315 -0
  523. package/src/engine/internal/compaction.ts +678 -0
  524. package/src/engine/internal/error-diagnostic.ts +39 -0
  525. package/src/engine/internal/output-contract.ts +173 -0
  526. package/src/engine/internal/primitive-delta.ts +80 -0
  527. package/src/engine/internal/provider-result-staging.ts +211 -0
  528. package/src/engine/internal/tool-derivative.ts +106 -0
  529. package/src/engine/internal/tool-exposure.ts +224 -0
  530. package/src/engine/internal/tool-telemetry.ts +484 -0
  531. package/src/index.ts +96 -53
  532. package/src/sandbox/CodeExecutor.ts +352 -0
  533. package/src/sandbox/InteractiveBrowser.ts +257 -0
  534. package/src/sandbox/PageCapture.ts +692 -0
  535. package/src/sandbox/PageCrawl.ts +148 -0
  536. package/src/sandbox/PageScreenshot.ts +81 -0
  537. package/src/sandbox/ProtectedBrowser.ts +413 -0
  538. package/src/sandbox/Sandbox.ts +241 -0
  539. package/dist/Agent.d.mts +0 -5
  540. package/dist/Agent.mjs +0 -10
  541. package/dist/Agent.mjs.map +0 -1
  542. package/dist/AgentError.d.mts +0 -5
  543. package/dist/AgentError.mjs +0 -10
  544. package/dist/AgentError.mjs.map +0 -1
  545. package/dist/AgentPolicy.d.mts +0 -5
  546. package/dist/AgentPolicy.mjs +0 -10
  547. package/dist/AgentPolicy.mjs.map +0 -1
  548. package/dist/AgentRuntime.d.mts +0 -5
  549. package/dist/AgentRuntime.mjs +0 -10
  550. package/dist/AgentRuntime.mjs.map +0 -1
  551. package/dist/AgentUpdates.d.mts +0 -5
  552. package/dist/AgentUpdates.mjs +0 -10
  553. package/dist/AgentUpdates.mjs.map +0 -1
  554. package/dist/Approval.d.mts +0 -5
  555. package/dist/Approval.mjs +0 -10
  556. package/dist/Approval.mjs.map +0 -1
  557. package/dist/Budget.d.mts +0 -5
  558. package/dist/Budget.mjs +0 -10
  559. package/dist/Budget.mjs.map +0 -1
  560. package/dist/CodeMode.d.mts +0 -5
  561. package/dist/CodeMode.mjs +0 -10
  562. package/dist/CodeMode.mjs.map +0 -1
  563. package/dist/Commands.d.mts +0 -5
  564. package/dist/Commands.mjs +0 -10
  565. package/dist/Commands.mjs.map +0 -1
  566. package/dist/Compaction.d.mts +0 -5
  567. package/dist/Compaction.mjs +0 -10
  568. package/dist/Compaction.mjs.map +0 -1
  569. package/dist/ContextCompactor.d.mts +0 -5
  570. package/dist/ContextCompactor.mjs +0 -10
  571. package/dist/ContextCompactor.mjs.map +0 -1
  572. package/dist/ContextHistory.d.mts +0 -5
  573. package/dist/ContextHistory.mjs +0 -10
  574. package/dist/ContextHistory.mjs.map +0 -1
  575. package/dist/ContextTools.d.mts +0 -5
  576. package/dist/ContextTools.mjs +0 -10
  577. package/dist/ContextTools.mjs.map +0 -1
  578. package/dist/ContextWindow.d.mts +0 -5
  579. package/dist/ContextWindow.mjs +0 -10
  580. package/dist/ContextWindow.mjs.map +0 -1
  581. package/dist/DurableStep.d.mts +0 -5
  582. package/dist/DurableStep.mjs +0 -10
  583. package/dist/DurableStep.mjs.map +0 -1
  584. package/dist/EphemeralThreads.d.mts +0 -5
  585. package/dist/EphemeralThreads.mjs +0 -10
  586. package/dist/EphemeralThreads.mjs.map +0 -1
  587. package/dist/IdGenerator.d.mts +0 -5
  588. package/dist/IdGenerator.mjs +0 -10
  589. package/dist/IdGenerator.mjs.map +0 -1
  590. package/dist/Identifiers.d.mts +0 -5
  591. package/dist/Identifiers.mjs +0 -10
  592. package/dist/Identifiers.mjs.map +0 -1
  593. package/dist/Mcp.d.mts +0 -5
  594. package/dist/Mcp.mjs +0 -10
  595. package/dist/Mcp.mjs.map +0 -1
  596. package/dist/McpClient.d.mts +0 -5
  597. package/dist/McpClient.mjs +0 -10
  598. package/dist/McpClient.mjs.map +0 -1
  599. package/dist/Memory.d.mts +0 -5
  600. package/dist/Memory.mjs +0 -10
  601. package/dist/Memory.mjs.map +0 -1
  602. package/dist/MemoryNamespace.d.mts +0 -5
  603. package/dist/MemoryNamespace.mjs +0 -10
  604. package/dist/MemoryNamespace.mjs.map +0 -1
  605. package/dist/MemoryNotes.d.mts +0 -5
  606. package/dist/MemoryNotes.mjs +0 -10
  607. package/dist/MemoryNotes.mjs.map +0 -1
  608. package/dist/MemoryReference.d.mts +0 -5
  609. package/dist/MemoryReference.mjs +0 -10
  610. package/dist/MemoryReference.mjs.map +0 -1
  611. package/dist/MemoryRevalidation.d.mts +0 -5
  612. package/dist/MemoryRevalidation.mjs +0 -10
  613. package/dist/MemoryRevalidation.mjs.map +0 -1
  614. package/dist/MemoryStore.d.mts +0 -5
  615. package/dist/MemoryStore.mjs +0 -10
  616. package/dist/MemoryStore.mjs.map +0 -1
  617. package/dist/Messaging.d.mts +0 -5
  618. package/dist/Messaging.mjs +0 -10
  619. package/dist/Messaging.mjs.map +0 -1
  620. package/dist/MessagingHost.d.mts +0 -5
  621. package/dist/MessagingHost.mjs +0 -10
  622. package/dist/MessagingHost.mjs.map +0 -1
  623. package/dist/ModelContext.d.mts +0 -5
  624. package/dist/ModelContext.mjs +0 -10
  625. package/dist/ModelContext.mjs.map +0 -1
  626. package/dist/Receipt.d.mts +0 -5
  627. package/dist/Receipt.mjs +0 -10
  628. package/dist/Receipt.mjs.map +0 -1
  629. package/dist/Redaction.d.mts +0 -5
  630. package/dist/Redaction.mjs +0 -10
  631. package/dist/Redaction.mjs.map +0 -1
  632. package/dist/Remembering.d.mts +0 -5
  633. package/dist/Remembering.mjs +0 -10
  634. package/dist/Remembering.mjs.map +0 -1
  635. package/dist/RememberingStore.d.mts +0 -5
  636. package/dist/RememberingStore.mjs +0 -10
  637. package/dist/RememberingStore.mjs.map +0 -1
  638. package/dist/RunEvent.d.mts +0 -5
  639. package/dist/RunEvent.mjs +0 -10
  640. package/dist/RunEvent.mjs.map +0 -1
  641. package/dist/RunEventSink.d.mts +0 -5
  642. package/dist/RunEventSink.mjs +0 -10
  643. package/dist/RunEventSink.mjs.map +0 -1
  644. package/dist/RunHooks.d.mts +0 -5
  645. package/dist/RunHooks.mjs +0 -10
  646. package/dist/RunHooks.mjs.map +0 -1
  647. package/dist/RunOptions.d.mts +0 -5
  648. package/dist/RunOptions.mjs +0 -10
  649. package/dist/RunOptions.mjs.map +0 -1
  650. package/dist/RunPolicyUsage.d.mts +0 -5
  651. package/dist/RunPolicyUsage.mjs +0 -10
  652. package/dist/RunPolicyUsage.mjs.map +0 -1
  653. package/dist/SemanticMemory.d.mts +0 -5
  654. package/dist/SemanticMemory.mjs +0 -10
  655. package/dist/SemanticMemory.mjs.map +0 -1
  656. package/dist/SemanticMemoryIndex.d.mts +0 -5
  657. package/dist/SemanticMemoryIndex.mjs +0 -10
  658. package/dist/SemanticMemoryIndex.mjs.map +0 -1
  659. package/dist/SemanticMemoryRevalidation.d.mts +0 -5
  660. package/dist/SemanticMemoryRevalidation.mjs +0 -10
  661. package/dist/SemanticMemoryRevalidation.mjs.map +0 -1
  662. package/dist/Subagent.d.mts +0 -5
  663. package/dist/Subagent.mjs +0 -10
  664. package/dist/Subagent.mjs.map +0 -1
  665. package/dist/SubagentContract.d.mts +0 -5
  666. package/dist/SubagentContract.mjs +0 -10
  667. package/dist/SubagentContract.mjs.map +0 -1
  668. package/dist/SubagentHost.d.mts +0 -5
  669. package/dist/SubagentHost.mjs +0 -10
  670. package/dist/SubagentHost.mjs.map +0 -1
  671. package/dist/SubagentReservations.d.mts +0 -5
  672. package/dist/SubagentReservations.mjs +0 -10
  673. package/dist/SubagentReservations.mjs.map +0 -1
  674. package/dist/ThreadHistory.d.mts +0 -5
  675. package/dist/ThreadHistory.mjs +0 -10
  676. package/dist/ThreadHistory.mjs.map +0 -1
  677. package/dist/ToolBroker.d.mts +0 -5
  678. package/dist/ToolBroker.mjs +0 -10
  679. package/dist/ToolBroker.mjs.map +0 -1
  680. package/dist/ToolDiscovery.d.mts +0 -5
  681. package/dist/ToolDiscovery.mjs +0 -10
  682. package/dist/ToolDiscovery.mjs.map +0 -1
  683. package/dist/ToolResult.d.mts +0 -5
  684. package/dist/ToolResult.mjs +0 -10
  685. package/dist/ToolResult.mjs.map +0 -1
  686. package/dist/Usage.d.mts +0 -5
  687. package/dist/Usage.mjs +0 -10
  688. package/dist/Usage.mjs.map +0 -1
  689. package/dist/WebCapture.d.mts +0 -5
  690. package/dist/WebCapture.mjs +0 -10
  691. package/dist/WebCapture.mjs.map +0 -1
  692. package/dist/WebSearch.d.mts +0 -5
  693. package/dist/WebSearch.mjs +0 -10
  694. package/dist/WebSearch.mjs.map +0 -1
  695. package/dist/Worker.d.mts +0 -5
  696. package/dist/Worker.mjs +0 -10
  697. package/dist/Worker.mjs.map +0 -1
  698. package/dist/rolldown-runtime-BBjsoOtd.mjs +0 -27
  699. package/src/Agent.ts +0 -1
  700. package/src/AgentError.ts +0 -1
  701. package/src/AgentPolicy.ts +0 -1
  702. package/src/AgentRuntime.ts +0 -1
  703. package/src/AgentUpdates.ts +0 -1
  704. package/src/Approval.ts +0 -1
  705. package/src/Budget.ts +0 -1
  706. package/src/CodeMode.ts +0 -1
  707. package/src/Commands.ts +0 -1
  708. package/src/Compaction.ts +0 -1
  709. package/src/ContextCompactor.ts +0 -1
  710. package/src/ContextHistory.ts +0 -1
  711. package/src/ContextTools.ts +0 -1
  712. package/src/ContextWindow.ts +0 -1
  713. package/src/DurableStep.ts +0 -1
  714. package/src/EphemeralThreads.ts +0 -1
  715. package/src/IdGenerator.ts +0 -1
  716. package/src/Identifiers.ts +0 -1
  717. package/src/Mcp.ts +0 -1
  718. package/src/McpClient.ts +0 -1
  719. package/src/Memory.ts +0 -1
  720. package/src/MemoryNamespace.ts +0 -1
  721. package/src/MemoryNotes.ts +0 -1
  722. package/src/MemoryReference.ts +0 -1
  723. package/src/MemoryRevalidation.ts +0 -1
  724. package/src/MemoryStore.ts +0 -1
  725. package/src/Messaging.ts +0 -1
  726. package/src/MessagingHost.ts +0 -1
  727. package/src/ModelContext.ts +0 -1
  728. package/src/Receipt.ts +0 -1
  729. package/src/Redaction.ts +0 -1
  730. package/src/Remembering.ts +0 -1
  731. package/src/RememberingStore.ts +0 -1
  732. package/src/RunEvent.ts +0 -1
  733. package/src/RunEventSink.ts +0 -1
  734. package/src/RunHooks.ts +0 -1
  735. package/src/RunOptions.ts +0 -1
  736. package/src/RunPolicyUsage.ts +0 -1
  737. package/src/SemanticMemory.ts +0 -1
  738. package/src/SemanticMemoryIndex.ts +0 -1
  739. package/src/SemanticMemoryRevalidation.ts +0 -1
  740. package/src/Subagent.ts +0 -1
  741. package/src/SubagentContract.ts +0 -1
  742. package/src/SubagentHost.ts +0 -1
  743. package/src/SubagentReservations.ts +0 -1
  744. package/src/ThreadHistory.ts +0 -1
  745. package/src/ToolBroker.ts +0 -1
  746. package/src/ToolDiscovery.ts +0 -1
  747. package/src/ToolResult.ts +0 -1
  748. package/src/Usage.ts +0 -1
  749. package/src/WebCapture.ts +0 -1
  750. package/src/WebSearch.ts +0 -1
  751. package/src/Worker.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubagentContract.mjs","names":[],"sources":["../../src/core/SubagentContract.ts"],"sourcesContent":["import { Context, Schema } from \"effect\";\n\nimport { AgentId, ThreadId, DelegationId, RunId, ToolCallId, SubmissionId } from \"./Identifiers.ts\";\n\nconst Natural = Schema.Natural;\n\n/** Tree authority ceiling. Each child exposes only its own Toolkit's permitted names. */\nexport class SubagentGrant extends Schema.Class<SubagentGrant>(\n \"@effect-agent/capabilities/SubagentGrant\",\n)({\n allowedToolNames: Schema.Array(Schema.NonEmptyString).check(Schema.isMaxLength(128)),\n maxDepth: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 16 })),\n /** Omitted permits either lifetime within the depth and reserved subtree budgets. */\n childLifetimes: Schema.optionalKey(\n Schema.Array(Schema.Literals([\"attached\", \"background\"])).check(Schema.isMaxLength(2)),\n ),\n}) {}\n\n/** Intersect inherited authority; another delegation can never restore a removed capability. */\nexport const narrowSubagentGrant = (\n declared: SubagentGrant,\n inherited?: SubagentGrant,\n): SubagentGrant =>\n inherited === undefined\n ? declared\n : SubagentGrant.make({\n allowedToolNames: declared.allowedToolNames.filter((name) =>\n inherited.allowedToolNames.includes(name),\n ),\n maxDepth: Math.min(declared.maxDepth, inherited.maxDepth),\n childLifetimes: (declared.childLifetimes ?? [\"attached\", \"background\"]).filter((lifetime) =>\n (inherited.childLifetimes ?? [\"attached\", \"background\"]).includes(lifetime),\n ),\n });\n\n/** Finite delegable caps for one parent Run. Absent means not configured; present values are finite. */\nexport class SubagentDelegationCaps extends Schema.Class<SubagentDelegationCaps>(\n \"@effect-agent/capabilities/SubagentDelegationCaps\",\n)({\n maxTotalChildInvocations: Schema.optionalKey(Natural),\n maxConcurrentChildren: Schema.optionalKey(Natural),\n maxTurns: Schema.optionalKey(Natural),\n maxToolCalls: Schema.optionalKey(Natural),\n maxDurationMillis: Schema.optionalKey(Natural),\n maxInputTokens: Schema.optionalKey(Natural),\n maxOutputTokens: Schema.optionalKey(Natural),\n maxCostMicrousd: Schema.optionalKey(Natural),\n maxResultBytes: Schema.optionalKey(Natural),\n}) {}\n\nconst AmountFields = {\n turns: Natural,\n toolCalls: Natural,\n durationMillis: Natural,\n inputTokens: Natural,\n outputTokens: Natural,\n costMicrousd: Natural,\n resultBytes: Natural,\n} as const;\n\n/** Exact amounts across every reservable delegation dimension. */\nexport class SubagentReservationAmounts extends Schema.Class<SubagentReservationAmounts>(\n \"@effect-agent/capabilities/SubagentReservationAmounts\",\n)(AmountFields) {}\n\n/** One child reservation against the parent Run's shared delegation pool. */\nexport const SubagentBudgetReservation = Schema.Struct({\n caps: SubagentDelegationCaps,\n allocation: SubagentReservationAmounts,\n /** Slots reserved for every descendant input beneath this input; absent reserves none. */\n descendantInvocations: Schema.optionalKey(Natural),\n});\n\nexport type SubagentBudgetReservation = typeof SubagentBudgetReservation.Type;\n\n/** Root-relative delegation depth; the direct child of a top-level run has depth 1. */\nexport const DelegationDepth = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));\nexport type DelegationDepth = typeof DelegationDepth.Type;\n\n/** @deprecated Names are application-owned; use DelegationTool metadata for classification. */\nexport const delegationToolPrefix = \"delegate_\";\n\n/** @deprecated Checks a legacy spelling only, never execution, nesting or recovery semantics. */\nexport const isDelegationToolName = (toolName: string): boolean =>\n toolName.startsWith(delegationToolPrefix);\n\n/** Marks a Tool implementing the idempotent Subagent establishment protocol. */\nexport const DelegationTool = Context.Reference<boolean>(\"@effect-agent/core/DelegationTool\", {\n defaultValue: () => false,\n});\n\n/** Marks a host-managed idempotent worker operation, independently of its Tool name. */\nexport const WorkerOperationTool = Context.Reference<boolean>(\n \"@effect-agent/core/WorkerOperationTool\",\n {\n defaultValue: () => false,\n },\n);\n\n/** Identifies the background launch operation within a generated management Toolkit. */\nexport const BackgroundSpawnTool = Context.Reference<boolean>(\n \"@effect-agent/core/BackgroundSpawnTool\",\n {\n defaultValue: () => false,\n },\n);\n\n/** Declaration metadata and inherited authority determine the effective visible Tool set. */\nexport const isSubagentToolAllowed = (\n grant: SubagentGrant | undefined,\n depth: number,\n name: string,\n annotations: Context.Context<never>,\n): boolean =>\n grant === undefined ||\n (grant.allowedToolNames.includes(name) &&\n (Context.get(annotations, BackgroundSpawnTool)\n ? depth < grant.maxDepth &&\n (grant.childLifetimes ?? [\"attached\", \"background\"]).includes(\"background\")\n : Context.get(annotations, DelegationTool)\n ? depth < grant.maxDepth &&\n (grant.childLifetimes ?? [\"attached\", \"background\"]).includes(\"attached\")\n : true));\n\n/** Persisted preparation classification, checked against the resolved Tool before replay. */\nexport const ToolExecutionKind = Schema.Literals([\"ordinary\", \"delegation\", \"orchestration\"]);\nexport type ToolExecutionKind = typeof ToolExecutionKind.Type;\n\n/** Resolve only trusted declaration metadata; names never authorize automatic replay. */\nexport const getToolExecutionKind = (annotations: Context.Context<never>): ToolExecutionKind =>\n Context.get(annotations, WorkerOperationTool)\n ? \"orchestration\"\n : Context.get(annotations, DelegationTool)\n ? \"delegation\"\n : \"ordinary\";\n\n/** Immutable lineage from a child Thread to the parent identity that established it. */\nexport class SubagentParentLink extends Schema.Class<SubagentParentLink>(\"SubagentParentLink\")({\n delegationId: DelegationId,\n parentAgentId: AgentId,\n parentThreadId: ThreadId,\n parentRunId: RunId,\n parentToolCallId: ToolCallId,\n depth: DelegationDepth,\n}) {}\n\n/**\n * Classification of one bounded durable delegation failure.\n * `\"child-failed\"` and `\"child-aborted\"` project the\n * child's canonical failed/aborted Settlement; `\"child-compatibility\"`\n * projects the framework's `ChildCompatibilityFailure` child Settlement (the\n * stored child Binding digest was unavailable — recovery never substituted\n * current code); `\"establishment-denied\"` is a fail-closed coordinator\n * refusal (lineage/digest verification, divergent replay); and\n * `\"declaration-unavailable\"` is retained for decoding failures recorded by\n * versions that required an explicit durable digest declaration.\n */\nexport const SubagentExecutionFailureClassification = Schema.Literals([\n \"child-failed\",\n \"child-aborted\",\n \"child-compatibility\",\n \"establishment-denied\",\n \"declaration-unavailable\",\n]);\n\nexport type SubagentExecutionFailureClassification =\n typeof SubagentExecutionFailureClassification.Type;\n\nexport const maxErrorTagLength = 256;\nconst BoundedErrorTag = Schema.NonEmptyString.check(Schema.isMaxLength(maxErrorTagLength));\n\n/**\n * Bounded framework projection of a durable child failure, shared by attached joins and reports.\n * A failed or aborted durable child\n * joins its parent Tool Call as exactly this typed failure: a classification,\n * the child references, and the coordinator's bounded `{errorTag, message}`\n * projection — never a raw Cause, stack, provider response, secret, or child\n * payload. The typed child failure union does not survive a durable\n * Settlement, so `mapChildFailure` remains the ephemeral-path contract;\n * Schema-declared durable domain-failure mapping is a recorded later\n * extension.\n */\nexport class SubagentExecutionFailure extends Schema.TaggedError<SubagentExecutionFailure>()(\n \"SubagentExecutionFailure\",\n {\n delegationId: DelegationId,\n targetAgentId: AgentId,\n classification: SubagentExecutionFailureClassification,\n /** Child references, present once establishment reached a child identity. */\n childThreadId: Schema.optionalKey(ThreadId),\n childSubmissionId: Schema.optionalKey(SubmissionId),\n childRunId: Schema.optionalKey(RunId),\n errorTag: BoundedErrorTag,\n message: Schema.String.check(Schema.isMaxLength(4 * 1024)),\n },\n) {}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as ThreadError, c as ThreadLimitExceeded, d as ThreadText, i as ThreadEncodingError, l as ThreadMessage, m as toPrompt, n as Thread, o as ThreadExport, p as layerMemory, r as ThreadAppend, s as ThreadHistoryDiverged, t as Store, u as ThreadNotFound } from "../Thread-DOBQ0QUY.mjs";
2
+ export { Store, Thread, ThreadAppend, ThreadEncodingError, ThreadError, ThreadExport, ThreadHistoryDiverged, ThreadLimitExceeded, ThreadMessage, ThreadNotFound, ThreadText, layerMemory, toPrompt };
@@ -0,0 +1,250 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { n as utf8ByteLength } from "../utf8-DchGZRBd.mjs";
3
+ import { RunId, ThreadId } from "./Identifiers.mjs";
4
+ import { Prompt } from "effect/unstable/ai";
5
+ import { Clock, Context, DateTime, Effect, Layer, Schema, SynchronizedRef } from "effect";
6
+ //#region src/core/Thread.ts
7
+ var Thread_exports = /* @__PURE__ */ __exportAll({
8
+ Store: () => Store,
9
+ Thread: () => Thread,
10
+ ThreadAppend: () => ThreadAppend,
11
+ ThreadEncodingError: () => ThreadEncodingError,
12
+ ThreadExport: () => ThreadExport,
13
+ ThreadHistoryDiverged: () => ThreadHistoryDiverged,
14
+ ThreadLimitExceeded: () => ThreadLimitExceeded,
15
+ ThreadMessage: () => ThreadMessage,
16
+ ThreadNotFound: () => ThreadNotFound,
17
+ ThreadText: () => ThreadText,
18
+ layerMemory: () => layerMemory,
19
+ toPrompt: () => toPrompt
20
+ });
21
+ /** Bound applied to one text projection before it can enter a model context. */
22
+ const ThreadText = Schema.String.check(Schema.isMaxLength(65536));
23
+ const MAX_THREAD_MESSAGES = 1024;
24
+ const MAX_THREAD_CONTENT_BYTES = 4194304;
25
+ const MAX_THREADS = 256;
26
+ const MAX_STORE_CONTENT_BYTES = 67108864;
27
+ /** One append-only native Effect AI message in a conversation. */
28
+ var ThreadMessage = class extends Schema.Class("@effect-agent/capabilities/ThreadMessage")({
29
+ threadId: ThreadId,
30
+ sequence: Schema.Natural,
31
+ runId: Schema.optionalKey(RunId),
32
+ message: Prompt.Message,
33
+ encodedBytes: Schema.Natural.check(Schema.isLessThanOrEqualTo(MAX_THREAD_CONTENT_BYTES)),
34
+ timestamp: Schema.DateTimeUtcFromString
35
+ }) {};
36
+ /** An identified, ordered conversation snapshot. Storage and execution recovery are separate concerns. */
37
+ var Thread = class extends Schema.Class("@effect-agent/capabilities/ThreadSnapshot")({
38
+ version: Schema.Literal(1),
39
+ threadId: ThreadId,
40
+ nextSequence: Schema.Natural,
41
+ contentBytes: Schema.Natural.check(Schema.isLessThanOrEqualTo(MAX_THREAD_CONTENT_BYTES)),
42
+ messages: Schema.Array(ThreadMessage).check(Schema.isMaxLength(MAX_THREAD_MESSAGES))
43
+ }) {};
44
+ /** Portable conversation snapshot. Its format is independent of the durable execution journal. */
45
+ var ThreadExport = class extends Schema.Class("@effect-agent/capabilities/ThreadExport")({
46
+ format: Schema.Literal("effect-agent/ephemeral-thread@1"),
47
+ exportedAt: Schema.DateTimeUtcFromString,
48
+ snapshot: Thread
49
+ }) {};
50
+ /** Native message accepted by the append-only thread. */
51
+ var ThreadAppend = class extends Schema.Class("@effect-agent/capabilities/ThreadAppend")({
52
+ runId: Schema.optionalKey(RunId),
53
+ message: Prompt.Message
54
+ }) {};
55
+ /** The requested Thread has not been created in this store. */
56
+ var ThreadNotFound = class extends Schema.TaggedError()("ThreadNotFound", { threadId: ThreadId }) {};
57
+ /** A process-local Thread store reached an explicit count or encoded-content bound. */
58
+ var ThreadLimitExceeded = class extends Schema.TaggedError()("ThreadLimitExceeded", {
59
+ threadId: ThreadId,
60
+ limit: Schema.Literals([
61
+ "messages",
62
+ "content-bytes",
63
+ "threads",
64
+ "store-content-bytes"
65
+ ]),
66
+ limitValue: Schema.Natural,
67
+ observedValue: Schema.Natural
68
+ }) {};
69
+ /** Engine history was not an append-only extension of the official snapshot. */
70
+ var ThreadHistoryDiverged = class extends Schema.TaggedError()("ThreadHistoryDiverged", {
71
+ threadId: ThreadId,
72
+ message: Schema.String
73
+ }) {};
74
+ /** Native Prompt encoding failed before a bounded state mutation. */
75
+ var ThreadEncodingError = class extends Schema.TaggedError()("ThreadEncodingError", {
76
+ threadId: ThreadId,
77
+ message: Schema.String
78
+ }) {};
79
+ /** Reconstruct exact Effect AI Prompt history, including tools, reasoning, files, and options. */
80
+ const toPrompt = (snapshot) => Prompt.fromMessages(snapshot.messages.map((entry) => entry.message));
81
+ /**
82
+ * Process-local state for conversation history. Updates remain visible even
83
+ * when a Run later fails; this service has no successful-Run commit boundary or durable recovery.
84
+ * ThreadHistory.layer uses this store for ordinary Runs and interactive history.
85
+ * Scope closure releases all in-memory state.
86
+ */
87
+ var Store = class extends Context.Service()("@effect-agent/capabilities/EphemeralThreads") {};
88
+ const encodeMessage = (threadId, message) => Schema.encodeEffect(Prompt.Message)(message).pipe(Effect.map((encoded) => JSON.stringify(encoded)), Effect.mapError((error) => ThreadEncodingError.make({
89
+ threadId,
90
+ message: `Could not encode native Effect AI message: ${error.message}`
91
+ })));
92
+ const findSnapshot = (state, threadId) => {
93
+ const snapshot = state.get(threadId);
94
+ return snapshot === void 0 ? Effect.fail(ThreadNotFound.make({ threadId })) : Effect.succeed(snapshot);
95
+ };
96
+ const totalStoreBytes = (threads) => {
97
+ let total = 0;
98
+ for (const snapshot of threads.values()) total += snapshot.contentBytes;
99
+ return total;
100
+ };
101
+ const appendEncoded = Effect.fn("Thread.Store.appendEncoded")(function* (threads, current, append, encoded, timestamp) {
102
+ const threadId = current.threadId;
103
+ if (current.messages.length >= MAX_THREAD_MESSAGES) return yield* ThreadLimitExceeded.make({
104
+ threadId,
105
+ limit: "messages",
106
+ limitValue: MAX_THREAD_MESSAGES,
107
+ observedValue: current.messages.length + 1
108
+ });
109
+ const messageBytes = utf8ByteLength(encoded);
110
+ const contentBytes = current.contentBytes + messageBytes;
111
+ if (contentBytes > MAX_THREAD_CONTENT_BYTES) return yield* ThreadLimitExceeded.make({
112
+ threadId,
113
+ limit: "content-bytes",
114
+ limitValue: MAX_THREAD_CONTENT_BYTES,
115
+ observedValue: contentBytes
116
+ });
117
+ const storeBytes = totalStoreBytes(threads) + messageBytes;
118
+ if (storeBytes > MAX_STORE_CONTENT_BYTES) return yield* ThreadLimitExceeded.make({
119
+ threadId,
120
+ limit: "store-content-bytes",
121
+ limitValue: MAX_STORE_CONTENT_BYTES,
122
+ observedValue: storeBytes
123
+ });
124
+ const message = ThreadMessage.make({
125
+ threadId,
126
+ sequence: current.nextSequence,
127
+ ...append.runId === void 0 ? {} : { runId: append.runId },
128
+ message: append.message,
129
+ encodedBytes: messageBytes,
130
+ timestamp
131
+ });
132
+ const next = Thread.make({
133
+ version: current.version,
134
+ threadId: current.threadId,
135
+ nextSequence: current.nextSequence + 1,
136
+ contentBytes,
137
+ messages: [...current.messages, message]
138
+ });
139
+ return [next, new Map(threads).set(threadId, next)];
140
+ });
141
+ /** In-memory storage shared for the consumer's Scope; it does not survive process loss. */
142
+ const layerMemory = Layer.effect(Store, Effect.gen(function* () {
143
+ const state = yield* SynchronizedRef.make(/* @__PURE__ */ new Map());
144
+ yield* Effect.addFinalizer(() => SynchronizedRef.set(state, /* @__PURE__ */ new Map()));
145
+ return Store.of({
146
+ create: (threadId) => SynchronizedRef.modifyEffect(state, Effect.fn(function* (threads) {
147
+ const existing = threads.get(threadId);
148
+ if (existing !== void 0) return [existing, threads];
149
+ if (threads.size >= MAX_THREADS) return yield* ThreadLimitExceeded.make({
150
+ threadId,
151
+ limit: "threads",
152
+ limitValue: MAX_THREADS,
153
+ observedValue: threads.size + 1
154
+ });
155
+ const created = Thread.make({
156
+ version: 1,
157
+ threadId,
158
+ nextSequence: 0,
159
+ contentBytes: 0,
160
+ messages: []
161
+ });
162
+ return [created, new Map(threads).set(threadId, created)];
163
+ })),
164
+ append: Effect.fn("Thread.Store.append")(function* (threadId, message) {
165
+ const encoded = yield* encodeMessage(threadId, message.message);
166
+ const timestamp = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
167
+ return yield* SynchronizedRef.modifyEffect(state, Effect.fn(function* (threads) {
168
+ const current = yield* findSnapshot(threads, threadId);
169
+ return yield* appendEncoded(threads, current, message, encoded, timestamp);
170
+ }));
171
+ }),
172
+ recordHistory: Effect.fn("Thread.Store.recordHistory")(function* (threadId, historyRunId, history) {
173
+ const incoming = yield* Effect.forEach(history.content, (message) => encodeMessage(threadId, message).pipe(Effect.map((encoded) => ({
174
+ message,
175
+ encoded
176
+ }))));
177
+ return yield* SynchronizedRef.modifyEffect(state, Effect.fn(function* (threads) {
178
+ const current = yield* findSnapshot(threads, threadId);
179
+ const currentEncoded = yield* Effect.forEach(current.messages, (entry) => encodeMessage(threadId, entry.message));
180
+ if (incoming.length < currentEncoded.length || currentEncoded.some((encoded, index) => encoded !== incoming[index]?.encoded)) return yield* ThreadHistoryDiverged.make({
181
+ threadId,
182
+ message: "Engine history is not an append-only extension of official history"
183
+ });
184
+ const timestamp = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));
185
+ if (incoming.length === currentEncoded.length) return [current, threads];
186
+ const messages = [...current.messages];
187
+ let contentBytes = current.contentBytes;
188
+ let storeBytes = totalStoreBytes(threads);
189
+ let nextSequence = current.nextSequence;
190
+ for (const entry of incoming.slice(currentEncoded.length)) {
191
+ const append = ThreadAppend.make({
192
+ runId: historyRunId,
193
+ message: entry.message
194
+ });
195
+ if (messages.length >= MAX_THREAD_MESSAGES) return yield* ThreadLimitExceeded.make({
196
+ threadId,
197
+ limit: "messages",
198
+ limitValue: MAX_THREAD_MESSAGES,
199
+ observedValue: messages.length + 1
200
+ });
201
+ const messageBytes = utf8ByteLength(entry.encoded);
202
+ contentBytes += messageBytes;
203
+ if (contentBytes > MAX_THREAD_CONTENT_BYTES) return yield* ThreadLimitExceeded.make({
204
+ threadId,
205
+ limit: "content-bytes",
206
+ limitValue: MAX_THREAD_CONTENT_BYTES,
207
+ observedValue: contentBytes
208
+ });
209
+ storeBytes += messageBytes;
210
+ if (storeBytes > MAX_STORE_CONTENT_BYTES) return yield* ThreadLimitExceeded.make({
211
+ threadId,
212
+ limit: "store-content-bytes",
213
+ limitValue: MAX_STORE_CONTENT_BYTES,
214
+ observedValue: storeBytes
215
+ });
216
+ messages.push(ThreadMessage.make({
217
+ threadId,
218
+ sequence: nextSequence,
219
+ ...append.runId === void 0 ? {} : { runId: append.runId },
220
+ message: append.message,
221
+ encodedBytes: messageBytes,
222
+ timestamp
223
+ }));
224
+ nextSequence += 1;
225
+ }
226
+ const snapshot = Thread.make({
227
+ version: current.version,
228
+ threadId,
229
+ nextSequence,
230
+ contentBytes,
231
+ messages
232
+ });
233
+ return [snapshot, new Map(threads).set(threadId, snapshot)];
234
+ }));
235
+ }),
236
+ snapshot: (threadId) => SynchronizedRef.get(state).pipe(Effect.flatMap((all) => findSnapshot(all, threadId))),
237
+ export: (threadId) => Effect.gen(function* () {
238
+ const snapshot = yield* findSnapshot(yield* SynchronizedRef.get(state), threadId);
239
+ return ThreadExport.make({
240
+ format: "effect-agent/ephemeral-thread@1",
241
+ exportedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),
242
+ snapshot
243
+ });
244
+ })
245
+ });
246
+ }));
247
+ //#endregion
248
+ export { Store, Thread, ThreadAppend, ThreadEncodingError, ThreadExport, ThreadHistoryDiverged, ThreadLimitExceeded, ThreadMessage, ThreadNotFound, ThreadText, layerMemory, Thread_exports as t, toPrompt };
249
+
250
+ //# sourceMappingURL=Thread.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Thread.mjs","names":[],"sources":["../../src/core/Thread.ts"],"sourcesContent":["import { Clock, Context, DateTime, Effect, Layer, Schema, SynchronizedRef } from \"effect\";\nimport { Prompt } from \"effect/unstable/ai\";\n\nimport { ThreadId, RunId } from \"./Identifiers.ts\";\nimport { utf8ByteLength } from \"./internal/utf8.ts\";\n\n/** Bound applied to one text projection before it can enter a model context. */\nexport const ThreadText = Schema.String.check(Schema.isMaxLength(64 * 1024));\nconst MAX_THREAD_MESSAGES = 1_024;\nconst MAX_THREAD_CONTENT_BYTES = 4 * 1024 * 1024;\nconst MAX_THREADS = 256;\nconst MAX_STORE_CONTENT_BYTES = 64 * 1024 * 1024;\n\n/** One append-only native Effect AI message in a conversation. */\nexport class ThreadMessage extends Schema.Class<ThreadMessage>(\n \"@effect-agent/capabilities/ThreadMessage\",\n)({\n threadId: ThreadId,\n sequence: Schema.Natural,\n runId: Schema.optionalKey(RunId),\n message: Prompt.Message,\n encodedBytes: Schema.Natural.check(Schema.isLessThanOrEqualTo(MAX_THREAD_CONTENT_BYTES)),\n timestamp: Schema.DateTimeUtcFromString,\n}) {}\n\n/** An identified, ordered conversation snapshot. Storage and execution recovery are separate concerns. */\nexport class Thread extends Schema.Class<Thread>(\"@effect-agent/capabilities/ThreadSnapshot\")({\n version: Schema.Literal(1),\n threadId: ThreadId,\n nextSequence: Schema.Natural,\n contentBytes: Schema.Natural.check(Schema.isLessThanOrEqualTo(MAX_THREAD_CONTENT_BYTES)),\n messages: Schema.Array(ThreadMessage).check(Schema.isMaxLength(MAX_THREAD_MESSAGES)),\n}) {}\n\n/** Portable conversation snapshot. Its format is independent of the durable execution journal. */\nexport class ThreadExport extends Schema.Class<ThreadExport>(\n \"@effect-agent/capabilities/ThreadExport\",\n)({\n format: Schema.Literal(\"effect-agent/ephemeral-thread@1\"),\n exportedAt: Schema.DateTimeUtcFromString,\n snapshot: Thread,\n}) {}\n\n/** Native message accepted by the append-only thread. */\nexport class ThreadAppend extends Schema.Class<ThreadAppend>(\n \"@effect-agent/capabilities/ThreadAppend\",\n)({\n runId: Schema.optionalKey(RunId),\n message: Prompt.Message,\n}) {}\n\n/** The requested Thread has not been created in this store. */\nexport class ThreadNotFound extends Schema.TaggedError<ThreadNotFound>()(\"ThreadNotFound\", {\n threadId: ThreadId,\n}) {}\n\n/** A process-local Thread store reached an explicit count or encoded-content bound. */\nexport class ThreadLimitExceeded extends Schema.TaggedError<ThreadLimitExceeded>()(\n \"ThreadLimitExceeded\",\n {\n threadId: ThreadId,\n limit: Schema.Literals([\"messages\", \"content-bytes\", \"threads\", \"store-content-bytes\"]),\n limitValue: Schema.Natural,\n observedValue: Schema.Natural,\n },\n) {}\n\n/** Engine history was not an append-only extension of the official snapshot. */\nexport class ThreadHistoryDiverged extends Schema.TaggedError<ThreadHistoryDiverged>()(\n \"ThreadHistoryDiverged\",\n { threadId: ThreadId, message: Schema.String },\n) {}\n\n/** Native Prompt encoding failed before a bounded state mutation. */\nexport class ThreadEncodingError extends Schema.TaggedError<ThreadEncodingError>()(\n \"ThreadEncodingError\",\n { threadId: ThreadId, message: Schema.String },\n) {}\n\nexport type ThreadError =\n | ThreadNotFound\n | ThreadLimitExceeded\n | ThreadHistoryDiverged\n | ThreadEncodingError;\n\n/** Reconstruct exact Effect AI Prompt history, including tools, reasoning, files, and options. */\nexport const toPrompt = (snapshot: Thread): Prompt.Prompt =>\n Prompt.fromMessages(snapshot.messages.map((entry) => entry.message));\n\n/**\n * Process-local state for conversation history. Updates remain visible even\n * when a Run later fails; this service has no successful-Run commit boundary or durable recovery.\n * ThreadHistory.layer uses this store for ordinary Runs and interactive history.\n * Scope closure releases all in-memory state.\n */\nexport class Store extends Context.Service<\n Store,\n {\n readonly create: (threadId: ThreadId) => Effect.Effect<Thread, ThreadLimitExceeded>;\n readonly append: (\n threadId: ThreadId,\n message: ThreadAppend,\n ) => Effect.Effect<Thread, ThreadNotFound | ThreadLimitExceeded | ThreadEncodingError>;\n /**\n * Record an engine-emitted full history only when it is an append-only\n * extension of the exact official Prompt already stored. The entire\n * suffix commits in one transaction or not at all: concurrent writers are\n * serialized, a writer whose history no longer extends the committed\n * official history fails with ThreadHistoryDiverged, and a limit\n * failure inside the suffix records nothing. Earlier updates remain committed if the Run\n * later fails or is interrupted; this transaction covers one update, not the whole Run.\n */\n readonly recordHistory: (\n threadId: ThreadId,\n runId: RunId,\n history: Prompt.Prompt,\n ) => Effect.Effect<Thread, ThreadError>;\n readonly snapshot: (threadId: ThreadId) => Effect.Effect<Thread, ThreadNotFound>;\n readonly export: (threadId: ThreadId) => Effect.Effect<ThreadExport, ThreadNotFound>;\n }\n>()(\"@effect-agent/capabilities/EphemeralThreads\") {}\n\nconst encodeMessage = (\n threadId: ThreadId,\n message: Prompt.Message,\n): Effect.Effect<string, ThreadEncodingError> =>\n Schema.encodeEffect(Prompt.Message)(message).pipe(\n Effect.map((encoded) => JSON.stringify(encoded)),\n Effect.mapError((error) =>\n ThreadEncodingError.make({\n threadId,\n message: `Could not encode native Effect AI message: ${error.message}`,\n }),\n ),\n );\n\nconst findSnapshot = (\n state: ReadonlyMap<ThreadId, Thread>,\n threadId: ThreadId,\n): Effect.Effect<Thread, ThreadNotFound> => {\n const snapshot = state.get(threadId);\n\n return snapshot === undefined\n ? Effect.fail(ThreadNotFound.make({ threadId }))\n : Effect.succeed(snapshot);\n};\n\nconst totalStoreBytes = (threads: ReadonlyMap<ThreadId, Thread>): number => {\n let total = 0;\n\n for (const snapshot of threads.values()) total += snapshot.contentBytes;\n\n return total;\n};\n\nconst appendEncoded = Effect.fn(\"Thread.Store.appendEncoded\")(function* (\n threads: ReadonlyMap<ThreadId, Thread>,\n current: Thread,\n append: ThreadAppend,\n encoded: string,\n timestamp: DateTime.Utc,\n) {\n const threadId = current.threadId;\n\n if (current.messages.length >= MAX_THREAD_MESSAGES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"messages\",\n limitValue: MAX_THREAD_MESSAGES,\n observedValue: current.messages.length + 1,\n });\n }\n const messageBytes = utf8ByteLength(encoded);\n const contentBytes = current.contentBytes + messageBytes;\n\n if (contentBytes > MAX_THREAD_CONTENT_BYTES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"content-bytes\",\n limitValue: MAX_THREAD_CONTENT_BYTES,\n observedValue: contentBytes,\n });\n }\n const storeBytes = totalStoreBytes(threads) + messageBytes;\n\n if (storeBytes > MAX_STORE_CONTENT_BYTES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"store-content-bytes\",\n limitValue: MAX_STORE_CONTENT_BYTES,\n observedValue: storeBytes,\n });\n }\n\n const message = ThreadMessage.make({\n threadId,\n sequence: current.nextSequence,\n ...(append.runId === undefined ? {} : { runId: append.runId }),\n message: append.message,\n encodedBytes: messageBytes,\n timestamp,\n });\n\n const next = Thread.make({\n version: current.version,\n threadId: current.threadId,\n nextSequence: current.nextSequence + 1,\n contentBytes,\n messages: [...current.messages, message],\n });\n\n return [next, new Map(threads).set(threadId, next)] as const;\n});\n\n/** In-memory storage shared for the consumer's Scope; it does not survive process loss. */\nexport const layerMemory = Layer.effect(\n Store,\n Effect.gen(function* () {\n const state = yield* SynchronizedRef.make<ReadonlyMap<ThreadId, Thread>>(new Map());\n\n yield* Effect.addFinalizer(() => SynchronizedRef.set(state, new Map()));\n\n return Store.of({\n create: (threadId) =>\n SynchronizedRef.modifyEffect(\n state,\n Effect.fn(function* (threads) {\n const existing = threads.get(threadId);\n\n if (existing !== undefined) return [existing, threads] as const;\n if (threads.size >= MAX_THREADS) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"threads\",\n limitValue: MAX_THREADS,\n observedValue: threads.size + 1,\n });\n }\n\n const created = Thread.make({\n version: 1,\n threadId,\n nextSequence: 0,\n contentBytes: 0,\n messages: [],\n });\n\n return [created, new Map(threads).set(threadId, created)] as const;\n }),\n ),\n append: Effect.fn(\"Thread.Store.append\")(function* (threadId, message) {\n const encoded = yield* encodeMessage(threadId, message.message);\n const timestamp = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n return yield* SynchronizedRef.modifyEffect(\n state,\n Effect.fn(function* (threads) {\n const current = yield* findSnapshot(threads, threadId);\n\n return yield* appendEncoded(threads, current, message, encoded, timestamp);\n }),\n );\n }),\n recordHistory: Effect.fn(\"Thread.Store.recordHistory\")(\n function* (threadId, historyRunId, history) {\n const incoming = yield* Effect.forEach(history.content, (message) =>\n encodeMessage(threadId, message).pipe(Effect.map((encoded) => ({ message, encoded }))),\n );\n\n // Publish the complete suffix only after verification and every bounded append succeed.\n return yield* SynchronizedRef.modifyEffect(\n state,\n Effect.fn(function* (threads) {\n const current = yield* findSnapshot(threads, threadId);\n\n const currentEncoded = yield* Effect.forEach(current.messages, (entry) =>\n encodeMessage(threadId, entry.message),\n );\n\n if (\n incoming.length < currentEncoded.length ||\n currentEncoded.some((encoded, index) => encoded !== incoming[index]?.encoded)\n ) {\n return yield* ThreadHistoryDiverged.make({\n threadId,\n message: \"Engine history is not an append-only extension of official history\",\n });\n }\n const timestamp = DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis));\n\n if (incoming.length === currentEncoded.length) return [current, threads] as const;\n\n const messages = [...current.messages];\n let contentBytes = current.contentBytes;\n let storeBytes = totalStoreBytes(threads);\n let nextSequence = current.nextSequence;\n\n for (const entry of incoming.slice(currentEncoded.length)) {\n const append = ThreadAppend.make({ runId: historyRunId, message: entry.message });\n\n // Preserve append's first failing bound and observed value without publishing\n // intermediate snapshots or rescanning the store for each suffix message.\n if (messages.length >= MAX_THREAD_MESSAGES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"messages\",\n limitValue: MAX_THREAD_MESSAGES,\n observedValue: messages.length + 1,\n });\n }\n const messageBytes = utf8ByteLength(entry.encoded);\n\n contentBytes += messageBytes;\n if (contentBytes > MAX_THREAD_CONTENT_BYTES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"content-bytes\",\n limitValue: MAX_THREAD_CONTENT_BYTES,\n observedValue: contentBytes,\n });\n }\n storeBytes += messageBytes;\n if (storeBytes > MAX_STORE_CONTENT_BYTES) {\n return yield* ThreadLimitExceeded.make({\n threadId,\n limit: \"store-content-bytes\",\n limitValue: MAX_STORE_CONTENT_BYTES,\n observedValue: storeBytes,\n });\n }\n messages.push(\n ThreadMessage.make({\n threadId,\n sequence: nextSequence,\n ...(append.runId === undefined ? {} : { runId: append.runId }),\n message: append.message,\n encodedBytes: messageBytes,\n timestamp,\n }),\n );\n nextSequence += 1;\n }\n\n const snapshot = Thread.make({\n version: current.version,\n threadId,\n nextSequence,\n contentBytes,\n messages,\n });\n\n return [snapshot, new Map(threads).set(threadId, snapshot)] as const;\n }),\n );\n },\n ),\n snapshot: (threadId) =>\n SynchronizedRef.get(state).pipe(Effect.flatMap((all) => findSnapshot(all, threadId))),\n export: (threadId) =>\n Effect.gen(function* () {\n const snapshot = yield* findSnapshot(yield* SynchronizedRef.get(state), threadId);\n\n return ThreadExport.make({\n format: \"effect-agent/ephemeral-thread@1\",\n exportedAt: DateTime.toUtc(DateTime.makeUnsafe(yield* Clock.currentTimeMillis)),\n snapshot,\n });\n }),\n });\n }),\n);\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { a as applyToolResultBounds, i as UnserializableToolResult, o as unserializableToolResult, r as TruncatedToolResult, t as ToolResultBounds } from "../ToolResult-DmmgoChv.mjs";
2
+ export { ToolResultBounds, TruncatedToolResult, UnserializableToolResult, applyToolResultBounds, unserializableToolResult };
@@ -0,0 +1,140 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { n as utf8ByteLength, t as codePointUtf8Length } from "../utf8-DchGZRBd.mjs";
3
+ import * as Schema from "effect/Schema";
4
+ //#region src/core/ToolResult.ts
5
+ var ToolResult_exports = /* @__PURE__ */ __exportAll({
6
+ ToolResultBounds: () => ToolResultBounds,
7
+ TruncatedToolResult: () => TruncatedToolResult,
8
+ UnserializableToolResult: () => UnserializableToolResult,
9
+ applyToolResultBounds: () => applyToolResultBounds,
10
+ unserializableToolResult: () => unserializableToolResult
11
+ });
12
+ /**
13
+ * The minimal `TruncatedToolResult` envelope (empty head/tail, a 16-digit
14
+ * `originalBytes`) encodes to at most 81 UTF-8 bytes; 256 guarantees every
15
+ * accepted bound fits the envelope plus some real content, so the bound is a
16
+ * hard resource guard rather than a best-effort one.
17
+ */
18
+ const ENVELOPE_FLOOR_BYTES = 256;
19
+ /** Byte bound applied to one encoded application Tool result before it enters history. */
20
+ var ToolResultBounds = class extends Schema.Class("ToolResultBounds")({ maxBytes: Schema.Int.check(Schema.isGreaterThanOrEqualTo(ENVELOPE_FLOOR_BYTES)) }) {};
21
+ /**
22
+ * Canonical envelope replacing an encoded Tool result that exceeded its
23
+ * policy bounds. `head` and `tail` are an exact prefix and suffix of the
24
+ * original encoded JSON text; the middle is dropped, never paraphrased.
25
+ */
26
+ var TruncatedToolResult = class extends Schema.Class("TruncatedToolResult")({
27
+ truncatedToolResult: Schema.Literal(true),
28
+ originalBytes: Schema.Natural,
29
+ head: Schema.String,
30
+ tail: Schema.String
31
+ }) {};
32
+ /**
33
+ * Canonical fail-closed sentinel replacing an encoded Tool result that could
34
+ * not be JSON-serialized at all (cyclic value, BigInt, `undefined`, throwing
35
+ * `toJSON`). The original value never enters history or durable records —
36
+ * an unserializable value is unbounded by construction, so the bound seam
37
+ * replaces it wholesale rather than passing it through (runtime spec §9).
38
+ */
39
+ var UnserializableToolResult = class extends Schema.Class("UnserializableToolResult")({
40
+ unserializableToolResult: Schema.Literal(true),
41
+ reason: Schema.String.check(Schema.isMaxLength(256))
42
+ }) {};
43
+ /**
44
+ * Build the encoded sentinel for a serialization failure. Total by
45
+ * construction — the cause is untrusted (a hostile `toString` or an
46
+ * accessor-backed `Error.message` can itself throw on this last-resort
47
+ * path) — and byte-bound: the complete encoded sentinel stays within the
48
+ * 256-byte `ToolResultBounds` schema floor, so it fits every accepted
49
+ * policy without the caller re-applying bounds.
50
+ */
51
+ const unserializableToolResult = (cause) => {
52
+ let reason;
53
+ try {
54
+ const message = cause instanceof Error ? cause.message : cause;
55
+ reason = typeof message === "string" ? message : String(message);
56
+ } catch {
57
+ reason = "unserializable value";
58
+ }
59
+ const build = (clipped) => Schema.encodeSync(UnserializableToolResult)(UnserializableToolResult.make({
60
+ unserializableToolResult: true,
61
+ reason: clipped
62
+ }));
63
+ let clipped = takePrefixWithinBytes(reason, 128);
64
+ let sentinel = build(clipped);
65
+ while (clipped.length > 0 && utf8ByteLength(JSON.stringify(sentinel)) > 256) {
66
+ const last = clipped.codePointAt(clipped.length - 1);
67
+ clipped = clipped.slice(0, clipped.length - (last !== void 0 && last > 65535 ? 2 : 1));
68
+ sentinel = build(clipped);
69
+ }
70
+ return sentinel;
71
+ };
72
+ const takePrefixWithinBytes = (value, maxBytes) => {
73
+ let bytes = 0;
74
+ let index = 0;
75
+ while (index < value.length) {
76
+ const codePoint = value.codePointAt(index) ?? 0;
77
+ const width = codePointUtf8Length(codePoint);
78
+ if (bytes + width > maxBytes) break;
79
+ bytes += width;
80
+ index += codePoint > 65535 ? 2 : 1;
81
+ }
82
+ return value.slice(0, index);
83
+ };
84
+ const takeSuffixWithinBytes = (value, maxBytes) => {
85
+ let bytes = 0;
86
+ let index = value.length;
87
+ while (index > 0) {
88
+ const unit = value.charCodeAt(index - 1);
89
+ const pairStart = unit >= 56320 && unit <= 57343 && index >= 2 ? index - 2 : index - 1;
90
+ const codePoint = value.codePointAt(pairStart) ?? 0;
91
+ const width = codePointUtf8Length(codePoint);
92
+ if (bytes + width > maxBytes) break;
93
+ bytes += width;
94
+ index = pairStart;
95
+ }
96
+ return value.slice(index);
97
+ };
98
+ /**
99
+ * Bound one encoded Tool result to `bounds.maxBytes` UTF-8 bytes.
100
+ *
101
+ * Within bounds the input is returned unchanged. Over bounds the result is
102
+ * the JSON-encoded `TruncatedToolResult` envelope preserving an exact prefix
103
+ * and suffix of the input, split ~50/50 across the byte budget left after
104
+ * the envelope's own overhead and shrunk deterministically until the encoded
105
+ * envelope itself fits. Slicing never splits a UTF-16 surrogate pair, so the
106
+ * envelope always re-encodes as valid JSON.
107
+ *
108
+ * The Schema-level 256-byte floor on `ToolResultBounds.maxBytes` guarantees
109
+ * every accepted bound fits the minimal envelope (at most 81 bytes), so the
110
+ * returned value never exceeds `maxBytes` for a decodable bound. The
111
+ * minimal-envelope fallback below survives purely as defense in depth.
112
+ */
113
+ const applyToolResultBounds = (encodedJson, bounds) => {
114
+ const originalBytes = utf8ByteLength(encodedJson);
115
+ if (originalBytes <= bounds.maxBytes) return encodedJson;
116
+ const render = (head, tail) => JSON.stringify(Schema.encodeSync(TruncatedToolResult)(TruncatedToolResult.make({
117
+ truncatedToolResult: true,
118
+ originalBytes,
119
+ head,
120
+ tail
121
+ })));
122
+ const minimal = render("", "");
123
+ const contentBudget = bounds.maxBytes - utf8ByteLength(minimal);
124
+ if (contentBudget <= 0) return minimal;
125
+ let headBudget = Math.floor(contentBudget / 2);
126
+ let tailBudget = contentBudget - headBudget;
127
+ for (;;) {
128
+ const output = render(takePrefixWithinBytes(encodedJson, headBudget), takeSuffixWithinBytes(encodedJson, tailBudget));
129
+ const outputBytes = utf8ByteLength(output);
130
+ if (outputBytes <= bounds.maxBytes) return output;
131
+ if (headBudget === 0 && tailBudget === 0) return minimal;
132
+ const shrink = Math.max(1, Math.ceil((outputBytes - bounds.maxBytes) / 2));
133
+ headBudget = Math.max(0, headBudget - shrink);
134
+ tailBudget = Math.max(0, tailBudget - shrink);
135
+ }
136
+ };
137
+ //#endregion
138
+ export { ToolResultBounds, TruncatedToolResult, UnserializableToolResult, applyToolResultBounds, ToolResult_exports as t, unserializableToolResult };
139
+
140
+ //# sourceMappingURL=ToolResult.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolResult.mjs","names":[],"sources":["../../src/core/ToolResult.ts"],"sourcesContent":["import * as Schema from \"effect/Schema\";\n\nimport { codePointUtf8Length, utf8ByteLength } from \"./internal/utf8.ts\";\n\n/**\n * The minimal `TruncatedToolResult` envelope (empty head/tail, a 16-digit\n * `originalBytes`) encodes to at most 81 UTF-8 bytes; 256 guarantees every\n * accepted bound fits the envelope plus some real content, so the bound is a\n * hard resource guard rather than a best-effort one.\n */\nconst ENVELOPE_FLOOR_BYTES = 256;\n\n/** Byte bound applied to one encoded application Tool result before it enters history. */\nexport class ToolResultBounds extends Schema.Class<ToolResultBounds>(\"ToolResultBounds\")({\n maxBytes: Schema.Int.check(Schema.isGreaterThanOrEqualTo(ENVELOPE_FLOOR_BYTES)),\n}) {}\n\n/**\n * Canonical envelope replacing an encoded Tool result that exceeded its\n * policy bounds. `head` and `tail` are an exact prefix and suffix of the\n * original encoded JSON text; the middle is dropped, never paraphrased.\n */\nexport class TruncatedToolResult extends Schema.Class<TruncatedToolResult>(\"TruncatedToolResult\")({\n truncatedToolResult: Schema.Literal(true),\n originalBytes: Schema.Natural,\n head: Schema.String,\n tail: Schema.String,\n}) {}\n\n/**\n * Canonical fail-closed sentinel replacing an encoded Tool result that could\n * not be JSON-serialized at all (cyclic value, BigInt, `undefined`, throwing\n * `toJSON`). The original value never enters history or durable records —\n * an unserializable value is unbounded by construction, so the bound seam\n * replaces it wholesale rather than passing it through (runtime spec §9).\n */\nexport class UnserializableToolResult extends Schema.Class<UnserializableToolResult>(\n \"UnserializableToolResult\",\n)({\n unserializableToolResult: Schema.Literal(true),\n reason: Schema.String.check(Schema.isMaxLength(256)),\n}) {}\n\n/**\n * Build the encoded sentinel for a serialization failure. Total by\n * construction — the cause is untrusted (a hostile `toString` or an\n * accessor-backed `Error.message` can itself throw on this last-resort\n * path) — and byte-bound: the complete encoded sentinel stays within the\n * 256-byte `ToolResultBounds` schema floor, so it fits every accepted\n * policy without the caller re-applying bounds.\n */\nexport const unserializableToolResult = (\n cause: unknown,\n): typeof UnserializableToolResult.Encoded => {\n let reason: string;\n\n try {\n const message = cause instanceof Error ? cause.message : cause;\n\n reason = typeof message === \"string\" ? message : String(message);\n } catch {\n reason = \"unserializable value\";\n }\n\n const build = (clipped: string): typeof UnserializableToolResult.Encoded =>\n Schema.encodeSync(UnserializableToolResult)(\n UnserializableToolResult.make({\n unserializableToolResult: true,\n reason: clipped,\n }),\n );\n\n // JSON escaping inflates bytes, so shrink by whole code points until the\n // encoded sentinel fits the floor; the empty reason always fits.\n let clipped = takePrefixWithinBytes(reason, 128);\n let sentinel = build(clipped);\n\n while (clipped.length > 0 && utf8ByteLength(JSON.stringify(sentinel)) > 256) {\n const last = clipped.codePointAt(clipped.length - 1);\n\n clipped = clipped.slice(0, clipped.length - (last !== undefined && last > 0xffff ? 2 : 1));\n sentinel = build(clipped);\n }\n\n return sentinel;\n};\n\nconst takePrefixWithinBytes = (value: string, maxBytes: number): string => {\n let bytes = 0;\n let index = 0;\n\n while (index < value.length) {\n const codePoint = value.codePointAt(index) ?? 0;\n const width = codePointUtf8Length(codePoint);\n\n if (bytes + width > maxBytes) break;\n bytes += width;\n index += codePoint > 0xffff ? 2 : 1;\n }\n\n return value.slice(0, index);\n};\n\nconst takeSuffixWithinBytes = (value: string, maxBytes: number): string => {\n let bytes = 0;\n let index = value.length;\n\n while (index > 0) {\n const unit = value.charCodeAt(index - 1);\n const isLowSurrogate = unit >= 0xdc00 && unit <= 0xdfff;\n const pairStart = isLowSurrogate && index >= 2 ? index - 2 : index - 1;\n const codePoint = value.codePointAt(pairStart) ?? 0;\n const width = codePointUtf8Length(codePoint);\n\n if (bytes + width > maxBytes) break;\n bytes += width;\n index = pairStart;\n }\n\n return value.slice(index);\n};\n\n/**\n * Bound one encoded Tool result to `bounds.maxBytes` UTF-8 bytes.\n *\n * Within bounds the input is returned unchanged. Over bounds the result is\n * the JSON-encoded `TruncatedToolResult` envelope preserving an exact prefix\n * and suffix of the input, split ~50/50 across the byte budget left after\n * the envelope's own overhead and shrunk deterministically until the encoded\n * envelope itself fits. Slicing never splits a UTF-16 surrogate pair, so the\n * envelope always re-encodes as valid JSON.\n *\n * The Schema-level 256-byte floor on `ToolResultBounds.maxBytes` guarantees\n * every accepted bound fits the minimal envelope (at most 81 bytes), so the\n * returned value never exceeds `maxBytes` for a decodable bound. The\n * minimal-envelope fallback below survives purely as defense in depth.\n */\nexport const applyToolResultBounds = (encodedJson: string, bounds: ToolResultBounds): string => {\n const originalBytes = utf8ByteLength(encodedJson);\n\n if (originalBytes <= bounds.maxBytes) return encodedJson;\n\n const render = (head: string, tail: string): string =>\n JSON.stringify(\n Schema.encodeSync(TruncatedToolResult)(\n TruncatedToolResult.make({ truncatedToolResult: true, originalBytes, head, tail }),\n ),\n );\n\n const minimal = render(\"\", \"\");\n const contentBudget = bounds.maxBytes - utf8ByteLength(minimal);\n\n if (contentBudget <= 0) return minimal;\n let headBudget = Math.floor(contentBudget / 2);\n let tailBudget = contentBudget - headBudget;\n\n for (;;) {\n const head = takePrefixWithinBytes(encodedJson, headBudget);\n const tail = takeSuffixWithinBytes(encodedJson, tailBudget);\n const output = render(head, tail);\n const outputBytes = utf8ByteLength(output);\n\n if (outputBytes <= bounds.maxBytes) return output;\n if (headBudget === 0 && tailBudget === 0) return minimal;\n const shrink = Math.max(1, Math.ceil((outputBytes - bounds.maxBytes) / 2));\n\n headBudget = Math.max(0, headBudget - shrink);\n tailBudget = Math.max(0, tailBudget - shrink);\n }\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { _ as unknownRunTotals, a as ModelUsageGroup, c as RunUsageReport, d as UsageCompleteness, g as summarizeModelUsage, h as sumRunTotals, i as ModelResponseIdentity, l as RunUsageSummary, m as runTotalsFromSummary, n as InputTokenUsage, o as OutputTokenUsage, p as emptyRunTotals, r as ModelCallUsage, s as RunTotals, t as ChildRunUsage, u as UsageAggregationError } from "../Usage-Dx0aknfk.mjs";
2
+ export { ChildRunUsage, InputTokenUsage, ModelCallUsage, ModelResponseIdentity, ModelUsageGroup, OutputTokenUsage, RunTotals, RunUsageReport, RunUsageSummary, UsageAggregationError, UsageCompleteness, emptyRunTotals, runTotalsFromSummary, sumRunTotals, summarizeModelUsage, unknownRunTotals };