agentfootprint 10.3.1 → 10.4.0

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 (414) hide show
  1. package/AGENTS.md +2 -2
  2. package/CAPABILITIES.md +6 -0
  3. package/README.md +44 -0
  4. package/ai-instructions/claude-code/SKILL.md +2 -2
  5. package/dist/adapters/mcp/agentcoreRuntime/errorType.js +24 -0
  6. package/dist/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  7. package/dist/adapters/mcp/agentcoreRuntime/invoke.js +265 -0
  8. package/dist/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  9. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js +415 -0
  10. package/dist/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  11. package/dist/adapters/mcp/agentcoreRuntime/session.js +179 -0
  12. package/dist/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  13. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js +117 -0
  14. package/dist/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  15. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js +220 -0
  16. package/dist/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  17. package/dist/adapters/mcp/agentcoreRuntime/transport.js +204 -0
  18. package/dist/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  19. package/dist/adapters/memory/agentcore.js +435 -20
  20. package/dist/adapters/memory/agentcore.js.map +1 -1
  21. package/dist/adapters/memory/memoryBank.js +16 -3
  22. package/dist/adapters/memory/memoryBank.js.map +1 -1
  23. package/dist/adapters/memory/pgVector.js +10 -4
  24. package/dist/adapters/memory/pgVector.js.map +1 -1
  25. package/dist/adapters/memory/redis.js +11 -3
  26. package/dist/adapters/memory/redis.js.map +1 -1
  27. package/dist/adapters/memory/s3Vectors.js +8 -3
  28. package/dist/adapters/memory/s3Vectors.js.map +1 -1
  29. package/dist/adapters/memory/sqliteVector.js +10 -4
  30. package/dist/adapters/memory/sqliteVector.js.map +1 -1
  31. package/dist/ag-ui/adapter.js +71 -0
  32. package/dist/ag-ui/adapter.js.map +1 -0
  33. package/dist/ag-ui/framing.js +66 -0
  34. package/dist/ag-ui/framing.js.map +1 -0
  35. package/dist/ag-ui/frontendTools.js +69 -0
  36. package/dist/ag-ui/frontendTools.js.map +1 -0
  37. package/dist/ag-ui/ids.js +54 -0
  38. package/dist/ag-ui/ids.js.map +1 -0
  39. package/dist/ag-ui/index.js +27 -0
  40. package/dist/ag-ui/index.js.map +1 -0
  41. package/dist/ag-ui/request.js +356 -0
  42. package/dist/ag-ui/request.js.map +1 -0
  43. package/dist/ag-ui/serializer.js +899 -0
  44. package/dist/ag-ui/serializer.js.map +1 -0
  45. package/dist/ag-ui/types.js +22 -0
  46. package/dist/ag-ui/types.js.map +1 -0
  47. package/dist/core/Agent.js +38 -5
  48. package/dist/core/Agent.js.map +1 -1
  49. package/dist/core/RunnerBase.js +16 -2
  50. package/dist/core/RunnerBase.js.map +1 -1
  51. package/dist/core/agent/buildAgentChart.js +4 -0
  52. package/dist/core/agent/buildAgentChart.js.map +1 -1
  53. package/dist/core/agent/buildDynamicAgentChart.js +4 -0
  54. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  55. package/dist/core/agent/callerIdentity.js +2 -1
  56. package/dist/core/agent/callerIdentity.js.map +1 -1
  57. package/dist/core/agent/stages/routeTurn.js +3 -3
  58. package/dist/core/agent/stages/routeTurn.js.map +1 -1
  59. package/dist/core/agent/stages/seed.js +49 -8
  60. package/dist/core/agent/stages/seed.js.map +1 -1
  61. package/dist/core/agent/stages/timeLayer.js +2 -2
  62. package/dist/core/agent/stages/timeLayer.js.map +1 -1
  63. package/dist/core/agent/stages/toolCalls.js +26 -5
  64. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  65. package/dist/core/memberRun.js +244 -0
  66. package/dist/core/memberRun.js.map +1 -0
  67. package/dist/core/slots/buildToolsSlot.js +1 -1
  68. package/dist/core/slots/buildToolsSlot.js.map +1 -1
  69. package/dist/core-flow/Conditional.js +29 -8
  70. package/dist/core-flow/Conditional.js.map +1 -1
  71. package/dist/core-flow/Graph.js +38 -13
  72. package/dist/core-flow/Graph.js.map +1 -1
  73. package/dist/core-flow/Loop.js +29 -9
  74. package/dist/core-flow/Loop.js.map +1 -1
  75. package/dist/core-flow/Parallel.js +35 -14
  76. package/dist/core-flow/Parallel.js.map +1 -1
  77. package/dist/core-flow/Sequence.js +29 -8
  78. package/dist/core-flow/Sequence.js.map +1 -1
  79. package/dist/core-flow/Workflow.js +34 -10
  80. package/dist/core-flow/Workflow.js.map +1 -1
  81. package/dist/doors/ag-ui.js +36 -0
  82. package/dist/doors/ag-ui.js.map +1 -0
  83. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.d.ts +12 -0
  84. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js +20 -0
  85. package/dist/esm/adapters/mcp/agentcoreRuntime/errorType.js.map +1 -0
  86. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.d.ts +116 -0
  87. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js +260 -0
  88. package/dist/esm/adapters/mcp/agentcoreRuntime/invoke.js.map +1 -0
  89. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +49 -0
  90. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js +409 -0
  91. package/dist/esm/adapters/mcp/agentcoreRuntime/safeAnswer.js.map +1 -0
  92. package/dist/esm/adapters/mcp/agentcoreRuntime/session.d.ts +80 -0
  93. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js +175 -0
  94. package/dist/esm/adapters/mcp/agentcoreRuntime/session.js.map +1 -0
  95. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +61 -0
  96. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js +112 -0
  97. package/dist/esm/adapters/mcp/agentcoreRuntime/sessionBusy.js.map +1 -0
  98. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.d.ts +37 -0
  99. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js +215 -0
  100. package/dist/esm/adapters/mcp/agentcoreRuntime/strictJson.js.map +1 -0
  101. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.d.ts +176 -0
  102. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js +199 -0
  103. package/dist/esm/adapters/mcp/agentcoreRuntime/transport.js.map +1 -0
  104. package/dist/esm/adapters/memory/agentcore.d.ts +152 -7
  105. package/dist/esm/adapters/memory/agentcore.js +433 -19
  106. package/dist/esm/adapters/memory/agentcore.js.map +1 -1
  107. package/dist/esm/adapters/memory/memoryBank.d.ts +3 -2
  108. package/dist/esm/adapters/memory/memoryBank.js +16 -3
  109. package/dist/esm/adapters/memory/memoryBank.js.map +1 -1
  110. package/dist/esm/adapters/memory/pgVector.js +10 -4
  111. package/dist/esm/adapters/memory/pgVector.js.map +1 -1
  112. package/dist/esm/adapters/memory/redis.d.ts +8 -3
  113. package/dist/esm/adapters/memory/redis.js +11 -3
  114. package/dist/esm/adapters/memory/redis.js.map +1 -1
  115. package/dist/esm/adapters/memory/s3Vectors.js +8 -3
  116. package/dist/esm/adapters/memory/s3Vectors.js.map +1 -1
  117. package/dist/esm/adapters/memory/sqliteVector.js +10 -4
  118. package/dist/esm/adapters/memory/sqliteVector.js.map +1 -1
  119. package/dist/esm/ag-ui/adapter.d.ts +68 -0
  120. package/dist/esm/ag-ui/adapter.js +67 -0
  121. package/dist/esm/ag-ui/adapter.js.map +1 -0
  122. package/dist/esm/ag-ui/framing.d.ts +51 -0
  123. package/dist/esm/ag-ui/framing.js +62 -0
  124. package/dist/esm/ag-ui/framing.js.map +1 -0
  125. package/dist/esm/ag-ui/frontendTools.d.ts +37 -0
  126. package/dist/esm/ag-ui/frontendTools.js +64 -0
  127. package/dist/esm/ag-ui/frontendTools.js.map +1 -0
  128. package/dist/esm/ag-ui/ids.d.ts +43 -0
  129. package/dist/esm/ag-ui/ids.js +49 -0
  130. package/dist/esm/ag-ui/ids.js.map +1 -0
  131. package/dist/esm/ag-ui/index.d.ts +17 -0
  132. package/dist/esm/ag-ui/index.js +17 -0
  133. package/dist/esm/ag-ui/index.js.map +1 -0
  134. package/dist/esm/ag-ui/request.d.ts +72 -0
  135. package/dist/esm/ag-ui/request.js +350 -0
  136. package/dist/esm/ag-ui/request.js.map +1 -0
  137. package/dist/esm/ag-ui/serializer.d.ts +173 -0
  138. package/dist/esm/ag-ui/serializer.js +895 -0
  139. package/dist/esm/ag-ui/serializer.js.map +1 -0
  140. package/dist/esm/ag-ui/types.d.ts +305 -0
  141. package/dist/esm/ag-ui/types.js +19 -0
  142. package/dist/esm/ag-ui/types.js.map +1 -0
  143. package/dist/esm/core/Agent.d.ts +2 -0
  144. package/dist/esm/core/Agent.js +38 -5
  145. package/dist/esm/core/Agent.js.map +1 -1
  146. package/dist/esm/core/RunnerBase.js +17 -3
  147. package/dist/esm/core/RunnerBase.js.map +1 -1
  148. package/dist/esm/core/agent/buildAgentChart.js +4 -0
  149. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  150. package/dist/esm/core/agent/buildDynamicAgentChart.js +4 -0
  151. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  152. package/dist/esm/core/agent/callerIdentity.js +2 -1
  153. package/dist/esm/core/agent/callerIdentity.js.map +1 -1
  154. package/dist/esm/core/agent/stages/routeTurn.d.ts +1 -1
  155. package/dist/esm/core/agent/stages/routeTurn.js +3 -3
  156. package/dist/esm/core/agent/stages/routeTurn.js.map +1 -1
  157. package/dist/esm/core/agent/stages/seed.d.ts +11 -1
  158. package/dist/esm/core/agent/stages/seed.js +49 -8
  159. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  160. package/dist/esm/core/agent/stages/timeLayer.js +2 -2
  161. package/dist/esm/core/agent/stages/timeLayer.js.map +1 -1
  162. package/dist/esm/core/agent/stages/toolCalls.d.ts +11 -1
  163. package/dist/esm/core/agent/stages/toolCalls.js +26 -5
  164. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  165. package/dist/esm/core/agent/types.d.ts +16 -6
  166. package/dist/esm/core/memberRun.d.ts +132 -0
  167. package/dist/esm/core/memberRun.js +227 -0
  168. package/dist/esm/core/memberRun.js.map +1 -0
  169. package/dist/esm/core/slots/buildToolsSlot.d.ts +1 -1
  170. package/dist/esm/core/slots/buildToolsSlot.js +1 -1
  171. package/dist/esm/core/slots/buildToolsSlot.js.map +1 -1
  172. package/dist/esm/core-flow/Conditional.d.ts +8 -0
  173. package/dist/esm/core-flow/Conditional.js +29 -8
  174. package/dist/esm/core-flow/Conditional.js.map +1 -1
  175. package/dist/esm/core-flow/Graph.js +38 -13
  176. package/dist/esm/core-flow/Graph.js.map +1 -1
  177. package/dist/esm/core-flow/Loop.d.ts +8 -0
  178. package/dist/esm/core-flow/Loop.js +29 -9
  179. package/dist/esm/core-flow/Loop.js.map +1 -1
  180. package/dist/esm/core-flow/Parallel.d.ts +8 -0
  181. package/dist/esm/core-flow/Parallel.js +35 -14
  182. package/dist/esm/core-flow/Parallel.js.map +1 -1
  183. package/dist/esm/core-flow/Sequence.d.ts +8 -0
  184. package/dist/esm/core-flow/Sequence.js +29 -8
  185. package/dist/esm/core-flow/Sequence.js.map +1 -1
  186. package/dist/esm/core-flow/Workflow.js +34 -10
  187. package/dist/esm/core-flow/Workflow.js.map +1 -1
  188. package/dist/esm/doors/ag-ui.d.ts +19 -0
  189. package/dist/esm/doors/ag-ui.js +20 -0
  190. package/dist/esm/doors/ag-ui.js.map +1 -0
  191. package/dist/esm/hosting/envelope.js +5 -0
  192. package/dist/esm/hosting/envelope.js.map +1 -1
  193. package/dist/esm/hosting/httpHost.js +5 -78
  194. package/dist/esm/hosting/httpHost.js.map +1 -1
  195. package/dist/esm/hosting/index.d.ts +4 -1
  196. package/dist/esm/hosting/index.js +2 -0
  197. package/dist/esm/hosting/index.js.map +1 -1
  198. package/dist/esm/hosting/pendingAsk.d.ts +19 -0
  199. package/dist/esm/hosting/pendingAsk.js +38 -0
  200. package/dist/esm/hosting/pendingAsk.js.map +1 -0
  201. package/dist/esm/hosting/protocolAdapter.d.ts +229 -0
  202. package/dist/esm/hosting/protocolAdapter.js +23 -0
  203. package/dist/esm/hosting/protocolAdapter.js.map +1 -0
  204. package/dist/esm/hosting/refusalStatus.d.ts +30 -0
  205. package/dist/esm/hosting/refusalStatus.js +81 -0
  206. package/dist/esm/hosting/refusalStatus.js.map +1 -0
  207. package/dist/esm/hosting/standingAgent.js +1 -31
  208. package/dist/esm/hosting/standingAgent.js.map +1 -1
  209. package/dist/esm/hosting/stream.d.ts +39 -0
  210. package/dist/esm/hosting/stream.js +34 -2
  211. package/dist/esm/hosting/stream.js.map +1 -1
  212. package/dist/esm/hosting/streamHandler.d.ts +134 -0
  213. package/dist/esm/hosting/streamHandler.js +493 -0
  214. package/dist/esm/hosting/streamHandler.js.map +1 -0
  215. package/dist/esm/hosting/types.d.ts +15 -0
  216. package/dist/esm/hosting/types.js.map +1 -1
  217. package/dist/esm/hosting/verifiedThreads.d.ts +29 -0
  218. package/dist/esm/hosting/verifiedThreads.js +46 -0
  219. package/dist/esm/hosting/verifiedThreads.js.map +1 -0
  220. package/dist/esm/index.d.ts +1 -0
  221. package/dist/esm/index.js +3 -0
  222. package/dist/esm/index.js.map +1 -1
  223. package/dist/esm/lib/humanizeLLMError.d.ts +15 -0
  224. package/dist/esm/lib/humanizeLLMError.js +22 -7
  225. package/dist/esm/lib/humanizeLLMError.js.map +1 -1
  226. package/dist/esm/mcp/throttleRetry.d.ts +51 -0
  227. package/dist/esm/mcp/throttleRetry.js +37 -4
  228. package/dist/esm/mcp/throttleRetry.js.map +1 -1
  229. package/dist/esm/memory/define.js +45 -1
  230. package/dist/esm/memory/define.js.map +1 -1
  231. package/dist/esm/memory/define.types.d.ts +24 -0
  232. package/dist/esm/memory/define.types.js.map +1 -1
  233. package/dist/esm/memory/stages/formatDefault.js +3 -1
  234. package/dist/esm/memory/stages/formatDefault.js.map +1 -1
  235. package/dist/esm/memory/store/InMemoryStore.d.ts +8 -3
  236. package/dist/esm/memory/store/InMemoryStore.js +12 -3
  237. package/dist/esm/memory/store/InMemoryStore.js.map +1 -1
  238. package/dist/esm/memory/store/index.d.ts +1 -0
  239. package/dist/esm/memory/store/index.js +5 -0
  240. package/dist/esm/memory/store/index.js.map +1 -1
  241. package/dist/esm/memory/store/types.d.ts +38 -4
  242. package/dist/esm/memory/store/writeOptions.d.ts +118 -0
  243. package/dist/esm/memory/store/writeOptions.js +242 -0
  244. package/dist/esm/memory/store/writeOptions.js.map +1 -0
  245. package/dist/esm/memory-providers.d.ts +1 -1
  246. package/dist/esm/memory-providers.js +4 -1
  247. package/dist/esm/memory-providers.js.map +1 -1
  248. package/dist/esm/patterns/MapReduce.js +8 -2
  249. package/dist/esm/patterns/MapReduce.js.map +1 -1
  250. package/dist/esm/tool-providers/index.d.ts +5 -0
  251. package/dist/esm/tool-providers/index.js +6 -0
  252. package/dist/esm/tool-providers/index.js.map +1 -1
  253. package/dist/esm/trace-toolpack/selfExplain.d.ts +8 -0
  254. package/dist/esm/trace-toolpack/selfExplain.js +25 -2
  255. package/dist/esm/trace-toolpack/selfExplain.js.map +1 -1
  256. package/dist/hosting/envelope.js +5 -0
  257. package/dist/hosting/envelope.js.map +1 -1
  258. package/dist/hosting/httpHost.js +5 -78
  259. package/dist/hosting/httpHost.js.map +1 -1
  260. package/dist/hosting/index.js +9 -3
  261. package/dist/hosting/index.js.map +1 -1
  262. package/dist/hosting/pendingAsk.js +42 -0
  263. package/dist/hosting/pendingAsk.js.map +1 -0
  264. package/dist/hosting/protocolAdapter.js +24 -0
  265. package/dist/hosting/protocolAdapter.js.map +1 -0
  266. package/dist/hosting/refusalStatus.js +84 -0
  267. package/dist/hosting/refusalStatus.js.map +1 -0
  268. package/dist/hosting/standingAgent.js +2 -32
  269. package/dist/hosting/standingAgent.js.map +1 -1
  270. package/dist/hosting/stream.js +35 -3
  271. package/dist/hosting/stream.js.map +1 -1
  272. package/dist/hosting/streamHandler.js +497 -0
  273. package/dist/hosting/streamHandler.js.map +1 -0
  274. package/dist/hosting/types.js.map +1 -1
  275. package/dist/hosting/verifiedThreads.js +50 -0
  276. package/dist/hosting/verifiedThreads.js.map +1 -0
  277. package/dist/index.js +9 -3
  278. package/dist/index.js.map +1 -1
  279. package/dist/lib/humanizeLLMError.js +23 -8
  280. package/dist/lib/humanizeLLMError.js.map +1 -1
  281. package/dist/mcp/throttleRetry.js +41 -6
  282. package/dist/mcp/throttleRetry.js.map +1 -1
  283. package/dist/memory/define.js +45 -1
  284. package/dist/memory/define.js.map +1 -1
  285. package/dist/memory/define.types.js.map +1 -1
  286. package/dist/memory/stages/formatDefault.js +3 -1
  287. package/dist/memory/stages/formatDefault.js.map +1 -1
  288. package/dist/memory/store/InMemoryStore.js +12 -3
  289. package/dist/memory/store/InMemoryStore.js.map +1 -1
  290. package/dist/memory/store/index.js +11 -1
  291. package/dist/memory/store/index.js.map +1 -1
  292. package/dist/memory/store/writeOptions.js +250 -0
  293. package/dist/memory/store/writeOptions.js.map +1 -0
  294. package/dist/memory-providers.js +4 -1
  295. package/dist/memory-providers.js.map +1 -1
  296. package/dist/patterns/MapReduce.js +8 -2
  297. package/dist/patterns/MapReduce.js.map +1 -1
  298. package/dist/tool-providers/index.js +10 -1
  299. package/dist/tool-providers/index.js.map +1 -1
  300. package/dist/trace-toolpack/selfExplain.js +25 -2
  301. package/dist/trace-toolpack/selfExplain.js.map +1 -1
  302. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts +13 -0
  303. package/dist/types/adapters/mcp/agentcoreRuntime/errorType.d.ts.map +1 -0
  304. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts +117 -0
  305. package/dist/types/adapters/mcp/agentcoreRuntime/invoke.d.ts.map +1 -0
  306. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts +50 -0
  307. package/dist/types/adapters/mcp/agentcoreRuntime/safeAnswer.d.ts.map +1 -0
  308. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts +81 -0
  309. package/dist/types/adapters/mcp/agentcoreRuntime/session.d.ts.map +1 -0
  310. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts +62 -0
  311. package/dist/types/adapters/mcp/agentcoreRuntime/sessionBusy.d.ts.map +1 -0
  312. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts +38 -0
  313. package/dist/types/adapters/mcp/agentcoreRuntime/strictJson.d.ts.map +1 -0
  314. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts +177 -0
  315. package/dist/types/adapters/mcp/agentcoreRuntime/transport.d.ts.map +1 -0
  316. package/dist/types/adapters/memory/agentcore.d.ts +152 -7
  317. package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
  318. package/dist/types/adapters/memory/memoryBank.d.ts +3 -2
  319. package/dist/types/adapters/memory/memoryBank.d.ts.map +1 -1
  320. package/dist/types/adapters/memory/pgVector.d.ts.map +1 -1
  321. package/dist/types/adapters/memory/redis.d.ts +8 -3
  322. package/dist/types/adapters/memory/redis.d.ts.map +1 -1
  323. package/dist/types/adapters/memory/s3Vectors.d.ts.map +1 -1
  324. package/dist/types/adapters/memory/sqliteVector.d.ts.map +1 -1
  325. package/dist/types/ag-ui/adapter.d.ts +69 -0
  326. package/dist/types/ag-ui/adapter.d.ts.map +1 -0
  327. package/dist/types/ag-ui/framing.d.ts +52 -0
  328. package/dist/types/ag-ui/framing.d.ts.map +1 -0
  329. package/dist/types/ag-ui/frontendTools.d.ts +38 -0
  330. package/dist/types/ag-ui/frontendTools.d.ts.map +1 -0
  331. package/dist/types/ag-ui/ids.d.ts +44 -0
  332. package/dist/types/ag-ui/ids.d.ts.map +1 -0
  333. package/dist/types/ag-ui/index.d.ts +18 -0
  334. package/dist/types/ag-ui/index.d.ts.map +1 -0
  335. package/dist/types/ag-ui/request.d.ts +73 -0
  336. package/dist/types/ag-ui/request.d.ts.map +1 -0
  337. package/dist/types/ag-ui/serializer.d.ts +174 -0
  338. package/dist/types/ag-ui/serializer.d.ts.map +1 -0
  339. package/dist/types/ag-ui/types.d.ts +306 -0
  340. package/dist/types/ag-ui/types.d.ts.map +1 -0
  341. package/dist/types/core/Agent.d.ts +2 -0
  342. package/dist/types/core/Agent.d.ts.map +1 -1
  343. package/dist/types/core/RunnerBase.d.ts.map +1 -1
  344. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  345. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  346. package/dist/types/core/agent/callerIdentity.d.ts.map +1 -1
  347. package/dist/types/core/agent/stages/routeTurn.d.ts +1 -1
  348. package/dist/types/core/agent/stages/routeTurn.d.ts.map +1 -1
  349. package/dist/types/core/agent/stages/seed.d.ts +11 -1
  350. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  351. package/dist/types/core/agent/stages/toolCalls.d.ts +11 -1
  352. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  353. package/dist/types/core/agent/types.d.ts +16 -6
  354. package/dist/types/core/agent/types.d.ts.map +1 -1
  355. package/dist/types/core/memberRun.d.ts +133 -0
  356. package/dist/types/core/memberRun.d.ts.map +1 -0
  357. package/dist/types/core/slots/buildToolsSlot.d.ts +1 -1
  358. package/dist/types/core/slots/buildToolsSlot.d.ts.map +1 -1
  359. package/dist/types/core-flow/Conditional.d.ts +8 -0
  360. package/dist/types/core-flow/Conditional.d.ts.map +1 -1
  361. package/dist/types/core-flow/Graph.d.ts.map +1 -1
  362. package/dist/types/core-flow/Loop.d.ts +8 -0
  363. package/dist/types/core-flow/Loop.d.ts.map +1 -1
  364. package/dist/types/core-flow/Parallel.d.ts +8 -0
  365. package/dist/types/core-flow/Parallel.d.ts.map +1 -1
  366. package/dist/types/core-flow/Sequence.d.ts +8 -0
  367. package/dist/types/core-flow/Sequence.d.ts.map +1 -1
  368. package/dist/types/core-flow/Workflow.d.ts.map +1 -1
  369. package/dist/types/doors/ag-ui.d.ts +20 -0
  370. package/dist/types/doors/ag-ui.d.ts.map +1 -0
  371. package/dist/types/hosting/httpHost.d.ts.map +1 -1
  372. package/dist/types/hosting/index.d.ts +4 -1
  373. package/dist/types/hosting/index.d.ts.map +1 -1
  374. package/dist/types/hosting/pendingAsk.d.ts +20 -0
  375. package/dist/types/hosting/pendingAsk.d.ts.map +1 -0
  376. package/dist/types/hosting/protocolAdapter.d.ts +230 -0
  377. package/dist/types/hosting/protocolAdapter.d.ts.map +1 -0
  378. package/dist/types/hosting/refusalStatus.d.ts +31 -0
  379. package/dist/types/hosting/refusalStatus.d.ts.map +1 -0
  380. package/dist/types/hosting/standingAgent.d.ts.map +1 -1
  381. package/dist/types/hosting/stream.d.ts +39 -0
  382. package/dist/types/hosting/stream.d.ts.map +1 -1
  383. package/dist/types/hosting/streamHandler.d.ts +135 -0
  384. package/dist/types/hosting/streamHandler.d.ts.map +1 -0
  385. package/dist/types/hosting/types.d.ts +15 -0
  386. package/dist/types/hosting/types.d.ts.map +1 -1
  387. package/dist/types/hosting/verifiedThreads.d.ts +30 -0
  388. package/dist/types/hosting/verifiedThreads.d.ts.map +1 -0
  389. package/dist/types/index.d.ts +1 -0
  390. package/dist/types/index.d.ts.map +1 -1
  391. package/dist/types/lib/humanizeLLMError.d.ts +15 -0
  392. package/dist/types/lib/humanizeLLMError.d.ts.map +1 -1
  393. package/dist/types/mcp/throttleRetry.d.ts +51 -0
  394. package/dist/types/mcp/throttleRetry.d.ts.map +1 -1
  395. package/dist/types/memory/define.d.ts.map +1 -1
  396. package/dist/types/memory/define.types.d.ts +24 -0
  397. package/dist/types/memory/define.types.d.ts.map +1 -1
  398. package/dist/types/memory/stages/formatDefault.d.ts.map +1 -1
  399. package/dist/types/memory/store/InMemoryStore.d.ts +8 -3
  400. package/dist/types/memory/store/InMemoryStore.d.ts.map +1 -1
  401. package/dist/types/memory/store/index.d.ts +1 -0
  402. package/dist/types/memory/store/index.d.ts.map +1 -1
  403. package/dist/types/memory/store/types.d.ts +38 -4
  404. package/dist/types/memory/store/types.d.ts.map +1 -1
  405. package/dist/types/memory/store/writeOptions.d.ts +119 -0
  406. package/dist/types/memory/store/writeOptions.d.ts.map +1 -0
  407. package/dist/types/memory-providers.d.ts +1 -1
  408. package/dist/types/memory-providers.d.ts.map +1 -1
  409. package/dist/types/patterns/MapReduce.d.ts.map +1 -1
  410. package/dist/types/tool-providers/index.d.ts +5 -0
  411. package/dist/types/tool-providers/index.d.ts.map +1 -1
  412. package/dist/types/trace-toolpack/selfExplain.d.ts +8 -0
  413. package/dist/types/trace-toolpack/selfExplain.d.ts.map +1 -1
  414. package/package.json +25 -1
