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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/dist/Agent-1DMSO_Fl.mjs +86 -0
  2. package/dist/Agent-1DMSO_Fl.mjs.map +1 -0
  3. package/dist/Agent-DriBcXBN.d.mts +245 -0
  4. package/dist/AgentError-Bn1ytXRD.d.mts +117 -0
  5. package/dist/AgentPolicy-BqDoSXO6.d.mts +96 -0
  6. package/dist/AgentRuntime-CWkHuzyt.d.mts +346 -0
  7. package/dist/AgentRuntime-DLwPoEVH.mjs +4735 -0
  8. package/dist/AgentRuntime-DLwPoEVH.mjs.map +1 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-WwSIG_Z2.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-PyIgNYXF.mjs +6772 -0
  13. package/dist/DurableAgentRuntime-PyIgNYXF.mjs.map +1 -0
  14. package/dist/DurableFailpoint-mx3-nsxU.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/EventSource-BUYLmL77.d.mts +51 -0
  17. package/dist/FailureDiagnostic-BElLOoED.mjs +274 -0
  18. package/dist/FailureDiagnostic-BElLOoED.mjs.map +1 -0
  19. package/dist/FailureDiagnostic-CaAkzGHL.d.mts +223 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/InMemory.d.mts +24 -0
  22. package/dist/InMemory.mjs +24 -0
  23. package/dist/InMemory.mjs.map +1 -0
  24. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  25. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  26. package/dist/Messaging-DaZDlBqh.d.mts +1067 -0
  27. package/dist/Messaging-Dkg87ebg.d.mts +221 -0
  28. package/dist/MessagingHost-D89X7ma8.mjs +110 -0
  29. package/dist/MessagingHost-D89X7ma8.mjs.map +1 -0
  30. package/dist/MessagingHost-e1Sbzfao.d.mts +74 -0
  31. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  32. package/dist/Output-CAFJTAbP.d.mts +25 -0
  33. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  34. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  35. package/dist/PreparedInputAdmission-J3YK6LAm.d.mts +42 -0
  36. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  37. package/dist/Records-4qnRmniE.d.mts +4058 -0
  38. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  39. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  40. package/dist/RunJournal-BXrq0VIK.mjs +931 -0
  41. package/dist/RunJournal-BXrq0VIK.mjs.map +1 -0
  42. package/dist/RunOptions-BoESJrxw.d.mts +935 -0
  43. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  44. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  45. package/dist/Schedule-C2lH2kxY.d.mts +847 -0
  46. package/dist/Scheduling-DPb2QyAK.mjs +691 -0
  47. package/dist/Scheduling-DPb2QyAK.mjs.map +1 -0
  48. package/dist/Subagent-D9eYdGTl.mjs +1537 -0
  49. package/dist/Subagent-D9eYdGTl.mjs.map +1 -0
  50. package/dist/Subagent-F72tuaxy.d.mts +1360 -0
  51. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  52. package/dist/SubagentHost-CmiNTOBZ.d.mts +149 -0
  53. package/dist/Subscription-pQUv0QD6.d.mts +945 -0
  54. package/dist/SubscriptionInput-DdJOiNMY.d.mts +41 -0
  55. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  56. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  57. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  58. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  59. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  60. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  61. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  62. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  63. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  64. package/dist/ToolExposure.d.mts +8 -0
  65. package/dist/ToolExposure.mjs +21 -0
  66. package/dist/ToolExposure.mjs.map +1 -0
  67. package/dist/ToolReconciler-BmVRAHKs.d.mts +80 -0
  68. package/dist/ToolResult-BKdqWRff.d.mts +78 -0
  69. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  70. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  71. package/dist/Worker-Du9dhVnp.d.mts +279 -0
  72. package/dist/Worker-T_3RbaKc.mjs +210 -0
  73. package/dist/Worker-T_3RbaKc.mjs.map +1 -0
  74. package/dist/agent-registration-B5CI-Ygk.mjs +201 -0
  75. package/dist/agent-registration-B5CI-Ygk.mjs.map +1 -0
  76. package/dist/capabilities/Approval.d.mts +114 -0
  77. package/dist/capabilities/Approval.mjs +226 -0
  78. package/dist/capabilities/Approval.mjs.map +1 -0
  79. package/dist/capabilities/Budget.d.mts +112 -0
  80. package/dist/capabilities/Budget.mjs +346 -0
  81. package/dist/capabilities/Budget.mjs.map +1 -0
  82. package/dist/capabilities/CodeMode.d.mts +157 -0
  83. package/dist/capabilities/CodeMode.mjs +522 -0
  84. package/dist/capabilities/CodeMode.mjs.map +1 -0
  85. package/dist/capabilities/Commands.d.mts +55 -0
  86. package/dist/capabilities/Commands.mjs +57 -0
  87. package/dist/capabilities/Commands.mjs.map +1 -0
  88. package/dist/capabilities/ContextTools.d.mts +321 -0
  89. package/dist/capabilities/ContextTools.mjs +126 -0
  90. package/dist/capabilities/ContextTools.mjs.map +1 -0
  91. package/dist/capabilities/Mcp.d.mts +108 -0
  92. package/dist/capabilities/Mcp.mjs +260 -0
  93. package/dist/capabilities/Mcp.mjs.map +1 -0
  94. package/dist/capabilities/McpClient.d.mts +115 -0
  95. package/dist/capabilities/McpClient.mjs +506 -0
  96. package/dist/capabilities/McpClient.mjs.map +1 -0
  97. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  98. package/dist/capabilities/MemoryNotes.mjs +128 -0
  99. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  100. package/dist/capabilities/Messaging.d.mts +3 -0
  101. package/dist/capabilities/Messaging.mjs +152 -0
  102. package/dist/capabilities/Messaging.mjs.map +1 -0
  103. package/dist/capabilities/ModelContext.d.mts +89 -0
  104. package/dist/capabilities/ModelContext.mjs +168 -0
  105. package/dist/capabilities/ModelContext.mjs.map +1 -0
  106. package/dist/capabilities/Redaction.d.mts +37 -0
  107. package/dist/capabilities/Redaction.mjs +104 -0
  108. package/dist/capabilities/Redaction.mjs.map +1 -0
  109. package/dist/capabilities/Remembering.d.mts +434 -0
  110. package/dist/capabilities/Remembering.mjs +290 -0
  111. package/dist/capabilities/Remembering.mjs.map +1 -0
  112. package/dist/capabilities/RunHooks.d.mts +82 -0
  113. package/dist/capabilities/RunHooks.mjs +144 -0
  114. package/dist/capabilities/RunHooks.mjs.map +1 -0
  115. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  116. package/dist/capabilities/SemanticMemory.mjs +315 -0
  117. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  118. package/dist/capabilities/Subagent.d.mts +4 -0
  119. package/dist/capabilities/Subagent.mjs +5 -0
  120. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  121. package/dist/capabilities/SubagentReservations.mjs +479 -0
  122. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  123. package/dist/capabilities/ToolDiscovery.d.mts +124 -0
  124. package/dist/capabilities/ToolDiscovery.mjs +230 -0
  125. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  126. package/dist/capabilities/WebCapture.d.mts +163 -0
  127. package/dist/capabilities/WebCapture.mjs +335 -0
  128. package/dist/capabilities/WebCapture.mjs.map +1 -0
  129. package/dist/capabilities/WebSearch.d.mts +71 -0
  130. package/dist/capabilities/WebSearch.mjs +115 -0
  131. package/dist/capabilities/WebSearch.mjs.map +1 -0
  132. package/dist/compaction-C2OTceKw.mjs +505 -0
  133. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  134. package/dist/core/Agent.d.mts +2 -0
  135. package/dist/core/Agent.mjs +2 -0
  136. package/dist/core/AgentError.d.mts +2 -0
  137. package/dist/core/AgentError.mjs +134 -0
  138. package/dist/core/AgentError.mjs.map +1 -0
  139. package/dist/core/AgentPolicy.d.mts +2 -0
  140. package/dist/core/AgentPolicy.mjs +94 -0
  141. package/dist/core/AgentPolicy.mjs.map +1 -0
  142. package/dist/core/AgentUpdates.d.mts +2 -0
  143. package/dist/core/AgentUpdates.mjs +63 -0
  144. package/dist/core/AgentUpdates.mjs.map +1 -0
  145. package/dist/core/FailureDiagnostic.d.mts +2 -0
  146. package/dist/core/FailureDiagnostic.mjs +2 -0
  147. package/dist/core/IdGenerator.d.mts +26 -0
  148. package/dist/core/IdGenerator.mjs +27 -0
  149. package/dist/core/IdGenerator.mjs.map +1 -0
  150. package/dist/core/Identifiers.d.mts +2 -0
  151. package/dist/core/Identifiers.mjs +43 -0
  152. package/dist/core/Identifiers.mjs.map +1 -0
  153. package/dist/core/Memory.d.mts +57 -0
  154. package/dist/core/Memory.mjs +203 -0
  155. package/dist/core/Memory.mjs.map +1 -0
  156. package/dist/core/MemoryNamespace.d.mts +2 -0
  157. package/dist/core/MemoryNamespace.mjs +116 -0
  158. package/dist/core/MemoryNamespace.mjs.map +1 -0
  159. package/dist/core/MemoryReference.d.mts +2 -0
  160. package/dist/core/MemoryReference.mjs +109 -0
  161. package/dist/core/MemoryReference.mjs.map +1 -0
  162. package/dist/core/MemoryRevalidation.d.mts +65 -0
  163. package/dist/core/MemoryRevalidation.mjs +126 -0
  164. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  165. package/dist/core/MemoryStore.d.mts +186 -0
  166. package/dist/core/MemoryStore.mjs +243 -0
  167. package/dist/core/MemoryStore.mjs.map +1 -0
  168. package/dist/core/Receipt.d.mts +2 -0
  169. package/dist/core/Receipt.mjs +36 -0
  170. package/dist/core/Receipt.mjs.map +1 -0
  171. package/dist/core/RememberingStore.d.mts +1562 -0
  172. package/dist/core/RememberingStore.mjs +190 -0
  173. package/dist/core/RememberingStore.mjs.map +1 -0
  174. package/dist/core/RunEvent.d.mts +2 -0
  175. package/dist/core/RunEvent.mjs +337 -0
  176. package/dist/core/RunEvent.mjs.map +1 -0
  177. package/dist/core/RunPolicyUsage.d.mts +2 -0
  178. package/dist/core/RunPolicyUsage.mjs +21 -0
  179. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  180. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  181. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  182. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  183. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  184. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  185. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  186. package/dist/core/SubagentContract.d.mts +2 -0
  187. package/dist/core/SubagentContract.mjs +148 -0
  188. package/dist/core/SubagentContract.mjs.map +1 -0
  189. package/dist/core/Thread.d.mts +2 -0
  190. package/dist/core/Thread.mjs +250 -0
  191. package/dist/core/Thread.mjs.map +1 -0
  192. package/dist/core/ToolResult.d.mts +2 -0
  193. package/dist/core/ToolResult.mjs +156 -0
  194. package/dist/core/ToolResult.mjs.map +1 -0
  195. package/dist/core/Usage.d.mts +2 -0
  196. package/dist/core/Usage.mjs +319 -0
  197. package/dist/core/Usage.mjs.map +1 -0
  198. package/dist/core/Worker.d.mts +3 -0
  199. package/dist/core/Worker.mjs +3 -0
  200. package/dist/durable/ActivityStore.d.mts +116 -0
  201. package/dist/durable/ActivityStore.mjs +131 -0
  202. package/dist/durable/ActivityStore.mjs.map +1 -0
  203. package/dist/durable/Admin.d.mts +2 -0
  204. package/dist/durable/Admin.mjs +330 -0
  205. package/dist/durable/Admin.mjs.map +1 -0
  206. package/dist/durable/AgentRegistration.d.mts +2 -0
  207. package/dist/durable/AgentRegistration.mjs +14 -0
  208. package/dist/durable/AgentRegistration.mjs.map +1 -0
  209. package/dist/durable/Certification.d.mts +110 -0
  210. package/dist/durable/Certification.mjs +159 -0
  211. package/dist/durable/Certification.mjs.map +1 -0
  212. package/dist/durable/CommittedActivity.d.mts +62 -0
  213. package/dist/durable/CommittedActivity.mjs +159 -0
  214. package/dist/durable/CommittedActivity.mjs.map +1 -0
  215. package/dist/durable/Digest.d.mts +2 -0
  216. package/dist/durable/Digest.mjs +50 -0
  217. package/dist/durable/Digest.mjs.map +1 -0
  218. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  219. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  220. package/dist/durable/DurableFailpoint.d.mts +2 -0
  221. package/dist/durable/DurableFailpoint.mjs +98 -0
  222. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  223. package/dist/durable/DurableFailpointTestControl.d.mts +14 -0
  224. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  225. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  226. package/dist/durable/EventSource.d.mts +2 -0
  227. package/dist/durable/EventSource.mjs +65 -0
  228. package/dist/durable/EventSource.mjs.map +1 -0
  229. package/dist/durable/GitHubWorkflowSource.d.mts +185 -0
  230. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  231. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  232. package/dist/durable/MessageDelivery.d.mts +876 -0
  233. package/dist/durable/MessageDelivery.mjs +549 -0
  234. package/dist/durable/MessageDelivery.mjs.map +1 -0
  235. package/dist/durable/MessageDeliveryStoreConformance.d.mts +376 -0
  236. package/dist/durable/MessageDeliveryStoreConformance.mjs +270 -0
  237. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  238. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  239. package/dist/durable/OperationAuthorizer.mjs +70 -0
  240. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  241. package/dist/durable/PersistentHistory.d.mts +16 -0
  242. package/dist/durable/PersistentHistory.mjs +125 -0
  243. package/dist/durable/PersistentHistory.mjs.map +1 -0
  244. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  245. package/dist/durable/PreparedInputAdmission.mjs +38 -0
  246. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  247. package/dist/durable/Records.d.mts +2 -0
  248. package/dist/durable/Records.mjs +841 -0
  249. package/dist/durable/Records.mjs.map +1 -0
  250. package/dist/durable/Recovery.d.mts +2 -0
  251. package/dist/durable/Recovery.mjs +739 -0
  252. package/dist/durable/Recovery.mjs.map +1 -0
  253. package/dist/durable/RunJournal.d.mts +2 -0
  254. package/dist/durable/RunJournal.mjs +2 -0
  255. package/dist/durable/Schedule.d.mts +2 -0
  256. package/dist/durable/Schedule.mjs +391 -0
  257. package/dist/durable/Schedule.mjs.map +1 -0
  258. package/dist/durable/ScheduleStoreConformance.d.mts +17 -0
  259. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  260. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  261. package/dist/durable/ScheduleTransition.d.mts +24 -0
  262. package/dist/durable/ScheduleTransition.mjs +180 -0
  263. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  264. package/dist/durable/Scheduling.d.mts +54 -0
  265. package/dist/durable/Scheduling.mjs +2 -0
  266. package/dist/durable/SqlMemoryStore.d.mts +29 -0
  267. package/dist/durable/SqlMemoryStore.mjs +436 -0
  268. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  269. package/dist/durable/SqlMessageDeliveryStore.d.mts +42 -0
  270. package/dist/durable/SqlMessageDeliveryStore.mjs +173 -0
  271. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  272. package/dist/durable/SqlStorageV2Upgrade.d.mts +21 -0
  273. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  274. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  275. package/dist/durable/SqlSubscriptionStore.d.mts +62 -0
  276. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  277. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  278. package/dist/durable/SqlThreadNativeReads.d.mts +49 -0
  279. package/dist/durable/SqlThreadNativeReads.mjs +153 -0
  280. package/dist/durable/SqlThreadNativeReads.mjs.map +1 -0
  281. package/dist/durable/SubmissionLedger.d.mts +3 -0
  282. package/dist/durable/SubmissionLedger.mjs +918 -0
  283. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  284. package/dist/durable/SubmissionLedgerConformance.d.mts +29 -0
  285. package/dist/durable/SubmissionLedgerConformance.mjs +1993 -0
  286. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  287. package/dist/durable/SubmissionStatus.d.mts +2 -0
  288. package/dist/durable/SubmissionStatus.mjs +18 -0
  289. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  290. package/dist/durable/Subscription.d.mts +2 -0
  291. package/dist/durable/Subscription.mjs +360 -0
  292. package/dist/durable/Subscription.mjs.map +1 -0
  293. package/dist/durable/SubscriptionInput.d.mts +2 -0
  294. package/dist/durable/SubscriptionInput.mjs +52 -0
  295. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  296. package/dist/durable/SubscriptionStoreConformance.d.mts +16 -0
  297. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  298. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  299. package/dist/durable/SubscriptionTools.d.mts +273 -0
  300. package/dist/durable/SubscriptionTools.mjs +190 -0
  301. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  302. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  303. package/dist/durable/SubscriptionTransition.mjs +148 -0
  304. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  305. package/dist/durable/Subscriptions.d.mts +73 -0
  306. package/dist/durable/Subscriptions.mjs +627 -0
  307. package/dist/durable/Subscriptions.mjs.map +1 -0
  308. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  309. package/dist/durable/ThreadContextHistory.mjs +152 -0
  310. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  311. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  312. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  313. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  314. package/dist/durable/ThreadInvariants.d.mts +76 -0
  315. package/dist/durable/ThreadInvariants.mjs +246 -0
  316. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  317. package/dist/durable/ThreadProjection.d.mts +78 -0
  318. package/dist/durable/ThreadProjection.mjs +158 -0
  319. package/dist/durable/ThreadProjection.mjs.map +1 -0
  320. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  321. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  322. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  323. package/dist/durable/ThreadStore.d.mts +2 -0
  324. package/dist/durable/ThreadStore.mjs +336 -0
  325. package/dist/durable/ThreadStore.mjs.map +1 -0
  326. package/dist/durable/ThreadStoreConformance.d.mts +28 -0
  327. package/dist/durable/ThreadStoreConformance.mjs +503 -0
  328. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  329. package/dist/durable/ToolReconciler.d.mts +2 -0
  330. package/dist/durable/ToolReconciler.mjs +85 -0
  331. package/dist/durable/ToolReconciler.mjs.map +1 -0
  332. package/dist/durable/WakeScheduler.d.mts +2 -0
  333. package/dist/durable/WakeScheduler.mjs +85 -0
  334. package/dist/durable/WakeScheduler.mjs.map +1 -0
  335. package/dist/durable/WorkerHost.d.mts +129 -0
  336. package/dist/durable/WorkerHost.mjs +77 -0
  337. package/dist/durable/WorkerHost.mjs.map +1 -0
  338. package/dist/engine/AgentRuntime.d.mts +2 -0
  339. package/dist/engine/AgentRuntime.mjs +2 -0
  340. package/dist/engine/Compaction.d.mts +7 -0
  341. package/dist/engine/Compaction.mjs +16 -0
  342. package/dist/engine/Compaction.mjs.map +1 -0
  343. package/dist/engine/ContextCompactor.d.mts +2 -0
  344. package/dist/engine/ContextCompactor.mjs +119 -0
  345. package/dist/engine/ContextCompactor.mjs.map +1 -0
  346. package/dist/engine/ContextHistory.d.mts +65 -0
  347. package/dist/engine/ContextHistory.mjs +76 -0
  348. package/dist/engine/ContextHistory.mjs.map +1 -0
  349. package/dist/engine/ContextWindow.d.mts +2 -0
  350. package/dist/engine/ContextWindow.mjs +59 -0
  351. package/dist/engine/ContextWindow.mjs.map +1 -0
  352. package/dist/engine/DurableStep.d.mts +2 -0
  353. package/dist/engine/DurableStep.mjs +62 -0
  354. package/dist/engine/DurableStep.mjs.map +1 -0
  355. package/dist/engine/MessagingHost.d.mts +2 -0
  356. package/dist/engine/MessagingHost.mjs +2 -0
  357. package/dist/engine/Output.d.mts +2 -0
  358. package/dist/engine/Output.mjs +8 -0
  359. package/dist/engine/Output.mjs.map +1 -0
  360. package/dist/engine/RunEventSink.d.mts +2 -0
  361. package/dist/engine/RunEventSink.mjs +22 -0
  362. package/dist/engine/RunEventSink.mjs.map +1 -0
  363. package/dist/engine/RunOptions.d.mts +2 -0
  364. package/dist/engine/RunOptions.mjs +124 -0
  365. package/dist/engine/RunOptions.mjs.map +1 -0
  366. package/dist/engine/SubagentHost.d.mts +2 -0
  367. package/dist/engine/SubagentHost.mjs +72 -0
  368. package/dist/engine/SubagentHost.mjs.map +1 -0
  369. package/dist/engine/ThreadHistory.d.mts +2 -0
  370. package/dist/engine/ThreadHistory.mjs +67 -0
  371. package/dist/engine/ThreadHistory.mjs.map +1 -0
  372. package/dist/engine/ToolBroker.d.mts +2 -0
  373. package/dist/engine/ToolBroker.mjs +42 -0
  374. package/dist/engine/ToolBroker.mjs.map +1 -0
  375. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  376. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  377. package/dist/index.d.mts +91 -6
  378. package/dist/index.mjs +100 -6
  379. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  380. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  381. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  382. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  383. package/dist/sandbox/CodeExecutor.mjs +278 -0
  384. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  385. package/dist/sandbox/InteractiveBrowser.d.mts +257 -0
  386. package/dist/sandbox/InteractiveBrowser.mjs +236 -0
  387. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  388. package/dist/sandbox/PageCapture.d.mts +2 -0
  389. package/dist/sandbox/PageCapture.mjs +450 -0
  390. package/dist/sandbox/PageCapture.mjs.map +1 -0
  391. package/dist/sandbox/PageCrawl.d.mts +88 -0
  392. package/dist/sandbox/PageCrawl.mjs +124 -0
  393. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  394. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  395. package/dist/sandbox/PageScreenshot.mjs +53 -0
  396. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  397. package/dist/sandbox/ProtectedBrowser.d.mts +273 -0
  398. package/dist/sandbox/ProtectedBrowser.mjs +287 -0
  399. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  400. package/dist/sandbox/Sandbox.d.mts +2 -0
  401. package/dist/sandbox/Sandbox.mjs +208 -0
  402. package/dist/sandbox/Sandbox.mjs.map +1 -0
  403. package/dist/utf8-BYfhEkcj.mjs +11 -0
  404. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  405. package/dist/utf8-DchGZRBd.mjs +23 -0
  406. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  407. package/package.json +1 -40
  408. package/src/InMemory.ts +19 -0
  409. package/src/ToolExposure.ts +2 -0
  410. package/src/capabilities/Approval.ts +352 -0
  411. package/src/capabilities/Budget.ts +536 -0
  412. package/src/capabilities/CodeMode.ts +1090 -0
  413. package/src/capabilities/Commands.ts +86 -0
  414. package/src/capabilities/ContextTools.ts +184 -0
  415. package/src/capabilities/Mcp.ts +427 -0
  416. package/src/capabilities/McpClient.ts +967 -0
  417. package/src/capabilities/MemoryNotes.ts +174 -0
  418. package/src/capabilities/Messaging.ts +261 -0
  419. package/src/capabilities/ModelContext.ts +354 -0
  420. package/src/capabilities/Redaction.ts +157 -0
  421. package/src/capabilities/Remembering.ts +550 -0
  422. package/src/capabilities/RunHooks.ts +280 -0
  423. package/src/capabilities/SemanticMemory.ts +447 -0
  424. package/src/capabilities/Subagent.ts +2488 -0
  425. package/src/capabilities/SubagentReservations.ts +850 -0
  426. package/src/capabilities/ToolDiscovery.ts +369 -0
  427. package/src/capabilities/WebCapture.ts +722 -0
  428. package/src/capabilities/WebSearch.ts +190 -0
  429. package/src/capabilities/internal/subagent-background.ts +1246 -0
  430. package/src/capabilities/internal/subagent-contract.ts +146 -0
  431. package/src/capabilities/internal/subagent-policy.ts +235 -0
  432. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  433. package/src/capabilities/internal/utf8.ts +10 -0
  434. package/src/core/Agent.ts +595 -0
  435. package/src/core/AgentError.ts +172 -0
  436. package/src/core/AgentPolicy.ts +153 -0
  437. package/src/core/AgentUpdates.ts +100 -0
  438. package/src/core/FailureDiagnostic.ts +343 -0
  439. package/src/core/IdGenerator.ts +39 -0
  440. package/src/core/Identifiers.ts +48 -0
  441. package/src/core/Memory.ts +290 -0
  442. package/src/core/MemoryNamespace.ts +196 -0
  443. package/src/core/MemoryReference.ts +121 -0
  444. package/src/core/MemoryRevalidation.ts +185 -0
  445. package/src/core/MemoryStore.ts +368 -0
  446. package/src/core/Messaging.ts +72 -0
  447. package/src/core/Receipt.ts +42 -0
  448. package/src/core/RememberingStore.ts +300 -0
  449. package/src/core/RunEvent.ts +366 -0
  450. package/src/core/RunPolicyUsage.ts +17 -0
  451. package/src/core/SemanticMemoryIndex.ts +250 -0
  452. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  453. package/src/core/SubagentContract.ts +196 -0
  454. package/src/core/Thread.ts +371 -0
  455. package/src/core/ToolExposure.ts +74 -0
  456. package/src/core/ToolResult.ts +190 -0
  457. package/src/core/Usage.ts +529 -0
  458. package/src/core/Worker.ts +184 -0
  459. package/src/core/internal/agent-updates.ts +34 -0
  460. package/src/core/internal/message-status.ts +60 -0
  461. package/src/core/internal/strict-schema.ts +14 -0
  462. package/src/core/internal/utf8.ts +23 -0
  463. package/src/durable/ActivityStore.ts +160 -0
  464. package/src/durable/Admin.ts +505 -0
  465. package/src/durable/AgentRegistration.ts +14 -0
  466. package/src/durable/Certification.ts +210 -0
  467. package/src/durable/CommittedActivity.ts +296 -0
  468. package/src/durable/Digest.ts +87 -0
  469. package/src/durable/DurableAgentRuntime.ts +10950 -0
  470. package/src/durable/DurableFailpoint.ts +107 -0
  471. package/src/durable/DurableFailpointTestControl.ts +39 -0
  472. package/src/durable/EventSource.ts +172 -0
  473. package/src/durable/GitHubWorkflowSource.ts +447 -0
  474. package/src/durable/MessageDelivery.ts +817 -0
  475. package/src/durable/MessageDeliveryStoreConformance.ts +410 -0
  476. package/src/durable/OperationAuthorizer.ts +85 -0
  477. package/src/durable/PersistentHistory.ts +260 -0
  478. package/src/durable/PreparedInputAdmission.ts +57 -0
  479. package/src/durable/Records.ts +1065 -0
  480. package/src/durable/Recovery.ts +1018 -0
  481. package/src/durable/RunJournal.ts +1631 -0
  482. package/src/durable/Schedule.ts +513 -0
  483. package/src/durable/ScheduleStoreConformance.ts +638 -0
  484. package/src/durable/ScheduleTransition.ts +265 -0
  485. package/src/durable/Scheduling.ts +1077 -0
  486. package/src/durable/SqlMemoryStore.ts +778 -0
  487. package/src/durable/SqlMessageDeliveryStore.ts +321 -0
  488. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  489. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  490. package/src/durable/SqlThreadNativeReads.ts +256 -0
  491. package/src/durable/SubmissionLedger.ts +1205 -0
  492. package/src/durable/SubmissionLedgerConformance.ts +4590 -0
  493. package/src/durable/SubmissionStatus.ts +14 -0
  494. package/src/durable/Subscription.ts +544 -0
  495. package/src/durable/SubscriptionInput.ts +144 -0
  496. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  497. package/src/durable/SubscriptionTools.ts +327 -0
  498. package/src/durable/SubscriptionTransition.ts +302 -0
  499. package/src/durable/Subscriptions.ts +1210 -0
  500. package/src/durable/ThreadContextHistory.ts +227 -0
  501. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  502. package/src/durable/ThreadInvariants.ts +507 -0
  503. package/src/durable/ThreadProjection.ts +269 -0
  504. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  505. package/src/durable/ThreadStore.ts +552 -0
  506. package/src/durable/ThreadStoreConformance.ts +1156 -0
  507. package/src/durable/ToolReconciler.ts +109 -0
  508. package/src/durable/WakeScheduler.ts +134 -0
  509. package/src/durable/WorkerHost.ts +171 -0
  510. package/src/durable/internal/agent-registration.ts +621 -0
  511. package/src/durable/internal/agent-updates.ts +302 -0
  512. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  513. package/src/durable/internal/journal-checkpoint.ts +104 -0
  514. package/src/durable/internal/journal-metadata.ts +117 -0
  515. package/src/durable/internal/message-status.ts +20 -0
  516. package/src/durable/internal/messaging-host.ts +637 -0
  517. package/src/durable/internal/schedule-time.ts +303 -0
  518. package/src/durable/internal/storage-v2-layout.ts +163 -0
  519. package/src/durable/internal/storage-v2.ts +73 -0
  520. package/src/durable/internal/worker-host.ts +2678 -0
  521. package/src/durable/internal/worker-runtime.ts +9 -0
  522. package/src/engine/AgentRuntime.ts +37 -0
  523. package/src/engine/Compaction.ts +11 -0
  524. package/src/engine/ContextCompactor.ts +277 -0
  525. package/src/engine/ContextHistory.ts +73 -0
  526. package/src/engine/ContextWindow.ts +72 -0
  527. package/src/engine/DurableStep.ts +132 -0
  528. package/src/engine/MessagingHost.ts +110 -0
  529. package/src/engine/Output.ts +2 -0
  530. package/src/engine/RunEventSink.ts +132 -0
  531. package/src/engine/RunOptions.ts +1101 -0
  532. package/src/engine/SubagentHost.ts +193 -0
  533. package/src/engine/ThreadHistory.ts +120 -0
  534. package/src/engine/ToolBroker.ts +157 -0
  535. package/src/engine/ToolExposure.ts +48 -0
  536. package/src/engine/internal/agent-runtime.ts +10485 -0
  537. package/src/engine/internal/bounded-value.ts +315 -0
  538. package/src/engine/internal/compaction.ts +678 -0
  539. package/src/engine/internal/error-diagnostic.ts +39 -0
  540. package/src/engine/internal/output-contract.ts +173 -0
  541. package/src/engine/internal/primitive-delta.ts +80 -0
  542. package/src/engine/internal/provider-result-staging.ts +211 -0
  543. package/src/engine/internal/tool-derivative.ts +106 -0
  544. package/src/engine/internal/tool-exposure.ts +224 -0
  545. package/src/engine/internal/tool-telemetry.ts +484 -0
  546. package/src/index.ts +99 -21
  547. package/src/sandbox/CodeExecutor.ts +352 -0
  548. package/src/sandbox/InteractiveBrowser.ts +339 -0
  549. package/src/sandbox/PageCapture.ts +691 -0
  550. package/src/sandbox/PageCrawl.ts +148 -0
  551. package/src/sandbox/PageScreenshot.ts +81 -0
  552. package/src/sandbox/ProtectedBrowser.ts +436 -0
  553. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,621 @@
