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,369 @@
1
+ import { Effect, Schema, type Scope } from "effect";
2
+ import { Tool, Toolkit } from "effect/unstable/ai";
3
+
4
+ import { utf8ByteLength } from "../core/internal/utf8.ts";
5
+ import { DiscoveryTool, PinnedTool } from "../core/ToolExposure.ts";
6
+ import { ToolExecutionClass } from "../engine/DurableStep.ts";
7
+ import { CurrentToolCatalog, type CatalogEntry } from "../engine/ToolExposure.ts";
8
+
9
+ const Name = Schema.NonEmptyString.check(Schema.isMaxLength(256));
10
+ const Namespace = Schema.NonEmptyString.check(Schema.isMaxLength(128));
11
+ const Description = Schema.String.check(Schema.isMaxLength(2_048));
12
+ const NamespaceDescription = Schema.String.check(Schema.isMaxLength(512));
13
+ const EntryId = Schema.NonEmptyString.check(Schema.isMaxLength(1_024));
14
+
15
+ /** Search text is bounded and literal; namespace selects one exact host-declared group. */
16
+ export const Parameters = Schema.Struct({
17
+ query: Schema.NonEmptyString.check(Schema.isMaxLength(512), Schema.isPattern(/\S/)),
18
+ namespace: Schema.optionalKey(Namespace),
19
+ });
20
+
21
+ /** Metadata given to custom search only after host visibility and inherited grants are applied. */
22
+ export class Descriptor extends Schema.Class<Descriptor>(
23
+ "@effect-agent/capabilities/ToolDiscovery/Descriptor",
24
+ )({
25
+ id: EntryId,
26
+ kind: Schema.Literals(["native", "code-mode"]),
27
+ name: Name,
28
+ nativeToolName: Name,
29
+ namespace: Schema.optionalKey(Namespace),
30
+ method: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(128))),
31
+ description: Schema.optionalKey(Description),
32
+ namespaceDescription: Schema.optionalKey(NamespaceDescription),
33
+ }) {}
34
+
35
+ /**
36
+ * Selected metadata and canonical encoded Tool Schemas. Provider-specific model schema
37
+ * transformations do not change the wire values documented for application handlers.
38
+ */
39
+ export class Match extends Schema.Class<Match>("@effect-agent/capabilities/ToolDiscovery/Match")({
40
+ ...Descriptor.fields,
41
+ parameters: Schema.Json,
42
+ success: Schema.Json,
43
+ }) {}
44
+
45
+ /**
46
+ * Only documented nativeToolName values activate schemas; Code Mode aliases activate their
47
+ * owning Tool. A byte-limited result is successful, including when no matches fit: an empty
48
+ * toolNames array clears the non-pinned selection under the engine's replacement contract.
49
+ */
50
+ export const Result = Schema.Struct({
51
+ toolNames: Schema.Array(Name).check(Schema.isMaxLength(64), Schema.isUnique()),
52
+ matches: Schema.Array(Match).check(Schema.isMaxLength(64)),
53
+ /** Present when the byte budget omits complete matches, with guidance for continuing. */
54
+ notice: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(192))),
55
+ });
56
+
57
+ /** Invalid custom results and unsupported documentation remain typed failures. */
58
+ export class ToolDiscoveryError extends Schema.TaggedError<ToolDiscoveryError>()(
59
+ "ToolDiscoveryError",
60
+ {
61
+ reason: Schema.Literals([
62
+ "invalid-catalogue",
63
+ "invalid-matches",
64
+ "unknown-match",
65
+ "invalid-schema",
66
+ ]),
67
+ message: Schema.String.check(Schema.isMaxLength(1_024)),
68
+ },
69
+ ) {}
70
+
71
+ const MatchIds = Schema.Array(EntryId).check(Schema.isMaxLength(1_024), Schema.isUnique());
72
+
73
+ const Bounds = Schema.Struct({
74
+ maxResults: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 64 })),
75
+ maxResultBytes: Schema.Int.check(Schema.isBetween({ minimum: 256, maximum: 256 * 1024 })),
76
+ namespaceDescriptions: Schema.Record(Namespace, NamespaceDescription),
77
+ });
78
+
79
+ const resultByteLength = Effect.fnUntraced(function* (result: typeof Result.Type) {
80
+ const encoded = yield* Schema.encodeEffect(Schema.fromJsonString(Result))(result).pipe(
81
+ Effect.mapError(() =>
82
+ ToolDiscoveryError.make({
83
+ reason: "invalid-schema",
84
+ message: "Discovery documentation could not be encoded",
85
+ }),
86
+ ),
87
+ );
88
+
89
+ return utf8ByteLength(encoded);
90
+ });
91
+
92
+ export interface Options<Failure extends Schema.Top = typeof Schema.Never, Requirements = never> {
93
+ /** Optional generic instructions. Namespace names and hints are never appended here. */
94
+ readonly description?: string | undefined;
95
+ /** Maximum returned catalogue entries, default 8 and at most 64. */
96
+ readonly maxResults?: number | undefined;
97
+ /**
98
+ * Complete JSON-encoded result budget, including any notice: default 32768, minimum 256,
99
+ * maximum 262144 UTF-8 bytes. Within the first maxResults candidates, retain whole matches
100
+ * in rank order when they fit; skip oversized matches and try later candidates. Overflow
101
+ * returns a successful result with an actionable notice, never partial schemas.
102
+ */
103
+ readonly maxResultBytes?: number | undefined;
104
+ /** Short category hints returned only for namespaces present in the visible catalogue. */
105
+ readonly namespaceDescriptions?: Readonly<Record<string, string>> | undefined;
106
+ /** Schema of the custom search's expected failures; defaults to Schema.Never. */
107
+ readonly failure?: Failure | undefined;
108
+ /**
109
+ * Rank unique Descriptor.id values, never tool names. Native tools and each Code Mode alias
110
+ * have distinct identities. Every returned id is checked before the result limit is applied.
111
+ * The catalogue is already filtered by the optional exact namespace and current authority.
112
+ * Services are captured with the handler Layer; temporary resources close after each search.
113
+ */
114
+ readonly search?:
115
+ | ((
116
+ request: typeof Parameters.Type,
117
+ catalogue: ReadonlyArray<Descriptor>,
118
+ ) => Effect.Effect<ReadonlyArray<string>, Failure["Type"], Requirements>)
119
+ | undefined;
120
+ }
121
+
122
+ const entryId = (entry: CatalogEntry): string =>
123
+ entry.kind === "native"
124
+ ? `native:${entry.tool.name}`
125
+ : `code-mode:${entry.nativeToolName}:${entry.namespace}.${entry.method}`;
126
+
127
+ const compare = (left: string, right: string): number => (left < right ? -1 : left > right ? 1 : 0);
128
+
129
+ const defaultSearch = (
130
+ request: typeof Parameters.Type,
131
+ catalogue: ReadonlyArray<Descriptor>,
132
+ entries: ReadonlyMap<string, CatalogEntry>,
133
+ ): ReadonlyArray<string> => {
134
+ const terms = request.query.trim().toLowerCase().split(/\s+/);
135
+
136
+ return catalogue
137
+ .filter((entry) => {
138
+ const original = entries.get(entry.id);
139
+
140
+ if (original === undefined) return false;
141
+
142
+ const text = [
143
+ entry.name,
144
+ entry.namespace ?? "",
145
+ entry.method ?? "",
146
+ Tool.getDescription(original.tool) ?? "",
147
+ entry.namespaceDescription ?? "",
148
+ ]
149
+ .join(" ")
150
+ .toLowerCase();
151
+
152
+ return terms.every((term) => text.includes(term));
153
+ })
154
+ .map((entry) => entry.id);
155
+ };
156
+
157
+ /**
158
+ * Build one native discover_tools Tool and its singleton Toolkit/handler Layer. Include the
159
+ * Tool beside the application's existing native Tools. The engine owns catalogue authority
160
+ * and applies successful native selections after a complete Tool batch; the handler mutates
161
+ * no exposure state. Default search matches all case-insensitive whitespace-separated terms
162
+ * against names, descriptions, methods and namespace hints, ordered by catalogue id.
163
+ */
164
+ export const make = <Failure extends Schema.Top = typeof Schema.Never, Requirements = never>(
165
+ options: Options<Failure, Requirements> = {},
166
+ ) => {
167
+ const bounds = Schema.decodeSync(Bounds)({
168
+ maxResults: options.maxResults ?? 8,
169
+ maxResultBytes: options.maxResultBytes ?? 32 * 1024,
170
+ namespaceDescriptions: options.namespaceDescriptions ?? {},
171
+ });
172
+
173
+ const search = options.search;
174
+
175
+ const declaredFailure: Schema.Codec<
176
+ Failure["Type"],
177
+ Failure["Encoded"],
178
+ Failure["DecodingServices"],
179
+ Failure["EncodingServices"]
180
+ > = options.failure ?? Schema.Never;
181
+
182
+ const tool = Tool.make("discover_tools", {
183
+ description:
184
+ options.description ??
185
+ "Find available tools using short search terms and an optional exact namespace. All terms must match a name, description or namespace hint, ignoring case. Returned native tools become available next turn. Code Mode matches document namespace methods and select their owning execution tool.",
186
+ parameters: Parameters,
187
+ success: Result,
188
+ failure: Schema.Union([declaredFailure, ToolDiscoveryError]),
189
+ failureMode: "error",
190
+ dependencies: [CurrentToolCatalog],
191
+ })
192
+ .annotate(DiscoveryTool, true)
193
+ .annotate(PinnedTool, true)
194
+ .annotate(Tool.Readonly, true)
195
+ .annotate(ToolExecutionClass, "readonly");
196
+
197
+ // Restore the known singleton name; native ToolsByName leaves its conditional deferred
198
+ // over the generic failure Schema. This assertion changes no Schema or runtime value.
199
+ const toolkit = Toolkit.make(tool) as unknown as Toolkit.Toolkit<{
200
+ readonly discover_tools: typeof tool;
201
+ }>;
202
+
203
+ const handlers = toolkit.toLayer(
204
+ Effect.gen(function* () {
205
+ const searchServices = yield* Effect.context<Exclude<Requirements, Scope.Scope>>();
206
+
207
+ return toolkit.of({
208
+ discover_tools: Effect.fn("ToolDiscovery.discover_tools")(function* (request) {
209
+ const snapshot = yield* CurrentToolCatalog;
210
+
211
+ const entries = snapshot.entries
212
+ .filter(
213
+ (entry) => request.namespace === undefined || entry.namespace === request.namespace,
214
+ )
215
+ .toSorted((left, right) => compare(entryId(left), entryId(right)));
216
+
217
+ const catalogue: Array<Descriptor> = [];
218
+ const byId = new Map<string, CatalogEntry>();
219
+
220
+ for (const entry of entries) {
221
+ const id = entryId(entry);
222
+
223
+ if (byId.has(id)) {
224
+ return yield* ToolDiscoveryError.make({
225
+ reason: "invalid-catalogue",
226
+ message: "The visible catalogue contains duplicate entry identities",
227
+ });
228
+ }
229
+ const description = Tool.getDescription(entry.tool);
230
+
231
+ const namespaceDescription =
232
+ entry.namespace === undefined ||
233
+ !Object.hasOwn(bounds.namespaceDescriptions, entry.namespace)
234
+ ? undefined
235
+ : bounds.namespaceDescriptions[entry.namespace];
236
+
237
+ const descriptor = yield* Schema.decodeEffect(Descriptor)({
238
+ id,
239
+ kind: entry.kind,
240
+ name: entry.tool.name,
241
+ nativeToolName: entry.nativeToolName,
242
+ ...(entry.namespace === undefined ? {} : { namespace: entry.namespace }),
243
+ ...(entry.kind === "code-mode" ? { method: entry.method } : {}),
244
+ ...(description === undefined
245
+ ? {}
246
+ : {
247
+ description:
248
+ description.length > 2_048 ? `${description.slice(0, 2_047)}…` : description,
249
+ }),
250
+ ...(namespaceDescription === undefined ? {} : { namespaceDescription }),
251
+ }).pipe(
252
+ Effect.mapError(() =>
253
+ ToolDiscoveryError.make({
254
+ reason: "invalid-catalogue",
255
+ message: "The visible catalogue contains invalid metadata",
256
+ }),
257
+ ),
258
+ );
259
+
260
+ catalogue.push(Object.freeze(descriptor));
261
+ byId.set(id, entry);
262
+ }
263
+
264
+ const ids =
265
+ search === undefined
266
+ ? defaultSearch(request, catalogue, byId)
267
+ : yield* Effect.scoped(search(request, Object.freeze(catalogue))).pipe(
268
+ Effect.provideContext(searchServices),
269
+ );
270
+
271
+ const checkedIds = yield* Schema.decodeEffect(MatchIds)(ids).pipe(
272
+ Effect.mapError(() =>
273
+ ToolDiscoveryError.make({
274
+ reason: "invalid-matches",
275
+ message: "Search must return at most 1024 unique catalogue entry ids",
276
+ }),
277
+ ),
278
+ );
279
+
280
+ if (checkedIds.some((id) => !byId.has(id))) {
281
+ return yield* ToolDiscoveryError.make({
282
+ reason: "unknown-match",
283
+ message: "Search returned an entry outside the visible catalogue",
284
+ });
285
+ }
286
+
287
+ const descriptors = new Map(catalogue.map((descriptor) => [descriptor.id, descriptor]));
288
+ const matches: Array<Match> = [];
289
+
290
+ for (const id of checkedIds.slice(0, bounds.maxResults)) {
291
+ const entry = byId.get(id);
292
+ const descriptor = descriptors.get(id);
293
+
294
+ if (entry === undefined || descriptor === undefined) {
295
+ return yield* ToolDiscoveryError.make({
296
+ reason: "unknown-match",
297
+ message: "Search returned an entry outside the visible catalogue",
298
+ });
299
+ }
300
+ if (Tool.isProviderDefined(entry.tool)) {
301
+ return yield* ToolDiscoveryError.make({
302
+ reason: "invalid-schema",
303
+ message: "Provider-defined Tools do not expose application handler documentation",
304
+ });
305
+ }
306
+
307
+ const schemas = yield* Effect.try({
308
+ try: () => ({
309
+ parameters: Tool.getJsonSchema(entry.tool),
310
+ success: Tool.getJsonSchemaFromSchema(entry.tool.successSchema),
311
+ }),
312
+ catch: () =>
313
+ ToolDiscoveryError.make({
314
+ reason: "invalid-schema",
315
+ message: "A selected Tool cannot be documented as JSON Schema",
316
+ }),
317
+ });
318
+
319
+ const match = yield* Schema.decodeUnknownEffect(Match)({
320
+ ...descriptor,
321
+ ...schemas,
322
+ }).pipe(
323
+ Effect.mapError(() =>
324
+ ToolDiscoveryError.make({
325
+ reason: "invalid-schema",
326
+ message: "A selected Tool's documentation is outside the JSON surface",
327
+ }),
328
+ ),
329
+ );
330
+
331
+ matches.push(match);
332
+ }
333
+
334
+ const result = {
335
+ toolNames: [...new Set(matches.map((match) => match.nativeToolName))],
336
+ matches,
337
+ };
338
+
339
+ if ((yield* resultByteLength(result)) <= bounds.maxResultBytes) return result;
340
+
341
+ // Validate every selected schema before packing. A byte limit must not mask an
342
+ // invalid catalogue/schema. The empty notice envelope fits the minimum 256 bytes.
343
+ let bounded: typeof Result.Type = {
344
+ toolNames: [],
345
+ matches: [],
346
+ notice:
347
+ "Result byte limit reached. Narrow the search or namespace; if one tool still cannot fit, ask the host to increase maxResultBytes.",
348
+ };
349
+
350
+ for (const match of matches) {
351
+ const candidates = [...bounded.matches, match];
352
+
353
+ const candidate = {
354
+ ...bounded,
355
+ toolNames: [...new Set(candidates.map((entry) => entry.nativeToolName))],
356
+ matches: candidates,
357
+ };
358
+
359
+ if ((yield* resultByteLength(candidate)) <= bounds.maxResultBytes) bounded = candidate;
360
+ }
361
+
362
+ return bounded;
363
+ }),
364
+ });
365
+ }),
366
+ );
367
+
368
+ return Object.freeze({ tool, toolkit, handlers });
369
+ };