@strands-agents/sdk 0.0.1

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 (423) hide show
  1. package/LICENSE +175 -0
  2. package/README.md +185 -0
  3. package/dist/__fixtures__/model-test-helpers.d.ts +56 -0
  4. package/dist/__fixtures__/model-test-helpers.d.ts.map +1 -0
  5. package/dist/__fixtures__/model-test-helpers.js +85 -0
  6. package/dist/__fixtures__/model-test-helpers.js.map +1 -0
  7. package/dist/__fixtures__/tool-helpers.d.ts +15 -0
  8. package/dist/__fixtures__/tool-helpers.d.ts.map +1 -0
  9. package/dist/__fixtures__/tool-helpers.js +22 -0
  10. package/dist/__fixtures__/tool-helpers.js.map +1 -0
  11. package/dist/__tests__/errors.test.d.ts +2 -0
  12. package/dist/__tests__/errors.test.d.ts.map +1 -0
  13. package/dist/__tests__/errors.test.js +20 -0
  14. package/dist/__tests__/errors.test.js.map +1 -0
  15. package/dist/__tests__/index.test.d.ts +2 -0
  16. package/dist/__tests__/index.test.d.ts.map +1 -0
  17. package/dist/__tests__/index.test.js +27 -0
  18. package/dist/__tests__/index.test.js.map +1 -0
  19. package/dist/errors.d.ts +22 -0
  20. package/dist/errors.d.ts.map +1 -0
  21. package/dist/errors.js +25 -0
  22. package/dist/errors.js.map +1 -0
  23. package/dist/index.d.ts +19 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +17 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/models/__tests__/bedrock.test.d.ts +2 -0
  28. package/dist/models/__tests__/bedrock.test.d.ts.map +1 -0
  29. package/dist/models/__tests__/bedrock.test.js +1161 -0
  30. package/dist/models/__tests__/bedrock.test.js.map +1 -0
  31. package/dist/models/__tests__/model.test.d.ts +2 -0
  32. package/dist/models/__tests__/model.test.d.ts.map +1 -0
  33. package/dist/models/__tests__/model.test.js +297 -0
  34. package/dist/models/__tests__/model.test.js.map +1 -0
  35. package/dist/models/__tests__/openai.test.d.ts +2 -0
  36. package/dist/models/__tests__/openai.test.d.ts.map +1 -0
  37. package/dist/models/__tests__/openai.test.js +1016 -0
  38. package/dist/models/__tests__/openai.test.js.map +1 -0
  39. package/dist/models/__tests__/test-utils.d.ts +10 -0
  40. package/dist/models/__tests__/test-utils.d.ts.map +1 -0
  41. package/dist/models/__tests__/test-utils.js +17 -0
  42. package/dist/models/__tests__/test-utils.js.map +1 -0
  43. package/dist/models/bedrock.d.ts +272 -0
  44. package/dist/models/bedrock.d.ts.map +1 -0
  45. package/dist/models/bedrock.js +679 -0
  46. package/dist/models/bedrock.js.map +1 -0
  47. package/dist/models/model.d.ts +89 -0
  48. package/dist/models/model.d.ts.map +1 -0
  49. package/dist/models/model.js +122 -0
  50. package/dist/models/model.js.map +1 -0
  51. package/dist/models/openai.d.ts +262 -0
  52. package/dist/models/openai.d.ts.map +1 -0
  53. package/dist/models/openai.js +625 -0
  54. package/dist/models/openai.js.map +1 -0
  55. package/dist/models/streaming.d.ts +226 -0
  56. package/dist/models/streaming.d.ts.map +1 -0
  57. package/dist/models/streaming.js +2 -0
  58. package/dist/models/streaming.js.map +1 -0
  59. package/dist/src/__fixtures__/agent-helpers.d.ts +29 -0
  60. package/dist/src/__fixtures__/agent-helpers.d.ts.map +1 -0
  61. package/dist/src/__fixtures__/agent-helpers.js +19 -0
  62. package/dist/src/__fixtures__/agent-helpers.js.map +1 -0
  63. package/dist/src/__fixtures__/environment.d.ts +12 -0
  64. package/dist/src/__fixtures__/environment.d.ts.map +1 -0
  65. package/dist/src/__fixtures__/environment.js +12 -0
  66. package/dist/src/__fixtures__/environment.js.map +1 -0
  67. package/dist/src/__fixtures__/mock-hook-provider.d.ts +14 -0
  68. package/dist/src/__fixtures__/mock-hook-provider.d.ts.map +1 -0
  69. package/dist/src/__fixtures__/mock-hook-provider.js +33 -0
  70. package/dist/src/__fixtures__/mock-hook-provider.js.map +1 -0
  71. package/dist/src/__fixtures__/mock-message-model.d.ts +93 -0
  72. package/dist/src/__fixtures__/mock-message-model.d.ts.map +1 -0
  73. package/dist/src/__fixtures__/mock-message-model.js +226 -0
  74. package/dist/src/__fixtures__/mock-message-model.js.map +1 -0
  75. package/dist/src/__fixtures__/model-test-helpers.d.ts +56 -0
  76. package/dist/src/__fixtures__/model-test-helpers.d.ts.map +1 -0
  77. package/dist/src/__fixtures__/model-test-helpers.js +85 -0
  78. package/dist/src/__fixtures__/model-test-helpers.js.map +1 -0
  79. package/dist/src/__fixtures__/tool-helpers.d.ts +37 -0
  80. package/dist/src/__fixtures__/tool-helpers.d.ts.map +1 -0
  81. package/dist/src/__fixtures__/tool-helpers.js +78 -0
  82. package/dist/src/__fixtures__/tool-helpers.js.map +1 -0
  83. package/dist/src/__tests__/errors.test.d.ts +2 -0
  84. package/dist/src/__tests__/errors.test.d.ts.map +1 -0
  85. package/dist/src/__tests__/errors.test.js +64 -0
  86. package/dist/src/__tests__/errors.test.js.map +1 -0
  87. package/dist/src/__tests__/index.test.d.ts +2 -0
  88. package/dist/src/__tests__/index.test.d.ts.map +1 -0
  89. package/dist/src/__tests__/index.test.js +27 -0
  90. package/dist/src/__tests__/index.test.js.map +1 -0
  91. package/dist/src/__tests__/mcp.test.d.ts +2 -0
  92. package/dist/src/__tests__/mcp.test.d.ts.map +1 -0
  93. package/dist/src/__tests__/mcp.test.js +166 -0
  94. package/dist/src/__tests__/mcp.test.js.map +1 -0
  95. package/dist/src/agent/__tests__/agent.hook.test.d.ts +2 -0
  96. package/dist/src/agent/__tests__/agent.hook.test.d.ts.map +1 -0
  97. package/dist/src/agent/__tests__/agent.hook.test.js +250 -0
  98. package/dist/src/agent/__tests__/agent.hook.test.js.map +1 -0
  99. package/dist/src/agent/__tests__/agent.test.d.ts +2 -0
  100. package/dist/src/agent/__tests__/agent.test.d.ts.map +1 -0
  101. package/dist/src/agent/__tests__/agent.test.js +414 -0
  102. package/dist/src/agent/__tests__/agent.test.js.map +1 -0
  103. package/dist/src/agent/__tests__/printer.test.d.ts +2 -0
  104. package/dist/src/agent/__tests__/printer.test.d.ts.map +1 -0
  105. package/dist/src/agent/__tests__/printer.test.js +152 -0
  106. package/dist/src/agent/__tests__/printer.test.js.map +1 -0
  107. package/dist/src/agent/__tests__/state.test.d.ts +2 -0
  108. package/dist/src/agent/__tests__/state.test.d.ts.map +1 -0
  109. package/dist/src/agent/__tests__/state.test.js +231 -0
  110. package/dist/src/agent/__tests__/state.test.js.map +1 -0
  111. package/dist/src/agent/agent.d.ts +207 -0
  112. package/dist/src/agent/agent.d.ts.map +1 -0
  113. package/dist/src/agent/agent.js +481 -0
  114. package/dist/src/agent/agent.js.map +1 -0
  115. package/dist/src/agent/printer.d.ts +73 -0
  116. package/dist/src/agent/printer.d.ts.map +1 -0
  117. package/dist/src/agent/printer.js +145 -0
  118. package/dist/src/agent/printer.js.map +1 -0
  119. package/dist/src/agent/state.d.ts +102 -0
  120. package/dist/src/agent/state.d.ts.map +1 -0
  121. package/dist/src/agent/state.js +73 -0
  122. package/dist/src/agent/state.js.map +1 -0
  123. package/dist/src/agent/streaming.d.ts +91 -0
  124. package/dist/src/agent/streaming.d.ts.map +1 -0
  125. package/dist/src/agent/streaming.js +2 -0
  126. package/dist/src/agent/streaming.js.map +1 -0
  127. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts +2 -0
  128. package/dist/src/conversation-manager/__tests__/conversation-manager.test.d.ts.map +1 -0
  129. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js +10 -0
  130. package/dist/src/conversation-manager/__tests__/conversation-manager.test.js.map +1 -0
  131. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts +2 -0
  132. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.d.ts.map +1 -0
  133. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js +35 -0
  134. package/dist/src/conversation-manager/__tests__/null-conversation-manager.test.js.map +1 -0
  135. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts +2 -0
  136. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.d.ts.map +1 -0
  137. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js +553 -0
  138. package/dist/src/conversation-manager/__tests__/sliding-window-conversation-manager.test.js.map +1 -0
  139. package/dist/src/conversation-manager/conversation-manager.d.ts +73 -0
  140. package/dist/src/conversation-manager/conversation-manager.d.ts.map +1 -0
  141. package/dist/src/conversation-manager/conversation-manager.js +24 -0
  142. package/dist/src/conversation-manager/conversation-manager.js.map +1 -0
  143. package/dist/src/conversation-manager/index.d.ts +8 -0
  144. package/dist/src/conversation-manager/index.d.ts.map +1 -0
  145. package/dist/src/conversation-manager/index.js +8 -0
  146. package/dist/src/conversation-manager/index.js.map +1 -0
  147. package/dist/src/conversation-manager/null-conversation-manager.d.ts +23 -0
  148. package/dist/src/conversation-manager/null-conversation-manager.d.ts.map +1 -0
  149. package/dist/src/conversation-manager/null-conversation-manager.js +23 -0
  150. package/dist/src/conversation-manager/null-conversation-manager.js.map +1 -0
  151. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts +105 -0
  152. package/dist/src/conversation-manager/sliding-window-conversation-manager.d.ts.map +1 -0
  153. package/dist/src/conversation-manager/sliding-window-conversation-manager.js +212 -0
  154. package/dist/src/conversation-manager/sliding-window-conversation-manager.js.map +1 -0
  155. package/dist/src/errors.d.ts +83 -0
  156. package/dist/src/errors.d.ts.map +1 -0
  157. package/dist/src/errors.js +97 -0
  158. package/dist/src/errors.js.map +1 -0
  159. package/dist/src/hooks/__tests__/events.test.d.ts +2 -0
  160. package/dist/src/hooks/__tests__/events.test.d.ts.map +1 -0
  161. package/dist/src/hooks/__tests__/events.test.js +347 -0
  162. package/dist/src/hooks/__tests__/events.test.js.map +1 -0
  163. package/dist/src/hooks/__tests__/registry.test.d.ts +2 -0
  164. package/dist/src/hooks/__tests__/registry.test.d.ts.map +1 -0
  165. package/dist/src/hooks/__tests__/registry.test.js +154 -0
  166. package/dist/src/hooks/__tests__/registry.test.js.map +1 -0
  167. package/dist/src/hooks/events.d.ts +199 -0
  168. package/dist/src/hooks/events.d.ts.map +1 -0
  169. package/dist/src/hooks/events.js +191 -0
  170. package/dist/src/hooks/events.js.map +1 -0
  171. package/dist/src/hooks/index.d.ts +11 -0
  172. package/dist/src/hooks/index.d.ts.map +1 -0
  173. package/dist/src/hooks/index.js +11 -0
  174. package/dist/src/hooks/index.js.map +1 -0
  175. package/dist/src/hooks/registry.d.ts +65 -0
  176. package/dist/src/hooks/registry.d.ts.map +1 -0
  177. package/dist/src/hooks/registry.js +65 -0
  178. package/dist/src/hooks/registry.js.map +1 -0
  179. package/dist/src/hooks/types.d.ts +49 -0
  180. package/dist/src/hooks/types.d.ts.map +1 -0
  181. package/dist/src/hooks/types.js +2 -0
  182. package/dist/src/hooks/types.js.map +1 -0
  183. package/dist/src/index.d.ts +32 -0
  184. package/dist/src/index.d.ts.map +1 -0
  185. package/dist/src/index.js +29 -0
  186. package/dist/src/index.js.map +1 -0
  187. package/dist/src/mcp.d.ts +51 -0
  188. package/dist/src/mcp.d.ts.map +1 -0
  189. package/dist/src/mcp.js +91 -0
  190. package/dist/src/mcp.js.map +1 -0
  191. package/dist/src/models/__tests__/bedrock.test.d.ts +2 -0
  192. package/dist/src/models/__tests__/bedrock.test.d.ts.map +1 -0
  193. package/dist/src/models/__tests__/bedrock.test.js +1388 -0
  194. package/dist/src/models/__tests__/bedrock.test.js.map +1 -0
  195. package/dist/src/models/__tests__/model.test.d.ts +2 -0
  196. package/dist/src/models/__tests__/model.test.d.ts.map +1 -0
  197. package/dist/src/models/__tests__/model.test.js +342 -0
  198. package/dist/src/models/__tests__/model.test.js.map +1 -0
  199. package/dist/src/models/__tests__/openai.test.d.ts +2 -0
  200. package/dist/src/models/__tests__/openai.test.d.ts.map +1 -0
  201. package/dist/src/models/__tests__/openai.test.js +1189 -0
  202. package/dist/src/models/__tests__/openai.test.js.map +1 -0
  203. package/dist/src/models/__tests__/test-utils.d.ts +10 -0
  204. package/dist/src/models/__tests__/test-utils.d.ts.map +1 -0
  205. package/dist/src/models/__tests__/test-utils.js +17 -0
  206. package/dist/src/models/__tests__/test-utils.js.map +1 -0
  207. package/dist/src/models/bedrock.d.ts +289 -0
  208. package/dist/src/models/bedrock.d.ts.map +1 -0
  209. package/dist/src/models/bedrock.js +804 -0
  210. package/dist/src/models/bedrock.js.map +1 -0
  211. package/dist/src/models/model.d.ts +99 -0
  212. package/dist/src/models/model.d.ts.map +1 -0
  213. package/dist/src/models/model.js +169 -0
  214. package/dist/src/models/model.js.map +1 -0
  215. package/dist/src/models/openai.d.ts +262 -0
  216. package/dist/src/models/openai.d.ts.map +1 -0
  217. package/dist/src/models/openai.js +752 -0
  218. package/dist/src/models/openai.js.map +1 -0
  219. package/dist/src/models/streaming.d.ts +318 -0
  220. package/dist/src/models/streaming.d.ts.map +1 -0
  221. package/dist/src/models/streaming.js +122 -0
  222. package/dist/src/models/streaming.js.map +1 -0
  223. package/dist/src/registry/registry.d.ts +117 -0
  224. package/dist/src/registry/registry.d.ts.map +1 -0
  225. package/dist/src/registry/registry.js +298 -0
  226. package/dist/src/registry/registry.js.map +1 -0
  227. package/dist/src/registry/tool-registry.d.ts +34 -0
  228. package/dist/src/registry/tool-registry.d.ts.map +1 -0
  229. package/dist/src/registry/tool-registry.js +178 -0
  230. package/dist/src/registry/tool-registry.js.map +1 -0
  231. package/dist/src/tools/__tests__/tool.test.d.ts +2 -0
  232. package/dist/src/tools/__tests__/tool.test.d.ts.map +1 -0
  233. package/dist/src/tools/__tests__/tool.test.js +877 -0
  234. package/dist/src/tools/__tests__/tool.test.js.map +1 -0
  235. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts +2 -0
  236. package/dist/src/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
  237. package/dist/src/tools/__tests__/zod-tool.test-d.js +227 -0
  238. package/dist/src/tools/__tests__/zod-tool.test-d.js.map +1 -0
  239. package/dist/src/tools/__tests__/zod-tool.test.d.ts +2 -0
  240. package/dist/src/tools/__tests__/zod-tool.test.d.ts.map +1 -0
  241. package/dist/src/tools/__tests__/zod-tool.test.js +372 -0
  242. package/dist/src/tools/__tests__/zod-tool.test.js.map +1 -0
  243. package/dist/src/tools/function-tool.d.ts +146 -0
  244. package/dist/src/tools/function-tool.d.ts.map +1 -0
  245. package/dist/src/tools/function-tool.js +188 -0
  246. package/dist/src/tools/function-tool.js.map +1 -0
  247. package/dist/src/tools/mcp-tool.d.ts +36 -0
  248. package/dist/src/tools/mcp-tool.d.ts.map +1 -0
  249. package/dist/src/tools/mcp-tool.js +78 -0
  250. package/dist/src/tools/mcp-tool.js.map +1 -0
  251. package/dist/src/tools/tool.d.ts +167 -0
  252. package/dist/src/tools/tool.d.ts.map +1 -0
  253. package/dist/src/tools/tool.js +68 -0
  254. package/dist/src/tools/tool.js.map +1 -0
  255. package/dist/src/tools/types.d.ts +62 -0
  256. package/dist/src/tools/types.d.ts.map +1 -0
  257. package/dist/src/tools/types.js +2 -0
  258. package/dist/src/tools/types.js.map +1 -0
  259. package/dist/src/tools/zod-tool.d.ts +70 -0
  260. package/dist/src/tools/zod-tool.d.ts.map +1 -0
  261. package/dist/src/tools/zod-tool.js +149 -0
  262. package/dist/src/tools/zod-tool.js.map +1 -0
  263. package/dist/src/types/__tests__/agent.test.d.ts +2 -0
  264. package/dist/src/types/__tests__/agent.test.d.ts.map +1 -0
  265. package/dist/src/types/__tests__/agent.test.js +155 -0
  266. package/dist/src/types/__tests__/agent.test.js.map +1 -0
  267. package/dist/src/types/__tests__/json.test.d.ts +2 -0
  268. package/dist/src/types/__tests__/json.test.d.ts.map +1 -0
  269. package/dist/src/types/__tests__/json.test.js +298 -0
  270. package/dist/src/types/__tests__/json.test.js.map +1 -0
  271. package/dist/src/types/__tests__/media.test.d.ts +2 -0
  272. package/dist/src/types/__tests__/media.test.d.ts.map +1 -0
  273. package/dist/src/types/__tests__/media.test.js +257 -0
  274. package/dist/src/types/__tests__/media.test.js.map +1 -0
  275. package/dist/src/types/__tests__/messages.test.d.ts +2 -0
  276. package/dist/src/types/__tests__/messages.test.d.ts.map +1 -0
  277. package/dist/src/types/__tests__/messages.test.js +364 -0
  278. package/dist/src/types/__tests__/messages.test.js.map +1 -0
  279. package/dist/src/types/__tests__/validation.test.d.ts +2 -0
  280. package/dist/src/types/__tests__/validation.test.d.ts.map +1 -0
  281. package/dist/src/types/__tests__/validation.test.js +30 -0
  282. package/dist/src/types/__tests__/validation.test.js.map +1 -0
  283. package/dist/src/types/agent.d.ts +57 -0
  284. package/dist/src/types/agent.d.ts.map +1 -0
  285. package/dist/src/types/agent.js +47 -0
  286. package/dist/src/types/agent.js.map +1 -0
  287. package/dist/src/types/json.d.ts +55 -0
  288. package/dist/src/types/json.d.ts.map +1 -0
  289. package/dist/src/types/json.js +72 -0
  290. package/dist/src/types/json.js.map +1 -0
  291. package/dist/src/types/media.d.ts +249 -0
  292. package/dist/src/types/media.d.ts.map +1 -0
  293. package/dist/src/types/media.js +173 -0
  294. package/dist/src/types/media.js.map +1 -0
  295. package/dist/src/types/messages.d.ts +438 -0
  296. package/dist/src/types/messages.d.ts.map +1 -0
  297. package/dist/src/types/messages.js +286 -0
  298. package/dist/src/types/messages.js.map +1 -0
  299. package/dist/src/types/validation.d.ts +10 -0
  300. package/dist/src/types/validation.d.ts.map +1 -0
  301. package/dist/src/types/validation.js +15 -0
  302. package/dist/src/types/validation.js.map +1 -0
  303. package/dist/tools/__tests__/registry.test.d.ts +2 -0
  304. package/dist/tools/__tests__/registry.test.d.ts.map +1 -0
  305. package/dist/tools/__tests__/registry.test.js +253 -0
  306. package/dist/tools/__tests__/registry.test.js.map +1 -0
  307. package/dist/tools/__tests__/tool.test.d.ts +2 -0
  308. package/dist/tools/__tests__/tool.test.d.ts.map +1 -0
  309. package/dist/tools/__tests__/tool.test.js +761 -0
  310. package/dist/tools/__tests__/tool.test.js.map +1 -0
  311. package/dist/tools/__tests__/zod-tool.test-d.d.ts +2 -0
  312. package/dist/tools/__tests__/zod-tool.test-d.d.ts.map +1 -0
  313. package/dist/tools/__tests__/zod-tool.test-d.js +227 -0
  314. package/dist/tools/__tests__/zod-tool.test-d.js.map +1 -0
  315. package/dist/tools/__tests__/zod-tool.test.d.ts +2 -0
  316. package/dist/tools/__tests__/zod-tool.test.d.ts.map +1 -0
  317. package/dist/tools/__tests__/zod-tool.test.js +342 -0
  318. package/dist/tools/__tests__/zod-tool.test.js.map +1 -0
  319. package/dist/tools/function-tool.d.ts +156 -0
  320. package/dist/tools/function-tool.d.ts.map +1 -0
  321. package/dist/tools/function-tool.js +237 -0
  322. package/dist/tools/function-tool.js.map +1 -0
  323. package/dist/tools/registry.d.ts +43 -0
  324. package/dist/tools/registry.d.ts.map +1 -0
  325. package/dist/tools/registry.js +82 -0
  326. package/dist/tools/registry.js.map +1 -0
  327. package/dist/tools/tool.d.ts +157 -0
  328. package/dist/tools/tool.d.ts.map +1 -0
  329. package/dist/tools/tool.js +2 -0
  330. package/dist/tools/tool.js.map +1 -0
  331. package/dist/tools/types.d.ts +119 -0
  332. package/dist/tools/types.d.ts.map +1 -0
  333. package/dist/tools/types.js +2 -0
  334. package/dist/tools/types.js.map +1 -0
  335. package/dist/tools/zod-tool.d.ts +70 -0
  336. package/dist/tools/zod-tool.d.ts.map +1 -0
  337. package/dist/tools/zod-tool.js +96 -0
  338. package/dist/tools/zod-tool.js.map +1 -0
  339. package/dist/types/__tests__/json.test.d.ts +2 -0
  340. package/dist/types/__tests__/json.test.d.ts.map +1 -0
  341. package/dist/types/__tests__/json.test.js +129 -0
  342. package/dist/types/__tests__/json.test.js.map +1 -0
  343. package/dist/types/__tests__/validation.test.d.ts +2 -0
  344. package/dist/types/__tests__/validation.test.d.ts.map +1 -0
  345. package/dist/types/__tests__/validation.test.js +30 -0
  346. package/dist/types/__tests__/validation.test.js.map +1 -0
  347. package/dist/types/json.d.ts +45 -0
  348. package/dist/types/json.d.ts.map +1 -0
  349. package/dist/types/json.js +17 -0
  350. package/dist/types/json.js.map +1 -0
  351. package/dist/types/messages.d.ts +160 -0
  352. package/dist/types/messages.d.ts.map +1 -0
  353. package/dist/types/messages.js +2 -0
  354. package/dist/types/messages.js.map +1 -0
  355. package/dist/types/validation.d.ts +10 -0
  356. package/dist/types/validation.d.ts.map +1 -0
  357. package/dist/types/validation.js +15 -0
  358. package/dist/types/validation.js.map +1 -0
  359. package/dist/vended_tools/bash/__tests__/bash.test.d.ts +2 -0
  360. package/dist/vended_tools/bash/__tests__/bash.test.d.ts.map +1 -0
  361. package/dist/vended_tools/bash/__tests__/bash.test.js +333 -0
  362. package/dist/vended_tools/bash/__tests__/bash.test.js.map +1 -0
  363. package/dist/vended_tools/bash/bash.d.ts +33 -0
  364. package/dist/vended_tools/bash/bash.d.ts.map +1 -0
  365. package/dist/vended_tools/bash/bash.js +264 -0
  366. package/dist/vended_tools/bash/bash.js.map +1 -0
  367. package/dist/vended_tools/bash/index.d.ts +7 -0
  368. package/dist/vended_tools/bash/index.d.ts.map +1 -0
  369. package/dist/vended_tools/bash/index.js +6 -0
  370. package/dist/vended_tools/bash/index.js.map +1 -0
  371. package/dist/vended_tools/bash/types.d.ts +65 -0
  372. package/dist/vended_tools/bash/types.d.ts.map +1 -0
  373. package/dist/vended_tools/bash/types.js +22 -0
  374. package/dist/vended_tools/bash/types.js.map +1 -0
  375. package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts +2 -0
  376. package/dist/vended_tools/file_editor/__tests__/file-editor.test.d.ts.map +1 -0
  377. package/dist/vended_tools/file_editor/__tests__/file-editor.test.js +359 -0
  378. package/dist/vended_tools/file_editor/__tests__/file-editor.test.js.map +1 -0
  379. package/dist/vended_tools/file_editor/file-editor.d.ts +31 -0
  380. package/dist/vended_tools/file_editor/file-editor.d.ts.map +1 -0
  381. package/dist/vended_tools/file_editor/file-editor.js +353 -0
  382. package/dist/vended_tools/file_editor/file-editor.js.map +1 -0
  383. package/dist/vended_tools/file_editor/index.d.ts +6 -0
  384. package/dist/vended_tools/file_editor/index.d.ts.map +1 -0
  385. package/dist/vended_tools/file_editor/index.js +5 -0
  386. package/dist/vended_tools/file_editor/index.js.map +1 -0
  387. package/dist/vended_tools/file_editor/types.d.ts +61 -0
  388. package/dist/vended_tools/file_editor/types.d.ts.map +1 -0
  389. package/dist/vended_tools/file_editor/types.js +2 -0
  390. package/dist/vended_tools/file_editor/types.js.map +1 -0
  391. package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts +2 -0
  392. package/dist/vended_tools/http_request/__tests__/http-request.test.d.ts.map +1 -0
  393. package/dist/vended_tools/http_request/__tests__/http-request.test.js +189 -0
  394. package/dist/vended_tools/http_request/__tests__/http-request.test.js.map +1 -0
  395. package/dist/vended_tools/http_request/http-request.d.ts +35 -0
  396. package/dist/vended_tools/http_request/http-request.d.ts.map +1 -0
  397. package/dist/vended_tools/http_request/http-request.js +95 -0
  398. package/dist/vended_tools/http_request/http-request.js.map +1 -0
  399. package/dist/vended_tools/http_request/index.d.ts +6 -0
  400. package/dist/vended_tools/http_request/index.d.ts.map +1 -0
  401. package/dist/vended_tools/http_request/index.js +5 -0
  402. package/dist/vended_tools/http_request/index.js.map +1 -0
  403. package/dist/vended_tools/http_request/types.d.ts +47 -0
  404. package/dist/vended_tools/http_request/types.d.ts.map +1 -0
  405. package/dist/vended_tools/http_request/types.js +2 -0
  406. package/dist/vended_tools/http_request/types.js.map +1 -0
  407. package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts +2 -0
  408. package/dist/vended_tools/notebook/__tests__/notebook.test.d.ts.map +1 -0
  409. package/dist/vended_tools/notebook/__tests__/notebook.test.js +371 -0
  410. package/dist/vended_tools/notebook/__tests__/notebook.test.js.map +1 -0
  411. package/dist/vended_tools/notebook/index.d.ts +6 -0
  412. package/dist/vended_tools/notebook/index.d.ts.map +1 -0
  413. package/dist/vended_tools/notebook/index.js +5 -0
  414. package/dist/vended_tools/notebook/index.js.map +1 -0
  415. package/dist/vended_tools/notebook/notebook.d.ts +29 -0
  416. package/dist/vended_tools/notebook/notebook.d.ts.map +1 -0
  417. package/dist/vended_tools/notebook/notebook.js +215 -0
  418. package/dist/vended_tools/notebook/notebook.js.map +1 -0
  419. package/dist/vended_tools/notebook/types.d.ts +79 -0
  420. package/dist/vended_tools/notebook/types.d.ts.map +1 -0
  421. package/dist/vended_tools/notebook/types.js +2 -0
  422. package/dist/vended_tools/notebook/types.js.map +1 -0
  423. package/package.json +112 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Creates a default appender function for the current environment.