@@ -1,5 +1,6 @@
1
1
  import { identityNamespace } from '../identity/index.js';
2
2
  import { cosineSimilarity } from '../embedding/cosine.js';
3
+ import { NO_SERVER_EXTRACTION, refuseUnhonouredWriteOptions, } from './writeOptions.js';
3
4
  const DEFAULT_LIST_LIMIT = 100;
4
5
  const MAX_LIST_LIMIT = 1000;
5
6
  export class InMemoryStore {
@@ -53,7 +54,12 @@ export class InMemoryStore {
53
54
  slot.entries.set(id, bumped);
54
55
  return bumped;
55
56
  }
56
- async put(identity, entry) {
57
+ /**
58
+ * Write options: none honoured — a `Map` derives nothing from what it holds,
59
+ * so `extraction` and `namespaceScope` are refused by name, never ignored.
60
+ */
61
+ async put(identity, entry, options) {
62
+ refuseUnhonouredWriteOptions('InMemoryStore', undefined, options, NO_SERVER_EXTRACTION);
57
63
  const slot = this.slot(identity);
58
64
  slot.entries.set(entry.id, entry);
59
65
  }
@@ -62,15 +68,18 @@ export class InMemoryStore {
62
68
  * same Map. Saves N-1 slot lookups vs. calling `put()` in a loop, and
63
69
  * gives network-backed adapters a place to pipeline round-trips.
64
70
  */
65
- async putMany(identity, entries) {
71
+ async putMany(identity, entries, options) {
72
+ // The port's empty-batch law first: an empty batch is a no-op, never a rejection.
66
73
  if (entries.length === 0)
67
74
  return;
75
+ refuseUnhonouredWriteOptions('InMemoryStore', undefined, options, NO_SERVER_EXTRACTION);
68
76
  const slot = this.slot(identity);
69
77
  for (const entry of entries) {
70
78
  slot.entries.set(entry.id, entry);
71
79
  }
72
80
  }
73
- async putIfVersion(identity, entry, expectedVersion) {
81
+ async putIfVersion(identity, entry, expectedVersion, options) {
82
+ refuseUnhonouredWriteOptions('InMemoryStore', undefined, options, NO_SERVER_EXTRACTION);
74
83
  const slot = this.slot(identity);
75
84
  const existing = slot.entries.get(entry.id);
76
85
  // First-write path: expectedVersion === 0 means "I expect no prior entry".
@@ -1 +1 @@
1
- {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../../src/memory/store/InMemoryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InMemoryStore.js","sourceRoot":"","sources":["../../../../src/memory/store/InMemoryStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export type { MemoryStore, ListOptions, ListResult, MemoryCursor, PutIfVersionResult, SearchOptions, ScoredEntry, } from './types.js';
2
2
  export { InMemoryStore } from './InMemoryStore.js';
3
3
  export { assertServesVectors, resolveRankingMode } from './capability.js';
4
+ export { MEMORY_WRITE_OPTION_NAMES, NO_SERVER_EXTRACTION, UnsupportedMemoryWriteOptionError, refuseUnhonouredWriteOptions, requestedWriteOptions, type MemoryWriteOptionName, type MemoryNamespaceScope, type MemoryWriteOptions, type MemoryWriteOptionsConfig, } from './writeOptions.js';
4
5
  export { staticVectorStore, assertCorpusBundle, bundleEntryToMemoryEntry, CORPUS_BUNDLE_FORMAT, type CorpusBundle, type CorpusBundleEntry, type EmbedderFingerprint, } from './staticVectorStore.js';
@@ -3,5 +3,10 @@ export { InMemoryStore } from './InMemoryStore.js';
3
3
  // an adapter author can check their own two declarations agree without waiting
4
4
  // for a corpus builder to tell them.
5
5
  export { assertServesVectors, resolveRankingMode } from './capability.js';
6
+ // Write options — what a write asks a managed service to do after storing it,
7
+ // in names no vendor owns. A store DECLARES what it honours and refuses the rest
8
+ // by name; `refuseUnhonouredWriteOptions` is exported so a third-party store
9
+ // refuses in the same words.
10
+ export { MEMORY_WRITE_OPTION_NAMES, NO_SERVER_EXTRACTION, UnsupportedMemoryWriteOptionError, refuseUnhonouredWriteOptions, requestedWriteOptions, } from './writeOptions.js';
6
11
  export { staticVectorStore, assertCorpusBundle, bundleEntryToMemoryEntry, CORPUS_BUNDLE_FORMAT, } from './staticVectorStore.js';
7
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/memory/store/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,+EAA+E;AAC/E,+EAA+E;AAC/E,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GAIrB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/memory/store/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,+EAA+E;AAC/E,+EAA+E;AAC/E,qCAAqC;AACrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,8EAA8E;AAC9E,iFAAiF;AACjF,6EAA6E;AAC7E,6BAA6B;AAC7B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,GAKtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,GAIrB,MAAM,wBAAwB,CAAC"}
@@ -35,6 +35,7 @@
35
35
  */
36
36
  import type { MemoryIdentity } from '../identity/index.js';
37
37
  import type { MemoryEntry } from '../entry/index.js';
38
+ import type { MemoryWriteOptionName, MemoryWriteOptions } from './writeOptions.js';
38
39
  /** Pagination cursor — opaque string, adapter-specific encoding. */
39
40
  export type MemoryCursor = string;
40
41
  /** Options for listing entries in a namespace. */
@@ -100,6 +101,19 @@ export interface SearchOptions {
100
101
  * whenever you have both, and any store can serve the query.
101
102
  */
102
103
  readonly text?: string;
104
+ /**
105
+ * The namespace scope this memory's WRITES are filed under
106
+ * (`MemoryWriteOptions.namespaceScope`), so the read stays inside it.
107
+ *
108
+ * A write option must never let a later read see another tenant's records,
109
+ * so reads follow the same rule as writes: `defineMemory({ writeOptions })`
110
+ * resolves this from the run's identity with the SAME resolver as its
111
+ * writes, and passes it only to a store that declares `'namespaceScope'` in
112
+ * `writeOptions`. A store that receives it reads only within it, or refuses
113
+ * by name. Stores that file nothing by a namespace never receive it — the
114
+ * identity is their boundary.
115
+ */
116
+ readonly namespaceScope?: Readonly<Record<string, string>>;
103
117
  }
104
118
  /**
105
119
  * A `MemoryEntry` annotated with its similarity score. Returned by
@@ -184,6 +198,19 @@ export interface MemoryStore {
184
198
  * `retrieval` are refused under.
185
199
  */
186
200
  readonly ranksBy?: 'vector' | 'server-text';
201
+ /**
202
+ * Which {@link MemoryWriteOptions} this store HONOURS — vendor-neutral
203
+ * requests about what a managed service does with a write after storing it
204
+ * (`'extraction'`: keep it out of long-term extraction; `'namespaceScope'`:
205
+ * the namespace its derived records are filed under).
206
+ *
207
+ * **Absent means none**, and every write option a store does not list is
208
+ * refused BY NAME at the call (`refuseUnhonouredWriteOptions`), never
209
+ * ignored: a dropped `namespaceScope` files one tenant's derived records
210
+ * where another's are read, and it looks exactly like working. `defineMemory`
211
+ * reads this before any turn runs.
212
+ */
213
+ readonly writeOptions?: readonly MemoryWriteOptionName[];
187
214
  /**
188
215
  * Fetch one entry by id within the given identity's namespace.
189
216
  * Returns `null` when the entry doesn't exist OR has expired (TTL).
@@ -196,8 +223,12 @@ export interface MemoryStore {
196
223
  /**
197
224
  * Unconditional write — overwrites any existing entry with the same id.
198
225
  * Prefer `putIfVersion` in multi-writer scenarios.
226
+ *
227
+ * `options` asks a managed service what to do with the entry after storing
228
+ * it; an option the store does not declare in {@link writeOptions} is
229
+ * refused by name, before anything is written.
199
230
  */
200
- put<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>): Promise<void>;
231
+ put<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>, options?: MemoryWriteOptions): Promise<void>;
201
232
  /**
202
233
  * Batched unconditional write. Semantically equivalent to N sequential
203
234
  * `put()` calls but gives adapters a chance to batch the round-trip.
@@ -223,17 +254,20 @@ export interface MemoryStore {
223
254
  * Default implementation for adapters that don't override: sequentially
224
255
  * calls `put()` for each entry. Adapters SHOULD override for
225
256
  * performance-critical paths.
257
+ *
258
+ * `options` applies to every entry of the batch, under the same rule as
259
+ * `put` — refused by name, before anything is written, when not declared.
226
260
  */
227
- putMany<T = unknown>(identity: MemoryIdentity, entries: readonly MemoryEntry<T>[]): Promise<void>;
261
+ putMany<T = unknown>(identity: MemoryIdentity, entries: readonly MemoryEntry<T>[], options?: MemoryWriteOptions): Promise<void>;
228
262
  /**
229
263
  * Optimistic-concurrency write. Writes only if the stored version equals
230
264
  * `expectedVersion`, OR if no entry exists at all AND `expectedVersion`
231
265
  * is `0` (first-write sentinel).
232
266
  *
233
267
  * Returns `{ applied: true }` on success, `{ applied: false, currentVersion }`
234
- * when the caller's assumed version is stale.
268
+ * when the caller's assumed version is stale. `options` as for `put`.
235
269
  */
236
- putIfVersion<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>, expectedVersion: number): Promise<PutIfVersionResult>;
270
+ putIfVersion<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>, expectedVersion: number, options?: MemoryWriteOptions): Promise<PutIfVersionResult>;
237
271
  /**
238
272
  * Page through entries in the identity's namespace. Ordered by adapter's
239
273
  * choice (usually most-recently-updated first) — consumers that care
@@ -0,0 +1,118 @@
1
+ import type { MemoryIdentity } from '../identity/index.js';
2
+ import type { MemoryStore } from './types.js';
3
+ /** What one write asks of the store, beyond keeping the entry. */
4
+ export interface MemoryWriteOptions {
5
+ /**
6
+ * `'skip'` — store the entry, but keep it out of long-term extraction: the
7
+ * service must derive nothing (no fact, summary or preference) from it. It
8
+ * stays readable where it was written (`get`, `list`).
9
+ */
10
+ readonly extraction?: 'skip';
11
+ /**
12
+ * The values a store substitutes into the namespaces its DERIVED long-term
13
+ * records are filed under — one tenant's scope, typically
14
+ * `{ tenantid: 'acme' }`. Which keys exist is the store's configuration.
15
+ *
16
+ * Keep the mapping from your tenant to these values ONE-TO-ONE: a mapping
17
+ * that lowercases, trims or truncates a tenant id files two tenants' derived
18
+ * records under one namespace. An empty object asks for nothing.
19
+ */
20
+ readonly namespaceScope?: Readonly<Record<string, string>>;
21
+ }
22
+ /** The name of one write option — what a store declares it honours. */
23
+ export type MemoryWriteOptionName = keyof MemoryWriteOptions;
24
+ /** Every write option, in the order refusals name them. */
25
+ export declare const MEMORY_WRITE_OPTION_NAMES: readonly MemoryWriteOptionName[];
26
+ /**
27
+ * The reason a store with NO server-side extraction gives — the shared
28
+ * sentence, so every such store refuses in the same words, remedy included.
29
+ */
30
+ export declare const NO_SERVER_EXTRACTION: string;
31
+ /**
32
+ * Thrown when a write asks for an option the store does not honour.
33
+ *
34
+ * Carries the store and the option by name; never a value — a namespace scope
35
+ * names a tenant, and an error message is the one place a tenant id must not
36
+ * travel. The remedy is in the store's own reason.
37
+ */
38
+ export declare class UnsupportedMemoryWriteOptionError extends Error {
39
+ readonly code: "ERR_UNSUPPORTED_MEMORY_WRITE_OPTION";
40
+ /** The store that refused, e.g. `'InMemoryStore'`. */
41
+ readonly store: string;
42
+ /** The option it cannot honour. */
43
+ readonly option: MemoryWriteOptionName;
44
+ constructor(store: string, option: MemoryWriteOptionName, why: string);
45
+ }
46
+ /**
47
+ * The options this write actually asks for, its values checked.
48
+ *
49
+ * A field that is `undefined` is not asked for; an empty `namespaceScope` asks
50
+ * for nothing either. A value of the wrong shape is a programming error, so it
51
+ * throws a `TypeError` naming the option — and never echoes the value.
52
+ */
53
+ export declare function requestedWriteOptions(options?: MemoryWriteOptions): MemoryWriteOptionName[];
54
+ /**
55
+ * Refuse, by name, every write option `options` asks for that `honoured` does
56
+ * not contain. Call it first thing in `put`, `putMany` and `putIfVersion` —
57
+ * before anything is written.
58
+ *
59
+ * @param store the store's name, as the refusal should say it
60
+ * @param honoured the store's own declaration (`MemoryStore.writeOptions`)
61
+ * @param options what this write asked for
62
+ * @param why why this store cannot honour what it does not declare, and
63
+ * what to do instead
64
+ * @throws {UnsupportedMemoryWriteOptionError} for the first option not honoured
65
+ */
66
+ export declare function refuseUnhonouredWriteOptions(store: string, honoured: readonly MemoryWriteOptionName[] | undefined, options: MemoryWriteOptions | undefined, why: string): void;
67
+ /** Write options for every write a memory makes (`defineMemory({ writeOptions })`). */
68
+ export interface MemoryWriteOptionsConfig {
69
+ /** `'skip'` keeps every write of this memory out of long-term extraction. */
70
+ readonly extraction?: 'skip';
71
+ }
72
+ /**
73
+ * A memory's namespace scope (`defineMemory({ namespaceScope })`): the scope
74
+ * its writes are filed under AND its reads are confined to.
75
+ *
76
+ * One computed from the run's identity — `(identity) => ({ tenantid: … })`,
77
+ * the multi-tenant shape — or a fixed object, which is right only for a
78
+ * deployment that serves ONE tenant. Keep the function one-to-one (see
79
+ * {@link MemoryWriteOptions.namespaceScope}); a store may ship an encoder into
80
+ * its own alphabet (`agentCoreNamespaceValue` for AgentCore). A scope that
81
+ * comes back empty or malformed refuses the write or the search, never runs it
82
+ * without one.
83
+ */
84
+ export type MemoryNamespaceScope = Readonly<Record<string, string>> | ((identity: MemoryIdentity) => Readonly<Record<string, string>>);
85
+ /** What `defineMemory` binds to its store: the write options and the scope. */
86
+ export interface BoundMemoryOptions extends MemoryWriteOptionsConfig {
87
+ readonly namespaceScope?: MemoryNamespaceScope;
88
+ }
89
+ /**
90
+ * Refuse a memory's write options or scope at DEFINITION time when its store
91
+ * does not declare them, or when a fixed one is malformed — the first turn
92
+ * should not be where a configuration that can never work is discovered.
93
+ *
94
+ * @throws {UnsupportedMemoryWriteOptionError} naming the store and the option
95
+ * @throws {TypeError} for a malformed option
96
+ */
97
+ export declare function assertStoreHonours(store: MemoryStore, config: BoundMemoryOptions, caller: string): void;
98
+ /**
99
+ * The store with the memory's write options applied to every write it makes —
100
+ * and its namespace scope applied to every read.
101
+ *
102
+ * Writes (`put`, `putMany`, `putIfVersion`) carry the options. A call's own
103
+ * `extraction` overrides the bound one only where it asks for something (an
104
+ * `undefined` field never erases it). A bound `namespaceScope` is NEVER
105
+ * replaced per call: it comes from the run's identity through the configured
106
+ * resolver and nowhere else, so a call that brings its own is refused.
107
+ *
108
+ * Reads follow the same rule as writes: `search` hands a store that declares
109
+ * `'namespaceScope'` the scope resolved for that identity
110
+ * (`SearchOptions.namespaceScope`), so a store that files derived records by it
111
+ * reads within it. Every other member passes straight through.
112
+ *
113
+ * @throws (as a rejected promise, at a write or a search) a `TypeError` when
114
+ * the scope function returns an empty or malformed scope — refused rather
115
+ * than sent outside every tenant's namespace — or when a call brings its
116
+ * own `namespaceScope` to a memory that binds one.
117
+ */
118
+ export declare function bindWriteOptions(store: MemoryStore, config: BoundMemoryOptions): MemoryStore;
@@ -0,0 +1,242 @@
1
+ /** Every write option, in the order refusals name them. */
2
+ export const MEMORY_WRITE_OPTION_NAMES = [
3
+ 'extraction',
4
+ 'namespaceScope',
5
+ ];
6
+ /**
7
+ * The reason a store with NO server-side extraction gives — the shared
8
+ * sentence, so every such store refuses in the same words, remedy included.
9
+ */
10
+ export const NO_SERVER_EXTRACTION = 'it keeps exactly the entries it is given and derives no long-term records from ' +
11
+ 'them — there is no extraction to skip and no derived namespace to scope (its ' +
12
+ 'tenant boundary is the identity tuple). Leave the option off for this store, or ' +
13
+ 'use a store that declares it in `writeOptions`';
14
+ /**
15
+ * Thrown when a write asks for an option the store does not honour.
16
+ *
17
+ * Carries the store and the option by name; never a value — a namespace scope
18
+ * names a tenant, and an error message is the one place a tenant id must not
19
+ * travel. The remedy is in the store's own reason.
20
+ */
21
+ export class UnsupportedMemoryWriteOptionError extends Error {
22
+ code = 'ERR_UNSUPPORTED_MEMORY_WRITE_OPTION';
23
+ /** The store that refused, e.g. `'InMemoryStore'`. */
24
+ store;
25
+ /** The option it cannot honour. */
26
+ option;
27
+ constructor(store, option, why) {
28
+ super(`[memory] ${store} cannot honour the write option \`${option}\`: ${why}. It is ` +
29
+ 'refused rather than ignored — a write that dropped it would look exactly like one ' +
30
+ 'that honoured it.');
31
+ this.name = 'UnsupportedMemoryWriteOptionError';
32
+ this.store = store;
33
+ this.option = option;
34
+ }
35
+ }
36
+ /**
37
+ * The options this write actually asks for, its values checked.
38
+ *
39
+ * A field that is `undefined` is not asked for; an empty `namespaceScope` asks
40
+ * for nothing either. A value of the wrong shape is a programming error, so it
41
+ * throws a `TypeError` naming the option — and never echoes the value.
42
+ */
43
+ export function requestedWriteOptions(options) {
44
+ if (options === undefined || options === null)
45
+ return [];
46
+ const asked = [];
47
+ if (options.extraction !== undefined) {
48
+ assertExtraction(options.extraction);
49
+ asked.push('extraction');
50
+ }
51
+ if (options.namespaceScope !== undefined) {
52
+ assertScopeShape(options.namespaceScope);
53
+ if (Object.keys(options.namespaceScope).length > 0)
54
+ asked.push('namespaceScope');
55
+ }
56
+ return asked;
57
+ }
58
+ /**
59
+ * Refuse, by name, every write option `options` asks for that `honoured` does
60
+ * not contain. Call it first thing in `put`, `putMany` and `putIfVersion` —
61
+ * before anything is written.
62
+ *
63
+ * @param store the store's name, as the refusal should say it
64
+ * @param honoured the store's own declaration (`MemoryStore.writeOptions`)
65
+ * @param options what this write asked for
66
+ * @param why why this store cannot honour what it does not declare, and
67
+ * what to do instead
68
+ * @throws {UnsupportedMemoryWriteOptionError} for the first option not honoured
69
+ */
70
+ export function refuseUnhonouredWriteOptions(store, honoured, options, why) {
71
+ for (const option of requestedWriteOptions(options)) {
72
+ if (!(honoured ?? []).includes(option)) {
73
+ throw new UnsupportedMemoryWriteOptionError(store, option, why);
74
+ }
75
+ }
76
+ }
77
+ /**
78
+ * Refuse a memory's write options or scope at DEFINITION time when its store
79
+ * does not declare them, or when a fixed one is malformed — the first turn
80
+ * should not be where a configuration that can never work is discovered.
81
+ *
82
+ * @throws {UnsupportedMemoryWriteOptionError} naming the store and the option
83
+ * @throws {TypeError} for a malformed option
84
+ */
85
+ export function assertStoreHonours(store, config, caller) {
86
+ const asked = [];
87
+ if (config.extraction !== undefined) {
88
+ assertExtraction(config.extraction);
89
+ asked.push('extraction');
90
+ }
91
+ if (config.namespaceScope !== undefined) {
92
+ if (typeof config.namespaceScope !== 'function') {
93
+ assertScopeShape(config.namespaceScope);
94
+ assertNonEmptyScope(config.namespaceScope, caller);
95
+ }
96
+ asked.push('namespaceScope');
97
+ }
98
+ for (const option of asked) {
99
+ if (!(store.writeOptions ?? []).includes(option)) {
100
+ throw new UnsupportedMemoryWriteOptionError(storeName(store), option, `it does not declare \`${option}\` in \`writeOptions\` (checked by ${caller}, before ` +
101
+ 'any turn ran). A store that declares it can take it; otherwise leave the option off');
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * The store with the memory's write options applied to every write it makes —
107
+ * and its namespace scope applied to every read.
108
+ *
109
+ * Writes (`put`, `putMany`, `putIfVersion`) carry the options. A call's own
110
+ * `extraction` overrides the bound one only where it asks for something (an
111
+ * `undefined` field never erases it). A bound `namespaceScope` is NEVER
112
+ * replaced per call: it comes from the run's identity through the configured
113
+ * resolver and nowhere else, so a call that brings its own is refused.
114
+ *
115
+ * Reads follow the same rule as writes: `search` hands a store that declares
116
+ * `'namespaceScope'` the scope resolved for that identity
117
+ * (`SearchOptions.namespaceScope`), so a store that files derived records by it
118
+ * reads within it. Every other member passes straight through.
119
+ *
120
+ * @throws (as a rejected promise, at a write or a search) a `TypeError` when
121
+ * the scope function returns an empty or malformed scope — refused rather
122
+ * than sent outside every tenant's namespace — or when a call brings its
123
+ * own `namespaceScope` to a memory that binds one.
124
+ */
125
+ export function bindWriteOptions(store, config) {
126
+ const scopeIsBound = config.namespaceScope !== undefined;
127
+ const refuseOwnScope = (own) => {
128
+ if (scopeIsBound && own !== undefined && Object.keys(own).length > 0) {
129
+ throw new TypeError('defineMemory: this memory binds `namespaceScope` to the run’s identity, and a call ' +
130
+ 'cannot replace it — a scope chosen per ' +
131
+ 'call could file or read one tenant’s records under another’s. Change the resolver, ' +
132
+ 'not the call.');
133
+ }
134
+ };
135
+ const resolve = (identity, own) => {
136
+ refuseOwnScope(own?.namespaceScope);
137
+ const scope = boundScope(config, identity);
138
+ const ownScope = own?.namespaceScope;
139
+ return {
140
+ ...(config.extraction !== undefined && { extraction: config.extraction }),
141
+ ...(scope !== undefined && { namespaceScope: scope }),
142
+ ...(own?.extraction !== undefined && { extraction: own.extraction }),
143
+ // Only reachable when nothing is bound: the store checks it like any write.
144
+ ...(ownScope !== undefined &&
145
+ Object.keys(ownScope).length > 0 && { namespaceScope: ownScope }),
146
+ };
147
+ };
148
+ // Reads carry the scope only to a store that files by it — the same store
149
+ // `assertStoreHonours` let the scope be bound to.
150
+ const readsByScope = scopeIsBound && (store.writeOptions ?? []).includes('namespaceScope');
151
+ const readOptions = (identity, options) => {
152
+ refuseOwnScope(options?.namespaceScope);
153
+ if (!readsByScope)
154
+ return options;
155
+ const scope = boundScope(config, identity, 'this search');
156
+ return scope === undefined ? options : { ...options, namespaceScope: scope };
157
+ };
158
+ const bound = {
159
+ ...(store.supportsVectorSearch !== undefined && {
160
+ supportsVectorSearch: store.supportsVectorSearch,
161
+ }),
162
+ ...(store.ranksBy !== undefined && { ranksBy: store.ranksBy }),
163
+ ...(store.writeOptions !== undefined && { writeOptions: store.writeOptions }),
164
+ get: (identity, id) => store.get(identity, id),
165
+ // `async`, so a refused scope is a rejected promise, as the port promises —
166
+ // never a synchronous throw from a method the caller awaits.
167
+ put: async (identity, entry, own) => store.put(identity, entry, resolve(identity, own)),
168
+ putMany: async (identity, entries, own) =>
169
+ // The port's empty-batch law: no write, so nothing to resolve or refuse.
170
+ entries.length === 0
171
+ ? store.putMany(identity, entries)
172
+ : store.putMany(identity, entries, resolve(identity, own)),
173
+ putIfVersion: async (identity, entry, expectedVersion, own) => store.putIfVersion(identity, entry, expectedVersion, resolve(identity, own)),
174
+ list: (identity, options) => store.list(identity, options),
175
+ delete: (identity, id) => store.delete(identity, id),
176
+ seen: (identity, signature) => store.seen(identity, signature),
177
+ recordSignature: (identity, signature) => store.recordSignature(identity, signature),
178
+ feedback: (identity, id, usefulness) => store.feedback(identity, id, usefulness),
179
+ getFeedback: (identity, id) => store.getFeedback(identity, id),
180
+ forget: (identity) => store.forget(identity),
181
+ // Present exactly when the store's is: `if (store.search)` is how callers
182
+ // feature-detect it, so the bound store must not grow or lose one.
183
+ ...(store.search !== undefined && {
184
+ search: async (identity, query, options) => store.search(identity, query, readOptions(identity, options)),
185
+ }),
186
+ };
187
+ return bound;
188
+ }
189
+ // ── Checks ─────────────────────────────────────────────────────────────
190
+ /** The configured scope for this identity — present, plain, non-empty, or refused. */
191
+ function boundScope(config, identity, what = 'this write') {
192
+ if (config.namespaceScope === undefined)
193
+ return undefined;
194
+ const scope = typeof config.namespaceScope === 'function'
195
+ ? config.namespaceScope(identity)
196
+ : config.namespaceScope;
197
+ assertScopeShape(scope);
198
+ // Copy FIRST, then check the copy: the values checked are the values every
199
+ // store sees — whatever the resolver's object does afterwards, or does on a
200
+ // second read (a getter, a Proxy that reports one value and returns another).
201
+ const copy = Object.freeze({ ...scope });
202
+ assertScopeShape(copy);
203
+ assertNonEmptyScope(copy, what);
204
+ return copy;
205
+ }
206
+ function assertExtraction(value) {
207
+ if (value !== 'skip') {
208
+ throw new TypeError("[memory] the write option `extraction` takes one value, 'skip' — got " +
209
+ `${typeof value === 'string' ? JSON.stringify(value) : typeof value}.`);
210
+ }
211
+ }
212
+ function assertScopeShape(value) {
213
+ if (!isStringRecord(value)) {
214
+ throw new TypeError('[memory] the write option `namespaceScope` must be a plain object of string values ' +
215
+ '(variable name → value). The value given is not quoted here: it names a tenant.');
216
+ }
217
+ }
218
+ function assertNonEmptyScope(scope, where) {
219
+ if (Object.keys(scope).length === 0) {
220
+ throw new TypeError(`[memory] the memory's \`namespaceScope\` came back EMPTY for ${where}. It is refused ` +
221
+ 'rather than run without one: a write with no scope files its derived records outside ' +
222
+ 'every tenant’s namespace, and a search with none is confined to no tenant. Return the ' +
223
+ 'scope for every identity, or refuse the identity yourself.');
224
+ }
225
+ }
226
+ /** The store's own name for a refusal — its class, or what the caller holds. */
227
+ function storeName(store) {
228
+ const ctor = store.constructor?.name;
229
+ return ctor !== undefined && ctor !== 'Object' && ctor !== '' ? ctor : 'the store you passed';
230
+ }
231
+ /** A PLAIN object (no class, no Map, no Promise) whose own values are all strings. */
232
+ function isStringRecord(value) {
233
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
234
+ return false;
235
+ const proto = Object.getPrototypeOf(value);
236
+ if (proto !== Object.prototype && proto !== null)
237
+ return false;
238
+ // Data properties only: a getter could answer the check one value and the
239
+ // store another.
240
+ return Object.values(Object.getOwnPropertyDescriptors(value)).every((d) => 'value' in d && typeof d.value === 'string');
241
+ }
242
+ //# sourceMappingURL=writeOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeOptions.js","sourceRoot":"","sources":["../../../../src/memory/store/writeOptions.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  * symbols, one door. Import from the door.
22
22
  */
23
23
  export { RedisStore, type RedisStoreOptions, type RedisLikeClient, type RedisLikePipeline, } from './adapters/memory/redis.js';
24
- export { AgentCoreStore, UnreadableMemoryEntryError, type AgentCoreStoreOptions, type AgentCoreLikeClient, type AgentCoreEvent, type AgentCoreMemoryRecord, } from './adapters/memory/agentcore.js';
24
+ export { AgentCoreStore, UnreadableMemoryEntryError, agentCoreNamespaceValue, type AgentCoreStoreOptions, type AgentCoreLikeClient, type AgentCoreEvent, type AgentCoreMemoryRecord, } from './adapters/memory/agentcore.js';
25
25
  export { memoryBankStore, MemoryBankStore, MAX_PAGE_SIZE, MAX_CARRIED_JSON, scoreFromDistance, type MemoryBankStoreOptions, type MemoryScope, } from './adapters/memory/memoryBank.js';
26
26
  export { sqliteVectorStore, UnreadableIndexFileError, type SqliteVectorStore, type SqliteVectorStoreOptions, type SqliteVectorDatabaseLike, type SqliteVectorStatementLike, type SqliteVectorModuleLike, } from './adapters/memory/sqliteVector.js';
27
27
  export { SqliteUnavailableError } from './lib/sqliteUnavailable.js';
@@ -24,7 +24,10 @@
24
24
  // `require()` to constructor time; importing this barrel doesn't load
25
25
  // `ioredis` or `@aws-sdk/client-bedrock-agent-runtime`.
26
26
  export { RedisStore, } from './adapters/memory/redis.js';
27
- export { AgentCoreStore, UnreadableMemoryEntryError, } from './adapters/memory/agentcore.js';
27
+ export { AgentCoreStore, UnreadableMemoryEntryError,
28
+ // A tenant id in the alphabet AgentCore admits for a namespace variable,
29
+ // one-to-one — what `defineMemory({ namespaceScope })` and `searchNamespace` map with.
30
+ agentCoreNamespaceValue, } from './adapters/memory/agentcore.js';
28
31
  // Vertex AI Memory Bank — a NATURAL-LANGUAGE memory service, not a vector
29
32
  // store: it declares `supportsVectorSearch: false` and `ranksBy: 'server-text'`
30
33
  // so the corpus builders refuse it by name, and it converts the service's
@@ -1 +1 @@
1
- {"version":3,"file":"memory-providers.js","sourceRoot":"","sources":["../../src/memory-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sEAAsE;AACtE,sEAAsE;AACtE,wDAAwD;AACxD,OAAO,EACL,UAAU,GAIX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,cAAc,EACd,0BAA0B,GAK3B,MAAM,gCAAgC,CAAC;AAExC,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,gFAAgF;AAChF,wEAAwE;AACxE,+EAA+E;AAC/E,4DAA4D;AAC5D,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,iCAAiC,CAAC;AAEzC,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,mDAAmD;AACnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAMzB,MAAM,mCAAmC,CAAC;AAE3C,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,sDAAsD;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,gFAAgF;AAChF,+EAA+E;AAC/E,+DAA+D;AAC/D,OAAO,EACL,aAAa,EACb,mBAAmB,GAOpB,MAAM,+BAA+B,CAAC;AAEvC,gFAAgF;AAChF,gEAAgE;AAChE,iDAAiD;AACjD,OAAO,EACL,cAAc,GAKf,MAAM,gCAAgC,CAAC;AAExC,8EAA8E;AAC9E,yEAAyE;AACzE,OAAO,EACL,kBAAkB,GAInB,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"memory-providers.js","sourceRoot":"","sources":["../../src/memory-providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sEAAsE;AACtE,sEAAsE;AACtE,wDAAwD;AACxD,OAAO,EACL,UAAU,GAIX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,cAAc,EACd,0BAA0B;AAC1B,yEAAyE;AACzE,uFAAuF;AACvF,uBAAuB,GAKxB,MAAM,gCAAgC,CAAC;AAExC,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,yEAAyE;AACzE,gFAAgF;AAChF,wEAAwE;AACxE,+EAA+E;AAC/E,4DAA4D;AAC5D,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAGlB,MAAM,iCAAiC,CAAC;AAEzC,gFAAgF;AAChF,gFAAgF;AAChF,8EAA8E;AAC9E,mDAAmD;AACnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAMzB,MAAM,mCAAmC,CAAC;AAE3C,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,6EAA6E;AAC7E,2EAA2E;AAC3E,+EAA+E;AAC/E,2EAA2E;AAC3E,sDAAsD;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,gFAAgF;AAChF,+EAA+E;AAC/E,+DAA+D;AAC/D,OAAO,EACL,aAAa,EACb,mBAAmB,GAOpB,MAAM,+BAA+B,CAAC;AAEvC,gFAAgF;AAChF,gEAAgE;AAChE,iDAAiD;AACjD,OAAO,EACL,cAAc,GAKf,MAAM,gCAAgC,CAAC;AAExC,8EAA8E;AAC9E,yEAAyE;AACzE,OAAO,EACL,kBAAkB,GAInB,MAAM,yCAAyC,CAAC"}
@@ -23,6 +23,7 @@ import { RunnerBase } from '../core/RunnerBase.js';
23
23
  import { Parallel } from '../core-flow/Parallel.js';
24
24
  import { Sequence } from '../core-flow/Sequence.js';
25
25
  import { adoptMemberRedaction, redactionDeclaredBy } from '../redaction/declared.js';
26
+ import { adoptParentRun, parentRunIn, readsParentRun, withParentRun } from '../core/memberRun.js';
26
27
  const SHARD_DELIMITER = '\u001F'; // ASCII Unit Separator — unlikely in real text.
27
28
  /**
28
29
  * Build a MapReduce Runner. At run time:
@@ -130,21 +131,26 @@ class ShardBranchRunner extends RunnerBase {
130
131
  // The wrapped runner's redaction policy travels with the shard, so the
131
132
  // `Parallel` that fans the shards out covers it (`src/redaction/declared.ts`).
132
133
  adoptMemberRedaction(this, [inner]);
134
+ // It hands the run it serves on to the wrapped runner (`core/memberRun.ts`).
135
+ readsParentRun(this);
133
136
  }
134
137
  getSpec() {
135
138
  // Build a wrapper chart that unpacks the shard and invokes the
136
139
  // inner chart. The inner LLMCall's chart runs as a subflow whose
137
140
  // input is the extracted shard.
138
141
  const shardIndex = this.shardIndex;
139
- const innerChart = this.inner.getSpec();
142
+ const inner = this.inner;
143
+ const innerChart = inner.getSpec();
140
144
  return flowChart('Unpack', (scope) => {
141
145
  const args = scope.$getArgs();
142
146
  const parts = (args.message ?? '').split(SHARD_DELIMITER);
143
147
  scope.shard = parts[shardIndex] ?? '';
144
148
  scope.result = '';
149
+ // The run the shard serves, handed on to the wrapped runner (`core/memberRun.ts`).
150
+ adoptParentRun(scope, args, 'mapReduce shard');
145
151
  }, 'unpack')
146
152
  .addSubFlowChartNext('inner', innerChart, 'InnerCall', {
147
- inputMapper: (parent) => ({ message: parent.shard ?? '' }),
153
+ inputMapper: (parent) => withParentRun({ message: parent.shard ?? '' }, parentRunIn(parent), inner),
148
154
  outputMapper: (sfOutput) => ({
149
155
  result: typeof sfOutput === 'string' ? sfOutput : '',
150
156
  }),