effect-agent 0.1.0-beta.9 → 0.1.0-beta.90

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 (538) hide show
  1. package/dist/Agent-CN0EWRsR.d.mts +226 -0
  2. package/dist/Agent-RklVROrm.mjs +83 -0
  3. package/dist/Agent-RklVROrm.mjs.map +1 -0
  4. package/dist/AgentError-CggcAQ7V.d.mts +101 -0
  5. package/dist/AgentPolicy-CetmQrf3.d.mts +96 -0
  6. package/dist/AgentRuntime-CHipL2jG.mjs +4598 -0
  7. package/dist/AgentRuntime-CHipL2jG.mjs.map +1 -0
  8. package/dist/AgentRuntime-uxR_a4VM.d.mts +346 -0
  9. package/dist/AgentUpdates-DMJ-_xow.d.mts +53 -0
  10. package/dist/ContextCompactor-Dxu5zhOL.d.mts +161 -0
  11. package/dist/ContextWindow-DRQ5Mbm2.d.mts +58 -0
  12. package/dist/DurableAgentRuntime-D7gDKGjH.mjs +6368 -0
  13. package/dist/DurableAgentRuntime-D7gDKGjH.mjs.map +1 -0
  14. package/dist/DurableFailpoint-Oinuuedm.d.mts +41 -0
  15. package/dist/DurableStep-Cry_iol4.d.mts +103 -0
  16. package/dist/Ephemeral.d.mts +22 -0
  17. package/dist/Ephemeral.mjs +22 -0
  18. package/dist/Ephemeral.mjs.map +1 -0
  19. package/dist/EventSource-OqS_P9ug.d.mts +51 -0
  20. package/dist/Identifiers-CN2s30fF.d.mts +40 -0
  21. package/dist/MemoryNamespace-BbRW5p71.d.mts +36 -0
  22. package/dist/MemoryReference-B8Q3UJoJ.d.mts +79 -0
  23. package/dist/Messaging-CkcIdt4I.d.mts +490 -0
  24. package/dist/MessagingHost-CRk0kXzT.d.mts +246 -0
  25. package/dist/MessagingHost-CWi_PP3g.mjs +137 -0
  26. package/dist/MessagingHost-CWi_PP3g.mjs.map +1 -0
  27. package/dist/OperationAuthorizer-TzcQtpX5.d.mts +61 -0
  28. package/dist/Output-D6SkedVx.d.mts +25 -0
  29. package/dist/PageCapture-Df8Xwskw.d.mts +583 -0
  30. package/dist/PageScreenshot-BpgZKAxl.d.mts +48 -0
  31. package/dist/PreparedInputAdmission-C4HbjHgl.d.mts +38 -0
  32. package/dist/Receipt-BAHyigAF.d.mts +33 -0
  33. package/dist/Records-BAGkekt8.d.mts +3570 -0
  34. package/dist/RunEvent-DIrzkjLr.d.mts +460 -0
  35. package/dist/RunEventSink-D5aVhISG.d.mts +108 -0
  36. package/dist/RunJournal-Cgg1kNvc.mjs +825 -0
  37. package/dist/RunJournal-Cgg1kNvc.mjs.map +1 -0
  38. package/dist/RunOptions-g1aigcKI.d.mts +915 -0
  39. package/dist/RunPolicyUsage-ClZxyR46.d.mts +21 -0
  40. package/dist/Sandbox-CEsDWBLq.d.mts +173 -0
  41. package/dist/Schedule-H3SEYX9g.d.mts +842 -0
  42. package/dist/Scheduling-C9aIP8zT.mjs +691 -0
  43. package/dist/Scheduling-C9aIP8zT.mjs.map +1 -0
  44. package/dist/Subagent-DyfzHNdv.d.mts +826 -0
  45. package/dist/Subagent-U5qXOFE8.mjs +1469 -0
  46. package/dist/Subagent-U5qXOFE8.mjs.map +1 -0
  47. package/dist/SubagentContract-DdT7Cqe6.d.mts +116 -0
  48. package/dist/SubagentHost-CJUBQlcc.d.mts +140 -0
  49. package/dist/Subscription-BEP8oQO5.d.mts +921 -0
  50. package/dist/SubscriptionInput-vAAOBrK7.d.mts +41 -0
  51. package/dist/Thread-DOBQ0QUY.d.mts +96 -0
  52. package/dist/ThreadHistory-tS1KwxHR.d.mts +60 -0
  53. package/dist/ToolBroker-DWs4tZra.d.mts +133 -0
  54. package/dist/ToolExposure-9uF_Yo0T.mjs +10 -0
  55. package/dist/ToolExposure-9uF_Yo0T.mjs.map +1 -0
  56. package/dist/ToolExposure-C93U1sPu.mjs +30 -0
  57. package/dist/ToolExposure-C93U1sPu.mjs.map +1 -0
  58. package/dist/ToolExposure-UCN12eCd.d.mts +39 -0
  59. package/dist/ToolExposure-r2eOWk4F.d.mts +46 -0
  60. package/dist/ToolExposure.d.mts +8 -0
  61. package/dist/ToolExposure.mjs +21 -0
  62. package/dist/ToolExposure.mjs.map +1 -0
  63. package/dist/ToolReconciler-DQVaJfpE.d.mts +76 -0
  64. package/dist/ToolResult-DmmgoChv.d.mts +61 -0
  65. package/dist/Usage-Dx0aknfk.d.mts +121 -0
  66. package/dist/WakeScheduler-EjUF-GhC.d.mts +56 -0
  67. package/dist/Worker-CaPYykpe.d.mts +228 -0
  68. package/dist/agent-registration-CWDMOAZA.mjs +172 -0
  69. package/dist/agent-registration-CWDMOAZA.mjs.map +1 -0
  70. package/dist/capabilities/Approval.d.mts +114 -0
  71. package/dist/capabilities/Approval.mjs +226 -0
  72. package/dist/capabilities/Approval.mjs.map +1 -0
  73. package/dist/capabilities/Budget.d.mts +112 -0
  74. package/dist/capabilities/Budget.mjs +346 -0
  75. package/dist/capabilities/Budget.mjs.map +1 -0
  76. package/dist/capabilities/CodeMode.d.mts +157 -0
  77. package/dist/capabilities/CodeMode.mjs +522 -0
  78. package/dist/capabilities/CodeMode.mjs.map +1 -0
  79. package/dist/capabilities/Commands.d.mts +55 -0
  80. package/dist/capabilities/Commands.mjs +57 -0
  81. package/dist/capabilities/Commands.mjs.map +1 -0
  82. package/dist/capabilities/ContextTools.d.mts +321 -0
  83. package/dist/capabilities/ContextTools.mjs +126 -0
  84. package/dist/capabilities/ContextTools.mjs.map +1 -0
  85. package/dist/capabilities/Mcp.d.mts +108 -0
  86. package/dist/capabilities/Mcp.mjs +260 -0
  87. package/dist/capabilities/Mcp.mjs.map +1 -0
  88. package/dist/capabilities/McpClient.d.mts +115 -0
  89. package/dist/capabilities/McpClient.mjs +506 -0
  90. package/dist/capabilities/McpClient.mjs.map +1 -0
  91. package/dist/capabilities/MemoryNotes.d.mts +424 -0
  92. package/dist/capabilities/MemoryNotes.mjs +128 -0
  93. package/dist/capabilities/MemoryNotes.mjs.map +1 -0
  94. package/dist/capabilities/Messaging.d.mts +3 -0
  95. package/dist/capabilities/Messaging.mjs +151 -0
  96. package/dist/capabilities/Messaging.mjs.map +1 -0
  97. package/dist/capabilities/ModelContext.d.mts +89 -0
  98. package/dist/capabilities/ModelContext.mjs +168 -0
  99. package/dist/capabilities/ModelContext.mjs.map +1 -0
  100. package/dist/capabilities/Redaction.d.mts +37 -0
  101. package/dist/capabilities/Redaction.mjs +104 -0
  102. package/dist/capabilities/Redaction.mjs.map +1 -0
  103. package/dist/capabilities/Remembering.d.mts +434 -0
  104. package/dist/capabilities/Remembering.mjs +290 -0
  105. package/dist/capabilities/Remembering.mjs.map +1 -0
  106. package/dist/capabilities/RunHooks.d.mts +82 -0
  107. package/dist/capabilities/RunHooks.mjs +144 -0
  108. package/dist/capabilities/RunHooks.mjs.map +1 -0
  109. package/dist/capabilities/SemanticMemory.d.mts +431 -0
  110. package/dist/capabilities/SemanticMemory.mjs +315 -0
  111. package/dist/capabilities/SemanticMemory.mjs.map +1 -0
  112. package/dist/capabilities/Subagent.d.mts +4 -0
  113. package/dist/capabilities/Subagent.mjs +5 -0
  114. package/dist/capabilities/SubagentReservations.d.mts +186 -0
  115. package/dist/capabilities/SubagentReservations.mjs +479 -0
  116. package/dist/capabilities/SubagentReservations.mjs.map +1 -0
  117. package/dist/capabilities/ToolDiscovery.d.mts +109 -0
  118. package/dist/capabilities/ToolDiscovery.mjs +211 -0
  119. package/dist/capabilities/ToolDiscovery.mjs.map +1 -0
  120. package/dist/capabilities/WebCapture.d.mts +163 -0
  121. package/dist/capabilities/WebCapture.mjs +335 -0
  122. package/dist/capabilities/WebCapture.mjs.map +1 -0
  123. package/dist/capabilities/WebSearch.d.mts +71 -0
  124. package/dist/capabilities/WebSearch.mjs +112 -0
  125. package/dist/capabilities/WebSearch.mjs.map +1 -0
  126. package/dist/compaction-C2OTceKw.mjs +505 -0
  127. package/dist/compaction-C2OTceKw.mjs.map +1 -0
  128. package/dist/core/Agent.d.mts +2 -0
  129. package/dist/core/Agent.mjs +2 -0
  130. package/dist/core/AgentError.d.mts +2 -0
  131. package/dist/core/AgentError.mjs +117 -0
  132. package/dist/core/AgentError.mjs.map +1 -0
  133. package/dist/core/AgentPolicy.d.mts +2 -0
  134. package/dist/core/AgentPolicy.mjs +94 -0
  135. package/dist/core/AgentPolicy.mjs.map +1 -0
  136. package/dist/core/AgentUpdates.d.mts +2 -0
  137. package/dist/core/AgentUpdates.mjs +63 -0
  138. package/dist/core/AgentUpdates.mjs.map +1 -0
  139. package/dist/core/IdGenerator.d.mts +26 -0
  140. package/dist/core/IdGenerator.mjs +27 -0
  141. package/dist/core/IdGenerator.mjs.map +1 -0
  142. package/dist/core/Identifiers.d.mts +2 -0
  143. package/dist/core/Identifiers.mjs +43 -0
  144. package/dist/core/Identifiers.mjs.map +1 -0
  145. package/dist/core/Memory.d.mts +57 -0
  146. package/dist/core/Memory.mjs +203 -0
  147. package/dist/core/Memory.mjs.map +1 -0
  148. package/dist/core/MemoryNamespace.d.mts +2 -0
  149. package/dist/core/MemoryNamespace.mjs +116 -0
  150. package/dist/core/MemoryNamespace.mjs.map +1 -0
  151. package/dist/core/MemoryReference.d.mts +2 -0
  152. package/dist/core/MemoryReference.mjs +109 -0
  153. package/dist/core/MemoryReference.mjs.map +1 -0
  154. package/dist/core/MemoryRevalidation.d.mts +65 -0
  155. package/dist/core/MemoryRevalidation.mjs +126 -0
  156. package/dist/core/MemoryRevalidation.mjs.map +1 -0
  157. package/dist/core/MemoryStore.d.mts +186 -0
  158. package/dist/core/MemoryStore.mjs +243 -0
  159. package/dist/core/MemoryStore.mjs.map +1 -0
  160. package/dist/core/Receipt.d.mts +2 -0
  161. package/dist/core/Receipt.mjs +36 -0
  162. package/dist/core/Receipt.mjs.map +1 -0
  163. package/dist/core/RememberingStore.d.mts +1562 -0
  164. package/dist/core/RememberingStore.mjs +190 -0
  165. package/dist/core/RememberingStore.mjs.map +1 -0
  166. package/dist/core/RunEvent.d.mts +2 -0
  167. package/dist/core/RunEvent.mjs +337 -0
  168. package/dist/core/RunEvent.mjs.map +1 -0
  169. package/dist/core/RunPolicyUsage.d.mts +2 -0
  170. package/dist/core/RunPolicyUsage.mjs +21 -0
  171. package/dist/core/RunPolicyUsage.mjs.map +1 -0
  172. package/dist/core/SemanticMemoryIndex.d.mts +826 -0
  173. package/dist/core/SemanticMemoryIndex.mjs +185 -0
  174. package/dist/core/SemanticMemoryIndex.mjs.map +1 -0
  175. package/dist/core/SemanticMemoryRevalidation.d.mts +45 -0
  176. package/dist/core/SemanticMemoryRevalidation.mjs +191 -0
  177. package/dist/core/SemanticMemoryRevalidation.mjs.map +1 -0
  178. package/dist/core/SubagentContract.d.mts +2 -0
  179. package/dist/core/SubagentContract.mjs +148 -0
  180. package/dist/core/SubagentContract.mjs.map +1 -0
  181. package/dist/core/Thread.d.mts +2 -0
  182. package/dist/core/Thread.mjs +250 -0
  183. package/dist/core/Thread.mjs.map +1 -0
  184. package/dist/core/ToolResult.d.mts +2 -0
  185. package/dist/core/ToolResult.mjs +140 -0
  186. package/dist/core/ToolResult.mjs.map +1 -0
  187. package/dist/core/Usage.d.mts +2 -0
  188. package/dist/core/Usage.mjs +319 -0
  189. package/dist/core/Usage.mjs.map +1 -0
  190. package/dist/core/Worker.d.mts +3 -0
  191. package/dist/core/Worker.mjs +147 -0
  192. package/dist/core/Worker.mjs.map +1 -0
  193. package/dist/durable/ActivityStore.d.mts +116 -0
  194. package/dist/durable/ActivityStore.mjs +131 -0
  195. package/dist/durable/ActivityStore.mjs.map +1 -0
  196. package/dist/durable/Admin.d.mts +2 -0
  197. package/dist/durable/Admin.mjs +328 -0
  198. package/dist/durable/Admin.mjs.map +1 -0
  199. package/dist/durable/AgentRegistration.d.mts +2 -0
  200. package/dist/durable/AgentRegistration.mjs +14 -0
  201. package/dist/durable/AgentRegistration.mjs.map +1 -0
  202. package/dist/durable/Certification.d.mts +111 -0
  203. package/dist/durable/Certification.mjs +159 -0
  204. package/dist/durable/Certification.mjs.map +1 -0
  205. package/dist/durable/CommittedActivity.d.mts +62 -0
  206. package/dist/durable/CommittedActivity.mjs +159 -0
  207. package/dist/durable/CommittedActivity.mjs.map +1 -0
  208. package/dist/durable/Digest.d.mts +2 -0
  209. package/dist/durable/Digest.mjs +50 -0
  210. package/dist/durable/Digest.mjs.map +1 -0
  211. package/dist/durable/DurableAgentRuntime.d.mts +3 -0
  212. package/dist/durable/DurableAgentRuntime.mjs +3 -0
  213. package/dist/durable/DurableFailpoint.d.mts +2 -0
  214. package/dist/durable/DurableFailpoint.mjs +94 -0
  215. package/dist/durable/DurableFailpoint.mjs.map +1 -0
  216. package/dist/durable/DurableFailpointTestControl.d.mts +15 -0
  217. package/dist/durable/DurableFailpointTestControl.mjs +19 -0
  218. package/dist/durable/DurableFailpointTestControl.mjs.map +1 -0
  219. package/dist/durable/EventSource.d.mts +2 -0
  220. package/dist/durable/EventSource.mjs +65 -0
  221. package/dist/durable/EventSource.mjs.map +1 -0
  222. package/dist/durable/GitHubWorkflowSource.d.mts +144 -0
  223. package/dist/durable/GitHubWorkflowSource.mjs +209 -0
  224. package/dist/durable/GitHubWorkflowSource.mjs.map +1 -0
  225. package/dist/durable/MessageDelivery.d.mts +492 -0
  226. package/dist/durable/MessageDelivery.mjs +495 -0
  227. package/dist/durable/MessageDelivery.mjs.map +1 -0
  228. package/dist/durable/MessageDeliveryStoreConformance.d.mts +358 -0
  229. package/dist/durable/MessageDeliveryStoreConformance.mjs +243 -0
  230. package/dist/durable/MessageDeliveryStoreConformance.mjs.map +1 -0
  231. package/dist/durable/OperationAuthorizer.d.mts +2 -0
  232. package/dist/durable/OperationAuthorizer.mjs +70 -0
  233. package/dist/durable/OperationAuthorizer.mjs.map +1 -0
  234. package/dist/durable/PersistentHistory.d.mts +16 -0
  235. package/dist/durable/PersistentHistory.mjs +125 -0
  236. package/dist/durable/PersistentHistory.mjs.map +1 -0
  237. package/dist/durable/PreparedInputAdmission.d.mts +2 -0
  238. package/dist/durable/PreparedInputAdmission.mjs +34 -0
  239. package/dist/durable/PreparedInputAdmission.mjs.map +1 -0
  240. package/dist/durable/Records.d.mts +2 -0
  241. package/dist/durable/Records.mjs +795 -0
  242. package/dist/durable/Records.mjs.map +1 -0
  243. package/dist/durable/Recovery.d.mts +2 -0
  244. package/dist/durable/Recovery.mjs +739 -0
  245. package/dist/durable/Recovery.mjs.map +1 -0
  246. package/dist/durable/RunJournal.d.mts +2 -0
  247. package/dist/durable/RunJournal.mjs +2 -0
  248. package/dist/durable/Schedule.d.mts +2 -0
  249. package/dist/durable/Schedule.mjs +382 -0
  250. package/dist/durable/Schedule.mjs.map +1 -0
  251. package/dist/durable/ScheduleStoreConformance.d.mts +18 -0
  252. package/dist/durable/ScheduleStoreConformance.mjs +420 -0
  253. package/dist/durable/ScheduleStoreConformance.mjs.map +1 -0
  254. package/dist/durable/ScheduleTransition.d.mts +24 -0
  255. package/dist/durable/ScheduleTransition.mjs +180 -0
  256. package/dist/durable/ScheduleTransition.mjs.map +1 -0
  257. package/dist/durable/Scheduling.d.mts +54 -0
  258. package/dist/durable/Scheduling.mjs +2 -0
  259. package/dist/durable/SqlMemoryStore.d.mts +30 -0
  260. package/dist/durable/SqlMemoryStore.mjs +435 -0
  261. package/dist/durable/SqlMemoryStore.mjs.map +1 -0
  262. package/dist/durable/SqlMessageDeliveryStore.d.mts +40 -0
  263. package/dist/durable/SqlMessageDeliveryStore.mjs +167 -0
  264. package/dist/durable/SqlMessageDeliveryStore.mjs.map +1 -0
  265. package/dist/durable/SqlStorageV2Upgrade.d.mts +22 -0
  266. package/dist/durable/SqlStorageV2Upgrade.mjs +459 -0
  267. package/dist/durable/SqlStorageV2Upgrade.mjs.map +1 -0
  268. package/dist/durable/SqlSubscriptionStore.d.mts +63 -0
  269. package/dist/durable/SqlSubscriptionStore.mjs +751 -0
  270. package/dist/durable/SqlSubscriptionStore.mjs.map +1 -0
  271. package/dist/durable/SubmissionLedger.d.mts +3 -0
  272. package/dist/durable/SubmissionLedger.mjs +914 -0
  273. package/dist/durable/SubmissionLedger.mjs.map +1 -0
  274. package/dist/durable/SubmissionLedgerConformance.d.mts +30 -0
  275. package/dist/durable/SubmissionLedgerConformance.mjs +1986 -0
  276. package/dist/durable/SubmissionLedgerConformance.mjs.map +1 -0
  277. package/dist/durable/SubmissionStatus.d.mts +2 -0
  278. package/dist/durable/SubmissionStatus.mjs +18 -0
  279. package/dist/durable/SubmissionStatus.mjs.map +1 -0
  280. package/dist/durable/Subscription.d.mts +2 -0
  281. package/dist/durable/Subscription.mjs +360 -0
  282. package/dist/durable/Subscription.mjs.map +1 -0
  283. package/dist/durable/SubscriptionInput.d.mts +2 -0
  284. package/dist/durable/SubscriptionInput.mjs +52 -0
  285. package/dist/durable/SubscriptionInput.mjs.map +1 -0
  286. package/dist/durable/SubscriptionStoreConformance.d.mts +17 -0
  287. package/dist/durable/SubscriptionStoreConformance.mjs +625 -0
  288. package/dist/durable/SubscriptionStoreConformance.mjs.map +1 -0
  289. package/dist/durable/SubscriptionTools.d.mts +273 -0
  290. package/dist/durable/SubscriptionTools.mjs +190 -0
  291. package/dist/durable/SubscriptionTools.mjs.map +1 -0
  292. package/dist/durable/SubscriptionTransition.d.mts +21 -0
  293. package/dist/durable/SubscriptionTransition.mjs +148 -0
  294. package/dist/durable/SubscriptionTransition.mjs.map +1 -0
  295. package/dist/durable/Subscriptions.d.mts +73 -0
  296. package/dist/durable/Subscriptions.mjs +627 -0
  297. package/dist/durable/Subscriptions.mjs.map +1 -0
  298. package/dist/durable/ThreadContextHistory.d.mts +32 -0
  299. package/dist/durable/ThreadContextHistory.mjs +152 -0
  300. package/dist/durable/ThreadContextHistory.mjs.map +1 -0
  301. package/dist/durable/ThreadContextHistoryProjection.d.mts +60 -0
  302. package/dist/durable/ThreadContextHistoryProjection.mjs +149 -0
  303. package/dist/durable/ThreadContextHistoryProjection.mjs.map +1 -0
  304. package/dist/durable/ThreadInvariants.d.mts +74 -0
  305. package/dist/durable/ThreadInvariants.mjs +200 -0
  306. package/dist/durable/ThreadInvariants.mjs.map +1 -0
  307. package/dist/durable/ThreadProjection.d.mts +78 -0
  308. package/dist/durable/ThreadProjection.mjs +158 -0
  309. package/dist/durable/ThreadProjection.mjs.map +1 -0
  310. package/dist/durable/ThreadProjectionMaintenance.d.mts +49 -0
  311. package/dist/durable/ThreadProjectionMaintenance.mjs +33 -0
  312. package/dist/durable/ThreadProjectionMaintenance.mjs.map +1 -0
  313. package/dist/durable/ThreadStore.d.mts +2 -0
  314. package/dist/durable/ThreadStore.mjs +147 -0
  315. package/dist/durable/ThreadStore.mjs.map +1 -0
  316. package/dist/durable/ThreadStoreConformance.d.mts +29 -0
  317. package/dist/durable/ThreadStoreConformance.mjs +248 -0
  318. package/dist/durable/ThreadStoreConformance.mjs.map +1 -0
  319. package/dist/durable/ToolReconciler.d.mts +2 -0
  320. package/dist/durable/ToolReconciler.mjs +81 -0
  321. package/dist/durable/ToolReconciler.mjs.map +1 -0
  322. package/dist/durable/WakeScheduler.d.mts +2 -0
  323. package/dist/durable/WakeScheduler.mjs +85 -0
  324. package/dist/durable/WakeScheduler.mjs.map +1 -0
  325. package/dist/durable/WorkerHost.d.mts +129 -0
  326. package/dist/durable/WorkerHost.mjs +77 -0
  327. package/dist/durable/WorkerHost.mjs.map +1 -0
  328. package/dist/engine/AgentRuntime.d.mts +2 -0
  329. package/dist/engine/AgentRuntime.mjs +2 -0
  330. package/dist/engine/Compaction.d.mts +7 -0
  331. package/dist/engine/Compaction.mjs +16 -0
  332. package/dist/engine/Compaction.mjs.map +1 -0
  333. package/dist/engine/ContextCompactor.d.mts +2 -0
  334. package/dist/engine/ContextCompactor.mjs +119 -0
  335. package/dist/engine/ContextCompactor.mjs.map +1 -0
  336. package/dist/engine/ContextHistory.d.mts +65 -0
  337. package/dist/engine/ContextHistory.mjs +76 -0
  338. package/dist/engine/ContextHistory.mjs.map +1 -0
  339. package/dist/engine/ContextWindow.d.mts +2 -0
  340. package/dist/engine/ContextWindow.mjs +59 -0
  341. package/dist/engine/ContextWindow.mjs.map +1 -0
  342. package/dist/engine/DurableStep.d.mts +2 -0
  343. package/dist/engine/DurableStep.mjs +62 -0
  344. package/dist/engine/DurableStep.mjs.map +1 -0
  345. package/dist/engine/MessagingHost.d.mts +2 -0
  346. package/dist/engine/MessagingHost.mjs +2 -0
  347. package/dist/engine/Output.d.mts +2 -0
  348. package/dist/engine/Output.mjs +8 -0
  349. package/dist/engine/Output.mjs.map +1 -0
  350. package/dist/engine/RunEventSink.d.mts +2 -0
  351. package/dist/engine/RunEventSink.mjs +22 -0
  352. package/dist/engine/RunEventSink.mjs.map +1 -0
  353. package/dist/engine/RunOptions.d.mts +2 -0
  354. package/dist/engine/RunOptions.mjs +122 -0
  355. package/dist/engine/RunOptions.mjs.map +1 -0
  356. package/dist/engine/SubagentHost.d.mts +2 -0
  357. package/dist/engine/SubagentHost.mjs +72 -0
  358. package/dist/engine/SubagentHost.mjs.map +1 -0
  359. package/dist/engine/ThreadHistory.d.mts +2 -0
  360. package/dist/engine/ThreadHistory.mjs +67 -0
  361. package/dist/engine/ThreadHistory.mjs.map +1 -0
  362. package/dist/engine/ToolBroker.d.mts +2 -0
  363. package/dist/engine/ToolBroker.mjs +42 -0
  364. package/dist/engine/ToolBroker.mjs.map +1 -0
  365. package/dist/foreign-diagnostic-DBQ1XHKh.mjs +37 -0
  366. package/dist/foreign-diagnostic-DBQ1XHKh.mjs.map +1 -0
  367. package/dist/index.d.mts +89 -6
  368. package/dist/index.mjs +98 -6
  369. package/dist/output-contract-BC7tjlGw.mjs +84 -0
  370. package/dist/output-contract-BC7tjlGw.mjs.map +1 -0
  371. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  372. package/dist/sandbox/CodeExecutor.d.mts +194 -0
  373. package/dist/sandbox/CodeExecutor.mjs +278 -0
  374. package/dist/sandbox/CodeExecutor.mjs.map +1 -0
  375. package/dist/sandbox/InteractiveBrowser.d.mts +142 -0
  376. package/dist/sandbox/InteractiveBrowser.mjs +165 -0
  377. package/dist/sandbox/InteractiveBrowser.mjs.map +1 -0
  378. package/dist/sandbox/PageCapture.d.mts +2 -0
  379. package/dist/sandbox/PageCapture.mjs +450 -0
  380. package/dist/sandbox/PageCapture.mjs.map +1 -0
  381. package/dist/sandbox/PageCrawl.d.mts +88 -0
  382. package/dist/sandbox/PageCrawl.mjs +124 -0
  383. package/dist/sandbox/PageCrawl.mjs.map +1 -0
  384. package/dist/sandbox/PageScreenshot.d.mts +2 -0
  385. package/dist/sandbox/PageScreenshot.mjs +53 -0
  386. package/dist/sandbox/PageScreenshot.mjs.map +1 -0
  387. package/dist/sandbox/ProtectedBrowser.d.mts +273 -0
  388. package/dist/sandbox/ProtectedBrowser.mjs +287 -0
  389. package/dist/sandbox/ProtectedBrowser.mjs.map +1 -0
  390. package/dist/sandbox/Sandbox.d.mts +2 -0
  391. package/dist/sandbox/Sandbox.mjs +208 -0
  392. package/dist/sandbox/Sandbox.mjs.map +1 -0
  393. package/dist/utf8-BYfhEkcj.mjs +11 -0
  394. package/dist/utf8-BYfhEkcj.mjs.map +1 -0
  395. package/dist/utf8-DchGZRBd.mjs +23 -0
  396. package/dist/utf8-DchGZRBd.mjs.map +1 -0
  397. package/package.json +1 -40
  398. package/src/Ephemeral.ts +17 -0
  399. package/src/ToolExposure.ts +2 -0
  400. package/src/capabilities/Approval.ts +352 -0
  401. package/src/capabilities/Budget.ts +536 -0
  402. package/src/capabilities/CodeMode.ts +1090 -0
  403. package/src/capabilities/Commands.ts +86 -0
  404. package/src/capabilities/ContextTools.ts +184 -0
  405. package/src/capabilities/Mcp.ts +427 -0
  406. package/src/capabilities/McpClient.ts +967 -0
  407. package/src/capabilities/MemoryNotes.ts +174 -0
  408. package/src/capabilities/Messaging.ts +261 -0
  409. package/src/capabilities/ModelContext.ts +354 -0
  410. package/src/capabilities/Redaction.ts +157 -0
  411. package/src/capabilities/Remembering.ts +550 -0
  412. package/src/capabilities/RunHooks.ts +280 -0
  413. package/src/capabilities/SemanticMemory.ts +447 -0
  414. package/src/capabilities/Subagent.ts +2277 -0
  415. package/src/capabilities/SubagentReservations.ts +850 -0
  416. package/src/capabilities/ToolDiscovery.ts +339 -0
  417. package/src/capabilities/WebCapture.ts +722 -0
  418. package/src/capabilities/WebSearch.ts +184 -0
  419. package/src/capabilities/internal/subagent-background.ts +1106 -0
  420. package/src/capabilities/internal/subagent-contract.ts +142 -0
  421. package/src/capabilities/internal/subagent-policy.ts +235 -0
  422. package/src/capabilities/internal/subagent-reporting.ts +261 -0
  423. package/src/capabilities/internal/utf8.ts +10 -0
  424. package/src/core/Agent.ts +575 -0
  425. package/src/core/AgentError.ts +152 -0
  426. package/src/core/AgentPolicy.ts +153 -0
  427. package/src/core/AgentUpdates.ts +100 -0
  428. package/src/core/IdGenerator.ts +39 -0
  429. package/src/core/Identifiers.ts +48 -0
  430. package/src/core/Memory.ts +290 -0
  431. package/src/core/MemoryNamespace.ts +196 -0
  432. package/src/core/MemoryReference.ts +121 -0
  433. package/src/core/MemoryRevalidation.ts +185 -0
  434. package/src/core/MemoryStore.ts +368 -0
  435. package/src/core/Messaging.ts +90 -0
  436. package/src/core/Receipt.ts +42 -0
  437. package/src/core/RememberingStore.ts +300 -0
  438. package/src/core/RunEvent.ts +366 -0
  439. package/src/core/RunPolicyUsage.ts +17 -0
  440. package/src/core/SemanticMemoryIndex.ts +250 -0
  441. package/src/core/SemanticMemoryRevalidation.ts +254 -0
  442. package/src/core/SubagentContract.ts +196 -0
  443. package/src/core/Thread.ts +371 -0
  444. package/src/core/ToolExposure.ts +74 -0
  445. package/src/core/ToolResult.ts +170 -0
  446. package/src/core/Usage.ts +529 -0
  447. package/src/core/Worker.ts +173 -0
  448. package/src/core/internal/agent-updates.ts +32 -0
  449. package/src/core/internal/utf8.ts +23 -0
  450. package/src/durable/ActivityStore.ts +160 -0
  451. package/src/durable/Admin.ts +496 -0
  452. package/src/durable/AgentRegistration.ts +13 -0
  453. package/src/durable/Certification.ts +210 -0
  454. package/src/durable/CommittedActivity.ts +296 -0
  455. package/src/durable/Digest.ts +93 -0
  456. package/src/durable/DurableAgentRuntime.ts +10340 -0
  457. package/src/durable/DurableFailpoint.ts +103 -0
  458. package/src/durable/DurableFailpointTestControl.ts +39 -0
  459. package/src/durable/EventSource.ts +172 -0
  460. package/src/durable/GitHubWorkflowSource.ts +453 -0
  461. package/src/durable/MessageDelivery.ts +708 -0
  462. package/src/durable/MessageDeliveryStoreConformance.ts +363 -0
  463. package/src/durable/OperationAuthorizer.ts +85 -0
  464. package/src/durable/PersistentHistory.ts +260 -0
  465. package/src/durable/PreparedInputAdmission.ts +44 -0
  466. package/src/durable/Records.ts +1010 -0
  467. package/src/durable/Recovery.ts +1018 -0
  468. package/src/durable/RunJournal.ts +1479 -0
  469. package/src/durable/Schedule.ts +504 -0
  470. package/src/durable/ScheduleStoreConformance.ts +638 -0
  471. package/src/durable/ScheduleTransition.ts +265 -0
  472. package/src/durable/Scheduling.ts +1077 -0
  473. package/src/durable/SqlMemoryStore.ts +774 -0
  474. package/src/durable/SqlMessageDeliveryStore.ts +302 -0
  475. package/src/durable/SqlStorageV2Upgrade.ts +500 -0
  476. package/src/durable/SqlSubscriptionStore.ts +1440 -0
  477. package/src/durable/SubmissionLedger.ts +1201 -0
  478. package/src/durable/SubmissionLedgerConformance.ts +4579 -0
  479. package/src/durable/SubmissionStatus.ts +14 -0
  480. package/src/durable/Subscription.ts +544 -0
  481. package/src/durable/SubscriptionInput.ts +144 -0
  482. package/src/durable/SubscriptionStoreConformance.ts +945 -0
  483. package/src/durable/SubscriptionTools.ts +327 -0
  484. package/src/durable/SubscriptionTransition.ts +302 -0
  485. package/src/durable/Subscriptions.ts +1210 -0
  486. package/src/durable/ThreadContextHistory.ts +227 -0
  487. package/src/durable/ThreadContextHistoryProjection.ts +216 -0
  488. package/src/durable/ThreadInvariants.ts +442 -0
  489. package/src/durable/ThreadProjection.ts +269 -0
  490. package/src/durable/ThreadProjectionMaintenance.ts +67 -0
  491. package/src/durable/ThreadStore.ts +242 -0
  492. package/src/durable/ThreadStoreConformance.ts +710 -0
  493. package/src/durable/ToolReconciler.ts +105 -0
  494. package/src/durable/WakeScheduler.ts +134 -0
  495. package/src/durable/WorkerHost.ts +171 -0
  496. package/src/durable/internal/agent-registration.ts +525 -0
  497. package/src/durable/internal/agent-updates.ts +302 -0
  498. package/src/durable/internal/foreign-diagnostic.ts +47 -0
  499. package/src/durable/internal/journal-checkpoint.ts +104 -0
  500. package/src/durable/internal/journal-metadata.ts +107 -0
  501. package/src/durable/internal/messaging-host.ts +608 -0
  502. package/src/durable/internal/schedule-time.ts +303 -0
  503. package/src/durable/internal/storage-v2-layout.ts +163 -0
  504. package/src/durable/internal/storage-v2.ts +73 -0
  505. package/src/durable/internal/worker-host.ts +2467 -0
  506. package/src/durable/internal/worker-runtime.ts +9 -0
  507. package/src/engine/AgentRuntime.ts +37 -0
  508. package/src/engine/Compaction.ts +11 -0
  509. package/src/engine/ContextCompactor.ts +277 -0
  510. package/src/engine/ContextHistory.ts +73 -0
  511. package/src/engine/ContextWindow.ts +72 -0
  512. package/src/engine/DurableStep.ts +132 -0
  513. package/src/engine/MessagingHost.ts +110 -0
  514. package/src/engine/Output.ts +2 -0
  515. package/src/engine/RunEventSink.ts +132 -0
  516. package/src/engine/RunOptions.ts +1077 -0
  517. package/src/engine/SubagentHost.ts +181 -0
  518. package/src/engine/ThreadHistory.ts +120 -0
  519. package/src/engine/ToolBroker.ts +157 -0
  520. package/src/engine/ToolExposure.ts +48 -0
  521. package/src/engine/internal/agent-runtime.ts +10162 -0
  522. package/src/engine/internal/bounded-value.ts +315 -0
  523. package/src/engine/internal/compaction.ts +678 -0
  524. package/src/engine/internal/error-diagnostic.ts +39 -0
  525. package/src/engine/internal/output-contract.ts +173 -0
  526. package/src/engine/internal/primitive-delta.ts +80 -0
  527. package/src/engine/internal/provider-result-staging.ts +211 -0
  528. package/src/engine/internal/tool-derivative.ts +106 -0
  529. package/src/engine/internal/tool-exposure.ts +224 -0
  530. package/src/engine/internal/tool-telemetry.ts +484 -0
  531. package/src/index.ts +97 -22
  532. package/src/sandbox/CodeExecutor.ts +352 -0
  533. package/src/sandbox/InteractiveBrowser.ts +257 -0
  534. package/src/sandbox/PageCapture.ts +692 -0
  535. package/src/sandbox/PageCrawl.ts +148 -0
  536. package/src/sandbox/PageScreenshot.ts +81 -0
  537. package/src/sandbox/ProtectedBrowser.ts +436 -0
  538. package/src/sandbox/Sandbox.ts +241 -0
