effect-agent 0.1.0-beta.15 → 0.1.0-beta.151

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 (542) hide show
  1. package/dist/Admin-CKIdJoP8.d.mts +4236 -0
  2. package/dist/Agent-1DMSO_Fl.mjs +86 -0
  3. package/dist/Agent-1DMSO_Fl.mjs.map +1 -0
  4. package/dist/Agent-Cjd_ZveM.d.mts +259 -0
  5. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  6. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  7. package/dist/AgentRuntime-D8U9gl9Q.mjs +4745 -0
  8. package/dist/AgentRuntime-D8U9gl9Q.mjs.map +1 -0
  9. package/dist/AgentRuntime-sXpKcyxu.d.mts +346 -0
  10. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  11. package/dist/ContextCompactor-WwSIG_Z2.d.mts +161 -0
  12. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  13. package/dist/Digest-U69rDHuO.d.mts +22 -0
  14. package/dist/DurableAgentRuntime-R2LUYnRl.mjs +7207 -0
  15. package/dist/DurableAgentRuntime-R2LUYnRl.mjs.map +1 -0
  16. package/dist/DurableFailpoint-Cnr3wx1L.d.mts +41 -0
  17. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  18. package/dist/EventSource-CMbXXmwe.d.mts +51 -0
  19. package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
  20. package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
  21. package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
  22. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  23. package/dist/InMemory.d.mts +24 -0
  24. package/dist/InMemory.mjs +24 -0
  25. package/dist/InMemory.mjs.map +1 -0
  26. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  27. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  28. package/dist/Messaging-Dkg87ebg.d.mts +221 -0
  29. package/dist/Messaging-ccQURKCf.d.mts +1067 -0
  30. package/dist/MessagingHost-D04wE-7W.d.mts +74 -0
  31. package/dist/MessagingHost-DfsbMPvq.mjs +110 -0
  32. package/dist/MessagingHost-DfsbMPvq.mjs.map +1 -0
  33. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  34. package/dist/Output-CFD1CPfU.d.mts +25 -0
  35. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  36. package/dist/PreparedInputAdmission-Bt6rgtVu.d.mts +42 -0
  37. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  38. package/dist/Records-B5GFWCpn.d.mts +1104 -0
  39. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  40. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  41. package/dist/RunJournal-Gd83HYqG.mjs +954 -0
  42. package/dist/RunJournal-Gd83HYqG.mjs.map +1 -0
  43. package/dist/RunOptions-Bv9NpkPZ.d.mts +943 -0
  44. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  45. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  46. package/dist/Schedule-CtYREFnz.d.mts +847 -0
  47. package/dist/Scheduling-DPb2QyAK.mjs +691 -0
  48. package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
  49. package/dist/Subagent-VHrANXFy.d.mts +1652 -0
  50. package/dist/Subagent-hG9lJ7tJ.mjs +1502 -0
  51. package/dist/Subagent-hG9lJ7tJ.mjs.map +1 -0
  52. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  53. package/dist/SubagentHost-C-4A7tA2.d.mts +172 -0
  54. package/dist/Subscription-BJAzYNw1.d.mts +979 -0
  55. package/dist/SubscriptionInput-CkBJt0AS.d.mts +41 -0
  56. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  57. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  58. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  59. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  60. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  61. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  62. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  63. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  64. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  65. package/dist/ToolExposure.d.mts +8 -0
  66. package/dist/ToolExposure.mjs +21 -0
  67. package/dist/ToolExposure.mjs.map +1 -0
  68. package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
  69. package/dist/ToolResult-BKdqWRff.d.mts +78 -0
  70. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  71. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  72. package/dist/Worker-CfwzMZEK.mjs +271 -0
  73. package/dist/Worker-CfwzMZEK.mjs.map +1 -0
  74. package/dist/Worker-fwWkBg12.d.mts +472 -0
  75. package/dist/WorkerAdmission-CJ_oWRuS.mjs +171 -0
  76. package/dist/WorkerAdmission-CJ_oWRuS.mjs.map +1 -0
  77. package/dist/agent-registration-CKNsrpwo.mjs +201 -0
  78. package/dist/agent-registration-CKNsrpwo.mjs.map +1 -0
  79. package/dist/capabilities/Approval.d.mts +114 -0
  80. package/dist/capabilities/Approval.mjs +226 -0
  81. package/dist/capabilities/Approval.mjs.map +1 -0
  82. package/dist/capabilities/Budget.d.mts +112 -0
  83. package/dist/capabilities/Budget.mjs +346 -0
  84. package/dist/capabilities/Budget.mjs.map +1 -0
  85. package/dist/capabilities/CodeMode.d.mts +157 -0
  86. package/dist/capabilities/CodeMode.mjs +523 -0
  87. package/dist/capabilities/CodeMode.mjs.map +1 -0
  88. package/dist/capabilities/Commands.d.mts +55 -0
  89. package/dist/capabilities/Commands.mjs +57 -0
  90. package/dist/capabilities/Commands.mjs.map +1 -0
  91. package/dist/capabilities/ContextTools.d.mts +321 -0
  92. package/dist/capabilities/ContextTools.mjs +126 -0
  93. package/dist/capabilities/ContextTools.mjs.map +1 -0
  94. package/dist/capabilities/Mcp.d.mts +108 -0
  95. package/dist/capabilities/Mcp.mjs +259 -0
  96. package/dist/capabilities/Mcp.mjs.map +1 -0
  97. package/dist/capabilities/McpClient.d.mts +115 -0
  98. package/dist/capabilities/McpClient.mjs +519 -0
  99. package/dist/capabilities/McpClient.mjs.map +1 -0
  100. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  101. package/dist/capabilities/MemoryNotes.mjs +128 -0
  102. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  103. package/dist/capabilities/Messaging.d.mts +3 -0
  104. package/dist/capabilities/Messaging.mjs +152 -0
  105. package/dist/capabilities/Messaging.mjs.map +1 -0
  106. package/dist/capabilities/ModelContext.d.mts +89 -0
  107. package/dist/capabilities/ModelContext.mjs +168 -0
  108. package/dist/capabilities/ModelContext.mjs.map +1 -0
  109. package/dist/capabilities/Redaction.d.mts +37 -0
  110. package/dist/capabilities/Redaction.mjs +104 -0
  111. package/dist/capabilities/Redaction.mjs.map +1 -0
  112. package/dist/capabilities/Remembering.d.mts +434 -0
  113. package/dist/capabilities/Remembering.mjs +290 -0
  114. package/dist/capabilities/Remembering.mjs.map +1 -0
  115. package/dist/capabilities/RunHooks.d.mts +82 -0
  116. package/dist/capabilities/RunHooks.mjs +144 -0
  117. package/dist/capabilities/RunHooks.mjs.map +1 -0
  118. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  119. package/dist/capabilities/SemanticMemory.mjs +315 -0
  120. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  121. package/dist/capabilities/Subagent.d.mts +4 -0
  122. package/dist/capabilities/Subagent.mjs +5 -0
  123. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  124. package/dist/capabilities/SubagentReservations.mjs +479 -0
  125. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  126. package/dist/capabilities/ToolDiscovery.d.mts +124 -0
  127. package/dist/capabilities/ToolDiscovery.mjs +230 -0
  128. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  129. package/dist/capabilities/WebCapture.d.mts +163 -0
  130. package/dist/capabilities/WebCapture.mjs +335 -0
  131. package/dist/capabilities/WebCapture.mjs.map +1 -0
  132. package/dist/capabilities/WebSearch.d.mts +71 -0
  133. package/dist/capabilities/WebSearch.mjs +115 -0
  134. package/dist/capabilities/WebSearch.mjs.map +1 -0
  135. package/dist/compaction-C2OTceKw.mjs +505 -0
  136. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  137. package/dist/core/Agent.d.mts +2 -0
  138. package/dist/core/Agent.mjs +2 -0
  139. package/dist/core/AgentError.d.mts +2 -0
  140. package/dist/core/AgentError.mjs +134 -0
  141. package/dist/core/AgentError.mjs.map +1 -0
  142. package/dist/core/AgentPolicy.d.mts +2 -0
  143. package/dist/core/AgentPolicy.mjs +94 -0
  144. package/dist/core/AgentPolicy.mjs.map +1 -0
  145. package/dist/core/AgentUpdates.d.mts +2 -0
  146. package/dist/core/AgentUpdates.mjs +63 -0
  147. package/dist/core/AgentUpdates.mjs.map +1 -0
  148. package/dist/core/FailureDiagnostic.d.mts +2 -0
  149. package/dist/core/FailureDiagnostic.mjs +2 -0
  150. package/dist/core/IdGenerator.d.mts +26 -0
  151. package/dist/core/IdGenerator.mjs +27 -0
  152. package/dist/core/IdGenerator.mjs.map +1 -0
  153. package/dist/core/Identifiers.d.mts +2 -0
  154. package/dist/core/Identifiers.mjs +43 -0
  155. package/dist/core/Identifiers.mjs.map +1 -0
  156. package/dist/core/Memory.d.mts +57 -0
  157. package/dist/core/Memory.mjs +203 -0
  158. package/dist/core/Memory.mjs.map +1 -0
  159. package/dist/core/MemoryNamespace.d.mts +2 -0
  160. package/dist/core/MemoryNamespace.mjs +116 -0
  161. package/dist/core/MemoryNamespace.mjs.map +1 -0
  162. package/dist/core/MemoryReference.d.mts +2 -0
  163. package/dist/core/MemoryReference.mjs +109 -0
  164. package/dist/core/MemoryReference.mjs.map +1 -0
  165. package/dist/core/MemoryRevalidation.d.mts +65 -0
  166. package/dist/core/MemoryRevalidation.mjs +126 -0
  167. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  168. package/dist/core/MemoryStore.d.mts +186 -0
  169. package/dist/core/MemoryStore.mjs +243 -0
  170. package/dist/core/MemoryStore.mjs.map +1 -0
  171. package/dist/core/Receipt.d.mts +2 -0
  172. package/dist/core/Receipt.mjs +36 -0
  173. package/dist/core/Receipt.mjs.map +1 -0
  174. package/dist/core/RememberingStore.d.mts +1562 -0
  175. package/dist/core/RememberingStore.mjs +190 -0
  176. package/dist/core/RememberingStore.mjs.map +1 -0
  177. package/dist/core/RunEvent.d.mts +2 -0
  178. package/dist/core/RunEvent.mjs +337 -0
  179. package/dist/core/RunEvent.mjs.map +1 -0
  180. package/dist/core/RunPolicyUsage.d.mts +2 -0
  181. package/dist/core/RunPolicyUsage.mjs +21 -0
  182. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  183. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  184. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  185. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  186. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  187. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  188. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  189. package/dist/core/SubagentContract.d.mts +2 -0
  190. package/dist/core/SubagentContract.mjs +148 -0
  191. package/dist/core/SubagentContract.mjs.map +1 -0
  192. package/dist/core/Thread.d.mts +2 -0
  193. package/dist/core/Thread.mjs +250 -0
  194. package/dist/core/Thread.mjs.map +1 -0
  195. package/dist/core/ToolResult.d.mts +2 -0
  196. package/dist/core/ToolResult.mjs +156 -0
  197. package/dist/core/ToolResult.mjs.map +1 -0
  198. package/dist/core/Usage.d.mts +2 -0
  199. package/dist/core/Usage.mjs +319 -0
  200. package/dist/core/Usage.mjs.map +1 -0
  201. package/dist/core/Worker.d.mts +3 -0
  202. package/dist/core/Worker.mjs +3 -0
  203. package/dist/durable/ActivityStore.d.mts +116 -0
  204. package/dist/durable/ActivityStore.mjs +131 -0
  205. package/dist/durable/ActivityStore.mjs.map +1 -0
  206. package/dist/durable/Admin.d.mts +2 -0
  207. package/dist/durable/Admin.mjs +330 -0
  208. package/dist/durable/Admin.mjs.map +1 -0
  209. package/dist/durable/AgentRegistration.d.mts +2 -0
  210. package/dist/durable/AgentRegistration.mjs +14 -0
  211. package/dist/durable/AgentRegistration.mjs.map +1 -0
  212. package/dist/durable/Certification.d.mts +110 -0
  213. package/dist/durable/Certification.mjs +159 -0
  214. package/dist/durable/Certification.mjs.map +1 -0
  215. package/dist/durable/CommittedActivity.d.mts +64 -0
  216. package/dist/durable/CommittedActivity.mjs +159 -0
  217. package/dist/durable/CommittedActivity.mjs.map +1 -0
  218. package/dist/durable/Digest.d.mts +2 -0
  219. package/dist/durable/Digest.mjs +50 -0
  220. package/dist/durable/Digest.mjs.map +1 -0
  221. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  222. package/dist/durable/DurableAgentRuntime.mjs +4 -0
  223. package/dist/durable/DurableFailpoint.d.mts +2 -0
  224. package/dist/durable/DurableFailpoint.mjs +102 -0
  225. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  226. package/dist/durable/DurableFailpointTestControl.d.mts +14 -0
  227. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  228. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  229. package/dist/durable/EventSource.d.mts +2 -0
  230. package/dist/durable/EventSource.mjs +65 -0
  231. package/dist/durable/EventSource.mjs.map +1 -0
  232. package/dist/durable/GitHubWorkflowSource.d.mts +185 -0
  233. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  234. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  235. package/dist/durable/LifecyclePublication.d.mts +2 -0
  236. package/dist/durable/LifecyclePublication.mjs +189 -0
  237. package/dist/durable/LifecyclePublication.mjs.map +1 -0
  238. package/dist/durable/MessageDelivery.d.mts +935 -0
  239. package/dist/durable/MessageDelivery.mjs +557 -0
  240. package/dist/durable/MessageDelivery.mjs.map +1 -0
  241. package/dist/durable/MessageDeliveryStoreConformance.d.mts +400 -0
  242. package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -0
  243. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  244. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  245. package/dist/durable/OperationAuthorizer.mjs +70 -0
  246. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  247. package/dist/durable/PersistentHistory.d.mts +16 -0
  248. package/dist/durable/PersistentHistory.mjs +125 -0
  249. package/dist/durable/PersistentHistory.mjs.map +1 -0
  250. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  251. package/dist/durable/PreparedInputAdmission.mjs +38 -0
  252. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  253. package/dist/durable/Records.d.mts +2 -0
  254. package/dist/durable/Records.mjs +858 -0
  255. package/dist/durable/Records.mjs.map +1 -0
  256. package/dist/durable/Recovery.d.mts +2 -0
  257. package/dist/durable/Recovery.mjs +739 -0
  258. package/dist/durable/Recovery.mjs.map +1 -0
  259. package/dist/durable/RunJournal.d.mts +2 -0
  260. package/dist/durable/RunJournal.mjs +2 -0
  261. package/dist/durable/Schedule.d.mts +2 -0
  262. package/dist/durable/Schedule.mjs +391 -0
  263. package/dist/durable/Schedule.mjs.map +1 -0
  264. package/dist/durable/ScheduleStoreConformance.d.mts +17 -0
  265. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  266. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  267. package/dist/durable/ScheduleTransition.d.mts +24 -0
  268. package/dist/durable/ScheduleTransition.mjs +180 -0
  269. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  270. package/dist/durable/Scheduling.d.mts +55 -0
  271. package/dist/durable/Scheduling.mjs +2 -0
  272. package/dist/durable/SqlMemoryStore.d.mts +29 -0
  273. package/dist/durable/SqlMemoryStore.mjs +436 -0
  274. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  275. package/dist/durable/SubmissionLedger.d.mts +3 -0
  276. package/dist/durable/SubmissionLedger.mjs +986 -0
  277. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  278. package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
  279. package/dist/durable/SubmissionLedgerConformance.mjs +2254 -0
  280. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  281. package/dist/durable/SubmissionStatus.d.mts +2 -0
  282. package/dist/durable/SubmissionStatus.mjs +18 -0
  283. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  284. package/dist/durable/Subscription.d.mts +2 -0
  285. package/dist/durable/Subscription.mjs +360 -0
  286. package/dist/durable/Subscription.mjs.map +1 -0
  287. package/dist/durable/SubscriptionInput.d.mts +2 -0
  288. package/dist/durable/SubscriptionInput.mjs +52 -0
  289. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  290. package/dist/durable/SubscriptionStoreConformance.d.mts +16 -0
  291. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  292. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  293. package/dist/durable/SubscriptionTools.d.mts +274 -0
  294. package/dist/durable/SubscriptionTools.mjs +190 -0
  295. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  296. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  297. package/dist/durable/SubscriptionTransition.mjs +148 -0
  298. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  299. package/dist/durable/Subscriptions.d.mts +74 -0
  300. package/dist/durable/Subscriptions.mjs +627 -0
  301. package/dist/durable/Subscriptions.mjs.map +1 -0
  302. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  303. package/dist/durable/ThreadContextHistory.mjs +152 -0
  304. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  305. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  306. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  307. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  308. package/dist/durable/ThreadInvariants.d.mts +77 -0
  309. package/dist/durable/ThreadInvariants.mjs +246 -0
  310. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  311. package/dist/durable/ThreadProjection.d.mts +78 -0
  312. package/dist/durable/ThreadProjection.mjs +158 -0
  313. package/dist/durable/ThreadProjection.mjs.map +1 -0
  314. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  315. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  316. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  317. package/dist/durable/ThreadStore.d.mts +2 -0
  318. package/dist/durable/ThreadStore.mjs +383 -0
  319. package/dist/durable/ThreadStore.mjs.map +1 -0
  320. package/dist/durable/ThreadStoreConformance.d.mts +28 -0
  321. package/dist/durable/ThreadStoreConformance.mjs +543 -0
  322. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  323. package/dist/durable/ToolReconciler.d.mts +2 -0
  324. package/dist/durable/ToolReconciler.mjs +85 -0
  325. package/dist/durable/ToolReconciler.mjs.map +1 -0
  326. package/dist/durable/WakeScheduler.d.mts +2 -0
  327. package/dist/durable/WakeScheduler.mjs +85 -0
  328. package/dist/durable/WakeScheduler.mjs.map +1 -0
  329. package/dist/durable/WorkerAdmission.d.mts +172 -0
  330. package/dist/durable/WorkerAdmission.mjs +2 -0
  331. package/dist/durable/WorkerHost.d.mts +156 -0
  332. package/dist/durable/WorkerHost.mjs +77 -0
  333. package/dist/durable/WorkerHost.mjs.map +1 -0
  334. package/dist/engine/AgentRuntime.d.mts +2 -0
  335. package/dist/engine/AgentRuntime.mjs +2 -0
  336. package/dist/engine/Compaction.d.mts +7 -0
  337. package/dist/engine/Compaction.mjs +16 -0
  338. package/dist/engine/Compaction.mjs.map +1 -0
  339. package/dist/engine/ContextCompactor.d.mts +2 -0
  340. package/dist/engine/ContextCompactor.mjs +119 -0
  341. package/dist/engine/ContextCompactor.mjs.map +1 -0
  342. package/dist/engine/ContextHistory.d.mts +65 -0
  343. package/dist/engine/ContextHistory.mjs +76 -0
  344. package/dist/engine/ContextHistory.mjs.map +1 -0
  345. package/dist/engine/ContextWindow.d.mts +2 -0
  346. package/dist/engine/ContextWindow.mjs +59 -0
  347. package/dist/engine/ContextWindow.mjs.map +1 -0
  348. package/dist/engine/DurableStep.d.mts +2 -0
  349. package/dist/engine/DurableStep.mjs +62 -0
  350. package/dist/engine/DurableStep.mjs.map +1 -0
  351. package/dist/engine/MessagingHost.d.mts +2 -0
  352. package/dist/engine/MessagingHost.mjs +2 -0
  353. package/dist/engine/Output.d.mts +2 -0
  354. package/dist/engine/Output.mjs +8 -0
  355. package/dist/engine/Output.mjs.map +1 -0
  356. package/dist/engine/RunEventSink.d.mts +2 -0
  357. package/dist/engine/RunEventSink.mjs +22 -0
  358. package/dist/engine/RunEventSink.mjs.map +1 -0
  359. package/dist/engine/RunOptions.d.mts +2 -0
  360. package/dist/engine/RunOptions.mjs +124 -0
  361. package/dist/engine/RunOptions.mjs.map +1 -0
  362. package/dist/engine/SubagentHost.d.mts +2 -0
  363. package/dist/engine/SubagentHost.mjs +76 -0
  364. package/dist/engine/SubagentHost.mjs.map +1 -0
  365. package/dist/engine/ThreadHistory.d.mts +2 -0
  366. package/dist/engine/ThreadHistory.mjs +67 -0
  367. package/dist/engine/ThreadHistory.mjs.map +1 -0
  368. package/dist/engine/ToolBroker.d.mts +2 -0
  369. package/dist/engine/ToolBroker.mjs +42 -0
  370. package/dist/engine/ToolBroker.mjs.map +1 -0
  371. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  372. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  373. package/dist/index.d.mts +92 -6
  374. package/dist/index.mjs +100 -6
  375. package/dist/output-contract-DS-S8mTv.mjs +135 -0
  376. package/dist/output-contract-DS-S8mTv.mjs.map +1 -0
  377. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  378. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  379. package/dist/sandbox/CodeExecutor.mjs +278 -0
  380. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  381. package/dist/sandbox/InteractiveBrowser.d.mts +257 -0
  382. package/dist/sandbox/InteractiveBrowser.mjs +236 -0
  383. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  384. package/dist/sandbox/PageCapture.d.mts +2 -0
  385. package/dist/sandbox/PageCapture.mjs +450 -0
  386. package/dist/sandbox/PageCapture.mjs.map +1 -0
  387. package/dist/sandbox/PageCrawl.d.mts +88 -0
  388. package/dist/sandbox/PageCrawl.mjs +124 -0
  389. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  390. package/dist/sandbox/PageScreenshot.d.mts +48 -0
  391. package/dist/sandbox/PageScreenshot.mjs +53 -0
  392. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  393. package/dist/sandbox/Sandbox.d.mts +2 -0
  394. package/dist/sandbox/Sandbox.mjs +208 -0
  395. package/dist/sandbox/Sandbox.mjs.map +1 -0
  396. package/dist/utf8-BYfhEkcj.mjs +11 -0
  397. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  398. package/dist/utf8-DchGZRBd.mjs +23 -0
  399. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  400. package/package.json +1 -40
  401. package/src/InMemory.ts +19 -0
  402. package/src/ToolExposure.ts +2 -0
  403. package/src/capabilities/Approval.ts +352 -0
  404. package/src/capabilities/Budget.ts +536 -0
  405. package/src/capabilities/CodeMode.ts +1099 -0
  406. package/src/capabilities/Commands.ts +86 -0
  407. package/src/capabilities/ContextTools.ts +184 -0
  408. package/src/capabilities/Mcp.ts +426 -0
  409. package/src/capabilities/McpClient.ts +983 -0
  410. package/src/capabilities/MemoryNotes.ts +174 -0
  411. package/src/capabilities/Messaging.ts +261 -0
  412. package/src/capabilities/ModelContext.ts +354 -0
  413. package/src/capabilities/Redaction.ts +157 -0
  414. package/src/capabilities/Remembering.ts +550 -0
  415. package/src/capabilities/RunHooks.ts +280 -0
  416. package/src/capabilities/SemanticMemory.ts +447 -0
  417. package/src/capabilities/Subagent.ts +2489 -0
  418. package/src/capabilities/SubagentReservations.ts +850 -0
  419. package/src/capabilities/ToolDiscovery.ts +369 -0
  420. package/src/capabilities/WebCapture.ts +722 -0
  421. package/src/capabilities/WebSearch.ts +190 -0
  422. package/src/capabilities/internal/subagent-background.ts +1307 -0
  423. package/src/capabilities/internal/subagent-contract.ts +146 -0
  424. package/src/capabilities/internal/subagent-policy.ts +235 -0
  425. package/src/capabilities/internal/subagent-reporting.ts +136 -0
  426. package/src/capabilities/internal/utf8.ts +10 -0
  427. package/src/core/Agent.ts +609 -0
  428. package/src/core/AgentError.ts +172 -0
  429. package/src/core/AgentPolicy.ts +153 -0
  430. package/src/core/AgentUpdates.ts +100 -0
  431. package/src/core/FailureDiagnostic.ts +343 -0
  432. package/src/core/IdGenerator.ts +39 -0
  433. package/src/core/Identifiers.ts +48 -0
  434. package/src/core/Memory.ts +290 -0
  435. package/src/core/MemoryNamespace.ts +196 -0
  436. package/src/core/MemoryReference.ts +121 -0
  437. package/src/core/MemoryRevalidation.ts +185 -0
  438. package/src/core/MemoryStore.ts +368 -0
  439. package/src/core/Messaging.ts +72 -0
  440. package/src/core/Receipt.ts +42 -0
  441. package/src/core/RememberingStore.ts +300 -0
  442. package/src/core/RunEvent.ts +366 -0
  443. package/src/core/RunPolicyUsage.ts +17 -0
  444. package/src/core/SemanticMemoryIndex.ts +250 -0
  445. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  446. package/src/core/SubagentContract.ts +196 -0
  447. package/src/core/Thread.ts +371 -0
  448. package/src/core/ToolExposure.ts +74 -0
  449. package/src/core/ToolResult.ts +190 -0
  450. package/src/core/Usage.ts +529 -0
  451. package/src/core/Worker.ts +240 -0
  452. package/src/core/internal/agent-updates.ts +34 -0
  453. package/src/core/internal/message-status.ts +60 -0
  454. package/src/core/internal/strict-schema.ts +14 -0
  455. package/src/core/internal/utf8.ts +23 -0
  456. package/src/durable/ActivityStore.ts +160 -0
  457. package/src/durable/Admin.ts +505 -0
  458. package/src/durable/AgentRegistration.ts +14 -0
  459. package/src/durable/Certification.ts +210 -0
  460. package/src/durable/CommittedActivity.ts +296 -0
  461. package/src/durable/Digest.ts +87 -0
  462. package/src/durable/DurableAgentRuntime.ts +11367 -0
  463. package/src/durable/DurableFailpoint.ts +111 -0
  464. package/src/durable/DurableFailpointTestControl.ts +39 -0
  465. package/src/durable/EventSource.ts +172 -0
  466. package/src/durable/GitHubWorkflowSource.ts +447 -0
  467. package/src/durable/LifecyclePublication.ts +298 -0
  468. package/src/durable/MessageDelivery.ts +834 -0
  469. package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
  470. package/src/durable/OperationAuthorizer.ts +85 -0
  471. package/src/durable/PersistentHistory.ts +260 -0
  472. package/src/durable/PreparedInputAdmission.ts +57 -0
  473. package/src/durable/Records.ts +1087 -0
  474. package/src/durable/Recovery.ts +1018 -0
  475. package/src/durable/RunJournal.ts +1695 -0
  476. package/src/durable/Schedule.ts +513 -0
  477. package/src/durable/ScheduleStoreConformance.ts +638 -0
  478. package/src/durable/ScheduleTransition.ts +265 -0
  479. package/src/durable/Scheduling.ts +1077 -0
  480. package/src/durable/SqlMemoryStore.ts +778 -0
  481. package/src/durable/SubmissionLedger.ts +1297 -0
  482. package/src/durable/SubmissionLedgerConformance.ts +4940 -0
  483. package/src/durable/SubmissionStatus.ts +14 -0
  484. package/src/durable/Subscription.ts +544 -0
  485. package/src/durable/SubscriptionInput.ts +144 -0
  486. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  487. package/src/durable/SubscriptionTools.ts +327 -0
  488. package/src/durable/SubscriptionTransition.ts +302 -0
  489. package/src/durable/Subscriptions.ts +1210 -0
  490. package/src/durable/ThreadContextHistory.ts +227 -0
  491. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  492. package/src/durable/ThreadInvariants.ts +507 -0
  493. package/src/durable/ThreadProjection.ts +269 -0
  494. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  495. package/src/durable/ThreadStore.ts +637 -0
  496. package/src/durable/ThreadStoreConformance.ts +1296 -0
  497. package/src/durable/ToolReconciler.ts +109 -0
  498. package/src/durable/WakeScheduler.ts +134 -0
  499. package/src/durable/WorkerAdmission.ts +104 -0
  500. package/src/durable/WorkerHost.ts +205 -0
  501. package/src/durable/internal/agent-registration.ts +587 -0
  502. package/src/durable/internal/agent-updates.ts +306 -0
  503. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  504. package/src/durable/internal/journal-checkpoint.ts +104 -0
  505. package/src/durable/internal/journal-metadata.ts +124 -0
  506. package/src/durable/internal/message-status.ts +20 -0
  507. package/src/durable/internal/messaging-host.ts +637 -0
  508. package/src/durable/internal/schedule-time.ts +303 -0
  509. package/src/durable/internal/thread-initialization.ts +195 -0
  510. package/src/durable/internal/worker-host.ts +3309 -0
  511. package/src/durable/internal/worker-runtime.ts +9 -0
  512. package/src/engine/AgentRuntime.ts +37 -0
  513. package/src/engine/Compaction.ts +11 -0
  514. package/src/engine/ContextCompactor.ts +277 -0
  515. package/src/engine/ContextHistory.ts +73 -0
  516. package/src/engine/ContextWindow.ts +72 -0
  517. package/src/engine/DurableStep.ts +132 -0
  518. package/src/engine/MessagingHost.ts +110 -0
  519. package/src/engine/Output.ts +2 -0
  520. package/src/engine/RunEventSink.ts +132 -0
  521. package/src/engine/RunOptions.ts +1109 -0
  522. package/src/engine/SubagentHost.ts +239 -0
  523. package/src/engine/ThreadHistory.ts +120 -0
  524. package/src/engine/ToolBroker.ts +157 -0
  525. package/src/engine/ToolExposure.ts +48 -0
  526. package/src/engine/internal/agent-runtime.ts +10596 -0
  527. package/src/engine/internal/bounded-value.ts +315 -0
  528. package/src/engine/internal/compaction.ts +678 -0
  529. package/src/engine/internal/error-diagnostic.ts +39 -0
  530. package/src/engine/internal/output-contract.ts +250 -0
  531. package/src/engine/internal/primitive-delta.ts +80 -0
  532. package/src/engine/internal/provider-result-staging.ts +211 -0
  533. package/src/engine/internal/tool-derivative.ts +106 -0
  534. package/src/engine/internal/tool-exposure.ts +224 -0
  535. package/src/engine/internal/tool-telemetry.ts +484 -0
  536. package/src/index.ts +99 -22
  537. package/src/sandbox/CodeExecutor.ts +352 -0
  538. package/src/sandbox/InteractiveBrowser.ts +339 -0
  539. package/src/sandbox/PageCapture.ts +691 -0
  540. package/src/sandbox/PageCrawl.ts +148 -0
  541. package/src/sandbox/PageScreenshot.ts +81 -0
  542. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,239 @@
