kagent-ts 0.1.4 → 0.1.5

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 (341) hide show
  1. package/LICENSE +68 -21
  2. package/README.md +27 -371
  3. package/dist/compression/progressive-compressor.d.ts +66 -0
  4. package/dist/compression/progressive-compressor.d.ts.map +1 -0
  5. package/dist/compression/progressive-compressor.js +367 -0
  6. package/dist/compression/progressive-compressor.js.map +1 -0
  7. package/dist/compression/types.d.ts +1 -5
  8. package/dist/compression/types.d.ts.map +1 -1
  9. package/dist/context/context-manager.d.ts +34 -15
  10. package/dist/context/context-manager.d.ts.map +1 -1
  11. package/dist/context/context-manager.js +78 -28
  12. package/dist/context/context-manager.js.map +1 -1
  13. package/dist/context/types.d.ts +20 -4
  14. package/dist/context/types.d.ts.map +1 -1
  15. package/dist/core/agent.d.ts +354 -25
  16. package/dist/core/agent.d.ts.map +1 -1
  17. package/dist/core/agent.js +646 -64
  18. package/dist/core/agent.js.map +1 -1
  19. package/dist/core/fusion-agent.d.ts +207 -0
  20. package/dist/core/fusion-agent.d.ts.map +1 -0
  21. package/dist/core/fusion-agent.js +769 -0
  22. package/dist/core/fusion-agent.js.map +1 -0
  23. package/dist/core/hooks.d.ts +19 -7
  24. package/dist/core/hooks.d.ts.map +1 -1
  25. package/dist/core/plan-solve-agent.d.ts +1 -15
  26. package/dist/core/plan-solve-agent.d.ts.map +1 -1
  27. package/dist/core/plan-solve-agent.js +142 -117
  28. package/dist/core/plan-solve-agent.js.map +1 -1
  29. package/dist/core/react-agent.d.ts +0 -13
  30. package/dist/core/react-agent.d.ts.map +1 -1
  31. package/dist/core/react-agent.js +127 -102
  32. package/dist/core/react-agent.js.map +1 -1
  33. package/dist/core/response-schema.d.ts +65 -0
  34. package/dist/core/response-schema.d.ts.map +1 -1
  35. package/dist/core/response-schema.js +174 -1
  36. package/dist/core/response-schema.js.map +1 -1
  37. package/dist/core/system-prompts.d.ts +27 -0
  38. package/dist/core/system-prompts.d.ts.map +1 -0
  39. package/dist/core/system-prompts.js +112 -0
  40. package/dist/core/system-prompts.js.map +1 -0
  41. package/dist/eval/benchmark.d.ts +81 -0
  42. package/dist/eval/benchmark.d.ts.map +1 -0
  43. package/dist/eval/benchmark.js +292 -0
  44. package/dist/eval/benchmark.js.map +1 -0
  45. package/dist/eval/eval-runner.d.ts +79 -0
  46. package/dist/eval/eval-runner.d.ts.map +1 -0
  47. package/dist/eval/eval-runner.js +252 -0
  48. package/dist/eval/eval-runner.js.map +1 -0
  49. package/dist/eval/index.d.ts +7 -0
  50. package/dist/eval/index.d.ts.map +1 -0
  51. package/dist/eval/index.js +13 -0
  52. package/dist/eval/index.js.map +1 -0
  53. package/dist/eval/tool-call-evaluator.d.ts +72 -0
  54. package/dist/eval/tool-call-evaluator.d.ts.map +1 -0
  55. package/dist/eval/tool-call-evaluator.js +265 -0
  56. package/dist/eval/tool-call-evaluator.js.map +1 -0
  57. package/dist/eval/types.d.ts +219 -0
  58. package/dist/eval/types.d.ts.map +1 -0
  59. package/dist/eval/types.js +3 -0
  60. package/dist/eval/types.js.map +1 -0
  61. package/dist/index.d.ts +58 -14
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +116 -8
  64. package/dist/index.js.map +1 -1
  65. package/dist/llm/anthropic-provider.d.ts +141 -0
  66. package/dist/llm/anthropic-provider.d.ts.map +1 -0
  67. package/dist/llm/anthropic-provider.js +486 -0
  68. package/dist/llm/anthropic-provider.js.map +1 -0
  69. package/dist/llm/errors.d.ts +26 -0
  70. package/dist/llm/errors.d.ts.map +1 -0
  71. package/dist/llm/errors.js +19 -0
  72. package/dist/llm/errors.js.map +1 -0
  73. package/dist/llm/factory.d.ts +73 -0
  74. package/dist/llm/factory.d.ts.map +1 -0
  75. package/dist/llm/factory.js +77 -0
  76. package/dist/llm/factory.js.map +1 -0
  77. package/dist/llm/fallback-provider.d.ts +47 -0
  78. package/dist/llm/fallback-provider.d.ts.map +1 -0
  79. package/dist/llm/fallback-provider.js +91 -0
  80. package/dist/llm/fallback-provider.js.map +1 -0
  81. package/dist/llm/interface.d.ts +54 -11
  82. package/dist/llm/interface.d.ts.map +1 -1
  83. package/dist/llm/interface.js +34 -0
  84. package/dist/llm/interface.js.map +1 -1
  85. package/dist/llm/model-router.d.ts +126 -0
  86. package/dist/llm/model-router.d.ts.map +1 -0
  87. package/dist/llm/model-router.js +178 -0
  88. package/dist/llm/model-router.js.map +1 -0
  89. package/dist/llm/openai-provider.d.ts +8 -32
  90. package/dist/llm/openai-provider.d.ts.map +1 -1
  91. package/dist/llm/openai-provider.js +27 -60
  92. package/dist/llm/openai-provider.js.map +1 -1
  93. package/dist/llm/rate-limiter.d.ts +41 -0
  94. package/dist/llm/rate-limiter.d.ts.map +1 -0
  95. package/dist/llm/rate-limiter.js +93 -0
  96. package/dist/llm/rate-limiter.js.map +1 -0
  97. package/dist/llm/retry.d.ts +26 -0
  98. package/dist/llm/retry.d.ts.map +1 -0
  99. package/dist/llm/retry.js +44 -0
  100. package/dist/llm/retry.js.map +1 -0
  101. package/dist/llm/token-budget.d.ts +97 -0
  102. package/dist/llm/token-budget.d.ts.map +1 -0
  103. package/dist/llm/token-budget.js +115 -0
  104. package/dist/llm/token-budget.js.map +1 -0
  105. package/dist/logging/index.d.ts +2 -0
  106. package/dist/logging/index.d.ts.map +1 -0
  107. package/dist/logging/index.js +7 -0
  108. package/dist/logging/index.js.map +1 -0
  109. package/dist/logging/logger.d.ts +38 -0
  110. package/dist/logging/logger.d.ts.map +1 -0
  111. package/dist/logging/logger.js +34 -0
  112. package/dist/logging/logger.js.map +1 -0
  113. package/dist/mcp/mcp-client-manager.d.ts +10 -2
  114. package/dist/mcp/mcp-client-manager.d.ts.map +1 -1
  115. package/dist/mcp/mcp-client-manager.js +20 -9
  116. package/dist/mcp/mcp-client-manager.js.map +1 -1
  117. package/dist/memory/index.d.ts +3 -0
  118. package/dist/memory/index.d.ts.map +1 -0
  119. package/dist/memory/index.js +6 -0
  120. package/dist/memory/index.js.map +1 -0
  121. package/dist/memory/memory-manager.d.ts +119 -0
  122. package/dist/memory/memory-manager.d.ts.map +1 -0
  123. package/dist/memory/memory-manager.js +334 -0
  124. package/dist/memory/memory-manager.js.map +1 -0
  125. package/dist/messages/types.d.ts +2 -0
  126. package/dist/messages/types.d.ts.map +1 -1
  127. package/dist/orchestrator/index.d.ts +5 -0
  128. package/dist/orchestrator/index.d.ts.map +1 -0
  129. package/dist/orchestrator/index.js +13 -0
  130. package/dist/orchestrator/index.js.map +1 -0
  131. package/dist/orchestrator/json-extractor.d.ts +18 -0
  132. package/dist/orchestrator/json-extractor.d.ts.map +1 -0
  133. package/dist/orchestrator/json-extractor.js +111 -0
  134. package/dist/orchestrator/json-extractor.js.map +1 -0
  135. package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
  136. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
  137. package/dist/orchestrator/orchestrator-agent.js +675 -0
  138. package/dist/orchestrator/orchestrator-agent.js.map +1 -0
  139. package/dist/orchestrator/orchestrator-response.d.ts +40 -0
  140. package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
  141. package/dist/orchestrator/orchestrator-response.js +275 -0
  142. package/dist/orchestrator/orchestrator-response.js.map +1 -0
  143. package/dist/orchestrator/orchestrator-types.d.ts +116 -0
  144. package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
  145. package/dist/orchestrator/orchestrator-types.js +3 -0
  146. package/dist/orchestrator/orchestrator-types.js.map +1 -0
  147. package/dist/preferences/preference-manager.d.ts +8 -3
  148. package/dist/preferences/preference-manager.d.ts.map +1 -1
  149. package/dist/preferences/preference-manager.js +17 -4
  150. package/dist/preferences/preference-manager.js.map +1 -1
  151. package/dist/rag/chroma-store.d.ts +52 -0
  152. package/dist/rag/chroma-store.d.ts.map +1 -0
  153. package/dist/rag/chroma-store.js +110 -0
  154. package/dist/rag/chroma-store.js.map +1 -0
  155. package/dist/rag/document-loader.d.ts +21 -0
  156. package/dist/rag/document-loader.d.ts.map +1 -0
  157. package/dist/rag/document-loader.js +129 -0
  158. package/dist/rag/document-loader.js.map +1 -0
  159. package/dist/rag/embedding-provider.d.ts +36 -0
  160. package/dist/rag/embedding-provider.d.ts.map +1 -0
  161. package/dist/rag/embedding-provider.js +74 -0
  162. package/dist/rag/embedding-provider.js.map +1 -0
  163. package/dist/rag/index.d.ts +17 -0
  164. package/dist/rag/index.d.ts.map +1 -0
  165. package/dist/rag/index.js +27 -0
  166. package/dist/rag/index.js.map +1 -0
  167. package/dist/rag/keyword-index.d.ts +53 -0
  168. package/dist/rag/keyword-index.d.ts.map +1 -0
  169. package/dist/rag/keyword-index.js +161 -0
  170. package/dist/rag/keyword-index.js.map +1 -0
  171. package/dist/rag/llm-reranker.d.ts +36 -0
  172. package/dist/rag/llm-reranker.d.ts.map +1 -0
  173. package/dist/rag/llm-reranker.js +95 -0
  174. package/dist/rag/llm-reranker.js.map +1 -0
  175. package/dist/rag/rag-manager.d.ts +54 -0
  176. package/dist/rag/rag-manager.d.ts.map +1 -0
  177. package/dist/rag/rag-manager.js +179 -0
  178. package/dist/rag/rag-manager.js.map +1 -0
  179. package/dist/rag/rag-types.d.ts +143 -0
  180. package/dist/rag/rag-types.d.ts.map +1 -0
  181. package/dist/rag/rag-types.js +9 -0
  182. package/dist/rag/rag-types.js.map +1 -0
  183. package/dist/rag/rrf.d.ts +47 -0
  184. package/dist/rag/rrf.d.ts.map +1 -0
  185. package/dist/rag/rrf.js +70 -0
  186. package/dist/rag/rrf.js.map +1 -0
  187. package/dist/rag/search-knowledge.d.ts +24 -0
  188. package/dist/rag/search-knowledge.d.ts.map +1 -0
  189. package/dist/rag/search-knowledge.js +86 -0
  190. package/dist/rag/search-knowledge.js.map +1 -0
  191. package/dist/rag/text-splitter.d.ts +25 -0
  192. package/dist/rag/text-splitter.d.ts.map +1 -0
  193. package/dist/rag/text-splitter.js +136 -0
  194. package/dist/rag/text-splitter.js.map +1 -0
  195. package/dist/rag/vector-store.d.ts +34 -0
  196. package/dist/rag/vector-store.d.ts.map +1 -0
  197. package/dist/rag/vector-store.js +73 -0
  198. package/dist/rag/vector-store.js.map +1 -0
  199. package/dist/reflection/error-notebook.d.ts +125 -0
  200. package/dist/reflection/error-notebook.d.ts.map +1 -0
  201. package/dist/reflection/error-notebook.js +368 -0
  202. package/dist/reflection/error-notebook.js.map +1 -0
  203. package/dist/reflection/index.d.ts +8 -0
  204. package/dist/reflection/index.d.ts.map +1 -0
  205. package/dist/reflection/index.js +12 -0
  206. package/dist/reflection/index.js.map +1 -0
  207. package/dist/reflection/memory-reflector.d.ts +97 -0
  208. package/dist/reflection/memory-reflector.d.ts.map +1 -0
  209. package/dist/reflection/memory-reflector.js +215 -0
  210. package/dist/reflection/memory-reflector.js.map +1 -0
  211. package/dist/reflection/reflection-agent.d.ts +105 -0
  212. package/dist/reflection/reflection-agent.d.ts.map +1 -0
  213. package/dist/reflection/reflection-agent.js +234 -0
  214. package/dist/reflection/reflection-agent.js.map +1 -0
  215. package/dist/reflection/reflection-hook.d.ts +50 -0
  216. package/dist/reflection/reflection-hook.d.ts.map +1 -0
  217. package/dist/reflection/reflection-hook.js +108 -0
  218. package/dist/reflection/reflection-hook.js.map +1 -0
  219. package/dist/rules/project-rules.d.ts +47 -0
  220. package/dist/rules/project-rules.d.ts.map +1 -0
  221. package/dist/rules/project-rules.js +166 -0
  222. package/dist/rules/project-rules.js.map +1 -0
  223. package/dist/security/boundaries.d.ts +81 -0
  224. package/dist/security/boundaries.d.ts.map +1 -0
  225. package/dist/security/boundaries.js +158 -0
  226. package/dist/security/boundaries.js.map +1 -0
  227. package/dist/security/index.d.ts +2 -0
  228. package/dist/security/index.d.ts.map +1 -0
  229. package/dist/security/index.js +11 -0
  230. package/dist/security/index.js.map +1 -0
  231. package/dist/session/session-types.d.ts +25 -4
  232. package/dist/session/session-types.d.ts.map +1 -1
  233. package/dist/skills/file-skill-loader.d.ts +4 -6
  234. package/dist/skills/file-skill-loader.d.ts.map +1 -1
  235. package/dist/skills/file-skill-loader.js +8 -19
  236. package/dist/skills/file-skill-loader.js.map +1 -1
  237. package/dist/skills/index.d.ts +1 -1
  238. package/dist/skills/index.d.ts.map +1 -1
  239. package/dist/skills/index.js +1 -2
  240. package/dist/skills/index.js.map +1 -1
  241. package/dist/skills/skill-manager.d.ts +18 -8
  242. package/dist/skills/skill-manager.d.ts.map +1 -1
  243. package/dist/skills/skill-manager.js +58 -36
  244. package/dist/skills/skill-manager.js.map +1 -1
  245. package/dist/skills/types.d.ts +3 -8
  246. package/dist/skills/types.d.ts.map +1 -1
  247. package/dist/subagent/index.d.ts +4 -0
  248. package/dist/subagent/index.d.ts.map +1 -0
  249. package/dist/subagent/index.js +8 -0
  250. package/dist/subagent/index.js.map +1 -0
  251. package/dist/subagent/subagent-loader.d.ts +53 -0
  252. package/dist/subagent/subagent-loader.d.ts.map +1 -0
  253. package/dist/subagent/subagent-loader.js +155 -0
  254. package/dist/subagent/subagent-loader.js.map +1 -0
  255. package/dist/subagent/subagent-manager.d.ts +161 -0
  256. package/dist/subagent/subagent-manager.d.ts.map +1 -0
  257. package/dist/subagent/subagent-manager.js +468 -0
  258. package/dist/subagent/subagent-manager.js.map +1 -0
  259. package/dist/subagent/subagent-types.d.ts +77 -0
  260. package/dist/subagent/subagent-types.d.ts.map +1 -0
  261. package/dist/subagent/subagent-types.js +3 -0
  262. package/dist/subagent/subagent-types.js.map +1 -0
  263. package/dist/tools/builtin/bash.d.ts +3 -0
  264. package/dist/tools/builtin/bash.d.ts.map +1 -0
  265. package/dist/tools/builtin/bash.js +87 -0
  266. package/dist/tools/builtin/bash.js.map +1 -0
  267. package/dist/tools/builtin/edit-file.d.ts.map +1 -1
  268. package/dist/tools/builtin/edit-file.js +1 -0
  269. package/dist/tools/builtin/edit-file.js.map +1 -1
  270. package/dist/tools/builtin/index.d.ts +14 -0
  271. package/dist/tools/builtin/index.d.ts.map +1 -1
  272. package/dist/tools/builtin/index.js +45 -1
  273. package/dist/tools/builtin/index.js.map +1 -1
  274. package/dist/tools/builtin/list-errors.d.ts +7 -0
  275. package/dist/tools/builtin/list-errors.d.ts.map +1 -0
  276. package/dist/tools/builtin/list-errors.js +64 -0
  277. package/dist/tools/builtin/list-errors.js.map +1 -0
  278. package/dist/tools/builtin/list-subagents.d.ts +7 -0
  279. package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
  280. package/dist/tools/builtin/list-subagents.js +21 -0
  281. package/dist/tools/builtin/list-subagents.js.map +1 -0
  282. package/dist/tools/builtin/recall.d.ts +11 -0
  283. package/dist/tools/builtin/recall.d.ts.map +1 -0
  284. package/dist/tools/builtin/recall.js +60 -0
  285. package/dist/tools/builtin/recall.js.map +1 -0
  286. package/dist/tools/builtin/remember.d.ts +12 -0
  287. package/dist/tools/builtin/remember.d.ts.map +1 -0
  288. package/dist/tools/builtin/remember.js +72 -0
  289. package/dist/tools/builtin/remember.js.map +1 -0
  290. package/dist/tools/builtin/skill.d.ts +14 -0
  291. package/dist/tools/builtin/skill.d.ts.map +1 -0
  292. package/dist/tools/builtin/skill.js +71 -0
  293. package/dist/tools/builtin/skill.js.map +1 -0
  294. package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
  295. package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
  296. package/dist/tools/builtin/spawn-subagent.js +43 -0
  297. package/dist/tools/builtin/spawn-subagent.js.map +1 -0
  298. package/dist/tools/builtin/web-fetch.d.ts +3 -0
  299. package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
  300. package/dist/tools/builtin/web-fetch.js +101 -0
  301. package/dist/tools/builtin/web-fetch.js.map +1 -0
  302. package/dist/tools/builtin/write-file.d.ts.map +1 -1
  303. package/dist/tools/builtin/write-file.js +1 -0
  304. package/dist/tools/builtin/write-file.js.map +1 -1
  305. package/dist/tools/circuit-breaker.d.ts +19 -10
  306. package/dist/tools/circuit-breaker.d.ts.map +1 -1
  307. package/dist/tools/circuit-breaker.js +22 -11
  308. package/dist/tools/circuit-breaker.js.map +1 -1
  309. package/dist/tools/error-tracker.d.ts +28 -44
  310. package/dist/tools/error-tracker.d.ts.map +1 -1
  311. package/dist/tools/error-tracker.js +39 -156
  312. package/dist/tools/error-tracker.js.map +1 -1
  313. package/dist/tools/tool-filter.d.ts +70 -0
  314. package/dist/tools/tool-filter.d.ts.map +1 -0
  315. package/dist/tools/tool-filter.js +92 -0
  316. package/dist/tools/tool-filter.js.map +1 -0
  317. package/dist/tools/tool-output-truncator.d.ts +36 -0
  318. package/dist/tools/tool-output-truncator.d.ts.map +1 -0
  319. package/dist/tools/tool-output-truncator.js +117 -0
  320. package/dist/tools/tool-output-truncator.js.map +1 -0
  321. package/dist/tools/tool-registry.d.ts +25 -9
  322. package/dist/tools/tool-registry.d.ts.map +1 -1
  323. package/dist/tools/tool-registry.js +77 -28
  324. package/dist/tools/tool-registry.js.map +1 -1
  325. package/dist/tools/tool-validator.d.ts +13 -0
  326. package/dist/tools/tool-validator.d.ts.map +1 -0
  327. package/dist/tools/tool-validator.js +116 -0
  328. package/dist/tools/tool-validator.js.map +1 -0
  329. package/dist/tools/types.d.ts +86 -3
  330. package/dist/tools/types.d.ts.map +1 -1
  331. package/dist/tools/types.js +51 -2
  332. package/dist/tools/types.js.map +1 -1
  333. package/dist/trace/trace-logger.d.ts +30 -4
  334. package/dist/trace/trace-logger.d.ts.map +1 -1
  335. package/dist/trace/trace-logger.js +82 -6
  336. package/dist/trace/trace-logger.js.map +1 -1
  337. package/package.json +13 -4
  338. package/dist/compression/sliding-window.d.ts +0 -21
  339. package/dist/compression/sliding-window.d.ts.map +0 -1
  340. package/dist/compression/sliding-window.js +0 -44
  341. package/dist/compression/sliding-window.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/llm/retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAI3E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACzC,oEAAoE;IACpE,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iBAAiB,CAAC;CACtD;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EACrC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC7B,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,CAAC,CAAC,CA+BZ"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withRetry = withRetry;