1
+ import {
2
+ type Crypto,
3
+ type Option,
4
+ type Scope,
5
+ Context,
6
+ Effect,
7
+ Layer,
8
+ References,
9
+ Schema,
10
+ Tracer,
11
+ } from "effect";
12
+ import { Tool } from "effect/unstable/ai";
13
+
14
+ import type * as Agent from "../../core/Agent.ts";
15
+ import {
16
+ type InputPromptSource,
17
+ type InstructionSource,
18
+ type ModelServices,
19
+ type RunDispositionDeclaration,
20
+ } from "../../core/Agent.ts";
21
+ import { type ThreadId, AgentId } from "../../core/Identifiers.ts";
22
+ import { getToolExecutionKind } from "../../core/SubagentContract.ts";
23
+ import {
24
+ AdditionalToolCatalog,
25
+ DiscoveryTool,
26
+ IncludesCatalogDocumentation,
27
+ PinnedTool,
28
+ ToolNamespace,
29
+ } from "../../core/ToolExposure.ts";
30
+ import { type RuntimeBinding } from "../../engine/AgentRuntime.ts";
31
+ import { ContextRolloverTool } from "../../engine/ContextWindow.ts";
32
+ import { getToolExecutionClass } from "../../engine/DurableStep.ts";
33
+ import {
34
+ BackgroundReporting,
35
+ WorkerReportPreparationFailure,
36
+ type WorkerReporting,
37
+ } from "../../engine/SubagentHost.ts";
38
+ import { digestDefinitions, digestJson, DigestError } from "../Digest.ts";
39
+ import type { DurableWorkerFailure, DurableWorkerRequirements } from "../DurableAgentRuntime.ts";
40
+ import type { DefinitionDigestInput, PersistedJson } from "../Records.ts";
41
+ import { DefinitionDigests, ReplayContract } from "../Records.ts";
42
+ import type { Claim, Settlement } from "../SubmissionLedger.ts";
43
+
44
+ /** No unique current executable is registered for the stable Agent identity. */
45
+ export class BindingUnavailable extends Schema.TaggedError<BindingUnavailable>()(
46
+ "BindingUnavailable",
47
+ { agentId: AgentId, message: Schema.String },
48
+ ) {}
49
+
50
+ export type DurableBindingFailure = BindingUnavailable;
51
+
52
+ /** Exact immutable admission, lineage and delivery evidence; never an executable-code gate. */
53
+ export const definitionDigestsEqual = (
54
+ left: DefinitionDigests,
55
+ right: DefinitionDigests,
56
+ ): boolean =>
57
+ left.agent === right.agent &&
58
+ left.model === right.model &&
59
+ left.tools === right.tools &&
60
+ Schema.toEquivalence(Schema.UndefinedOr(ReplayContract))(left.replay, right.replay);
61
+
62
+ /** Change an operation version when its meaning, durable Steps or idempotency keys change. */
63
+ export interface ReplayVersions {
64
+ readonly tools: Readonly<Record<string, PersistedJson>>;
65
+ }
66
+
67
+ /** Hash current operation contracts; no historical definitions or schemas are retained. */
68
+ export const toolReplayContracts = Effect.fn("AgentRegistration.toolReplayContracts")(function* (
69
+ definition: Agent.AnyDefinition,
70
+ versions?: ReplayVersions,
71
+ fallbackVersion: PersistedJson = null,
72
+ ) {
73
+ const declarations = yield* Effect.try({
74
+ try: () => {
75
+ const jsonSchema = (schema: Schema.Top) =>
76
+ Schema.decodeUnknownSync(Schema.Json)(Tool.getJsonSchemaFromSchema(schema));
77
+
78
+ return Object.values(definition.toolkit.tools).map((tool) => {
79
+ const version = versions === undefined ? fallbackVersion : versions.tools[tool.name];
80
+
81
+ if (
82
+ version === undefined ||
83
+ (versions !== undefined && !Object.hasOwn(versions.tools, tool.name))
84
+ )
85
+ throw new Error("Every Tool needs an explicit replay semantic version");
86
+
87
+ return {
88
+ name: tool.name,
89
+ contract: {
90
+ version,
91
+ parameters: jsonSchema(tool.parametersSchema),
92
+ success: jsonSchema(tool.successSchema),
93
+ failure: jsonSchema(tool.failureSchema),
94
+ failureMode: tool.failureMode,
95
+ needsApproval:
96
+ typeof tool.needsApproval === "function" ? "dynamic" : (tool.needsApproval ?? false),
97
+ executionClass: getToolExecutionClass(tool),
98
+ executionKind: getToolExecutionKind(tool.annotations),
99
+ contextRollover: Context.get(tool.annotations, ContextRolloverTool),
100
+ completion: definition.completion?.tool === tool.name,
101
+ completionFromTool:
102
+ definition.completionFromTools?.some(
103
+ (declaration) => declaration.tool === tool.name,
104
+ ) ?? false,
105
+ },
106
+ };
107
+ });
108
+ },
109
+ catch: () =>
110
+ DigestError.make({
111
+ message: "Operation contracts require serializable codecs and a version for every Tool",
112
+ }),
113
+ });
114
+
115
+ return Object.fromEntries(
116
+ yield* Effect.forEach(declarations, ({ name, contract }) =>
117
+ digestJson(contract).pipe(Effect.map((digest) => [name, digest] as const)),
118
+ ),
119
+ );
120
+ });
121
+
122
+ /** Compile current metadata without acquiring executable services. */
123
+ export const compileBindingContracts = Effect.fn("AgentRegistration.compileBindingContracts")(
124
+ function* (
125
+ definition: Agent.AnyDefinition,
126
+ definitions: DefinitionDigestInput,
127
+ versions?: ReplayVersions,
128
+ ): Effect.fn.Return<Pick<ResolvedBinding, "digests">, DigestError, Crypto.Crypto> {
129
+ const digests = yield* digestDefinitions(definitions);
130
+ const tools = yield* toolReplayContracts(definition, versions, definitions.tools);
131
+
132
+ return {
133
+ digests: DefinitionDigests.make({
134
+ ...digests,
135
+ replay: ReplayContract.make({ agent: digests.agent, tools }),
136
+ }),
137
+ };
138
+ },
139
+ );
140
+
141
+ type ExecutableDefinition = Agent.AnyDefinition & {
142
+ readonly instructions: InstructionSource<never, unknown, unknown>;
143
+ readonly inputPrompt?: InputPromptSource<never, unknown, unknown> | undefined;
144
+ };
145
+
146
+ /** Executable model Binding accepted by durable registration descriptors. */
147
+ export type ExecutableAgentBinding = {
148
+ readonly definition: ExecutableDefinition;
149
+ readonly model: Layer.Layer<ModelServices, never, unknown>;
150
+ };
151
+
152
+ /**
153
+ * Internal coordinator entry point for one fenced Attempt over an already-granted claim.
154
+ * The generic signature matches `runAttempt` and is specialized for each captured Agent.
155
+ */
156
+ type ResolvedAttemptDriver = <
157
+ InputSchema extends Schema.Top,
158
+ OutputSchema extends Schema.Top,
159
+ Instructions,
160
+ Tools extends Record<string, Tool.Any>,
161
+ Provider,
162
+ ModelProvides,
163
+ ModelRequires,
164
+ InstructionError,
165
+ InstructionRequirements,
166
+ RunDispositionValue extends
167
+ | RunDispositionDeclaration<OutputSchema["Type"], Schema.Top>
168
+ | undefined,
169
+ InputPromptValue extends InputPromptSource<InputSchema["Type"], unknown, unknown> | undefined,
170
+ UpdatesSchema extends Schema.Top | undefined,
171
+ >(
172
+ agent: RuntimeBinding<
173
+ InputSchema,
174
+ OutputSchema,
175
+ Instructions,
176
+ Tools,
177
+ Provider,
178
+ ModelProvides,
179
+ ModelRequires,
180
+ InstructionError,
181
+ InstructionRequirements,
182
+ RunDispositionValue,
183
+ InputPromptValue,
184
+ UpdatesSchema
185
+ >,
186
+ threadId: ThreadId,
187
+ claim: Claim,
188
+ ) => Effect.Effect<
189
+ Option.Option<Settlement>,
190
+ DurableWorkerFailure,
191
+ DurableWorkerRequirements<
192
+ RuntimeBinding<
193
+ InputSchema,
194
+ OutputSchema,
195
+ Instructions,
196
+ Tools,
197
+ Provider,
198
+ ModelProvides,
199
+ ModelRequires,
200
+ InstructionError,
201
+ InstructionRequirements,
202
+ RunDispositionValue,
203
+ InputPromptValue,
204
+ UpdatesSchema
205
+ >,
206
+ InstructionRequirements
207
+ >
208
+ >;
209
+
210
+ type CapturedAttempt<A extends ExecutableAgentBinding> = (
211
+ agent: A,
212
+ threadId: ThreadId,
213
+ claim: Claim,
214
+ ) => Effect.Effect<Option.Option<Settlement>, DurableWorkerFailure, DurableWorkerRequirements<A>>;
215
+
216
+ /**
217
+ * An Agent with its worker services captured, ready to drive a fenced Attempt.
218
+ * Concrete Schema and model types stay inside this closure when registrations are collected.
219
+ */
220
+ interface CapturedBinding {
221
+ readonly agentId: AgentId;
222
+ /** Exact immutable definition whose codecs and behavior the worker captured. */
223
+ readonly definition: Agent.AnyDefinition;
224
+ /** Captured independently from per-Attempt services: report preparation has no fenced Claim. */
225
+ readonly reporting?: ReadonlyArray<WorkerReporting<WorkerReportPreparationFailure>>;
226
+ readonly attempt: (
227
+ driver: ResolvedAttemptDriver,
228
+ threadId: ThreadId,
229
+ claim: Claim,
230
+ ) => Effect.Effect<Option.Option<Settlement>, DurableWorkerFailure>;
231
+ }
232
+
233
+ type ReportRequirements<Reports> =
234
+ Reports extends ReadonlyArray<WorkerReporting<unknown, unknown>>
235
+ ? [Reports[number]] extends [never]
236
+ ? never
237
+ : Reports[number] extends WorkerReporting<unknown, infer R>
238
+ ? Exclude<R, Scope.Scope>
239
+ : never
240
+ : never;
241
+
242
+ // Registrations outlive their construction span. Dependencies remain captured,
243
+ // while every attempt/report inherits the invoking fiber's tracing state.
244
+ const omitTraceContext = Context.omit(
245
+ Tracer.ParentSpan,
246
+ Tracer.Tracer,
247
+ Tracer.MinimumTraceLevel,
248
+ Tracer.CurrentTraceLevel,
249
+ References.TracerEnabled,
250
+ References.TracerTimingEnabled,
251
+ References.TracerSpanAnnotations,
252
+ References.TracerSpanLinks,
253
+ );
254
+
255
+ // R describes captured application services; ParentSpan is supplied by the
256
+ // live invocation rather than stored as a registration dependency.
257
+ const withoutTraceContext = <R>(context: Context.Context<R>): Context.Context<R> =>
258
+ omitTraceContext(context) as Context.Context<R>;
259
+
260
+ const captureReporting = <R>(reports: ReadonlyArray<WorkerReporting<unknown, R>>) =>
261
+ Effect.map(
262
+ Effect.context<Exclude<R, Scope.Scope>>().pipe(Effect.map(withoutTraceContext)),
263
+ (context) =>
264
+ reports.map((report): WorkerReporting<WorkerReportPreparationFailure> => ({
265
+ ...report,
266
+ prepare: (value) =>
267
+ Effect.scoped(Effect.suspend(() => report.prepare(value))).pipe(
268
+ Effect.provide(context),
269
+ Effect.mapError((error) =>
270
+ Schema.is(WorkerReportPreparationFailure)(error)
271
+ ? error
272
+ : WorkerReportPreparationFailure.make({ stage: "preparation" }),
273
+ ),
274
+ ),
275
+ })),
276
+ );
277
+
278
+ const backgroundReports = (definition: Agent.AnyDefinition) => [
279
+ ...new Set(
280
+ Object.values(definition.toolkit.tools).flatMap((tool) => {
281
+ const report = Context.get(tool.annotations, BackgroundReporting);
282
+
283
+ return report === undefined ? [] : [report];
284
+ }),
285
+ ),
286
+ ];
287
+
288
+ /** One exact executable registration used by durable claim-time resolution. */
289
+ export interface ResolvedBinding extends CapturedBinding {
290
+ readonly digests: DefinitionDigests;
291
+ }
292
+
293
+ /** Trusted claim identity for resolving per-Attempt application services. Not model input. */
294
+ export interface AgentAttemptContext {
295
+ readonly threadId: ThreadId;
296
+ readonly submissionId: Claim["submissionId"];
297
+ readonly attemptId: Claim["attemptId"];
298
+ }
299
+
300
+ const capture = <A extends ExecutableAgentBinding, Provides = never, Requires = never>(
301
+ agent: A,
302
+ attemptLayer?: (context: AgentAttemptContext) => Layer.Layer<Provides, never, Requires>,
303
+ ): Effect.Effect<
304
+ CapturedBinding,
305
+ never,
306
+ Exclude<DurableWorkerRequirements<A>, Provides> | Requires
307
+ > =>
308
+ Effect.map(
309
+ Effect.context<Exclude<DurableWorkerRequirements<A>, Provides> | Requires>().pipe(
310
+ Effect.map(withoutTraceContext),
311
+ ),
312
+ (context): CapturedBinding => ({
313
+ agentId: agent.definition.id,
314
+ definition: agent.definition,
315
+ attempt: (driver, threadId, claim) => {
316
+ // Registration closes one concrete Binding before heterogeneous registrations are
317
+ // collected. TypeScript cannot instantiate the higher-rank RuntimeBinding parameters
318
+ // from the intentionally erased public shape, so specialize the driver back to A here.
319
+ const run = driver as unknown as CapturedAttempt<A>;
320
+ const execute = run(agent, threadId, claim);
321
+
322
+ const scoped =
323
+ attemptLayer === undefined
324
+ ? execute
325
+ : execute.pipe(
326
+ Effect.provide(
327
+ Layer.fresh(
328
+ attemptLayer({
329
+ threadId,
330
+ submissionId: claim.submissionId,
331
+ attemptId: claim.attemptId,
332
+ }),
333
+ ),
334
+ ),
335
+ );
336
+
337
+ return scoped.pipe(Effect.provide(context)) as Effect.Effect<
338
+ Option.Option<Settlement>,
339
+ DurableWorkerFailure
340
+ >;
341
+ },
342
+ }),
343
+ );
344
+
345
+ /**
346
+ * Build one exact worker registration from an executable Agent Binding and
347
+ * its already-computed definition digests.
348
+ *
349
+ * `make(agent, digests)` captures the binding plus its worker-requirement
350
+ * Context at Layer/effect construction time. Hosts that start from application
351
+ * version declarations should use `compileRegistrations`; low-level fixtures
352
+ * may supply a previously computed digest triple directly.
353
+ */
354
+ export const DurableWorkerBinding = {
355
+ make: <
356
+ A extends ExecutableAgentBinding,
357
+ const Reports extends ReadonlyArray<WorkerReporting<unknown, unknown>> = readonly [],
358
+ >(
359
+ agent: A,
360
+ digests: DefinitionDigests,
361
+ reporting?: Reports,
362
+ ): Effect.Effect<
363
+ ResolvedBinding,
364
+ never,
365
+ DurableWorkerRequirements<A> | ReportRequirements<Reports>
366
+ > =>
367
+ Effect.gen(function* () {
368
+ const binding = yield* capture(agent);
369
+
370
+ const reports = yield* captureReporting([
371
+ ...(reporting ?? []),
372
+ ...backgroundReports(agent.definition),
373
+ ]);
374
+
375
+ return { ...binding, digests, reporting: reports };
376
+ }) as Effect.Effect<
377
+ ResolvedBinding,
378
+ never,
379
+ DurableWorkerRequirements<A> | ReportRequirements<Reports>
380
+ >,
381
+ } as const;
382
+
383
+ /** INTERNAL identity-only capture retained for the legacy direct worker path. */
384
+ export const makeLegacyWorkerBinding = capture;
385
+
386
+ export const resolveWorkerBinding = (
387
+ bindings: ReadonlyArray<ResolvedBinding>,
388
+ agentId: AgentId,
389
+ ): Effect.Effect<ResolvedBinding, BindingUnavailable> => {
390
+ const registered = bindings.filter((binding) => binding.agentId === agentId);
391
+ const binding = registered[0];
392
+
393
+ return registered.length === 1 && binding !== undefined
394
+ ? Effect.succeed(binding)
395
+ : Effect.fail(
396
+ BindingUnavailable.make({
397
+ agentId,
398
+ message: `Exactly one current Agent Binding must be registered for ${agentId}`,
399
+ }),
400
+ );
401
+ };
402
+
403
+ /** Resolve authoring-time admission through the one exact host registration, never by identity alone. */
404
+ export const resolveDefinitionBinding = (
405
+ bindings: ReadonlyArray<ResolvedBinding>,
406
+ definition: Pick<Agent.AnyDefinition, "id">,
407
+ ): Effect.Effect<ResolvedBinding, BindingUnavailable> => {
408
+ const candidates = bindings.filter((binding) => binding.agentId === definition.id);
409
+ const binding = candidates[0];
410
+
411
+ if (candidates.length !== 1 || binding === undefined) {
412
+ return Effect.fail(
413
+ BindingUnavailable.make({
414
+ agentId: definition.id,
415
+ message: "Registered admission requires exactly one binding for the Agent identity",
416
+ }),
417
+ );
418
+ }
419
+
420
+ if (!Object.is(binding.definition, definition)) {
421
+ return Effect.fail(
422
+ BindingUnavailable.make({
423
+ agentId: definition.id,
424
+ message: "Registered admission requires the exact Agent Definition used in registration",
425
+ }),
426
+ );
427
+ }
428
+
429
+ return Effect.succeed(binding);
430
+ };
431
+
432
+ /** Application versions and a model Layer, supplied directly or through an existing Binding. */
433
+ export type AgentRegistration<A extends ExecutableAgentBinding = ExecutableAgentBinding> = (
434
+ | { readonly agent: A; readonly model?: never; readonly definitions: DefinitionDigestInput }
435
+ | {
436
+ readonly agent: A["definition"];
437
+ readonly model: A["model"];
438
+ readonly definitions: DefinitionDigestInput;
439
+ }
440
+ ) & {
441
+ /** Explicit operation versions let unchanged unfinished handlers survive toolbox changes. */
442
+ readonly continuity?: {
443
+ readonly versions: ReplayVersions;
444
+ };
445
+ /**
446
+ * Source-owned reports capture services outside attemptLayer and open a fresh Scope per
447
+ * preparation. Version changes with this registration. Missing exact code and preparation
448
+ * failures become retained report refusals; durable delivery retries reuse the frozen input.
449
+ */
450
+ readonly reporting?: ReadonlyArray<WorkerReporting<unknown, unknown>>;
451
+ /**
452
+ * Build fresh services for exactly one fenced Attempt, across all its Tool/model turns.
453
+ * Finalizes on completion, suspension, failure and interruption. Never reused after eviction.
454
+ * Resolve invocation authority from the trusted claim identity, not captured caller state.
455
+ * Keep fallible resource acquisition lazy in typed Tool operations; this Layer cannot fail.
456
+ */
457
+ readonly attemptLayer?: (context: AgentAttemptContext) => Layer.Layer<never, never, unknown>;
458
+ };
459
+
460
+ type EntryWorkerRequirements<Entry> = Entry extends {
461
+ readonly agent: infer A extends ExecutableAgentBinding;
462
+ }
463
+ ? DurableWorkerRequirements<A>
464
+ : Entry extends {
465
+ readonly agent: infer D extends ExecutableDefinition;
466
+ readonly model: infer M extends ExecutableAgentBinding["model"];
467
+ }
468
+ ? DurableWorkerRequirements<{ readonly definition: D; readonly model: M }>
469
+ : never;
470
+
471
+ type AttemptLayerRequirements<Requirements, AttemptLayer> = AttemptLayer extends (
472
+ context: AgentAttemptContext,
473
+ ) => Layer.Layer<infer Provides, never, infer Requires>
474
+ ? Exclude<Requirements, Provides> | Requires
475
+ : Requirements;
476
+
477
+ // Conditional options retain every service they may consume. An absent attempt Layer
478
+ // still needs the original worker services; only a definite Layer can remove them.
479
+ type EntryRequirements<Entry> = Entry extends unknown
480
+ ?
481
+ | AttemptLayerRequirements<
482
+ EntryWorkerRequirements<Entry>,
483
+ "attemptLayer" extends keyof Entry ? Entry["attemptLayer"] : undefined
484
+ >
485
+ | ("reporting" extends keyof Entry ? ReportRequirements<Entry["reporting"]> : never)
486
+ : never;
487
+
488
+ type RegistrationRequirements<Entries extends ReadonlyArray<AgentRegistration>> = [
489
+ Entries[number],
490
+ ] extends [never]
491
+ ? never
492
+ : EntryRequirements<Entries[number]>;
493
+
494
+ const registrationDefinitions = (entry: AgentRegistration): DefinitionDigestInput => {
495
+ const definition = entry.model === undefined ? entry.agent.definition : entry.agent;
496
+ const automatic = backgroundReports(definition);
497
+
498
+ const declaredDefinitions =
499
+ definition.updates === undefined
500
+ ? entry.definitions
501
+ : {
502
+ ...entry.definitions,
503
+ agent: {
504
+ declaration: entry.definitions.agent,
505
+ updates: Schema.decodeUnknownSync(Schema.Json)(
506
+ Tool.getJsonSchemaFromSchema(definition.updates),
507
+ ),
508
+ updateProtocol: { schemaVersion: 1, tool: "emit_update" },
509
+ },
510
+ };
511
+
512
+ const definitions =
513
+ automatic.length === 0
514
+ ? declaredDefinitions
515
+ : {
516
+ ...declaredDefinitions,
517
+ agent: {
518
+ declaration: declaredDefinitions.agent,
519
+ backgroundReporting: automatic.map((report) => ({
520
+ delegationId: report.delegationId,
521
+ targetAgentId: report.target.id,
522
+ mode: report.mode ?? "custom",
523
+ destinationDelegationId: report.destination?.delegationId ?? null,
524
+ })),
525
+ },
526
+ };
527
+
528
+ const exposure = definition.toolExposure;
529
+
530
+ if (
531
+ exposure === undefined &&
532
+ !Object.values(definition.toolkit.tools).some(
533
+ (tool) =>
534
+ Context.get(tool.annotations, DiscoveryTool) || Context.get(tool.annotations, PinnedTool),
535
+ )
536
+ )
537
+ return definitions;
538
+
539
+ return {
540
+ ...definitions,
541
+ agent: {
542
+ declaration: definitions.agent,
543
+ toolExposure: {
544
+ initialToolNames: exposure === undefined ? null : [...(exposure.initialToolNames ?? [])],
545
+ maxTools: exposure?.maxTools ?? 64,
546
+ maxSchemaBytes: exposure?.maxSchemaBytes ?? 262_144,
547
+ requiredCompletion:
548
+ definition.completion?.required === true ? definition.completion.tool : null,
549
+ tools: Object.values(definition.toolkit.tools).map((tool) => ({
550
+ name: tool.name,
551
+ pinned: Context.get(tool.annotations, PinnedTool),
552
+ discovery: Context.get(tool.annotations, DiscoveryTool),
553
+ namespace: Context.get(tool.annotations, ToolNamespace) ?? null,
554
+ includesCatalogDocumentation: Context.get(tool.annotations, IncludesCatalogDocumentation),
555
+ additional: Context.get(tool.annotations, AdditionalToolCatalog).map((entry) => ({
556
+ name: entry.tool.name,
557
+ namespace: entry.namespace,
558
+ method: entry.method,
559
+ })),
560
+ })),
561
+ },
562
+ },
563
+ };
564
+ };
565
+
566
+ const compileRegistration = <Entry extends AgentRegistration>(
567
+ entry: Entry,
568
+ ): Effect.Effect<ResolvedBinding, DigestError, Crypto.Crypto | EntryRequirements<Entry>> =>
569
+ Effect.flatMap(
570
+ Effect.try({
571
+ try: () => registrationDefinitions(entry),
572
+ catch: () =>
573
+ DigestError.make({ message: "Agent update schema has no serializable wire contract" }),
574
+ }),
575
+ (definitions) =>
576
+ Effect.gen(function* () {
577
+ const binding = yield* capture(
578
+ entry.model === undefined ? entry.agent : { definition: entry.agent, model: entry.model },
579
+ entry.attemptLayer,
580
+ );
581
+
582
+ const reporting = yield* captureReporting([
583
+ ...(entry.reporting ?? []),
584
+ ...backgroundReports(binding.definition),
585
+ ]);
586
+
587
+ return {
588
+ ...binding,
589
+ ...(yield* compileBindingContracts(
590
+ binding.definition,
591
+ definitions,
592
+ entry.continuity?.versions,
593
+ )),
594
+ reporting,
595
+ };
596
+ }),
597
+ // The erased descriptor accepts arbitrary provided services. Restore the concrete entry's
598
+ // Exclude<worker requirements, provided services> | layer requirements at this collection seam.
599
+ ) as Effect.Effect<ResolvedBinding, DigestError, Crypto.Crypto | EntryRequirements<Entry>>;
600
+
601
+ /** Compile heterogeneous Agent descriptors into exact, dependency-closed worker registrations. */
602
+ export const compileRegistrations = <const Entries extends ReadonlyArray<AgentRegistration>>(
603
+ entries: Entries,
604
+ ): Effect.Effect<
605
+ ReadonlyArray<ResolvedBinding>,
606
+ DigestError,
607
+ Crypto.Crypto | RegistrationRequirements<Entries>
608
+ > => {
609
+ // `Effect.forEach` instantiates a generic callback at its constraint. Specialize the callback to
610
+ // this tuple's distributed requirement union before collection so empty and heterogeneous tuples
611
+ // retain their exact service requirements.
612
+ const compileEntry = compileRegistration as unknown as (
613
+ entry: Entries[number],
614
+ ) => Effect.Effect<
615
+ ResolvedBinding,
616
+ DigestError,
617
+ Crypto.Crypto | RegistrationRequirements<Entries>
618
+ >;
619
+
620
+ return Effect.forEach(entries, compileEntry);
621
+ };