1
+ import type { Effect, Option } from "effect";
2
+ import { Context, Schema, Stream } from "effect";
3
+
4
+ import type * as Agent from "../core/Agent.ts";
5
+ import type { AgentPolicy } from "../core/AgentPolicy.ts";
6
+ import type { Update } from "../core/AgentUpdates.ts";
7
+ import type * as FailureDiagnostic from "../core/FailureDiagnostic.ts";
8
+ import type { DelegationId, RunId, SettlementId, ThreadId } from "../core/Identifiers.ts";
9
+ import type { MessageRef, MessageStatus } from "../core/Messaging.ts";
10
+ import { type IdempotencyKey, type JoinedToHost, type Receipt } from "../core/Receipt.ts";
11
+ import type { SubagentBudgetReservation } from "../core/SubagentContract.ts";
12
+ import {
13
+ WorkerError,
14
+ type WorkerStop,
15
+ type WorkerStopped,
16
+ type WorkerCompletion,
17
+ type WorkerHistoryEntry,
18
+ type WorkerContext,
19
+ type WorkerBudgetScope,
20
+ type WorkerSource,
21
+ type WorkerPage,
22
+ type WorkerRef,
23
+ type WorkerStarted,
24
+ type WorkerSummary,
25
+ } from "../core/Worker.ts";
26
+
27
+ /** Prepared values cross this port only to be Schema-decoded before durable storage. */
28
+ export interface StartWorkerRequest {
29
+ readonly delegationId: DelegationId;
30
+ /** Start a distinct assignment using verified completed predecessor authority. */
31
+ readonly continuationOf?: WorkerRef;
32
+ readonly target: Agent.AnyDefinition;
33
+ readonly idempotencyKey: IdempotencyKey;
34
+ readonly encodedInput: unknown;
35
+ readonly encodedParameters: unknown;
36
+ readonly policy: AgentPolicy;
37
+ readonly budget: SubagentBudgetReservation;
38
+ readonly encodedGrant: unknown;
39
+ readonly toolCallAllowance?: number;
40
+ /** Author-owned request; the durable host must separately authorize worker-run funding. */
41
+ readonly budgetScope?: WorkerBudgetScope;
42
+ }
43
+
44
+ /**
45
+ * First-admission preparation stays lazy until the owner authorizes the caller and checks the
46
+ * retained command. Replays compare declared parameters/options and reuse the original capture.
47
+ * Prepared policy, budget, and allowance are frozen first-admission configuration, not replay
48
+ * arguments; changing them requires a new command key. Current caller authorization still applies.
49
+ * Preparation must be free of external effects: concurrent first admissions can prepare before
50
+ * the retained delivery chooses its first writer.
51
+ */
52
+ export interface DeferredStartWorkerRequest<E = never, R = never> extends Pick<
53
+ StartWorkerRequest,
54
+ | "delegationId"
55
+ | "continuationOf"
56
+ | "target"
57
+ | "idempotencyKey"
58
+ | "encodedParameters"
59
+ | "encodedGrant"
60
+ | "budgetScope"
61
+ > {
62
+ readonly prepare: Effect.Effect<
63
+ Pick<StartWorkerRequest, "encodedInput" | "policy" | "budget" | "toolCallAllowance">,
64
+ E,
65
+ R
66
+ >;
67
+ }
68
+
69
+ export interface FollowUpWorkerRequest {
70
+ readonly worker: WorkerRef;
71
+ readonly target: Agent.AnyDefinition;
72
+ readonly idempotencyKey: IdempotencyKey;
73
+ readonly encodedInput: unknown;
74
+ readonly encodedParameters: unknown;
75
+ }
76
+
77
+ /**
78
+ * Like deferred starts, follow-ups prepare only after current authorization and retained-command
79
+ * lookup. Replays compare declared parameters and reuse the original input and worker authority.
80
+ * Preparation must be free of external effects because concurrent first admissions can prepare.
81
+ */
82
+ export interface DeferredFollowUpWorkerRequest<E = never, R = never> extends Omit<
83
+ FollowUpWorkerRequest,
84
+ "encodedInput"
85
+ > {
86
+ readonly prepare: Effect.Effect<Pick<FollowUpWorkerRequest, "encodedInput">, E, R>;
87
+ }
88
+
89
+ export interface WorkerReceiptRequest {
90
+ readonly worker: WorkerRef;
91
+ readonly target: Agent.AnyDefinition;
92
+ readonly receipt: Receipt;
93
+ }
94
+
95
+ export interface WorkerMessageRequest {
96
+ readonly worker: WorkerRef;
97
+ readonly target: Agent.AnyDefinition;
98
+ readonly message: MessageRef;
99
+ }
100
+
101
+ /**
102
+ * Canonical terminal values remain encoded until the capability decodes the saved parameters
103
+ * and target output and applies its declared result projection. Child E does not survive settlement.
104
+ */
105
+ export type WorkerObservation =
106
+ | { readonly _tag: "Pending"; readonly receipt: Receipt }
107
+ | {
108
+ readonly _tag: "Settled";
109
+ readonly receipt: Receipt;
110
+ /** Absent when an input failed or was cancelled before any Run started. */
111
+ readonly runId?: RunId;
112
+ readonly settlementId: SettlementId;
113
+ readonly outcome: "completed" | "failed" | "aborted";
114
+ readonly encodedParameters: unknown;
115
+ readonly encodedResult: unknown;
116
+ /** Operator-private failed-settlement evidence; never part of a model Tool result. */
117
+ readonly diagnostic?: FailureDiagnostic.Failure;
118
+ readonly budgetExhausted: boolean;
119
+ };
120
+
121
+ /** One actual canonical Run, independent of how many input Receipts joined it. */
122
+ export interface WorkerRunReport {
123
+ readonly worker: WorkerRef;
124
+ readonly context: WorkerContext;
125
+ readonly observation: Extract<WorkerObservation, { readonly _tag: "Settled" }> & {
126
+ readonly runId: RunId;
127
+ };
128
+ }
129
+
130
+ /** A bounded projection failure; raw application errors never enter durable report records. */
131
+ export class WorkerReportPreparationFailure extends Schema.TaggedError<WorkerReportPreparationFailure>()(
132
+ "WorkerReportPreparationFailure",
133
+ { stage: Schema.Literals(["projection", "input", "preparation"]) },
134
+ ) {}
135
+
136
+ /**
137
+ * Source-owned standard projection discovered from background tools.
138
+ * The concrete descriptor retains its E/R; durable registration captures R and records
139
+ * bounded preparation failure rather than serializing arbitrary application errors.
140
+ */
141
+ export interface WorkerReporting<E = never, R = never> {
142
+ readonly delegationId: DelegationId;
143
+ readonly target: Agent.AnyDefinition;
144
+ /** Pure first-emission selection. False retains the canonical update without parent delivery. */
145
+ readonly reportUpdate?: (update: Update) => boolean;
146
+ /** False retains a filtered report receipt without waking the parent. */
147
+ readonly reportCompletion?: (report: WorkerRunReport) => boolean;
148
+ readonly prepare: (report: WorkerRunReport) => Effect.Effect<
149
+ {
150
+ readonly message: WorkerCompletion;
151
+ },
152
+ E | WorkerReportPreparationFailure,
153
+ R
154
+ >;
155
+ }
156
+
157
+ /** Descriptor carried by background tools; registration discovers it without an app handoff. */
158
+ export const BackgroundReporting = Context.Reference<
159
+ WorkerReporting<WorkerReportPreparationFailure> | undefined
160
+ >("@effect-agent/engine/BackgroundReporting", { defaultValue: () => undefined });
161
+
162
+ /**
163
+ * Trusted, caller-bound host port. The interpreter supplies a fresh facet for each Tool Call;
164
+ * programmatic callers acquire a separately authorized Thread facet. Request values cannot
165
+ * choose the source identity, replace worker provenance or expand its authority and budgets.
166
+ */
167
+ export class SubagentHost extends Context.Service<
168
+ SubagentHost,
169
+ {
170
+ readonly context: Effect.Effect<WorkerContext, WorkerError>;
171
+ /** Resolve prepared input through host authority; None retains legacy target inheritance. */
172
+ readonly resolveTargetPolicy: (request: {
173
+ readonly continuationOf?: WorkerRef;
174
+ readonly target: Agent.AnyDefinition;
175
+ readonly encodedInput: unknown;
176
+ }) => Effect.Effect<Option.Option<AgentPolicy>, WorkerError>;
177
+ /** Prepared callers retain strict input/policy conflicts; deferred callers replay the saved capture. */
178
+ readonly start: <E = never, R = never>(
179
+ request: StartWorkerRequest | DeferredStartWorkerRequest<E, R>,
180
+ ) => Effect.Effect<WorkerStarted, WorkerError | E, R>;
181
+ /** Prepared callers retain strict input conflicts; deferred callers replay the saved capture. */
182
+ readonly followUp: <E = never, R = never>(
183
+ request: FollowUpWorkerRequest | DeferredFollowUpWorkerRequest<E, R>,
184
+ ) => Effect.Effect<MessageStatus, WorkerError | E, R>;
185
+ readonly inspect: (
186
+ request: WorkerReceiptRequest | WorkerMessageRequest,
187
+ ) => Effect.Effect<WorkerObservation | MessageStatus, WorkerError>;
188
+ /** Inspect the continuing worker using the same summary contract as discovery. */
189
+ readonly summary: (request: {
190
+ readonly worker: WorkerRef;
191
+ readonly target: Agent.AnyDefinition;
192
+ }) => Effect.Effect<WorkerSummary, WorkerError>;
193
+ /** A finite snapshot through the captured tail; resume with the last sequence as `after`. */
194
+ readonly observe: (request: {
195
+ readonly worker: WorkerRef;
196
+ readonly target: Agent.AnyDefinition;
197
+ readonly after?: number;
198
+ }) => Stream.Stream<WorkerHistoryEntry, WorkerError>;
199
+ /** Interrupting this wait never requests cancellation of accepted work. */
200
+ readonly await: (
201
+ request: WorkerReceiptRequest,
202
+ ) => Effect.Effect<WorkerObservation, WorkerError>;
203
+ readonly list: (request: {
204
+ readonly delegationId: DelegationId;
205
+ readonly target: Agent.AnyDefinition;
206
+ readonly limit: number;
207
+ readonly after?: ThreadId;
208
+ }) => Effect.Effect<WorkerPage, WorkerError>;
209
+ /** Seal the whole worker; retries reconcile the same command, including a lost acknowledgement. */
210
+ readonly stop: (
211
+ request: WorkerStop & { readonly target: Agent.AnyDefinition },
212
+ ) => Effect.Effect<WorkerStopped, WorkerError>;
213
+ /** Cancel exactly this Receipt; preserve JoinedToHost without broadening its target. */
214
+ readonly cancel: (
215
+ request: WorkerReceiptRequest,
216
+ ) => Effect.Effect<void, WorkerError | JoinedToHost>;
217
+ }
218
+ >()("@effect-agent/engine/SubagentHost") {
219
+ static readonly unavailable: SubagentHost["Service"] = {
220
+ context: WorkerError.make({ operation: "context", reason: "unavailable" }),
221
+ resolveTargetPolicy: () => WorkerError.make({ operation: "start", reason: "unavailable" }),
222
+ start: () => WorkerError.make({ operation: "start", reason: "unavailable" }),
223
+ followUp: () => WorkerError.make({ operation: "followUp", reason: "unavailable" }),
224
+ inspect: () => WorkerError.make({ operation: "inspect", reason: "unavailable" }),
225
+ summary: () => WorkerError.make({ operation: "inspect", reason: "unavailable" }),
226
+ observe: () => Stream.fail(WorkerError.make({ operation: "observe", reason: "unavailable" })),
227
+ await: () => WorkerError.make({ operation: "await", reason: "unavailable" }),
228
+ list: () => WorkerError.make({ operation: "list", reason: "unavailable" }),
229
+ stop: () => WorkerError.make({ operation: "stop", reason: "unavailable" }),
230
+ cancel: () => WorkerError.make({ operation: "cancel", reason: "unavailable" }),
231
+ };
232
+
233
+ /** Runtime-owned per-call binding. Unconfigured Runs deny background operations. */
234
+ static readonly forTool = Context.Reference<
235
+ (source: Extract<WorkerSource, { readonly _tag: "tool" }>) => SubagentHost["Service"]
236
+ >("@effect-agent/engine/SubagentHost/forTool", {
237
+ defaultValue: () => () => SubagentHost.unavailable,
238
+ });
239
+ }
@@ -0,0 +1,120 @@
1
+ import { Context, Effect, Layer, Schema } from "effect";
2
+ import type { Prompt } from "effect/unstable/ai";
3
+
4
+ import { ThreadId, type RunId } from "../core/Identifiers.ts";
5
+ import { type RunCompleted } from "../core/RunEvent.ts";
6
+ import {
7
+ Store as ConversationStore,
8
+ layerMemory,
9
+ toPrompt,
10
+ type ThreadError,
11
+ } from "../core/Thread.ts";
12
+
13
+ /** A history adapter rejected a read, staged value, or completed Run commit. */
14
+ export class ThreadHistoryError extends Schema.TaggedError<ThreadHistoryError>()(
15
+ "ThreadHistoryError",
16
+ {
17
+ threadId: ThreadId,
18
+ reason: Schema.Literals([
19
+ "not-found",
20
+ "conflict",
21
+ "fenced",
22
+ "incompatible",
23
+ "limit",
24
+ "encoding",
25
+ "storage",
26
+ ]),
27
+ message: Schema.String,
28
+ cause: Schema.optionalKey(Schema.Defect()),
29
+ },
30
+ ) {}
31
+
32
+ /**
33
+ * One Run's history owner. Incremental adapters retain each stageHistory update; on-success
34
+ * adapters stage privately until commit. Before commit, the interpreter
35
+ * finishes run-owned work and closes resources acquired for that Run, then validates the result
36
+ * for run/start.await. Shared model, provider, and client services supplied by an enclosing
37
+ * application Layer remain owned by that application's Scope and may outlive multiple Runs.
38
+ * Commit must succeed before RunCompleted becomes observable. Schema-encoded input is opaque
39
+ * here; the adapter owns its persistence boundary. A failed commit may have reached storage;
40
+ * callers must inspect history before retrying external execution.
41
+ */
42
+ export interface ThreadHistoryRun {
43
+ readonly prompt: Prompt.Prompt;
44
+ readonly stageInput: (input: unknown) => Effect.Effect<void, ThreadHistoryError>;
45
+ readonly stageHistory: (history: Prompt.Prompt) => Effect.Effect<void, ThreadHistoryError>;
46
+ readonly commit: (completed: RunCompleted) => Effect.Effect<void, ThreadHistoryError>;
47
+ }
48
+
49
+ /**
50
+ * History shared by Runs with the same Thread ID. The default layer retains native messages
51
+ * incrementally in memory for its application Scope, including completed updates before a failure.
52
+ * PersistentHistory.layer from effect-agent/persistent-history instead commits successful
53
+ * Runs to an explicit ThreadStore. Durable hosts retain history through their journal hooks.
54
+ * No implementation may retry model or Tool execution or claim interrupted-work recovery.
55
+ */
56
+ export class ThreadHistory extends Context.Service<
57
+ ThreadHistory,
58
+ {
59
+ readonly retention: "incremental" | "on-success";
60
+ readonly open: (request: {
61
+ readonly threadId: ThreadId;
62
+ readonly runId: RunId;
63
+ }) => Effect.Effect<ThreadHistoryRun, ThreadHistoryError>;
64
+ readonly load: (threadId: ThreadId) => Effect.Effect<Prompt.Prompt, ThreadHistoryError>;
65
+ }
66
+ >()("@effect-agent/engine/ThreadHistory") {
67
+ /**
68
+ * Retain bounded in-memory history across Runs. Provide once around the application so
69
+ * all Runs share the same store. The underlying Thread.Store service is exposed for
70
+ * snapshots and interactive hooks; separate Layer builds own separate stores.
71
+ */
72
+ static readonly layer = Layer.effect(
73
+ ThreadHistory,
74
+ Effect.gen(function* () {
75
+ const threads = yield* ConversationStore;
76
+
77
+ const historyError = (cause: ThreadError): ThreadHistoryError =>
78
+ ThreadHistoryError.make({
79
+ threadId: cause.threadId,
80
+ reason:
81
+ cause._tag === "ThreadNotFound"
82
+ ? "not-found"
83
+ : cause._tag === "ThreadLimitExceeded"
84
+ ? "limit"
85
+ : cause._tag === "ThreadHistoryDiverged"
86
+ ? "conflict"
87
+ : "encoding",
88
+ message:
89
+ cause._tag === "ThreadNotFound"
90
+ ? "Thread history is not present in this application Scope"
91
+ : cause._tag === "ThreadLimitExceeded"
92
+ ? `In-memory history exceeds the ${cause.limit} limit of ${cause.limitValue}`
93
+ : cause.message,
94
+ cause,
95
+ });
96
+
97
+ return ThreadHistory.of({
98
+ retention: "incremental",
99
+ load: (threadId) =>
100
+ threads.snapshot(threadId).pipe(Effect.map(toPrompt), Effect.mapError(historyError)),
101
+ open: Effect.fn("ThreadHistory.open")(function* ({ threadId, runId }) {
102
+ const snapshot = yield* threads.create(threadId).pipe(Effect.mapError(historyError));
103
+
104
+ return {
105
+ prompt: toPrompt(snapshot),
106
+ stageInput: () => Effect.void,
107
+ stageHistory: (history: Prompt.Prompt) =>
108
+ threads
109
+ .recordHistory(threadId, runId, history)
110
+ .pipe(Effect.asVoid, Effect.mapError(historyError)),
111
+ commit: () => Effect.void,
112
+ };
113
+ }),
114
+ });
115
+ }),
116
+ ).pipe(Layer.provideMerge(layerMemory));
117
+ }
118
+
119
+ /** Retain in-memory conversation history for the application Scope. */
120
+ export const layer = ThreadHistory.layer;
@@ -0,0 +1,157 @@
1
+ import type { Effect } from "effect";
2
+ import { Context, Schema } from "effect";
3
+ import type { Tool, Toolkit } from "effect/unstable/ai";
4
+
5
+ /**
6
+ * Programmatic Tool invocation seam for Code Mode (runtime spec §12.1,
7
+ * ADR-0017 decision 3). The interpreter provides `ToolBroker` locally in the
8
+ * same pattern as `AgentSpawner` and `DurableStep`: a fail-closed Run-level
9
+ * default shadowed by a live per-outer-Tool-Call service, excluded from
10
+ * `AgentRuntimeRequirements`. The live service is bound to the outer Tool
11
+ * Call's identity, the Run's policy context, and the already-held scheduling
12
+ * permit; per-call input from generated code is data only, and the broker
13
+ * allocates every sequence index from its own monotonic per-pass state.
14
+ */
15
+
16
+ /** One programmatic invocation request. Data only: the broker owns identity. */
17
+ export interface ProgrammaticToolInput {
18
+ /** The exact Effect AI Tool name resolved by the capability's namespace map. */
19
+ readonly toolName: string;
20
+ /** Schema-encoded (wire-form) parameters, exactly as they cross the sandbox. */
21
+ readonly encodedArguments: unknown;
22
+ }
23
+
24
+ /** The handler ran and settled with an owned JSON snapshot of its encoded success value. */
25
+ export interface ProgrammaticCallSuccess {
26
+ readonly _tag: "ProgrammaticCallSuccess";
27
+ /** Broker-owned invocation index within the pass; rejected calls leave gaps. */
28
+ readonly index: number;
29
+ readonly encodedResult: unknown;
30
+ }
31
+
32
+ /**
33
+ * The handler settled with the Tool's declared, Schema-encoded typed failure
34
+ * (an Effect AI `failureMode: "return"` result). The program may catch and
35
+ * branch on it.
36
+ */
37
+ export interface ProgrammaticCallFailure {
38
+ readonly _tag: "ProgrammaticCallFailure";
39
+ readonly index: number;
40
+ readonly encodedResult: unknown;
41
+ }
42
+
43
+ /**
44
+ * The call never produced a settled handler result: a broker preflight
45
+ * rejected it (authorization, budget, unknown Tool, approval-requiring Tool,
46
+ * invalid parameters), the handler failed in its typed error channel, or the
47
+ * result failed encoding or the broker-owned size bound. `errorTag` and
48
+ * `message` are the same bounded projection the direct path uses for
49
+ * `ToolCallFailed` events; `index` is present only when the handler was
50
+ * actually started (preflight rejections consume no identity and no budget).
51
+ */
52
+ export interface ProgrammaticCallError {
53
+ readonly _tag: "ProgrammaticCallError";
54
+ readonly index: number | undefined;
55
+ readonly errorTag: string;
56
+ readonly message: string;
57
+ }
58
+
59
+ /**
60
+ * Total outcome of one programmatic invocation; defects stay defects. Trusted applications may
61
+ * install `CurrentToolFailureObserver` to receive non-propagating failures before the outcome
62
+ * returns, with the live Cause retained before projection. Neither Causes nor observation values
63
+ * cross the broker boundary.
64
+ */
65
+ export type ProgrammaticCallOutcome =
66
+ | ProgrammaticCallSuccess
67
+ | ProgrammaticCallFailure
68
+ | ProgrammaticCallError;
69
+
70
+ /**
71
+ * Ephemeral execution evidence, ordered by invocation rather than completion. No arguments or
72
+ * results are copied into this diagnostic. A started call without a confirmed result is uncertain;
73
+ * a failed call is a confirmed failure, not a promise that external effects were rolled back.
74
+ */
75
+ export const ProgrammaticCallRecord = Schema.Struct({
76
+ sequenceIndex: Schema.Natural,
77
+ toolName: Schema.String,
78
+ status: Schema.Literals(["not-started", "succeeded", "failed", "uncertain"]),
79
+ errorTag: Schema.optionalKey(Schema.String),
80
+ });
81
+
82
+ export type ProgrammaticCallRecord = typeof ProgrammaticCallRecord.Type;
83
+
84
+ /** Broker-owned per-pass policy for results crossing back into the sandbox. */
85
+ export interface ToolBrokerPassOptions {
86
+ /** Maximum active invocations in this pass, from one through 64. Defaults to four. */
87
+ readonly concurrency?: number | undefined;
88
+ /**
89
+ * Maximum UTF-8 byte size of one encoded success result at the sandbox
90
+ * boundary. The returned value is decoded from the exact JSON representation
91
+ * admitted by this bound, after redaction. Later handler or redactor mutations
92
+ * cannot change it. The executor enforces its own transport bound independently.
93
+ */
94
+ readonly maxResultBytes: number;
95
+ /**
96
+ * Optional broker-owned redaction pass applied to every encoded success
97
+ * result before the size bound. It must be total; a defect stays a defect.
98
+ */
99
+ readonly redactResult?: ((encodedResult: unknown) => Effect.Effect<unknown>) | undefined;
100
+ }
101
+
102
+ /**
103
+ * One open programmatic pass, bound to one outer Tool Call. A finite Effect Semaphore bounds
104
+ * execution. The caller owns invocation fibers and must join or interrupt them before leaving
105
+ * its Scope. Results return as soon as they settle, without waiting for unrelated earlier calls.
106
+ */
107
+ export interface ToolBrokerPass {
108
+ readonly invoke: (input: ProgrammaticToolInput) => Effect.Effect<ProgrammaticCallOutcome>;
109
+ /** Owned snapshot in invocation order, including interrupted and rejected calls. Never replay it. */
110
+ readonly snapshot: Effect.Effect<ReadonlyArray<ProgrammaticCallRecord>>;
111
+ }
112
+
113
+ /** The broker was used outside a live Tool batch; there is nothing to bind to. */
114
+ export class ToolBrokerUnavailableError extends Schema.TaggedError<ToolBrokerUnavailableError>()(
115
+ "ToolBrokerUnavailableError",
116
+ {
117
+ message: Schema.String,
118
+ },
119
+ ) {}
120
+
121
+ /**
122
+ * The pass options are invalid — for example a `maxResultBytes` that is not
123
+ * a positive safe integer, which would make the size comparison fail open.
124
+ */
125
+ export class ToolBrokerConfigurationError extends Schema.TaggedError<ToolBrokerConfigurationError>()(
126
+ "ToolBrokerConfigurationError",
127
+ {
128
+ message: Schema.String,
129
+ },
130
+ ) {}
131
+
132
+ /**
133
+ * The engine-owned broker service. `openPass` fixes the capability-supplied
134
+ * Toolkit and per-pass result policy once for the whole pass and captures the
135
+ * handler services present at the call site, so nothing inside business
136
+ * execution — least of all generated code — can substitute handlers, policy,
137
+ * or identity afterwards.
138
+ */
139
+ export interface ToolBrokerService {
140
+ readonly openPass: <Tools extends Record<string, Tool.Any>>(
141
+ toolkit: Toolkit.WithHandler<Tools>,
142
+ options: ToolBrokerPassOptions,
143
+ ) => Effect.Effect<
144
+ ToolBrokerPass,
145
+ ToolBrokerUnavailableError | ToolBrokerConfigurationError,
146
+ Tool.HandlerServices<Tools[keyof Tools]>
147
+ >;
148
+ }
149
+
150
+ /**
151
+ * Engine-provided programmatic Tool broker (RUN-016, RUN-017). Declare it
152
+ * with `.addDependency(ToolBroker)` on a Tool that performs programmatic
153
+ * invocation; the interpreter supplies it, and an application Layer must not.
154
+ */
155
+ export class ToolBroker extends Context.Service<ToolBroker, ToolBrokerService>()(
156
+ "@effect-agent/engine/ToolBroker",
157
+ ) {}
@@ -0,0 +1,48 @@
1
+ import { Context, type Effect } from "effect";
2
+ import type { Tool } from "effect/unstable/ai";
3
+
4
+ import type { RunId, ThreadId } from "../core/Identifiers.ts";
5
+
6
+ export type CatalogEntry =
7
+ | {
8
+ readonly kind: "native";
9
+ readonly tool: Tool.Any;
10
+ readonly namespace?: string | undefined;
11
+ readonly nativeToolName: string;
12
+ }
13
+ | {
14
+ readonly kind: "code-mode";
15
+ readonly tool: Tool.Any;
16
+ readonly namespace: string;
17
+ readonly method: string;
18
+ readonly nativeToolName: string;
19
+ };
20
+
21
+ /** Engine-owned per-Turn snapshot. All candidates passed host visibility and inherited grants. */
22
+ export class CurrentToolCatalog extends Context.Service<
23
+ CurrentToolCatalog,
24
+ {
25
+ readonly entries: ReadonlyArray<CatalogEntry>;
26
+ }
27
+ >()("@effect-agent/engine/ToolExposure/CurrentToolCatalog") {}
28
+
29
+ /** Host visibility is checked before a discovery Handler may inspect candidate documentation. */
30
+ export interface VisibilityRequest {
31
+ readonly threadId: ThreadId;
32
+ readonly runId: RunId;
33
+ readonly turn: number;
34
+ readonly input: unknown;
35
+ /** Includes registered native names and explicitly advertised programmatic names. */
36
+ readonly toolNames: ReadonlyArray<string>;
37
+ }
38
+
39
+ /** Resolve host dependencies when constructing the policy Layer. */
40
+ export interface VisibilityHook {
41
+ readonly visible: (request: VisibilityRequest) => Effect.Effect<ReadonlyArray<string>>;
42
+ }
43
+
44
+ /** Optional host policy captured by durable runtimes; action authorization remains independent. */
45
+ export const RunToolVisibility = Context.Reference<VisibilityHook | undefined>(
46
+ "@effect-agent/engine/ToolExposure/RunToolVisibility",
47
+ { defaultValue: () => undefined },
48
+ );