4
+ const errors_1 = require("./errors");
5
+ // ─── withRetry ──────────────────────────────────────────────────────────────
6
+ /**
7
+ * Wrap an async operation with network-error retry logic.
8
+ *
9
+ * Retry strategy:
10
+ * - The `callbacks.isRetryable` predicate decides which errors are retried.
11
+ * - Uses exponential backoff with full jitter: delay = base * 2^attempt * random(0.5, 1.0).
12
+ * - Non-retryable errors propagate immediately.
13
+ * - After all retries are exhausted, throws an `LLMNetworkError`.
14
+ *
15
+ * @param fn The async operation to retry.
16
+ * @param config Retry configuration (maxRetries, baseDelayMs, maxDelayMs).
17
+ * @param callbacks Provider-specific error classification callbacks.
18
+ */
19
+ async function withRetry(fn, config, callbacks) {
20
+ const { maxRetries, baseDelayMs, maxDelayMs } = config;
21
+ let lastError;
22
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
23
+ try {
24
+ return await fn();
25
+ }
26
+ catch (error) {
27
+ lastError = error;
28
+ // Non-network errors propagate immediately (e.g., invalid API key, bad request)
29
+ if (!callbacks.isRetryable(error))
30
+ throw error;
31
+ if (attempt >= maxRetries)
32
+ break; // all retries exhausted
33
+ // Exponential backoff with full jitter
34
+ const delay = Math.min(baseDelayMs * Math.pow(2, attempt) * (0.5 + Math.random() * 0.5), maxDelayMs);
35
+ // eslint-disable-next-line @typescript-eslint/no-loop-func
36
+ await new Promise((resolve) => setTimeout(resolve, delay));
37
+ }
38
+ }
39
+ // All retries exhausted — wrap the final error
40
+ const cause = callbacks.classifyError(lastError);
41
+ const message = lastError instanceof Error ? lastError.message : String(lastError);
42
+ throw new errors_1.LLMNetworkError(message, cause);
43
+ }
44
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/llm/retry.ts"],"names":[],"mappings":";;AA8BA,8BAmCC;AAjED,qCAA2E;AAe3E,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,SAAS,CAC7B,EAAqC,EACrC,MAA6B,EAC7B,SAAyB;IAEzB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACvD,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,SAAS,GAAG,KAAK,CAAC;YAElB,gFAAgF;YAChF,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAE/C,IAAI,OAAO,IAAI,UAAU;gBAAE,MAAM,CAAC,wBAAwB;YAE1D,uCAAuC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAChE,UAAU,CACX,CAAC;YAEF,2DAA2D;YAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,OAAO,GACX,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,IAAI,wBAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Token Budget — session-level circuit breaker that stops LLM calls when
3
+ * a cumulative token limit is exceeded.
4
+ *
5
+ * The check runs in the agent loop BEFORE each LLM call (with an estimated
6
+ * input size) and usage is recorded AFTER each successful response (using
7
+ * the actual token counts from the LLM provider).
8
+ */
9
+ export interface TokenBudgetConfig {
10
+ /** Maximum total tokens allowed across all LLM calls in a session (input + output). */
11
+ maxTotalTokens: number;
12
+ /**
13
+ * Warn via the logger when usage exceeds this fraction of the budget.
14
+ * Default: 0.8 (80 %).
15
+ */
16
+ warnThreshold?: number;
17
+ /**
18
+ * Pricing model for cost estimation.
19
+ * Prices are per 1,000 tokens (standard LLM pricing unit).
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * // GPT-4o
24
+ * pricing: { inputPricePer1K: 0.0025, outputPricePer1K: 0.01 }
25
+ * ```
26
+ */
27
+ pricing?: {
28
+ inputPricePer1K: number;
29
+ outputPricePer1K: number;
30
+ };
31
+ }
32
+ export interface TokenBudgetStatus {
33
+ /** Total tokens consumed so far (input + output). */
34
+ totalTokensUsed: number;
35
+ /** Budget ceiling. */
36
+ maxTotalTokens: number;
37
+ /** Tokens remaining before exhaustion. */
38
+ remainingTokens: number;
39
+ /** Whether the budget has been fully exhausted. */
40
+ isExhausted: boolean;
41
+ /** Number of LLM calls tracked. */
42
+ callCount: number;
43
+ }
44
+ /** Cumulative cost breakdown for the current session. */
45
+ export interface TokenBudgetCost {
46
+ inputTokens: number;
47
+ outputTokens: number;
48
+ totalTokens: number;
49
+ inputCost: number;
50
+ outputCost: number;
51
+ totalCost: number;
52
+ }
53
+ export declare class TokenBudget {
54
+ private maxTotalTokens;
55
+ private warnThreshold;
56
+ private pricing?;
57
+ private totalTokensUsed;
58
+ private inputTokensUsed;
59
+ private outputTokensUsed;
60
+ private callCount;
61
+ private warned;
62
+ constructor(config: TokenBudgetConfig);
63
+ /**
64
+ * Record token usage from a completed LLM call.
65
+ * Called after the LLM response is received.
66
+ */
67
+ recordUsage(promptTokens: number, completionTokens: number): void;
68
+ /**
69
+ * Check whether the budget allows another LLM call.
70
+ *
71
+ * @param estimatedInputTokens Estimated tokens in the upcoming request
72
+ * (system prompt + context messages).
73
+ * @returns Status snapshot. Callers should check `isExhausted` before
74
+ * making the LLM call.
75
+ */
76
+ checkBeforeCall(estimatedInputTokens: number): TokenBudgetStatus;
77
+ /**
78
+ * Whether the budget has been warned about (passed `warnThreshold`).
79
+ * Returns true exactly once per threshold crossing — the flag resets
80
+ * after this call so the warning fires only once.
81
+ */
82
+ shouldWarn(): boolean;
83
+ /**
84
+ * Get the cumulative cost of the current session.
85
+ * Returns all zeros if no pricing model was configured.
86
+ */
87
+ getSessionCost(): TokenBudgetCost;
88
+ /**
89
+ * Reset the budget for a new conversation.
90
+ */
91
+ reset(): void;
92
+ /**
93
+ * Get a read-only snapshot of the current budget.
94
+ */
95
+ getStatus(): TokenBudgetStatus;
96
+ }
97
+ //# sourceMappingURL=token-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget.d.ts","sourceRoot":"","sources":["../../src/llm/token-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE;QACR,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,WAAW,EAAE,OAAO,CAAC;IACrB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAwD;IACxE,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,iBAAiB;IAQrC;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAOjE;;;;;;;OAOG;IACH,eAAe,CAAC,oBAAoB,EAAE,MAAM,GAAG,iBAAiB;IAWhE;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAUrB;;;OAGG;IACH,cAAc,IAAI,eAAe;IAkBjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,SAAS,IAAI,iBAAiB;CAS/B"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * Token Budget — session-level circuit breaker that stops LLM calls when
4
+ * a cumulative token limit is exceeded.
5
+ *
6
+ * The check runs in the agent loop BEFORE each LLM call (with an estimated
7
+ * input size) and usage is recorded AFTER each successful response (using
8
+ * the actual token counts from the LLM provider).
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.TokenBudget = void 0;
12
+ // ─── TokenBudget ─────────────────────────────────────────────────────────────
13
+ class TokenBudget {
14
+ maxTotalTokens;
15
+ warnThreshold;
16
+ pricing;
17
+ totalTokensUsed = 0;
18
+ inputTokensUsed = 0;
19
+ outputTokensUsed = 0;
20
+ callCount = 0;
21
+ warned = false;
22
+ constructor(config) {
23
+ this.maxTotalTokens = config.maxTotalTokens;
24
+ this.warnThreshold = config.warnThreshold ?? 0.8;
25
+ this.pricing = config.pricing;
26
+ }
27
+ // ─── Public API ──────────────────────────────────────────────────────────
28
+ /**
29
+ * Record token usage from a completed LLM call.
30
+ * Called after the LLM response is received.
31
+ */
32
+ recordUsage(promptTokens, completionTokens) {
33
+ this.totalTokensUsed += promptTokens + completionTokens;
34
+ this.inputTokensUsed += promptTokens;
35
+ this.outputTokensUsed += completionTokens;
36
+ this.callCount++;
37
+ }
38
+ /**
39
+ * Check whether the budget allows another LLM call.
40
+ *
41
+ * @param estimatedInputTokens Estimated tokens in the upcoming request
42
+ * (system prompt + context messages).
43
+ * @returns Status snapshot. Callers should check `isExhausted` before
44
+ * making the LLM call.
45
+ */
46
+ checkBeforeCall(estimatedInputTokens) {
47
+ const projected = this.totalTokensUsed + estimatedInputTokens;
48
+ return {
49
+ totalTokensUsed: this.totalTokensUsed,
50
+ maxTotalTokens: this.maxTotalTokens,
51
+ remainingTokens: Math.max(0, this.maxTotalTokens - projected),
52
+ isExhausted: projected >= this.maxTotalTokens,
53
+ callCount: this.callCount,
54
+ };
55
+ }
56
+ /**
57
+ * Whether the budget has been warned about (passed `warnThreshold`).
58
+ * Returns true exactly once per threshold crossing — the flag resets
59
+ * after this call so the warning fires only once.
60
+ */
61
+ shouldWarn() {
62
+ if (this.warned)
63
+ return false;
64
+ const ratio = this.totalTokensUsed / this.maxTotalTokens;
65
+ if (ratio >= this.warnThreshold) {
66
+ this.warned = true;
67
+ return true;
68
+ }
69
+ return false;
70
+ }
71
+ /**
72
+ * Get the cumulative cost of the current session.
73
+ * Returns all zeros if no pricing model was configured.
74
+ */
75
+ getSessionCost() {
76
+ const inputCost = this.pricing
77
+ ? Math.round(this.inputTokensUsed / 1000 * this.pricing.inputPricePer1K * 10000) / 10000
78
+ : 0;
79
+ const outputCost = this.pricing
80
+ ? Math.round(this.outputTokensUsed / 1000 * this.pricing.outputPricePer1K * 10000) / 10000
81
+ : 0;
82
+ return {
83
+ inputTokens: this.inputTokensUsed,
84
+ outputTokens: this.outputTokensUsed,
85
+ totalTokens: this.totalTokensUsed,
86
+ inputCost,
87
+ outputCost,
88
+ totalCost: Math.round((inputCost + outputCost) * 10000) / 10000,
89
+ };
90
+ }
91
+ /**
92
+ * Reset the budget for a new conversation.
93
+ */
94
+ reset() {
95
+ this.totalTokensUsed = 0;
96
+ this.inputTokensUsed = 0;
97
+ this.outputTokensUsed = 0;
98
+ this.callCount = 0;
99
+ this.warned = false;
100
+ }
101
+ /**
102
+ * Get a read-only snapshot of the current budget.
103
+ */
104
+ getStatus() {
105
+ return {
106
+ totalTokensUsed: this.totalTokensUsed,
107
+ maxTotalTokens: this.maxTotalTokens,
108
+ remainingTokens: Math.max(0, this.maxTotalTokens - this.totalTokensUsed),
109
+ isExhausted: this.totalTokensUsed >= this.maxTotalTokens,
110
+ callCount: this.callCount,
111
+ };
112
+ }
113
+ }
114
+ exports.TokenBudget = TokenBudget;
115
+ //# sourceMappingURL=token-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget.js","sourceRoot":"","sources":["../../src/llm/token-budget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { Logger, ConsoleLogger, SilentLogger } from "./logger";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SilentLogger = exports.ConsoleLogger = void 0;
4
+ var logger_1 = require("./logger");
5
+ Object.defineProperty(exports, "ConsoleLogger", { enumerable: true, get: function () { return logger_1.ConsoleLogger; } });
6
+ Object.defineProperty(exports, "SilentLogger", { enumerable: true, get: function () { return logger_1.SilentLogger; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+D;AAA9C,uGAAA,aAAa,OAAA;AAAE,sGAAA,YAAY,OAAA"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Structured logger interface for the agent framework.
3
+ *
4
+ * All framework-internal logging goes through this interface so consumers
5
+ * can plug in their own logger (winston, pino, etc.) or silence output
6
+ * entirely for test environments.
7
+ */
8
+ export interface Logger {
9
+ /** Debug-level diagnostic messages (verbose, typically disabled in production). */
10
+ debug(tag: string, message: string, context?: Record<string, unknown>): void;
11
+ /** Informational messages about agent lifecycle and progress. */
12
+ info(tag: string, message: string, context?: Record<string, unknown>): void;
13
+ /** Warnings — non-fatal issues the operator should know about. */
14
+ warn(tag: string, message: string, context?: Record<string, unknown>): void;
15
+ /** Errors — fatal or near-fatal issues requiring attention. */
16
+ error(tag: string, message: string, context?: Record<string, unknown>): void;
17
+ }
18
+ /**
19
+ * Default logger that writes to `console` with the existing `[Tag]` prefix
20
+ * convention. Preserves the exact output format of the pre-logger codebase.
21
+ */
22
+ export declare class ConsoleLogger implements Logger {
23
+ debug(tag: string, message: string, _context?: Record<string, unknown>): void;
24
+ info(tag: string, message: string, _context?: Record<string, unknown>): void;
25
+ warn(tag: string, message: string, _context?: Record<string, unknown>): void;
26
+ error(tag: string, message: string, _context?: Record<string, unknown>): void;
27
+ }
28
+ /**
29
+ * Logger that discards all messages. Use in tests or when you want to
30
+ * suppress all framework output.
31
+ */
32
+ export declare class SilentLogger implements Logger {
33
+ debug(_tag: string, _message: string, _context?: Record<string, unknown>): void;
34
+ info(_tag: string, _message: string, _context?: Record<string, unknown>): void;
35
+ warn(_tag: string, _message: string, _context?: Record<string, unknown>): void;
36
+ error(_tag: string, _message: string, _context?: Record<string, unknown>): void;
37
+ }
38
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logging/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,mFAAmF;IACnF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE7E,iEAAiE;IACjE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE5E,kEAAkE;IAClE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE5E,+DAA+D;IAC/D,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC9E;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7E,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5E,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5E,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG9E;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAC/E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAC9E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAChF"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SilentLogger = exports.ConsoleLogger = void 0;
4
+ /**
5
+ * Default logger that writes to `console` with the existing `[Tag]` prefix
6
+ * convention. Preserves the exact output format of the pre-logger codebase.
7
+ */
8
+ class ConsoleLogger {
9
+ debug(tag, message, _context) {
10
+ console.debug(`[${tag}] ${message}`);
11
+ }
12
+ info(tag, message, _context) {
13
+ console.log(`[${tag}] ${message}`);
14
+ }
15
+ warn(tag, message, _context) {
16
+ console.warn(`[${tag}] ${message}`);
17
+ }
18
+ error(tag, message, _context) {
19
+ console.error(`[${tag}] ${message}`);
20
+ }
21
+ }
22
+ exports.ConsoleLogger = ConsoleLogger;
23
+ /**
24
+ * Logger that discards all messages. Use in tests or when you want to
25
+ * suppress all framework output.
26
+ */
27
+ class SilentLogger {
28
+ debug(_tag, _message, _context) { }
29
+ info(_tag, _message, _context) { }
30
+ warn(_tag, _message, _context) { }
31
+ error(_tag, _message, _context) { }
32
+ }
33
+ exports.SilentLogger = SilentLogger;
34
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logging/logger.ts"],"names":[],"mappings":";;;AAqBA;;;GAGG;AACH,MAAa,aAAa;IACxB,KAAK,CAAC,GAAW,EAAE,OAAe,EAAE,QAAkC;QACpE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,OAAe,EAAE,QAAkC;QACnE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,OAAe,EAAE,QAAkC;QACnE,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,OAAe,EAAE,QAAkC;QACpE,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AAhBD,sCAgBC;AAED;;;GAGG;AACH,MAAa,YAAY;IACvB,KAAK,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAkC,IAAS,CAAC;IAClF,IAAI,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAkC,IAAS,CAAC;IACjF,IAAI,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAkC,IAAS,CAAC;IACjF,KAAK,CAAC,IAAY,EAAE,QAAgB,EAAE,QAAkC,IAAS,CAAC;CACnF;AALD,oCAKC"}
@@ -1,5 +1,6 @@
1
1
  import { ToolRegistry } from "../tools/tool-registry";
2
2
  import { McpServerConfig, McpConnectionStatus, McpConnectionErrorReport } from "./mcp-types";
3
+ import { Logger } from "../logging/logger";
3
4
  /**
4
5
  * Manages connections to MCP (Model Context Protocol) servers.
5
6
  *
@@ -14,13 +15,16 @@ export declare class McpClientManager {
14
15
  private connections;
15
16
  /** The ToolRegistry where adapted tools are registered. */
16
17
  private toolRegistry;
17
- constructor(toolRegistry: ToolRegistry);
18
+ private logger;
19
+ constructor(toolRegistry: ToolRegistry, logger?: Logger);
18
20
  /**
19
21
  * Connect to a single MCP server, discover its tools, and register them
20
22
  * in the ToolRegistry with a `{serverName}_` prefix.
21
23
  *
24
+ * Idempotent — if the server is already connected, this is a no-op.
25
+ *
22
26
  * @throws McpConnectionError if the config is invalid or the
23
- * connection/tool-discovery fails.
27
+ * connection/tool-discovery fails (only for new connections).
24
28
  */
25
29
  connectToServer(serverName: string, config: McpServerConfig): Promise<void>;
26
30
  /**
@@ -38,6 +42,10 @@ export declare class McpClientManager {
38
42
  * Disconnect from all MCP servers and unregister all MCP-provided tools.
39
43
  */
40
44
  disconnectAll(): Promise<void>;
45
+ /**
46
+ * Check if a specific server is currently connected.
47
+ */
48
+ hasServer(serverName: string): boolean;
41
49
  /**
42
50
  * Get connection status for all servers.
43
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AAmCrB;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAA+C;IAElE,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,EAAE,YAAY;IAMtC;;;;;;OAMG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAyEjF;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAkB/F;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACH,SAAS,IAAI,mBAAmB,EAAE;IAQlC;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAID;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;CAgDlB"}
1
+ {"version":3,"file":"mcp-client-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAC;AAmC1D;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAC3B,+CAA+C;IAC/C,OAAO,CAAC,WAAW,CAA+C;IAElE,2DAA2D;IAC3D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAS;gBAEX,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM;IAOvD;;;;;;;;OAQG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA0EjF;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC;IAkB/F;;OAEG;IACG,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBnD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,SAAS,IAAI,mBAAmB,EAAE;IAQlC;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAID;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;CAgDlB"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.McpClientManager = void 0;
4
4
  const mcp_types_1 = require("./mcp-types");
5
+ const logger_1 = require("../logging/logger");
5
6
  const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
6
7
  const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
7
8
  const sse_js_1 = require("@modelcontextprotocol/sdk/client/sse.js");
@@ -32,20 +33,24 @@ class McpClientManager {
32
33
  connections = new Map();
33
34
  /** The ToolRegistry where adapted tools are registered. */
34
35
  toolRegistry;
35
- constructor(toolRegistry) {
36
+ logger;
37
+ constructor(toolRegistry, logger) {
36
38
  this.toolRegistry = toolRegistry;
39
+ this.logger = logger ?? new logger_1.ConsoleLogger();
37
40
  }
38
41
  // ─── Connection Management ────────────────────────────────────────────────
39
42
  /**
40
43
  * Connect to a single MCP server, discover its tools, and register them
41
44
  * in the ToolRegistry with a `{serverName}_` prefix.
42
45
  *
46
+ * Idempotent — if the server is already connected, this is a no-op.
47
+ *
43
48
  * @throws McpConnectionError if the config is invalid or the
44
- * connection/tool-discovery fails.
49
+ * connection/tool-discovery fails (only for new connections).
45
50
  */
46
51
  async connectToServer(serverName, config) {
47
52
  if (this.connections.has(serverName)) {
48
- throw new mcp_types_1.McpConnectionError(`MCP server "${serverName}" is already connected.`);
53
+ return; // Already connected idempotent
49
54
  }
50
55
  const transportConfig = resolveTransportConfig(config);
51
56
  // Build transport
@@ -83,18 +88,18 @@ class McpClientManager {
83
88
  for (const mcpTool of mcpToolDescriptors) {
84
89
  const adapted = this.adaptTool(serverName, mcpTool, client);
85
90
  if (this.toolRegistry.has(adapted.name)) {
86
- console.warn(`[MCP] Tool "${adapted.name}" is already registered. ` +
91
+ this.logger.warn("MCP", `Tool "${adapted.name}" is already registered. ` +
87
92
  `Skipping MCP tool "${serverName}/${mcpTool.name}".`);
88
93
  continue;
89
94
  }
90
95
  adaptedTools.push(adapted);
91
96
  }
92
97
  if (adaptedTools.length === 0) {
93
- console.warn(`[MCP] Server "${serverName}" exposed no usable tools.`);
98
+ this.logger.warn("MCP", `Server "${serverName}" exposed no usable tools.`);
94
99
  }
95
100
  else {
96
101
  this.toolRegistry.registerMany(adaptedTools);
97
- console.log(`[MCP] Registered ${adaptedTools.length} tool(s) from server "${serverName}".`);
102
+ this.logger.info("MCP", `Registered ${adaptedTools.length} tool(s) from server "${serverName}".`);
98
103
  }
99
104
  this.connections.set(serverName, { serverName, client, tools: adaptedTools });
100
105
  }
@@ -113,7 +118,7 @@ class McpClientManager {
113
118
  catch (err) {
114
119
  const message = err instanceof Error ? err.message : String(err);
115
120
  errors.push({ serverName: name, error: message });
116
- console.error(`[MCP] Failed to connect to server "${name}": ${message}`);
121
+ this.logger.error("MCP", `Failed to connect to server "${name}": ${message}`);
117
122
  }
118
123
  }));
119
124
  return errors;
@@ -134,10 +139,10 @@ class McpClientManager {
134
139
  await conn.client.close();
135
140
  }
136
141
  catch (err) {
137
- console.warn(`[MCP] Error while closing connection to "${serverName}": ${err instanceof Error ? err.message : String(err)}`);
142
+ this.logger.warn("MCP", `Error while closing connection to "${serverName}": ${err instanceof Error ? err.message : String(err)}`);
138
143
  }
139
144
  this.connections.delete(serverName);
140
- console.log(`[MCP] Disconnected from server "${serverName}".`);
145
+ this.logger.info("MCP", `Disconnected from server "${serverName}".`);
141
146
  }
142
147
  /**
143
148
  * Disconnect from all MCP servers and unregister all MCP-provided tools.
@@ -147,6 +152,12 @@ class McpClientManager {
147
152
  await Promise.allSettled(names.map((name) => this.disconnect(name)));
148
153
  }
149
154
  // ─── Queries ──────────────────────────────────────────────────────────────
155
+ /**
156
+ * Check if a specific server is currently connected.
157
+ */
158
+ hasServer(serverName) {
159
+ return this.connections.has(serverName);
160
+ }
150
161
  /**
151
162
  * Get connection status for all servers.
152
163
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-client-manager.js","sourceRoot":"","sources":["../../src/mcp/mcp-client-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { MemoryManager } from "./memory-manager";
2
+ export type { Memory, MemoryType } from "./memory-manager";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryManager = void 0;
4
+ var memory_manager_1 = require("./memory-manager");
5
+ Object.defineProperty(exports, "MemoryManager", { enumerable: true, get: function () { return memory_manager_1.MemoryManager; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}