@@ -0,0 +1,185 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { MemoryPassage } from "./MemoryReference.mjs";
3
+ import { equals } from "./MemoryNamespace.mjs";
4
+ import { ActiveMemoryDocument, MemoryKey } from "./MemoryStore.mjs";
5
+ import { Context, Effect, Schema } from "effect";
6
+ //#region src/core/SemanticMemoryIndex.ts
7
+ var SemanticMemoryIndex_exports = /* @__PURE__ */ __exportAll({
8
+ MemoryIndexCandidate: () => MemoryIndexCandidate,
9
+ MemoryIndexError: () => MemoryIndexError,
10
+ MemoryIndexQuery: () => MemoryIndexQuery,
11
+ MemoryIndexReplacement: () => MemoryIndexReplacement,
12
+ MemoryIndexSearch: () => MemoryIndexSearch,
13
+ MemoryIndexSource: () => MemoryIndexSource,
14
+ SemanticMemoryChunk: () => SemanticMemoryChunk,
15
+ SemanticMemoryIndex: () => SemanticMemoryIndex,
16
+ SemanticMemoryProfile: () => SemanticMemoryProfile
17
+ });
18
+ const Identity = Schema.NonEmptyString.check(Schema.isMaxLength(256));
19
+ const Positive = Schema.Int.check(Schema.isBetween({
20
+ minimum: 1,
21
+ maximum: Number.MAX_SAFE_INTEGER
22
+ }));
23
+ const Timestamp = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
24
+ const Vector = Schema.Array(Schema.Finite).check(Schema.isMinLength(1), Schema.isMaxLength(4096));
25
+ /** A host declaration of the exact embedding space and deterministic chunking policy. */
26
+ var SemanticMemoryProfile = class extends Schema.Class("@effect-agent/core/SemanticMemoryProfile")({
27
+ version: Schema.Literal(1),
28
+ provider: Identity,
29
+ model: Identity,
30
+ modelRevision: Identity,
31
+ dimensions: Schema.Int.check(Schema.isBetween({
32
+ minimum: 1,
33
+ maximum: 4096
34
+ })),
35
+ chunker: Schema.Literal("utf8-codepoint@1"),
36
+ maxChunkBytes: Schema.Int.check(Schema.isBetween({
37
+ minimum: 4,
38
+ maximum: 8192
39
+ })),
40
+ distance: Schema.Literal("cosine")
41
+ }) {};
42
+ var SemanticMemoryChunk = class extends Schema.Class("@effect-agent/core/SemanticMemoryChunk")({
43
+ passageId: MemoryPassage.fields.passageId,
44
+ ordinal: Schema.Int.check(Schema.isBetween({
45
+ minimum: 0,
46
+ maximum: 255
47
+ })),
48
+ startByte: Schema.Natural,
49
+ endByte: Schema.Natural,
50
+ text: Schema.NonEmptyString.check(Schema.isMaxLength(8192)),
51
+ vector: Vector
52
+ }) {};
53
+ const SourceFields = {
54
+ key: MemoryKey.Wire,
55
+ source: ActiveMemoryDocument.Wire.fields.source,
56
+ sourceGeneration: Positive
57
+ };
58
+ var MemoryIndexSourceWire = class extends Schema.Class("@effect-agent/core/MemoryIndexSource")(SourceFields) {};
59
+ const MemoryIndexSource = {
60
+ Wire: MemoryIndexSourceWire,
61
+ make: (fields) => Object.assign(Schema.decodeUnknownSync(MemoryIndexSourceWire)(fields), { key: MemoryKey.make(fields.key) })
62
+ };
63
+ /** A complete replacement, prepared before touching the disposable index. */
64
+ var MemoryIndexReplacementWire = class extends Schema.Class("@effect-agent/core/MemoryIndexReplacement")({
65
+ source: MemoryIndexSource.Wire,
66
+ profile: SemanticMemoryProfile,
67
+ chunks: Schema.Array(SemanticMemoryChunk).check(Schema.isMinLength(1), Schema.isMaxLength(256))
68
+ }) {};
69
+ const MemoryIndexReplacement = {
70
+ Wire: MemoryIndexReplacementWire,
71
+ make: (fields) => Object.assign(Schema.decodeUnknownSync(MemoryIndexReplacementWire)(fields), { source: fields.source })
72
+ };
73
+ var MemoryIndexCandidateWire = class extends Schema.Class("@effect-agent/core/MemoryIndexCandidate")({
74
+ ...SourceFields,
75
+ passageId: SemanticMemoryChunk.fields.passageId,
76
+ ordinal: SemanticMemoryChunk.fields.ordinal,
77
+ startByte: SemanticMemoryChunk.fields.startByte,
78
+ endByte: SemanticMemoryChunk.fields.endByte,
79
+ text: SemanticMemoryChunk.fields.text,
80
+ score: Schema.Finite.check(Schema.isBetween({
81
+ minimum: -1,
82
+ maximum: 1
83
+ })),
84
+ indexedAt: Timestamp
85
+ }) {};
86
+ const MemoryIndexCandidate = {
87
+ Wire: MemoryIndexCandidateWire,
88
+ make: (fields) => Object.assign(Schema.decodeUnknownSync(MemoryIndexCandidateWire)(fields), { key: MemoryKey.make(fields.key) })
89
+ };
90
+ var MemoryIndexQueryWire = class extends Schema.Class("@effect-agent/core/MemoryIndexQuery")({
91
+ namespace: MemoryKey.Wire.fields.namespace,
92
+ vector: Vector,
93
+ limit: Schema.Int.check(Schema.isBetween({
94
+ minimum: 1,
95
+ maximum: 128
96
+ })),
97
+ minScore: Schema.Finite.check(Schema.isBetween({
98
+ minimum: -1,
99
+ maximum: 1
100
+ })),
101
+ maxScannedChunks: Schema.Int.check(Schema.isBetween({
102
+ minimum: 1,
103
+ maximum: 65536
104
+ }))
105
+ }) {};
106
+ const MemoryIndexQuery = {
107
+ Wire: MemoryIndexQueryWire,
108
+ make: (fields) => Object.assign(Schema.decodeUnknownSync(MemoryIndexQueryWire)(fields), { namespace: fields.namespace })
109
+ };
110
+ var MemoryIndexSearchWire = class extends Schema.Class("@effect-agent/core/MemoryIndexSearch")({
111
+ candidates: Schema.Array(MemoryIndexCandidate.Wire).check(Schema.isMaxLength(128)),
112
+ scannedChunks: Schema.Natural
113
+ }) {};
114
+ const MemoryIndexSearch = {
115
+ Wire: MemoryIndexSearchWire,
116
+ make: (fields) => Object.assign(Schema.decodeUnknownSync(MemoryIndexSearchWire)(fields), { candidates: fields.candidates })
117
+ };
118
+ var MemoryIndexError = class extends Schema.TaggedError()("MemoryIndexError", {
119
+ operation: Identity,
120
+ reason: Schema.Literals([
121
+ "invalid-input",
122
+ "unavailable",
123
+ "corrupt",
124
+ "incompatible",
125
+ "fenced",
126
+ "budget"
127
+ ])
128
+ }) {};
129
+ /**
130
+ * Optional disposable ranking index with one fixed embedding/chunking profile.
131
+ * replace validates a complete replacement before atomically exchanging chunks. Failure leaves
132
+ * the last successful index intact. Older generations and divergent same-generation source
133
+ * identities are fenced; refreshing the same source is allowed. Source IDs must equal key IDs.
134
+ * withdraw retains a terminal tombstone that fences every later replacement for that key.
135
+ *
136
+ * Vectors match the profile dimensions and have positive finite squared norms. Chunks form a
137
+ * nonempty contiguous ordinal/byte sequence starting at zero, with unique passage IDs and exact
138
+ * UTF-8 byte ranges bounded by maxChunkBytes. Implementations snapshot mutable caller values.
139
+ *
140
+ * Bounded adapters count every source key, including tombstones, against capacity. Replacement
141
+ * capacity is measured after removing the old chunks. Search rejects scans over maxScannedChunks
142
+ * instead of ranking a truncated prefix. scannedChunks counts all indexed chunks in the namespace
143
+ * before threshold/limit. Ties sort by source ID, revision, then ordinal in UTF-16 code-unit order.
144
+ * Scope close clears the index and makes captured methods fail unavailable.
145
+ *
146
+ * Search is ranking only: callers MUST recheck authoritative revision, access, and withdrawal.
147
+ * This port tracks no builds, extraction progress, or corpus completeness. The host owns source
148
+ * discovery, refresh scheduling, and required freshness.
149
+ */
150
+ var SemanticMemoryIndex = class extends Context.Service()("@effect-agent/core/SemanticMemoryIndex") {
151
+ static fromAdapter(adapter) {
152
+ return {
153
+ ...adapter,
154
+ search: Effect.fn("SemanticMemoryIndex.search")(function* (query) {
155
+ const result = yield* adapter.search(query);
156
+ const checked = yield* Schema.decodeEffect(MemoryIndexSearch.Wire)(result).pipe(Effect.mapError(() => MemoryIndexError.make({
157
+ operation: "restore index search",
158
+ reason: "corrupt"
159
+ })));
160
+ const candidates = [];
161
+ for (const candidate of checked.candidates) {
162
+ if (!equals(candidate.key.namespace, query.namespace)) return yield* MemoryIndexError.make({
163
+ operation: "restore index namespace",
164
+ reason: "corrupt"
165
+ });
166
+ candidates.push(MemoryIndexCandidate.make({
167
+ ...candidate,
168
+ key: MemoryKey.make({
169
+ ...candidate.key,
170
+ namespace: query.namespace
171
+ })
172
+ }));
173
+ }
174
+ return MemoryIndexSearch.make({
175
+ ...checked,
176
+ candidates
177
+ });
178
+ })
179
+ };
180
+ }
181
+ };
182
+ //#endregion
183
+ export { MemoryIndexCandidate, MemoryIndexError, MemoryIndexQuery, MemoryIndexReplacement, MemoryIndexSearch, MemoryIndexSource, SemanticMemoryChunk, SemanticMemoryIndex, SemanticMemoryProfile, SemanticMemoryIndex_exports as t };
184
+
185
+ //# sourceMappingURL=SemanticMemoryIndex.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SemanticMemoryIndex.mjs","names":["MemoryNamespace.equals"],"sources":["../../src/core/SemanticMemoryIndex.ts"],"sourcesContent":["import { Context, Effect, Schema } from \"effect\";\n\nimport * as MemoryNamespace from \"./MemoryNamespace.ts\";\nimport { MemoryPassage } from \"./MemoryReference.ts\";\nimport { ActiveMemoryDocument, MemoryKey } from \"./MemoryStore.ts\";\n\nconst Identity = Schema.NonEmptyString.check(Schema.isMaxLength(256));\n\nconst Positive = Schema.Int.check(\n Schema.isBetween({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER }),\n);\n\nconst Timestamp = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));\nconst Vector = Schema.Array(Schema.Finite).check(Schema.isMinLength(1), Schema.isMaxLength(4_096));\n\n/** A host declaration of the exact embedding space and deterministic chunking policy. */\nexport class SemanticMemoryProfile extends Schema.Class<SemanticMemoryProfile>(\n \"@effect-agent/core/SemanticMemoryProfile\",\n)({\n version: Schema.Literal(1),\n provider: Identity,\n model: Identity,\n modelRevision: Identity,\n dimensions: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 4_096 })),\n chunker: Schema.Literal(\"utf8-codepoint@1\"),\n maxChunkBytes: Schema.Int.check(Schema.isBetween({ minimum: 4, maximum: 8_192 })),\n distance: Schema.Literal(\"cosine\"),\n}) {}\n\nexport class SemanticMemoryChunk extends Schema.Class<SemanticMemoryChunk>(\n \"@effect-agent/core/SemanticMemoryChunk\",\n)({\n passageId: MemoryPassage.fields.passageId,\n ordinal: Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 255 })),\n startByte: Schema.Natural,\n endByte: Schema.Natural,\n text: Schema.NonEmptyString.check(Schema.isMaxLength(8_192)),\n vector: Vector,\n}) {}\n\nconst SourceFields = {\n key: MemoryKey.Wire,\n source: ActiveMemoryDocument.Wire.fields.source,\n sourceGeneration: Positive,\n};\n\nclass MemoryIndexSourceWire extends Schema.Class<MemoryIndexSourceWire>(\n \"@effect-agent/core/MemoryIndexSource\",\n)(SourceFields) {}\n\nexport type MemoryIndexSource<Namespace extends MemoryNamespace.Any = MemoryNamespace.Any> = Omit<\n MemoryIndexSourceWire,\n \"key\"\n> & { readonly key: MemoryKey<Namespace> };\n\nexport const MemoryIndexSource = {\n Wire: MemoryIndexSourceWire,\n make: <Namespace extends MemoryNamespace.Any>(\n fields: MemoryIndexSource<Namespace>,\n ): MemoryIndexSource<Namespace> =>\n Object.assign(Schema.decodeUnknownSync(MemoryIndexSourceWire)(fields), {\n key: MemoryKey.make(fields.key),\n }),\n};\n\n/** A complete replacement, prepared before touching the disposable index. */\nclass MemoryIndexReplacementWire extends Schema.Class<MemoryIndexReplacementWire>(\n \"@effect-agent/core/MemoryIndexReplacement\",\n)({\n source: MemoryIndexSource.Wire,\n profile: SemanticMemoryProfile,\n chunks: Schema.Array(SemanticMemoryChunk).check(Schema.isMinLength(1), Schema.isMaxLength(256)),\n}) {}\n\nexport type MemoryIndexReplacement<Namespace extends MemoryNamespace.Any = MemoryNamespace.Any> =\n Omit<MemoryIndexReplacementWire, \"source\"> & { readonly source: MemoryIndexSource<Namespace> };\n\nexport const MemoryIndexReplacement = {\n Wire: MemoryIndexReplacementWire,\n make: <Namespace extends MemoryNamespace.Any>(\n fields: MemoryIndexReplacement<Namespace>,\n ): MemoryIndexReplacement<Namespace> =>\n Object.assign(Schema.decodeUnknownSync(MemoryIndexReplacementWire)(fields), {\n source: fields.source,\n }),\n};\n\nclass MemoryIndexCandidateWire extends Schema.Class<MemoryIndexCandidateWire>(\n \"@effect-agent/core/MemoryIndexCandidate\",\n)({\n ...SourceFields,\n passageId: SemanticMemoryChunk.fields.passageId,\n ordinal: SemanticMemoryChunk.fields.ordinal,\n startByte: SemanticMemoryChunk.fields.startByte,\n endByte: SemanticMemoryChunk.fields.endByte,\n text: SemanticMemoryChunk.fields.text,\n score: Schema.Finite.check(Schema.isBetween({ minimum: -1, maximum: 1 })),\n indexedAt: Timestamp,\n}) {}\n\nexport type MemoryIndexCandidate<Namespace extends MemoryNamespace.Any = MemoryNamespace.Any> =\n Omit<MemoryIndexCandidateWire, \"key\"> & { readonly key: MemoryKey<Namespace> };\n\nexport const MemoryIndexCandidate = {\n Wire: MemoryIndexCandidateWire,\n make: <Namespace extends MemoryNamespace.Any>(\n fields: MemoryIndexCandidate<Namespace>,\n ): MemoryIndexCandidate<Namespace> =>\n Object.assign(Schema.decodeUnknownSync(MemoryIndexCandidateWire)(fields), {\n key: MemoryKey.make(fields.key),\n }),\n};\n\nclass MemoryIndexQueryWire extends Schema.Class<MemoryIndexQueryWire>(\n \"@effect-agent/core/MemoryIndexQuery\",\n)({\n namespace: MemoryKey.Wire.fields.namespace,\n vector: Vector,\n limit: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 128 })),\n minScore: Schema.Finite.check(Schema.isBetween({ minimum: -1, maximum: 1 })),\n maxScannedChunks: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65_536 })),\n}) {}\n\nexport type MemoryIndexQuery<Namespace extends MemoryNamespace.Any = MemoryNamespace.Any> = Omit<\n MemoryIndexQueryWire,\n \"namespace\"\n> & { readonly namespace: Namespace };\n\nexport const MemoryIndexQuery = {\n Wire: MemoryIndexQueryWire,\n make: <Namespace extends MemoryNamespace.Any>(\n fields: MemoryIndexQuery<Namespace>,\n ): MemoryIndexQuery<Namespace> =>\n Object.assign(Schema.decodeUnknownSync(MemoryIndexQueryWire)(fields), {\n namespace: fields.namespace,\n }),\n};\n\nclass MemoryIndexSearchWire extends Schema.Class<MemoryIndexSearchWire>(\n \"@effect-agent/core/MemoryIndexSearch\",\n)({\n candidates: Schema.Array(MemoryIndexCandidate.Wire).check(Schema.isMaxLength(128)),\n scannedChunks: Schema.Natural,\n}) {}\n\nexport type MemoryIndexSearch<Namespace extends MemoryNamespace.Any = MemoryNamespace.Any> = Omit<\n MemoryIndexSearchWire,\n \"candidates\"\n> & { readonly candidates: ReadonlyArray<MemoryIndexCandidate<Namespace>> };\n\nexport const MemoryIndexSearch = {\n Wire: MemoryIndexSearchWire,\n make: <Namespace extends MemoryNamespace.Any>(\n fields: MemoryIndexSearch<Namespace>,\n ): MemoryIndexSearch<Namespace> =>\n Object.assign(Schema.decodeUnknownSync(MemoryIndexSearchWire)(fields), {\n candidates: fields.candidates,\n }),\n};\n\nexport class MemoryIndexError extends Schema.TaggedError<MemoryIndexError>()(\"MemoryIndexError\", {\n operation: Identity,\n reason: Schema.Literals([\n \"invalid-input\",\n \"unavailable\",\n \"corrupt\",\n \"incompatible\",\n \"fenced\",\n \"budget\",\n ]),\n}) {}\n\n/**\n * Optional disposable ranking index with one fixed embedding/chunking profile.\n * replace validates a complete replacement before atomically exchanging chunks. Failure leaves\n * the last successful index intact. Older generations and divergent same-generation source\n * identities are fenced; refreshing the same source is allowed. Source IDs must equal key IDs.\n * withdraw retains a terminal tombstone that fences every later replacement for that key.\n *\n * Vectors match the profile dimensions and have positive finite squared norms. Chunks form a\n * nonempty contiguous ordinal/byte sequence starting at zero, with unique passage IDs and exact\n * UTF-8 byte ranges bounded by maxChunkBytes. Implementations snapshot mutable caller values.\n *\n * Bounded adapters count every source key, including tombstones, against capacity. Replacement\n * capacity is measured after removing the old chunks. Search rejects scans over maxScannedChunks\n * instead of ranking a truncated prefix. scannedChunks counts all indexed chunks in the namespace\n * before threshold/limit. Ties sort by source ID, revision, then ordinal in UTF-16 code-unit order.\n * Scope close clears the index and makes captured methods fail unavailable.\n *\n * Search is ranking only: callers MUST recheck authoritative revision, access, and withdrawal.\n * This port tracks no builds, extraction progress, or corpus completeness. The host owns source\n * discovery, refresh scheduling, and required freshness.\n */\nexport class SemanticMemoryIndex extends Context.Service<\n SemanticMemoryIndex,\n {\n readonly profile: SemanticMemoryProfile;\n readonly replace: <Namespace extends MemoryNamespace.Any>(\n request: MemoryIndexReplacement<Namespace>,\n ) => Effect.Effect<void, MemoryIndexError>;\n readonly withdraw: <Namespace extends MemoryNamespace.Any>(\n source: MemoryIndexSource<Namespace>,\n ) => Effect.Effect<void, MemoryIndexError>;\n readonly search: <Namespace extends MemoryNamespace.Any>(\n query: MemoryIndexQuery<Namespace>,\n ) => Effect.Effect<MemoryIndexSearch<Namespace>, MemoryIndexError>;\n }\n>()(\"@effect-agent/core/SemanticMemoryIndex\") {\n static fromAdapter(adapter: {\n readonly profile: SemanticMemoryProfile;\n readonly replace: (request: MemoryIndexReplacement) => Effect.Effect<void, MemoryIndexError>;\n readonly withdraw: (source: MemoryIndexSource) => Effect.Effect<void, MemoryIndexError>;\n readonly search: (\n query: MemoryIndexQuery,\n ) => Effect.Effect<MemoryIndexSearch, MemoryIndexError>;\n }): SemanticMemoryIndex[\"Service\"] {\n return {\n ...adapter,\n search: Effect.fn(\"SemanticMemoryIndex.search\")(function* <\n Namespace extends MemoryNamespace.Any,\n >(query: MemoryIndexQuery<Namespace>) {\n const result = yield* adapter.search(query);\n\n const checked = yield* Schema.decodeEffect(MemoryIndexSearch.Wire)(result).pipe(\n Effect.mapError(() =>\n MemoryIndexError.make({ operation: \"restore index search\", reason: \"corrupt\" }),\n ),\n );\n\n const candidates: Array<MemoryIndexCandidate<Namespace>> = [];\n\n for (const candidate of checked.candidates) {\n if (!MemoryNamespace.equals(candidate.key.namespace, query.namespace))\n return yield* MemoryIndexError.make({\n operation: \"restore index namespace\",\n reason: \"corrupt\",\n });\n candidates.push(\n MemoryIndexCandidate.make({\n ...candidate,\n key: MemoryKey.make({ ...candidate.key, namespace: query.namespace }),\n }),\n );\n }\n\n return MemoryIndexSearch.make({ ...checked, candidates });\n }),\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAMA,MAAM,WAAW,OAAO,eAAe,MAAM,OAAO,YAAY,GAAG,CAAC;AAEpE,MAAM,WAAW,OAAO,IAAI,MAC1B,OAAO,UAAU;CAAE,SAAS;CAAG,SAAS,OAAO;AAAiB,CAAC,CACnE;AAEA,MAAM,YAAY,OAAO,OAAO,MAAM,OAAO,uBAAuB,CAAC,CAAC;AACtE,MAAM,SAAS,OAAO,MAAM,OAAO,MAAM,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,IAAK,CAAC;;AAGjG,IAAa,wBAAb,cAA2C,OAAO,MAChD,0CACF,CAAC,CAAC;CACA,SAAS,OAAO,QAAQ,CAAC;CACzB,UAAU;CACV,OAAO;CACP,eAAe;CACf,YAAY,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS;CAAM,CAAC,CAAC;CAC7E,SAAS,OAAO,QAAQ,kBAAkB;CAC1C,eAAe,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS;CAAM,CAAC,CAAC;CAChF,UAAU,OAAO,QAAQ,QAAQ;AACnC,CAAC,CAAC,CAAC,CAAC;AAEJ,IAAa,sBAAb,cAAyC,OAAO,MAC9C,wCACF,CAAC,CAAC;CACA,WAAW,cAAc,OAAO;CAChC,SAAS,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS;CAAI,CAAC,CAAC;CACxE,WAAW,OAAO;CAClB,SAAS,OAAO;CAChB,MAAM,OAAO,eAAe,MAAM,OAAO,YAAY,IAAK,CAAC;CAC3D,QAAQ;AACV,CAAC,CAAC,CAAC,CAAC;AAEJ,MAAM,eAAe;CACnB,KAAK,UAAU;CACf,QAAQ,qBAAqB,KAAK,OAAO;CACzC,kBAAkB;AACpB;AAEA,IAAM,wBAAN,cAAoC,OAAO,MACzC,sCACF,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAOjB,MAAa,oBAAoB;CAC/B,MAAM;CACN,OACE,WAEA,OAAO,OAAO,OAAO,kBAAkB,qBAAqB,CAAC,CAAC,MAAM,GAAG,EACrE,KAAK,UAAU,KAAK,OAAO,GAAG,EAChC,CAAC;AACL;;AAGA,IAAM,6BAAN,cAAyC,OAAO,MAC9C,2CACF,CAAC,CAAC;CACA,QAAQ,kBAAkB;CAC1B,SAAS;CACT,QAAQ,OAAO,MAAM,mBAAmB,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,GAAG,CAAC;AAChG,CAAC,CAAC,CAAC,CAAC;AAKJ,MAAa,yBAAyB;CACpC,MAAM;CACN,OACE,WAEA,OAAO,OAAO,OAAO,kBAAkB,0BAA0B,CAAC,CAAC,MAAM,GAAG,EAC1E,QAAQ,OAAO,OACjB,CAAC;AACL;AAEA,IAAM,2BAAN,cAAuC,OAAO,MAC5C,yCACF,CAAC,CAAC;CACA,GAAG;CACH,WAAW,oBAAoB,OAAO;CACtC,SAAS,oBAAoB,OAAO;CACpC,WAAW,oBAAoB,OAAO;CACtC,SAAS,oBAAoB,OAAO;CACpC,MAAM,oBAAoB,OAAO;CACjC,OAAO,OAAO,OAAO,MAAM,OAAO,UAAU;EAAE,SAAS;EAAI,SAAS;CAAE,CAAC,CAAC;CACxE,WAAW;AACb,CAAC,CAAC,CAAC,CAAC;AAKJ,MAAa,uBAAuB;CAClC,MAAM;CACN,OACE,WAEA,OAAO,OAAO,OAAO,kBAAkB,wBAAwB,CAAC,CAAC,MAAM,GAAG,EACxE,KAAK,UAAU,KAAK,OAAO,GAAG,EAChC,CAAC;AACL;AAEA,IAAM,uBAAN,cAAmC,OAAO,MACxC,qCACF,CAAC,CAAC;CACA,WAAW,UAAU,KAAK,OAAO;CACjC,QAAQ;CACR,OAAO,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS;CAAI,CAAC,CAAC;CACtE,UAAU,OAAO,OAAO,MAAM,OAAO,UAAU;EAAE,SAAS;EAAI,SAAS;CAAE,CAAC,CAAC;CAC3E,kBAAkB,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS;CAAO,CAAC,CAAC;AACtF,CAAC,CAAC,CAAC,CAAC;AAOJ,MAAa,mBAAmB;CAC9B,MAAM;CACN,OACE,WAEA,OAAO,OAAO,OAAO,kBAAkB,oBAAoB,CAAC,CAAC,MAAM,GAAG,EACpE,WAAW,OAAO,UACpB,CAAC;AACL;AAEA,IAAM,wBAAN,cAAoC,OAAO,MACzC,sCACF,CAAC,CAAC;CACA,YAAY,OAAO,MAAM,qBAAqB,IAAI,CAAC,CAAC,MAAM,OAAO,YAAY,GAAG,CAAC;CACjF,eAAe,OAAO;AACxB,CAAC,CAAC,CAAC,CAAC;AAOJ,MAAa,oBAAoB;CAC/B,MAAM;CACN,OACE,WAEA,OAAO,OAAO,OAAO,kBAAkB,qBAAqB,CAAC,CAAC,MAAM,GAAG,EACrE,YAAY,OAAO,WACrB,CAAC;AACL;AAEA,IAAa,mBAAb,cAAsC,OAAO,YAA8B,CAAC,CAAC,oBAAoB;CAC/F,WAAW;CACX,QAAQ,OAAO,SAAS;EACtB;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;AACH,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;AAuBJ,IAAa,sBAAb,cAAyC,QAAQ,QAc/C,CAAC,CAAC,wCAAwC,CAAC,CAAC;CAC5C,OAAO,YAAY,SAOgB;EACjC,OAAO;GACL,GAAG;GACH,QAAQ,OAAO,GAAG,4BAA4B,CAAC,CAAC,WAE9C,OAAoC;IACpC,MAAM,SAAS,OAAO,QAAQ,OAAO,KAAK;IAE1C,MAAM,UAAU,OAAO,OAAO,aAAa,kBAAkB,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KACzE,OAAO,eACL,iBAAiB,KAAK;KAAE,WAAW;KAAwB,QAAQ;IAAU,CAAC,CAChF,CACF;IAEA,MAAM,aAAqD,CAAC;IAE5D,KAAK,MAAM,aAAa,QAAQ,YAAY;KAC1C,IAAI,CAACA,OAAuB,UAAU,IAAI,WAAW,MAAM,SAAS,GAClE,OAAO,OAAO,iBAAiB,KAAK;MAClC,WAAW;MACX,QAAQ;KACV,CAAC;KACH,WAAW,KACT,qBAAqB,KAAK;MACxB,GAAG;MACH,KAAK,UAAU,KAAK;OAAE,GAAG,UAAU;OAAK,WAAW,MAAM;MAAU,CAAC;KACtE,CAAC,CACH;IACF;IAEA,OAAO,kBAAkB,KAAK;KAAE,GAAG;KAAS;IAAW,CAAC;GAC1D,CAAC;EACH;CACF;AACF"}
@@ -0,0 +1,45 @@
1
+ import { a as MemoryPassage } from "../MemoryReference-B8Q3UJoJ.mjs";
2
+ import { MemoryReader, MemoryStorageError } from "./MemoryStore.mjs";
3
+ import { MemoryAccess } from "./MemoryRevalidation.mjs";
4
+ import { MemoryIndexError, MemoryIndexSearch, SemanticMemoryProfile } from "./SemanticMemoryIndex.mjs";
5
+ import { Effect, Schema } from "effect";
6
+ declare namespace SemanticMemoryRevalidation_d_exports {
7
+ export { SemanticCandidateLimits, SemanticCandidateResult, SemanticMemoryError, revalidateSemanticMemoryCandidates };
8
+ }
9
+ declare const SemanticMemoryError_base: Schema.Class<SemanticMemoryError, Schema.TaggedStruct<"SemanticMemoryError", {
10
+ readonly operation: Schema.NonEmptyString;
11
+ readonly reason: Schema.Literals<readonly ["invalid-input", "invalid-embedding", "budget", "timeout", "source-changed", "unavailable"]>;
12
+ }>, import("effect/Cause").YieldableError>;
13
+ declare class SemanticMemoryError extends SemanticMemoryError_base {}
14
+ declare const SemanticCandidateLimits_base: Schema.Class<SemanticCandidateLimits, Schema.Struct<{
15
+ readonly maxCandidates: Schema.Int;
16
+ readonly maxScannedChunks: Schema.Int;
17
+ readonly maxSourceBytes: Schema.optionalKey<Schema.Int>;
18
+ /** Aggregate UTF-8 JSON passage bytes, including repeated provenance; defaults to 16 MiB. */
19
+ readonly maxOutputBytes: Schema.optionalKey<Schema.Int>;
20
+ readonly minScore: Schema.Finite;
21
+ }>, {}>;
22
+ declare class SemanticCandidateLimits extends SemanticCandidateLimits_base {}
23
+ declare const SemanticCandidateResult_base: Schema.Class<SemanticCandidateResult, Schema.Struct<{
24
+ readonly lookup: Schema.Union<readonly [Schema.TaggedStruct<"Found", {
25
+ readonly passages: Schema.$Array<typeof MemoryPassage>;
26
+ }>, Schema.TaggedStruct<"NoMatch", {}>, Schema.TaggedStruct<"Unavailable", {
27
+ readonly message: Schema.String;
28
+ }>, Schema.TaggedStruct<"InsufficientFreshness", {
29
+ readonly message: Schema.String;
30
+ }>]>;
31
+ readonly scannedChunks: Schema.Natural;
32
+ readonly staleExcluded: Schema.Natural;
33
+ readonly unauthorizedExcluded: Schema.Natural;
34
+ }>, {}>;
35
+ declare class SemanticCandidateResult extends SemanticCandidateResult_base {}
36
+ /**
37
+ * Revalidate one ranked batch locally. No embedding or index access; stale scored text is excluded.
38
+ * Charge each accepted passage's full JSON encoding before retaining it, including duplicates and
39
+ * authoritative metadata/attribution. maxOutputBytes bounds their aggregate, not source reads or
40
+ * a transport envelope. One passage is constructed at a time before this check.
41
+ */
42
+ declare const revalidateSemanticMemoryCandidates: (found: MemoryIndexSearch, access: MemoryAccess, profile: SemanticMemoryProfile, limits: SemanticCandidateLimits) => Effect.Effect<SemanticCandidateResult, MemoryIndexError | MemoryStorageError | SemanticMemoryError, MemoryReader>;
43
+ //#endregion
44
+ export { SemanticCandidateLimits, SemanticCandidateResult, SemanticMemoryError, revalidateSemanticMemoryCandidates, SemanticMemoryRevalidation_d_exports as t };
45
+ //# sourceMappingURL=SemanticMemoryRevalidation.d.mts.map
@@ -0,0 +1,191 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { n as utf8ByteLength } from "../utf8-DchGZRBd.mjs";
3
+ import { MemoryLookup, MemoryPassage } from "./MemoryReference.mjs";
4
+ import { MemoryDocument, MemoryReader, MemoryStorageError } from "./MemoryStore.mjs";
5
+ import { MemoryAccess } from "./MemoryRevalidation.mjs";
6
+ import { MemoryIndexError, MemoryIndexSearch, SemanticMemoryProfile } from "./SemanticMemoryIndex.mjs";
7
+ import { Effect, Encoding, Schema } from "effect";
8
+ //#region src/core/SemanticMemoryRevalidation.ts
9
+ var SemanticMemoryRevalidation_exports = /* @__PURE__ */ __exportAll({
10
+ SemanticCandidateLimits: () => SemanticCandidateLimits,
11
+ SemanticCandidateResult: () => SemanticCandidateResult,
12
+ SemanticMemoryError: () => SemanticMemoryError,
13
+ revalidateSemanticMemoryCandidates: () => revalidateSemanticMemoryCandidates
14
+ });
15
+ var SemanticMemoryError = class extends Schema.TaggedError()("SemanticMemoryError", {
16
+ operation: Schema.NonEmptyString,
17
+ reason: Schema.Literals([
18
+ "invalid-input",
19
+ "invalid-embedding",
20
+ "budget",
21
+ "timeout",
22
+ "source-changed",
23
+ "unavailable"
24
+ ])
25
+ }) {};
26
+ var SemanticCandidateLimits = class extends Schema.Class("@effect-agent/core/SemanticCandidateLimits")({
27
+ maxCandidates: Schema.Int.check(Schema.isBetween({
28
+ minimum: 1,
29
+ maximum: 128
30
+ })),
31
+ maxScannedChunks: Schema.Int.check(Schema.isBetween({
32
+ minimum: 1,
33
+ maximum: 65536
34
+ })),
35
+ maxSourceBytes: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
36
+ minimum: 1,
37
+ maximum: 67108864
38
+ }))),
39
+ /** Aggregate UTF-8 JSON passage bytes, including repeated provenance; defaults to 16 MiB. */
40
+ maxOutputBytes: Schema.optionalKey(Schema.Int.check(Schema.isBetween({
41
+ minimum: 1,
42
+ maximum: 67108864
43
+ }))),
44
+ minScore: Schema.Finite.check(Schema.isBetween({
45
+ minimum: -1,
46
+ maximum: 1
47
+ }))
48
+ }) {};
49
+ var SemanticCandidateResult = class extends Schema.Class("@effect-agent/core/SemanticCandidateResult")({
50
+ lookup: MemoryLookup,
51
+ scannedChunks: Schema.Natural,
52
+ staleExcluded: Schema.Natural,
53
+ unauthorizedExcluded: Schema.Natural
54
+ }) {};
55
+ const readDocument = Effect.fn("semanticCandidates.readDocument")(function* (key) {
56
+ const document = yield* (yield* MemoryReader).get(key).pipe(Effect.flatMap(Schema.decodeUnknownEffect(Schema.NullOr(MemoryDocument.Wire))), Effect.catchTag("SchemaError", () => Effect.fail(MemoryStorageError.make({
57
+ operation: "validate semantic source",
58
+ reason: "corrupt"
59
+ }))));
60
+ if (document !== null && (document.key.namespace.address !== key.namespace.address || document.key.id !== key.id || document.source.id !== key.id)) return yield* MemoryStorageError.make({
61
+ operation: "validate semantic source identity",
62
+ reason: "corrupt"
63
+ });
64
+ return document;
65
+ });
66
+ /**
67
+ * Revalidate one ranked batch locally. No embedding or index access; stale scored text is excluded.
68
+ * Charge each accepted passage's full JSON encoding before retaining it, including duplicates and
69
+ * authoritative metadata/attribution. maxOutputBytes bounds their aggregate, not source reads or
70
+ * a transport envelope. One passage is constructed at a time before this check.
71
+ */
72
+ const revalidateSemanticMemoryCandidates = Effect.fn("revalidateSemanticMemoryCandidates")(function* (found, access, profile, limits) {
73
+ const input = yield* Schema.decodeEffect(Schema.Struct({
74
+ found: MemoryIndexSearch.Wire,
75
+ access: MemoryAccess.Wire,
76
+ profile: SemanticMemoryProfile,
77
+ limits: SemanticCandidateLimits
78
+ }))({
79
+ found,
80
+ access,
81
+ profile,
82
+ limits
83
+ }).pipe(Effect.mapError(() => MemoryIndexError.make({
84
+ operation: "validate candidates",
85
+ reason: "corrupt"
86
+ })));
87
+ found = input.found;
88
+ access = input.access;
89
+ profile = input.profile;
90
+ limits = input.limits;
91
+ if (found.candidates.length > limits.maxCandidates || found.scannedChunks > limits.maxScannedChunks || found.scannedChunks < found.candidates.length) return yield* MemoryIndexError.make({
92
+ operation: "validate candidate bounds",
93
+ reason: "corrupt"
94
+ });
95
+ const groups = /* @__PURE__ */ new Map();
96
+ const rankedPassages = [];
97
+ let staleExcluded = 0;
98
+ let unauthorizedExcluded = 0;
99
+ for (const [rank, candidate] of found.candidates.entries()) {
100
+ if (candidate.key.namespace.address !== access.namespace.address || candidate.source.id !== candidate.key.id || candidate.score < limits.minScore) return yield* MemoryIndexError.make({
101
+ operation: "validate candidate identity",
102
+ reason: "corrupt"
103
+ });
104
+ const group = groups.get(candidate.key.id);
105
+ if (group === void 0) groups.set(candidate.key.id, {
106
+ key: candidate.key,
107
+ candidates: [{
108
+ rank,
109
+ candidate
110
+ }]
111
+ });
112
+ else group.candidates.push({
113
+ rank,
114
+ candidate
115
+ });
116
+ }
117
+ const maxSourceBytes = limits.maxSourceBytes ?? 16777216;
118
+ const maxOutputBytes = limits.maxOutputBytes ?? 16777216;
119
+ let sourceBytes = 0;
120
+ let outputBytes = 0;
121
+ for (const group of groups.values()) {
122
+ yield* Effect.yieldNow;
123
+ const document = yield* readDocument(group.key);
124
+ if (document === null || document._tag === "WithdrawnMemoryDocument") {
125
+ staleExcluded += group.candidates.length;
126
+ continue;
127
+ }
128
+ if (!document.scopes.includes(access.scope)) {
129
+ unauthorizedExcluded += group.candidates.length;
130
+ continue;
131
+ }
132
+ const current = group.candidates.filter(({ candidate }) => document.generation === candidate.sourceGeneration && document.source.revision === candidate.source.revision && document.source.locator === candidate.source.locator);
133
+ staleExcluded += group.candidates.length - current.length;
134
+ if (current.length === 0) continue;
135
+ const encoded = JSON.stringify(document);
136
+ const remainingSourceBytes = maxSourceBytes - sourceBytes;
137
+ const encodedBytes = encoded.length <= remainingSourceBytes ? utf8ByteLength(encoded) : void 0;
138
+ if (encodedBytes === void 0 || encodedBytes > remainingSourceBytes) return yield* SemanticMemoryError.make({
139
+ operation: "query source bytes",
140
+ reason: "budget"
141
+ });
142
+ sourceBytes += encodedBytes;
143
+ const encodedDocument = Encoding.encodeHex(document.content.text);
144
+ for (const { rank, candidate } of current) {
145
+ if (!sameExcerpt(encodedDocument, candidate, profile.maxChunkBytes)) {
146
+ staleExcluded += 1;
147
+ continue;
148
+ }
149
+ const passage = MemoryPassage.make({
150
+ version: 1,
151
+ authority: access.namespace.address,
152
+ source: document.source,
153
+ passageId: candidate.passageId,
154
+ content: {
155
+ ...document.content,
156
+ text: candidate.text
157
+ }
158
+ });
159
+ const encodedPassage = JSON.stringify(passage);
160
+ const remainingOutputBytes = maxOutputBytes - outputBytes;
161
+ const passageBytes = encodedPassage.length <= remainingOutputBytes ? utf8ByteLength(encodedPassage) : void 0;
162
+ if (passageBytes === void 0 || passageBytes > remainingOutputBytes) return yield* SemanticMemoryError.make({
163
+ operation: "query output bytes",
164
+ reason: "budget"
165
+ });
166
+ outputBytes += passageBytes;
167
+ rankedPassages.push({
168
+ rank,
169
+ passage
170
+ });
171
+ }
172
+ }
173
+ const passages = rankedPassages.sort((left, right) => left.rank - right.rank).map(({ passage }) => passage);
174
+ return SemanticCandidateResult.make({
175
+ lookup: passages.length === 0 ? { _tag: "NoMatch" } : {
176
+ _tag: "Found",
177
+ passages
178
+ },
179
+ scannedChunks: found.scannedChunks,
180
+ staleExcluded,
181
+ unauthorizedExcluded
182
+ });
183
+ });
184
+ const sameExcerpt = (encodedDocument, candidate, maxChunkBytes) => {
185
+ const hex = Encoding.encodeHex(candidate.text);
186
+ return candidate.startByte < candidate.endByte && hex.length / 2 === candidate.endByte - candidate.startByte && hex.length / 2 <= maxChunkBytes && encodedDocument.slice(candidate.startByte * 2, candidate.endByte * 2) === hex;
187
+ };
188
+ //#endregion
189
+ export { SemanticCandidateLimits, SemanticCandidateResult, SemanticMemoryError, revalidateSemanticMemoryCandidates, SemanticMemoryRevalidation_exports as t };
190
+
191
+ //# sourceMappingURL=SemanticMemoryRevalidation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SemanticMemoryRevalidation.mjs","names":["byteLength"],"sources":["../../src/core/SemanticMemoryRevalidation.ts"],"sourcesContent":["import { Effect, Encoding, Schema } from \"effect\";\n\nimport { utf8ByteLength as byteLength } from \"./internal/utf8.ts\";\nimport { MemoryLookup, MemoryPassage } from \"./MemoryReference.ts\";\nimport { MemoryAccess } from \"./MemoryRevalidation.ts\";\nimport type { MemoryKey } from \"./MemoryStore.ts\";\nimport { MemoryDocument, MemoryReader, MemoryStorageError } from \"./MemoryStore.ts\";\nimport type { MemoryIndexCandidate } from \"./SemanticMemoryIndex.ts\";\nimport {\n MemoryIndexError,\n MemoryIndexSearch,\n SemanticMemoryProfile,\n} from \"./SemanticMemoryIndex.ts\";\n\nexport class SemanticMemoryError extends Schema.TaggedError<SemanticMemoryError>()(\n \"SemanticMemoryError\",\n {\n operation: Schema.NonEmptyString,\n reason: Schema.Literals([\n \"invalid-input\",\n \"invalid-embedding\",\n \"budget\",\n \"timeout\",\n \"source-changed\",\n \"unavailable\",\n ]),\n },\n) {}\n\nexport class SemanticCandidateLimits extends Schema.Class<SemanticCandidateLimits>(\n \"@effect-agent/core/SemanticCandidateLimits\",\n)({\n maxCandidates: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 128 })),\n maxScannedChunks: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 65_536 })),\n maxSourceBytes: Schema.optionalKey(\n Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 67_108_864 })),\n ),\n /** Aggregate UTF-8 JSON passage bytes, including repeated provenance; defaults to 16 MiB. */\n maxOutputBytes: Schema.optionalKey(\n Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 67_108_864 })),\n ),\n minScore: Schema.Finite.check(Schema.isBetween({ minimum: -1, maximum: 1 })),\n}) {}\n\nexport class SemanticCandidateResult extends Schema.Class<SemanticCandidateResult>(\n \"@effect-agent/core/SemanticCandidateResult\",\n)({\n lookup: MemoryLookup,\n scannedChunks: Schema.Natural,\n staleExcluded: Schema.Natural,\n unauthorizedExcluded: Schema.Natural,\n}) {}\n\nconst readDocument = Effect.fn(\"semanticCandidates.readDocument\")(function* (key: MemoryKey) {\n const reader = yield* MemoryReader;\n\n const document = yield* reader.get(key).pipe(\n Effect.flatMap(Schema.decodeUnknownEffect(Schema.NullOr(MemoryDocument.Wire))),\n Effect.catchTag(\"SchemaError\", () =>\n Effect.fail(\n MemoryStorageError.make({ operation: \"validate semantic source\", reason: \"corrupt\" }),\n ),\n ),\n );\n\n if (\n document !== null &&\n (document.key.namespace.address !== key.namespace.address ||\n document.key.id !== key.id ||\n document.source.id !== key.id)\n )\n return yield* MemoryStorageError.make({\n operation: \"validate semantic source identity\",\n reason: \"corrupt\",\n });\n\n return document;\n});\n\n/**\n * Revalidate one ranked batch locally. No embedding or index access; stale scored text is excluded.\n * Charge each accepted passage's full JSON encoding before retaining it, including duplicates and\n * authoritative metadata/attribution. maxOutputBytes bounds their aggregate, not source reads or\n * a transport envelope. One passage is constructed at a time before this check.\n */\nexport const revalidateSemanticMemoryCandidates = Effect.fn(\"revalidateSemanticMemoryCandidates\")(\n function* (\n found: MemoryIndexSearch,\n access: MemoryAccess,\n profile: SemanticMemoryProfile,\n limits: SemanticCandidateLimits,\n ) {\n const input = yield* Schema.decodeEffect(\n Schema.Struct({\n found: MemoryIndexSearch.Wire,\n access: MemoryAccess.Wire,\n profile: SemanticMemoryProfile,\n limits: SemanticCandidateLimits,\n }),\n )({ found, access, profile, limits }).pipe(\n Effect.mapError(() =>\n MemoryIndexError.make({ operation: \"validate candidates\", reason: \"corrupt\" }),\n ),\n );\n\n found = input.found;\n access = input.access;\n profile = input.profile;\n limits = input.limits;\n if (\n found.candidates.length > limits.maxCandidates ||\n found.scannedChunks > limits.maxScannedChunks ||\n found.scannedChunks < found.candidates.length\n ) {\n return yield* MemoryIndexError.make({\n operation: \"validate candidate bounds\",\n reason: \"corrupt\",\n });\n }\n\n const groups = new Map<\n string,\n {\n readonly key: MemoryKey;\n readonly candidates: Array<{\n readonly rank: number;\n readonly candidate: MemoryIndexCandidate;\n }>;\n }\n >();\n\n const rankedPassages: Array<{ readonly rank: number; readonly passage: MemoryPassage }> = [];\n let staleExcluded = 0;\n let unauthorizedExcluded = 0;\n\n for (const [rank, candidate] of found.candidates.entries()) {\n if (\n candidate.key.namespace.address !== access.namespace.address ||\n candidate.source.id !== candidate.key.id ||\n candidate.score < limits.minScore\n ) {\n return yield* MemoryIndexError.make({\n operation: \"validate candidate identity\",\n reason: \"corrupt\",\n });\n }\n const group = groups.get(candidate.key.id);\n\n if (group === undefined) {\n groups.set(candidate.key.id, { key: candidate.key, candidates: [{ rank, candidate }] });\n } else group.candidates.push({ rank, candidate });\n }\n const maxSourceBytes = limits.maxSourceBytes ?? 16_777_216;\n const maxOutputBytes = limits.maxOutputBytes ?? 16_777_216;\n let sourceBytes = 0;\n let outputBytes = 0;\n\n for (const group of groups.values()) {\n yield* Effect.yieldNow;\n const document = yield* readDocument(group.key);\n\n if (document === null || document._tag === \"WithdrawnMemoryDocument\") {\n staleExcluded += group.candidates.length;\n continue;\n }\n if (!document.scopes.includes(access.scope)) {\n unauthorizedExcluded += group.candidates.length;\n continue;\n }\n\n const current = group.candidates.filter(\n ({ candidate }) =>\n document.generation === candidate.sourceGeneration &&\n document.source.revision === candidate.source.revision &&\n document.source.locator === candidate.source.locator,\n );\n\n staleExcluded += group.candidates.length - current.length;\n if (current.length === 0) continue;\n const encoded = JSON.stringify(document);\n const remainingSourceBytes = maxSourceBytes - sourceBytes;\n const encodedBytes = encoded.length <= remainingSourceBytes ? byteLength(encoded) : undefined;\n\n if (encodedBytes === undefined || encodedBytes > remainingSourceBytes) {\n return yield* SemanticMemoryError.make({\n operation: \"query source bytes\",\n reason: \"budget\",\n });\n }\n sourceBytes += encodedBytes;\n const encodedDocument = Encoding.encodeHex(document.content.text);\n\n for (const { rank, candidate } of current) {\n if (!sameExcerpt(encodedDocument, candidate, profile.maxChunkBytes)) {\n staleExcluded += 1;\n continue;\n }\n\n const passage = MemoryPassage.make({\n version: 1,\n authority: access.namespace.address,\n source: document.source,\n passageId: candidate.passageId,\n content: { ...document.content, text: candidate.text },\n });\n\n const encodedPassage = JSON.stringify(passage);\n const remainingOutputBytes = maxOutputBytes - outputBytes;\n\n const passageBytes =\n encodedPassage.length <= remainingOutputBytes ? byteLength(encodedPassage) : undefined;\n\n if (passageBytes === undefined || passageBytes > remainingOutputBytes) {\n return yield* SemanticMemoryError.make({\n operation: \"query output bytes\",\n reason: \"budget\",\n });\n }\n outputBytes += passageBytes;\n rankedPassages.push({ rank, passage });\n }\n }\n\n const passages = rankedPassages\n .sort((left, right) => left.rank - right.rank)\n .map(({ passage }) => passage);\n\n return SemanticCandidateResult.make({\n lookup: passages.length === 0 ? { _tag: \"NoMatch\" } : { _tag: \"Found\", passages },\n scannedChunks: found.scannedChunks,\n staleExcluded,\n unauthorizedExcluded,\n });\n },\n);\n\nconst sameExcerpt = (\n encodedDocument: string,\n candidate: {\n readonly startByte: number;\n readonly endByte: number;\n readonly text: string;\n },\n maxChunkBytes: number,\n): boolean => {\n const hex = Encoding.encodeHex(candidate.text);\n\n return (\n candidate.startByte < candidate.endByte &&\n hex.length / 2 === candidate.endByte - candidate.startByte &&\n hex.length / 2 <= maxChunkBytes &&\n encodedDocument.slice(candidate.startByte * 2, candidate.endByte * 2) === hex\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { _ as isSubagentToolAllowed, c as SubagentExecutionFailureClassification, d as SubagentReservationAmounts, f as ToolExecutionKind, g as isDelegationToolName, h as getToolExecutionKind, i as SubagentBudgetReservation, l as SubagentGrant, m as delegationToolPrefix, n as DelegationDepth, o as SubagentDelegationCaps, p as WorkerOperationTool, r as DelegationTool, s as SubagentExecutionFailure, t as BackgroundSpawnTool, u as SubagentParentLink, v as maxErrorTagLength, y as narrowSubagentGrant } from "../SubagentContract-DdT7Cqe6.mjs";
2
+ export { BackgroundSpawnTool, DelegationDepth, DelegationTool, SubagentBudgetReservation, SubagentDelegationCaps, SubagentExecutionFailure, SubagentExecutionFailureClassification, SubagentGrant, SubagentParentLink, SubagentReservationAmounts, ToolExecutionKind, WorkerOperationTool, delegationToolPrefix, getToolExecutionKind, isDelegationToolName, isSubagentToolAllowed, maxErrorTagLength, narrowSubagentGrant };
@@ -0,0 +1,148 @@
1
+ import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.mjs";
2
+ import { AgentId, DelegationId, RunId, SubmissionId, ThreadId, ToolCallId } from "./Identifiers.mjs";
3
+ import { Context, Schema } from "effect";
4
+ //#region src/core/SubagentContract.ts
5
+ var SubagentContract_exports = /* @__PURE__ */ __exportAll({
6
+ BackgroundSpawnTool: () => BackgroundSpawnTool,
7
+ DelegationDepth: () => DelegationDepth,
8
+ DelegationTool: () => DelegationTool,
9
+ SubagentBudgetReservation: () => SubagentBudgetReservation,
10
+ SubagentDelegationCaps: () => SubagentDelegationCaps,
11
+ SubagentExecutionFailure: () => SubagentExecutionFailure,
12
+ SubagentExecutionFailureClassification: () => SubagentExecutionFailureClassification,
13
+ SubagentGrant: () => SubagentGrant,
14
+ SubagentParentLink: () => SubagentParentLink,
15
+ SubagentReservationAmounts: () => SubagentReservationAmounts,
16
+ ToolExecutionKind: () => ToolExecutionKind,
17
+ WorkerOperationTool: () => WorkerOperationTool,
18
+ delegationToolPrefix: () => delegationToolPrefix,
19
+ getToolExecutionKind: () => getToolExecutionKind,
20
+ isDelegationToolName: () => isDelegationToolName,
21
+ isSubagentToolAllowed: () => isSubagentToolAllowed,
22
+ maxErrorTagLength: () => 256,
23
+ narrowSubagentGrant: () => narrowSubagentGrant
24
+ });
25
+ const Natural = Schema.Natural;
26
+ /** Tree authority ceiling. Each child exposes only its own Toolkit's permitted names. */
27
+ var SubagentGrant = class extends Schema.Class("@effect-agent/capabilities/SubagentGrant")({
28
+ allowedToolNames: Schema.Array(Schema.NonEmptyString).check(Schema.isMaxLength(128)),
29
+ maxDepth: Schema.Int.check(Schema.isBetween({
30
+ minimum: 1,
31
+ maximum: 16
32
+ })),
33
+ /** Omitted permits either lifetime within the depth and reserved subtree budgets. */
34
+ childLifetimes: Schema.optionalKey(Schema.Array(Schema.Literals(["attached", "background"])).check(Schema.isMaxLength(2)))
35
+ }) {};
36
+ /** Intersect inherited authority; another delegation can never restore a removed capability. */
37
+ const narrowSubagentGrant = (declared, inherited) => inherited === void 0 ? declared : SubagentGrant.make({
38
+ allowedToolNames: declared.allowedToolNames.filter((name) => inherited.allowedToolNames.includes(name)),
39
+ maxDepth: Math.min(declared.maxDepth, inherited.maxDepth),
40
+ childLifetimes: (declared.childLifetimes ?? ["attached", "background"]).filter((lifetime) => (inherited.childLifetimes ?? ["attached", "background"]).includes(lifetime))
41
+ });
42
+ /** Finite delegable caps for one parent Run. Absent means not configured; present values are finite. */
43
+ var SubagentDelegationCaps = class extends Schema.Class("@effect-agent/capabilities/SubagentDelegationCaps")({
44
+ maxTotalChildInvocations: Schema.optionalKey(Natural),
45
+ maxConcurrentChildren: Schema.optionalKey(Natural),
46
+ maxTurns: Schema.optionalKey(Natural),
47
+ maxToolCalls: Schema.optionalKey(Natural),
48
+ maxDurationMillis: Schema.optionalKey(Natural),
49
+ maxInputTokens: Schema.optionalKey(Natural),
50
+ maxOutputTokens: Schema.optionalKey(Natural),
51
+ maxCostMicrousd: Schema.optionalKey(Natural),
52
+ maxResultBytes: Schema.optionalKey(Natural)
53
+ }) {};
54
+ const AmountFields = {
55
+ turns: Natural,
56
+ toolCalls: Natural,
57
+ durationMillis: Natural,
58
+ inputTokens: Natural,
59
+ outputTokens: Natural,
60
+ costMicrousd: Natural,
61
+ resultBytes: Natural
62
+ };
63
+ /** Exact amounts across every reservable delegation dimension. */
64
+ var SubagentReservationAmounts = class extends Schema.Class("@effect-agent/capabilities/SubagentReservationAmounts")(AmountFields) {};
65
+ /** One child reservation against the parent Run's shared delegation pool. */
66
+ const SubagentBudgetReservation = Schema.Struct({
67
+ caps: SubagentDelegationCaps,
68
+ allocation: SubagentReservationAmounts,
69
+ /** Slots reserved for every descendant input beneath this input; absent reserves none. */
70
+ descendantInvocations: Schema.optionalKey(Natural)
71
+ });
72
+ /** Root-relative delegation depth; the direct child of a top-level run has depth 1. */
73
+ const DelegationDepth = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
74
+ /** @deprecated Names are application-owned; use DelegationTool metadata for classification. */
75
+ const delegationToolPrefix = "delegate_";
76
+ /** @deprecated Checks a legacy spelling only, never execution, nesting or recovery semantics. */
77
+ const isDelegationToolName = (toolName) => toolName.startsWith(delegationToolPrefix);
78
+ /** Marks a Tool implementing the idempotent Subagent establishment protocol. */
79
+ const DelegationTool = Context.Reference("@effect-agent/core/DelegationTool", { defaultValue: () => false });
80
+ /** Marks a host-managed idempotent worker operation, independently of its Tool name. */
81
+ const WorkerOperationTool = Context.Reference("@effect-agent/core/WorkerOperationTool", { defaultValue: () => false });
82
+ /** Identifies the background launch operation within a generated management Toolkit. */
83
+ const BackgroundSpawnTool = Context.Reference("@effect-agent/core/BackgroundSpawnTool", { defaultValue: () => false });
84
+ /** Declaration metadata and inherited authority determine the effective visible Tool set. */
85
+ const isSubagentToolAllowed = (grant, depth, name, annotations) => grant === void 0 || grant.allowedToolNames.includes(name) && (Context.get(annotations, BackgroundSpawnTool) ? depth < grant.maxDepth && (grant.childLifetimes ?? ["attached", "background"]).includes("background") : Context.get(annotations, DelegationTool) ? depth < grant.maxDepth && (grant.childLifetimes ?? ["attached", "background"]).includes("attached") : true);
86
+ /** Persisted preparation classification, checked against the resolved Tool before replay. */
87
+ const ToolExecutionKind = Schema.Literals([
88
+ "ordinary",
89
+ "delegation",
90
+ "orchestration"
91
+ ]);
92
+ /** Resolve only trusted declaration metadata; names never authorize automatic replay. */
93
+ const getToolExecutionKind = (annotations) => Context.get(annotations, WorkerOperationTool) ? "orchestration" : Context.get(annotations, DelegationTool) ? "delegation" : "ordinary";
94
+ /** Immutable lineage from a child Thread to the parent identity that established it. */
95
+ var SubagentParentLink = class extends Schema.Class("SubagentParentLink")({
96
+ delegationId: DelegationId,
97
+ parentAgentId: AgentId,
98
+ parentThreadId: ThreadId,
99
+ parentRunId: RunId,
100
+ parentToolCallId: ToolCallId,
101
+ depth: DelegationDepth
102
+ }) {};
103
+ /**
104
+ * Classification of one bounded durable delegation failure.
105
+ * `"child-failed"` and `"child-aborted"` project the
106
+ * child's canonical failed/aborted Settlement; `"child-compatibility"`
107
+ * projects the framework's `ChildCompatibilityFailure` child Settlement (the
108
+ * stored child Binding digest was unavailable — recovery never substituted
109
+ * current code); `"establishment-denied"` is a fail-closed coordinator
110
+ * refusal (lineage/digest verification, divergent replay); and
111
+ * `"declaration-unavailable"` is retained for decoding failures recorded by
112
+ * versions that required an explicit durable digest declaration.
113
+ */
114
+ const SubagentExecutionFailureClassification = Schema.Literals([
115
+ "child-failed",
116
+ "child-aborted",
117
+ "child-compatibility",
118
+ "establishment-denied",
119
+ "declaration-unavailable"
120
+ ]);
121
+ const maxErrorTagLength = 256;
122
+ const BoundedErrorTag = Schema.NonEmptyString.check(Schema.isMaxLength(256));
123
+ /**
124
+ * Bounded framework projection of a durable child failure, shared by attached joins and reports.
125
+ * A failed or aborted durable child
126
+ * joins its parent Tool Call as exactly this typed failure: a classification,
127
+ * the child references, and the coordinator's bounded `{errorTag, message}`
128
+ * projection — never a raw Cause, stack, provider response, secret, or child
129
+ * payload. The typed child failure union does not survive a durable
130
+ * Settlement, so `mapChildFailure` remains the ephemeral-path contract;
131
+ * Schema-declared durable domain-failure mapping is a recorded later
132
+ * extension.
133
+ */
134
+ var SubagentExecutionFailure = class extends Schema.TaggedError()("SubagentExecutionFailure", {
135
+ delegationId: DelegationId,
136
+ targetAgentId: AgentId,
137
+ classification: SubagentExecutionFailureClassification,
138
+ /** Child references, present once establishment reached a child identity. */
139
+ childThreadId: Schema.optionalKey(ThreadId),
140
+ childSubmissionId: Schema.optionalKey(SubmissionId),
141
+ childRunId: Schema.optionalKey(RunId),
142
+ errorTag: BoundedErrorTag,
143
+ message: Schema.String.check(Schema.isMaxLength(4096))
144
+ }) {};
145
+ //#endregion
146
+ export { BackgroundSpawnTool, DelegationDepth, DelegationTool, SubagentBudgetReservation, SubagentDelegationCaps, SubagentExecutionFailure, SubagentExecutionFailureClassification, SubagentGrant, SubagentParentLink, SubagentReservationAmounts, ToolExecutionKind, WorkerOperationTool, delegationToolPrefix, getToolExecutionKind, isDelegationToolName, isSubagentToolAllowed, maxErrorTagLength, narrowSubagentGrant, SubagentContract_exports as t };
147
+
148
+ //# sourceMappingURL=SubagentContract.mjs.map