3
+ * Uses process.stdout.write in Node.js and console.log in browsers.
4
+ * @returns Appender function that writes text to the output destination
5
+ */
6
+ export function getDefaultAppender() {
7
+ // Check if we're in Node.js environment with stdout
8
+ if (typeof process !== 'undefined' && process.stdout?.write) {
9
+ return (text) => process.stdout.write(text);
10
+ }
11
+ // Fall back to console.log for browser environment
12
+ return (text) => console.log(text);
13
+ }
14
+ /**
15
+ * Default implementation of the Printer interface.
16
+ * Outputs text, reasoning, and tool execution activity to the configured appender.
17
+ */
18
+ export class AgentPrinter {
19
+ _appender;
20
+ _inReasoningBlock = false;
21
+ _toolCount = 0;
22
+ _needReasoningIndent = false;
23
+ /**
24
+ * Creates a new AgentPrinter.
25
+ * @param appender - Function that writes text to the output destination
26
+ */
27
+ constructor(appender) {
28
+ this._appender = appender;
29
+ }
30
+ /**
31
+ * Write content to the output destination.
32
+ * @param content - The content to write
33
+ */
34
+ write(content) {
35
+ this._appender(content);
36
+ }
37
+ /**
38
+ * Process a streaming event from the agent.
39
+ * Handles text deltas, reasoning content, and tool execution events.
40
+ * @param event - The event to process
41
+ */
42
+ processEvent(event) {
43
+ switch (event.type) {
44
+ case 'modelContentBlockDeltaEvent':
45
+ this.handleContentBlockDelta(event);
46
+ break;
47
+ case 'modelContentBlockStartEvent':
48
+ this.handleContentBlockStart(event);
49
+ break;
50
+ case 'modelContentBlockStopEvent':
51
+ this.handleContentBlockStop();
52
+ break;
53
+ case 'toolResultBlock':
54
+ this.handleToolResult(event);
55
+ break;
56
+ // Ignore other event types
57
+ default:
58
+ break;
59
+ }
60
+ }
61
+ /**
62
+ * Handle content block delta events (text or reasoning).
63
+ */
64
+ handleContentBlockDelta(event) {
65
+ const { delta } = event;
66
+ if (delta.type === 'textDelta') {
67
+ // Output text immediately
68
+ if (delta.text && delta.text.length > 0) {
69
+ this.write(delta.text);
70
+ }
71
+ }
72
+ else if (delta.type === 'reasoningContentDelta') {
73
+ // Start reasoning block if not already in one
74
+ if (!this._inReasoningBlock) {
75
+ this._inReasoningBlock = true;
76
+ this._needReasoningIndent = true;
77
+ this.write('\n💭 Reasoning:\n');
78
+ }
79
+ // Stream reasoning text with proper indentation
80
+ if (delta.text && delta.text.length > 0) {
81
+ this.writeReasoningText(delta.text);
82
+ }
83
+ }
84
+ // Ignore toolUseInputDelta and other delta types
85
+ }
86
+ /**
87
+ * Write reasoning text with proper indentation after newlines.
88
+ */
89
+ writeReasoningText(text) {
90
+ let output = '';
91
+ for (let i = 0; i < text.length; i++) {
92
+ const char = text[i];
93
+ // Add indentation if needed (at start or after newline)
94
+ if (this._needReasoningIndent && char !== '\n') {
95
+ output += ' ';
96
+ this._needReasoningIndent = false;
97
+ }
98
+ output += char;
99
+ // Mark that we need indentation after a newline
100
+ if (char === '\n') {
101
+ this._needReasoningIndent = true;
102
+ }
103
+ }
104
+ this.write(output);
105
+ }
106
+ /**
107
+ * Handle content block start events.
108
+ * Detects tool use starts.
109
+ */
110
+ handleContentBlockStart(event) {
111
+ if (event.start?.type === 'toolUseStart') {
112
+ // Tool execution starting
113
+ this._toolCount++;
114
+ this.write(`\n🔧 Tool #${this._toolCount}: ${event.start.name}\n`);
115
+ }
116
+ // Don't assume reasoning blocks on contentBlockStart - wait for reasoningContentDelta
117
+ }
118
+ /**
119
+ * Handle content block stop events.
120
+ * Closes reasoning blocks if we were in one.
121
+ */
122
+ handleContentBlockStop() {
123
+ if (this._inReasoningBlock) {
124
+ // End reasoning block with a newline if we didn't just write one
125
+ if (!this._needReasoningIndent) {
126
+ this.write('\n');
127
+ }
128
+ this._inReasoningBlock = false;
129
+ this._needReasoningIndent = false;
130
+ }
131
+ }
132
+ /**
133
+ * Handle tool result events.
134
+ * Outputs completion status.
135
+ */
136
+ handleToolResult(event) {
137
+ if (event.status === 'success') {
138
+ this.write('✓ Tool completed\n');
139
+ }
140
+ else if (event.status === 'error') {
141
+ this.write('✗ Tool failed\n');
142
+ }
143
+ }
144
+ }
145
+ //# sourceMappingURL=printer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printer.js","sourceRoot":"","sources":["../../../src/agent/printer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ import { type JSONValue } from '../types/json.js';
2
+ /**
3
+ * Agent state provides key-value storage outside conversation context.
4
+ * State is not passed to the model during inference but is accessible
5
+ * by tools (via ToolContext) and application logic.
6
+ *
7
+ * All values are deep copied on get/set operations to prevent reference mutations.
8
+ * Values must be JSON serializable.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const state = new AgentState({ userId: 'user-123' })
13
+ * state.set('sessionId', 'session-456')
14
+ * const userId = state.get('userId') // 'user-123'
15
+ * ```
16
+ */
17
+ export declare class AgentState {
18
+ private _state;
19
+ /**
20
+ * Creates a new AgentState instance.
21
+ *
22
+ * @param initialState - Optional initial state values
23
+ * @throws Error if initialState is not JSON serializable
24
+ */
25
+ constructor(initialState?: Record<string, JSONValue>);
26
+ /**
27
+ * Get a state value by key with optional type-safe property lookup.
28
+ * Returns a deep copy to prevent mutations.
29
+ *
30
+ * @typeParam TState - The complete state interface type
31
+ * @typeParam K - The property key (inferred from argument)
32
+ * @param key - Key to retrieve specific value
33
+ * @returns The value for the key, or undefined if key doesn't exist
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * // Typed usage
38
+ * const user = state.get<AppState>('user') // { name: string; age: number } | undefined
39
+ *
40
+ * // Untyped usage
41
+ * const value = state.get('someKey') // JSONValue | undefined
42
+ * ```
43
+ */
44
+ get<TState, K extends keyof TState = keyof TState>(key: K): TState[K] | undefined;
45
+ get(key: string): JSONValue | undefined;
46
+ /**
47
+ * Set a state value with optional type-safe property validation.
48
+ * Validates JSON serializability and stores a deep copy.
49
+ *
50
+ * @typeParam TState - The complete state interface type
51
+ * @typeParam K - The property key (inferred from argument)
52
+ * @param key - The key to set
53
+ * @param value - The value to store (must be JSON serializable)
54
+ * @throws Error if value is not JSON serializable
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // Typed usage
59
+ * state.set<AppState>('user', { name: 'Alice', age: 25 })
60
+ *
61
+ * // Untyped usage
62
+ * state.set('someKey', { any: 'value' })
63
+ * ```
64
+ */
65
+ set<TState, K extends keyof TState = keyof TState>(key: K, value: TState[K]): void;
66
+ set(key: string, value: unknown): void;
67
+ /**
68
+ * Delete a state value by key with optional type-safe property validation.
69
+ *
70
+ * @typeParam TState - The complete state interface type
71
+ * @typeParam K - The property key (inferred from argument)
72
+ * @param key - The key to delete
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * // Typed usage
77
+ * state.delete<AppState>('user')
78
+ *
79
+ * // Untyped usage
80
+ * state.delete('someKey')
81
+ * ```
82
+ */
83
+ delete<TState, K extends keyof TState = keyof TState>(key: K): void;
84
+ delete(key: string): void;
85
+ /**
86
+ * Clear all state values.
87
+ */
88
+ clear(): void;
89
+ /**
90
+ * Get a copy of all state as an object.
91
+ *
92
+ * @returns Deep copy of all state
93
+ */
94
+ getAll(): Record<string, JSONValue>;
95
+ /**
96
+ * Get all state keys.
97
+ *
98
+ * @returns Array of state keys
99
+ */
100
+ keys(): string[];
101
+ }
102
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/agent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEnF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA2B;IAEzC;;;;;OAKG;gBACS,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAQpD;;;;;;;;;;;;;;;;;OAiBG;IACH,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS;IACjF,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAevC;;;;;;;;;;;;;;;;;;OAkBG;IACH,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAClF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKtC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IACnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAInC;;;;OAIG;IACH,IAAI,IAAI,MAAM,EAAE;CAGjB"}
@@ -0,0 +1,73 @@
1
+ import { deepCopy, deepCopyWithValidation } from '../types/json.js';
2
+ /**
3
+ * Agent state provides key-value storage outside conversation context.
4
+ * State is not passed to the model during inference but is accessible
5
+ * by tools (via ToolContext) and application logic.
6
+ *
7
+ * All values are deep copied on get/set operations to prevent reference mutations.
8
+ * Values must be JSON serializable.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const state = new AgentState({ userId: 'user-123' })
13
+ * state.set('sessionId', 'session-456')
14
+ * const userId = state.get('userId') // 'user-123'
15
+ * ```
16
+ */
17
+ export class AgentState {
18
+ _state;
19
+ /**
20
+ * Creates a new AgentState instance.
21
+ *
22
+ * @param initialState - Optional initial state values
23
+ * @throws Error if initialState is not JSON serializable
24
+ */
25
+ constructor(initialState) {
26
+ if (initialState !== undefined) {
27
+ this._state = deepCopyWithValidation(initialState, 'initialState');
28
+ }
29
+ else {
30
+ this._state = {};
31
+ }
32
+ }
33
+ get(key) {
34
+ if (key == null) {
35
+ throw new Error('key is required');
36
+ }
37
+ const value = this._state[key];
38
+ if (value === undefined) {
39
+ return undefined;
40
+ }
41
+ // Return deep copy to prevent mutations
42
+ return deepCopy(value);
43
+ }
44
+ set(key, value) {
45
+ this._state[key] = deepCopyWithValidation(value, `value for key "${key}"`);
46
+ }
47
+ delete(key) {
48
+ delete this._state[key];
49
+ }
50
+ /**
51
+ * Clear all state values.
52
+ */
53
+ clear() {
54
+ this._state = {};
55
+ }
56
+ /**
57
+ * Get a copy of all state as an object.
58
+ *
59
+ * @returns Deep copy of all state
60
+ */
61
+ getAll() {
62
+ return deepCopy(this._state);
63
+ }
64
+ /**
65
+ * Get all state keys.
66
+ *
67
+ * @returns Array of state keys
68
+ */
69
+ keys() {
70
+ return Object.keys(this._state);
71
+ }
72
+ }
73
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/agent/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAkB,MAAM,kBAAkB,CAAA;AAEnF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,UAAU;IACb,MAAM,CAA2B;IAEzC;;;;;OAKG;IACH,YAAY,YAAwC;QAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAA8B,CAAA;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAsBD,GAAG,CAAC,GAAW;QACb,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,wCAAwC;QACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IAuBD,GAAG,CAAC,GAAW,EAAE,KAAc;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,CAAA;IAC5E,CAAC;IAoBD,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;IAClB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAA8B,CAAA;IAC3D,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;CACF"}
@@ -0,0 +1,91 @@
1
+ import type { ModelStreamEvent } from '../models/streaming.js';
2
+ import { ToolStreamEvent } from '../tools/tool.js';
3
+ import type { ContentBlock, Message } from '../types/messages.js';
4
+ /**
5
+ * Union type representing all possible streaming events from an agent.
6
+ * This includes model events, tool events, and agent-specific lifecycle events.
7
+ *
8
+ * This is a discriminated union where each event has a unique type field,
9
+ * allowing for type-safe event handling using switch statements.
10
+ */
11
+ export type AgentStreamEvent = ModelStreamEvent | ContentBlock | ToolStreamEvent | BeforeModelEvent | AfterModelEvent | BeforeToolsEvent | AfterToolsEvent | BeforeInvocationEvent | AfterInvocationEvent;
12
+ /**
13
+ * Event emitted before invoking the model provider.
14
+ */
15
+ export interface BeforeModelEvent {
16
+ /**
17
+ * Discriminator for before model events.
18
+ */
19
+ type: 'beforeModelEvent';
20
+ /**
21
+ * The messages that will be sent to the model.
22
+ */
23
+ messages: Message[];
24
+ }
25
+ /**
26
+ * Event emitted after the model provider completes.
27
+ */
28
+ export interface AfterModelEvent {
29
+ /**
30
+ * Discriminator for after model events.
31
+ */
32
+ type: 'afterModelEvent';
33
+ /**
34
+ * The assistant message returned by the model.
35
+ */
36
+ message: Message;
37
+ /**
38
+ * The stop reason from the model response.
39
+ */
40
+ stopReason: string;
41
+ }
42
+ /**
43
+ * Event emitted before executing tools.
44
+ */
45
+ export interface BeforeToolsEvent {
46
+ /**
47
+ * Discriminator for before tools events.
48
+ */
49
+ type: 'beforeToolsEvent';
50
+ /**
51
+ * The assistant message containing tool use blocks.
52
+ */
53
+ message: Message;
54
+ }
55
+ /**
56
+ * Event emitted after all tools complete execution.
57
+ */
58
+ export interface AfterToolsEvent {
59
+ /**
60
+ * Discriminator for after tools events.
61
+ */
62
+ type: 'afterToolsEvent';
63
+ /**
64
+ * The user message containing tool results that will be added to the message array.
65
+ */
66
+ message: Message;
67
+ }
68
+ /**
69
+ * Event emitted at the start of the agent loop (before any iterations).
70
+ */
71
+ export interface BeforeInvocationEvent {
72
+ /**
73
+ * Discriminator for before invocation events.
74
+ */
75
+ type: 'beforeInvocationEvent';
76
+ }
77
+ /**
78
+ * Event emitted at the end of the agent loop (after all iterations complete).
79
+ */
80
+ export interface AfterInvocationEvent {
81
+ /**
82
+ * Discriminator for after invocation events.
83
+ */
84
+ type: 'afterInvocationEvent';
85
+ /**
86
+ * Optional error that caused the loop to terminate.
87
+ * Present if the loop is completing due to an exception.
88
+ */
89
+ error?: Error;
90
+ }
91
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../../src/agent/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,qBAAqB,GACrB,oBAAoB,CAAA;AAExB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB;;OAEG;IACH,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,kBAAkB,CAAA;IAExB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAA;IAEvB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,uBAAuB,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,sBAAsB,CAAA;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd"}
@@ -0,0 +1,2 @@
1
+ import { ToolStreamEvent } from '../tools/tool.js';
2
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/agent/streaming.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conversation-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/conversation-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ConversationManager } from '../conversation-manager.js';
3
+ describe('ConversationManager', () => {
4
+ // ConversationManager is an abstract base class
5
+ // Specific implementations are tested in their own test files
6
+ it('is an abstract class', () => {
7
+ expect(ConversationManager).toBeDefined();
8
+ });
9
+ });
10
+ //# sourceMappingURL=conversation-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-manager.test.js","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/conversation-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,gDAAgD;IAChD,8DAA8D;IAE9D,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=null-conversation-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/null-conversation-manager.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { NullConversationManager } from '../null-conversation-manager.js';
3
+ import { Message, TextBlock } from '../../index.js';
4
+ import { HookRegistryImplementation } from '../../hooks/registry.js';
5
+ import { AfterInvocationEvent, AfterModelCallEvent } from '../../hooks/events.js';
6
+ import { ContextWindowOverflowError } from '../../errors.js';
7
+ import { createMockAgent } from '../../__fixtures__/agent-helpers.js';
8
+ describe('NullConversationManager', () => {
9
+ describe('behavior', () => {
10
+ it('does not modify conversation history', async () => {
11
+ const manager = new NullConversationManager();
12
+ const messages = [
13
+ new Message({ role: 'user', content: [new TextBlock('Hello')] }),
14
+ new Message({ role: 'assistant', content: [new TextBlock('Hi there')] }),
15
+ ];
16
+ const mockAgent = createMockAgent({ messages });
17
+ const registry = new HookRegistryImplementation();
18
+ manager.registerCallbacks(registry);
19
+ await registry.invokeCallbacks(new AfterInvocationEvent({ agent: mockAgent }));
20
+ expect(mockAgent.messages).toHaveLength(2);
21
+ expect(mockAgent.messages[0].content[0]).toEqual({ type: 'textBlock', text: 'Hello' });
22
+ expect(mockAgent.messages[1].content[0]).toEqual({ type: 'textBlock', text: 'Hi there' });
23
+ });
24
+ it('does not set retryModelCall on context overflow', async () => {
25
+ const manager = new NullConversationManager();
26
+ const mockAgent = createMockAgent();
27
+ const error = new ContextWindowOverflowError('Context overflow');
28
+ const registry = new HookRegistryImplementation();
29
+ manager.registerCallbacks(registry);
30
+ const event = await registry.invokeCallbacks(new AfterModelCallEvent({ agent: mockAgent, error }));
31
+ expect(event.retryModelCall).toBeUndefined();
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=null-conversation-manager.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null-conversation-manager.test.js","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/null-conversation-manager.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AACzE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAErE,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAC7C,MAAM,QAAQ,GAAG;gBACf,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAChE,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;aACzE,CAAA;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE/C,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAA;YACjD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAEnC,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;YAE9E,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YACvF,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAC5F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,OAAO,GAAG,IAAI,uBAAuB,EAAE,CAAA;YAC7C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;YACnC,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,kBAAkB,CAAC,CAAA;YAEhE,MAAM,QAAQ,GAAG,IAAI,0BAA0B,EAAE,CAAA;YACjD,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;YAEnC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAElG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sliding-window-conversation-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sliding-window-conversation-manager.test.d.ts","sourceRoot":"","sources":["../../../../src/conversation-manager/__tests__/sliding-window-conversation-manager.test.ts"],"names":[],"mappings":""}