kagent-ts 0.1.3 → 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 (349) 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 +407 -35
  16. package/dist/core/agent.d.ts.map +1 -1
  17. package/dist/core/agent.js +685 -70
  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 +144 -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 +128 -101
  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 +61 -14
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +121 -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/index.d.ts +4 -0
  114. package/dist/mcp/index.d.ts.map +1 -0
  115. package/dist/mcp/index.js +8 -0
  116. package/dist/mcp/index.js.map +1 -0
  117. package/dist/mcp/mcp-client-manager.d.ts +72 -0
  118. package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
  119. package/dist/mcp/mcp-client-manager.js +235 -0
  120. package/dist/mcp/mcp-client-manager.js.map +1 -0
  121. package/dist/mcp/mcp-types.d.ts +58 -0
  122. package/dist/mcp/mcp-types.d.ts.map +1 -0
  123. package/dist/mcp/mcp-types.js +20 -0
  124. package/dist/mcp/mcp-types.js.map +1 -0
  125. package/dist/memory/index.d.ts +3 -0
  126. package/dist/memory/index.d.ts.map +1 -0
  127. package/dist/memory/index.js +6 -0
  128. package/dist/memory/index.js.map +1 -0
  129. package/dist/memory/memory-manager.d.ts +119 -0
  130. package/dist/memory/memory-manager.d.ts.map +1 -0
  131. package/dist/memory/memory-manager.js +334 -0
  132. package/dist/memory/memory-manager.js.map +1 -0
  133. package/dist/messages/types.d.ts +2 -0
  134. package/dist/messages/types.d.ts.map +1 -1
  135. package/dist/orchestrator/index.d.ts +5 -0
  136. package/dist/orchestrator/index.d.ts.map +1 -0
  137. package/dist/orchestrator/index.js +13 -0
  138. package/dist/orchestrator/index.js.map +1 -0
  139. package/dist/orchestrator/json-extractor.d.ts +18 -0
  140. package/dist/orchestrator/json-extractor.d.ts.map +1 -0
  141. package/dist/orchestrator/json-extractor.js +111 -0
  142. package/dist/orchestrator/json-extractor.js.map +1 -0
  143. package/dist/orchestrator/orchestrator-agent.d.ts +152 -0
  144. package/dist/orchestrator/orchestrator-agent.d.ts.map +1 -0
  145. package/dist/orchestrator/orchestrator-agent.js +675 -0
  146. package/dist/orchestrator/orchestrator-agent.js.map +1 -0
  147. package/dist/orchestrator/orchestrator-response.d.ts +40 -0
  148. package/dist/orchestrator/orchestrator-response.d.ts.map +1 -0
  149. package/dist/orchestrator/orchestrator-response.js +275 -0
  150. package/dist/orchestrator/orchestrator-response.js.map +1 -0
  151. package/dist/orchestrator/orchestrator-types.d.ts +116 -0
  152. package/dist/orchestrator/orchestrator-types.d.ts.map +1 -0
  153. package/dist/orchestrator/orchestrator-types.js +3 -0
  154. package/dist/orchestrator/orchestrator-types.js.map +1 -0
  155. package/dist/preferences/preference-manager.d.ts +8 -3
  156. package/dist/preferences/preference-manager.d.ts.map +1 -1
  157. package/dist/preferences/preference-manager.js +17 -4
  158. package/dist/preferences/preference-manager.js.map +1 -1
  159. package/dist/rag/chroma-store.d.ts +52 -0
  160. package/dist/rag/chroma-store.d.ts.map +1 -0
  161. package/dist/rag/chroma-store.js +110 -0
  162. package/dist/rag/chroma-store.js.map +1 -0
  163. package/dist/rag/document-loader.d.ts +21 -0
  164. package/dist/rag/document-loader.d.ts.map +1 -0
  165. package/dist/rag/document-loader.js +129 -0
  166. package/dist/rag/document-loader.js.map +1 -0
  167. package/dist/rag/embedding-provider.d.ts +36 -0
  168. package/dist/rag/embedding-provider.d.ts.map +1 -0
  169. package/dist/rag/embedding-provider.js +74 -0
  170. package/dist/rag/embedding-provider.js.map +1 -0
  171. package/dist/rag/index.d.ts +17 -0
  172. package/dist/rag/index.d.ts.map +1 -0
  173. package/dist/rag/index.js +27 -0
  174. package/dist/rag/index.js.map +1 -0
  175. package/dist/rag/keyword-index.d.ts +53 -0
  176. package/dist/rag/keyword-index.d.ts.map +1 -0
  177. package/dist/rag/keyword-index.js +161 -0
  178. package/dist/rag/keyword-index.js.map +1 -0
  179. package/dist/rag/llm-reranker.d.ts +36 -0
  180. package/dist/rag/llm-reranker.d.ts.map +1 -0
  181. package/dist/rag/llm-reranker.js +95 -0
  182. package/dist/rag/llm-reranker.js.map +1 -0
  183. package/dist/rag/rag-manager.d.ts +54 -0
  184. package/dist/rag/rag-manager.d.ts.map +1 -0
  185. package/dist/rag/rag-manager.js +179 -0
  186. package/dist/rag/rag-manager.js.map +1 -0
  187. package/dist/rag/rag-types.d.ts +143 -0
  188. package/dist/rag/rag-types.d.ts.map +1 -0
  189. package/dist/rag/rag-types.js +9 -0
  190. package/dist/rag/rag-types.js.map +1 -0
  191. package/dist/rag/rrf.d.ts +47 -0
  192. package/dist/rag/rrf.d.ts.map +1 -0
  193. package/dist/rag/rrf.js +70 -0
  194. package/dist/rag/rrf.js.map +1 -0
  195. package/dist/rag/search-knowledge.d.ts +24 -0
  196. package/dist/rag/search-knowledge.d.ts.map +1 -0
  197. package/dist/rag/search-knowledge.js +86 -0
  198. package/dist/rag/search-knowledge.js.map +1 -0
  199. package/dist/rag/text-splitter.d.ts +25 -0
  200. package/dist/rag/text-splitter.d.ts.map +1 -0
  201. package/dist/rag/text-splitter.js +136 -0
  202. package/dist/rag/text-splitter.js.map +1 -0
  203. package/dist/rag/vector-store.d.ts +34 -0
  204. package/dist/rag/vector-store.d.ts.map +1 -0
  205. package/dist/rag/vector-store.js +73 -0
  206. package/dist/rag/vector-store.js.map +1 -0
  207. package/dist/reflection/error-notebook.d.ts +125 -0
  208. package/dist/reflection/error-notebook.d.ts.map +1 -0
  209. package/dist/reflection/error-notebook.js +368 -0
  210. package/dist/reflection/error-notebook.js.map +1 -0
  211. package/dist/reflection/index.d.ts +8 -0
  212. package/dist/reflection/index.d.ts.map +1 -0
  213. package/dist/reflection/index.js +12 -0
  214. package/dist/reflection/index.js.map +1 -0
  215. package/dist/reflection/memory-reflector.d.ts +97 -0
  216. package/dist/reflection/memory-reflector.d.ts.map +1 -0
  217. package/dist/reflection/memory-reflector.js +215 -0
  218. package/dist/reflection/memory-reflector.js.map +1 -0
  219. package/dist/reflection/reflection-agent.d.ts +105 -0
  220. package/dist/reflection/reflection-agent.d.ts.map +1 -0
  221. package/dist/reflection/reflection-agent.js +234 -0
  222. package/dist/reflection/reflection-agent.js.map +1 -0
  223. package/dist/reflection/reflection-hook.d.ts +50 -0
  224. package/dist/reflection/reflection-hook.d.ts.map +1 -0
  225. package/dist/reflection/reflection-hook.js +108 -0
  226. package/dist/reflection/reflection-hook.js.map +1 -0
  227. package/dist/rules/project-rules.d.ts +47 -0
  228. package/dist/rules/project-rules.d.ts.map +1 -0
  229. package/dist/rules/project-rules.js +166 -0
  230. package/dist/rules/project-rules.js.map +1 -0
  231. package/dist/security/boundaries.d.ts +81 -0
  232. package/dist/security/boundaries.d.ts.map +1 -0
  233. package/dist/security/boundaries.js +158 -0
  234. package/dist/security/boundaries.js.map +1 -0
  235. package/dist/security/index.d.ts +2 -0
  236. package/dist/security/index.d.ts.map +1 -0
  237. package/dist/security/index.js +11 -0
  238. package/dist/security/index.js.map +1 -0
  239. package/dist/session/session-types.d.ts +25 -4
  240. package/dist/session/session-types.d.ts.map +1 -1
  241. package/dist/skills/file-skill-loader.d.ts +9 -20
  242. package/dist/skills/file-skill-loader.d.ts.map +1 -1
  243. package/dist/skills/file-skill-loader.js +35 -164
  244. package/dist/skills/file-skill-loader.js.map +1 -1
  245. package/dist/skills/index.d.ts +1 -1
  246. package/dist/skills/index.d.ts.map +1 -1
  247. package/dist/skills/index.js +1 -2
  248. package/dist/skills/index.js.map +1 -1
  249. package/dist/skills/skill-manager.d.ts +22 -29
  250. package/dist/skills/skill-manager.d.ts.map +1 -1
  251. package/dist/skills/skill-manager.js +63 -85
  252. package/dist/skills/skill-manager.js.map +1 -1
  253. package/dist/skills/types.d.ts +4 -16
  254. package/dist/skills/types.d.ts.map +1 -1
  255. package/dist/subagent/index.d.ts +4 -0
  256. package/dist/subagent/index.d.ts.map +1 -0
  257. package/dist/subagent/index.js +8 -0
  258. package/dist/subagent/index.js.map +1 -0
  259. package/dist/subagent/subagent-loader.d.ts +53 -0
  260. package/dist/subagent/subagent-loader.d.ts.map +1 -0
  261. package/dist/subagent/subagent-loader.js +155 -0
  262. package/dist/subagent/subagent-loader.js.map +1 -0
  263. package/dist/subagent/subagent-manager.d.ts +161 -0
  264. package/dist/subagent/subagent-manager.d.ts.map +1 -0
  265. package/dist/subagent/subagent-manager.js +468 -0
  266. package/dist/subagent/subagent-manager.js.map +1 -0
  267. package/dist/subagent/subagent-types.d.ts +77 -0
  268. package/dist/subagent/subagent-types.d.ts.map +1 -0
  269. package/dist/subagent/subagent-types.js +3 -0
  270. package/dist/subagent/subagent-types.js.map +1 -0
  271. package/dist/tools/builtin/bash.d.ts +3 -0
  272. package/dist/tools/builtin/bash.d.ts.map +1 -0
  273. package/dist/tools/builtin/bash.js +87 -0
  274. package/dist/tools/builtin/bash.js.map +1 -0
  275. package/dist/tools/builtin/edit-file.d.ts.map +1 -1
  276. package/dist/tools/builtin/edit-file.js +1 -0
  277. package/dist/tools/builtin/edit-file.js.map +1 -1
  278. package/dist/tools/builtin/index.d.ts +14 -0
  279. package/dist/tools/builtin/index.d.ts.map +1 -1
  280. package/dist/tools/builtin/index.js +45 -1
  281. package/dist/tools/builtin/index.js.map +1 -1
  282. package/dist/tools/builtin/list-errors.d.ts +7 -0
  283. package/dist/tools/builtin/list-errors.d.ts.map +1 -0
  284. package/dist/tools/builtin/list-errors.js +64 -0
  285. package/dist/tools/builtin/list-errors.js.map +1 -0
  286. package/dist/tools/builtin/list-subagents.d.ts +7 -0
  287. package/dist/tools/builtin/list-subagents.d.ts.map +1 -0
  288. package/dist/tools/builtin/list-subagents.js +21 -0
  289. package/dist/tools/builtin/list-subagents.js.map +1 -0
  290. package/dist/tools/builtin/recall.d.ts +11 -0
  291. package/dist/tools/builtin/recall.d.ts.map +1 -0
  292. package/dist/tools/builtin/recall.js +60 -0
  293. package/dist/tools/builtin/recall.js.map +1 -0
  294. package/dist/tools/builtin/remember.d.ts +12 -0
  295. package/dist/tools/builtin/remember.d.ts.map +1 -0
  296. package/dist/tools/builtin/remember.js +72 -0
  297. package/dist/tools/builtin/remember.js.map +1 -0
  298. package/dist/tools/builtin/skill.d.ts +14 -0
  299. package/dist/tools/builtin/skill.d.ts.map +1 -0
  300. package/dist/tools/builtin/skill.js +71 -0
  301. package/dist/tools/builtin/skill.js.map +1 -0
  302. package/dist/tools/builtin/spawn-subagent.d.ts +7 -0
  303. package/dist/tools/builtin/spawn-subagent.d.ts.map +1 -0
  304. package/dist/tools/builtin/spawn-subagent.js +43 -0
  305. package/dist/tools/builtin/spawn-subagent.js.map +1 -0
  306. package/dist/tools/builtin/web-fetch.d.ts +3 -0
  307. package/dist/tools/builtin/web-fetch.d.ts.map +1 -0
  308. package/dist/tools/builtin/web-fetch.js +101 -0
  309. package/dist/tools/builtin/web-fetch.js.map +1 -0
  310. package/dist/tools/builtin/write-file.d.ts.map +1 -1
  311. package/dist/tools/builtin/write-file.js +1 -0
  312. package/dist/tools/builtin/write-file.js.map +1 -1
  313. package/dist/tools/circuit-breaker.d.ts +19 -10
  314. package/dist/tools/circuit-breaker.d.ts.map +1 -1
  315. package/dist/tools/circuit-breaker.js +22 -11
  316. package/dist/tools/circuit-breaker.js.map +1 -1
  317. package/dist/tools/error-tracker.d.ts +28 -44
  318. package/dist/tools/error-tracker.d.ts.map +1 -1
  319. package/dist/tools/error-tracker.js +39 -156
  320. package/dist/tools/error-tracker.js.map +1 -1
  321. package/dist/tools/tool-filter.d.ts +70 -0
  322. package/dist/tools/tool-filter.d.ts.map +1 -0
  323. package/dist/tools/tool-filter.js +92 -0
  324. package/dist/tools/tool-filter.js.map +1 -0
  325. package/dist/tools/tool-output-truncator.d.ts +36 -0
  326. package/dist/tools/tool-output-truncator.d.ts.map +1 -0
  327. package/dist/tools/tool-output-truncator.js +117 -0
  328. package/dist/tools/tool-output-truncator.js.map +1 -0
  329. package/dist/tools/tool-registry.d.ts +25 -9
  330. package/dist/tools/tool-registry.d.ts.map +1 -1
  331. package/dist/tools/tool-registry.js +77 -28
  332. package/dist/tools/tool-registry.js.map +1 -1
  333. package/dist/tools/tool-validator.d.ts +13 -0
  334. package/dist/tools/tool-validator.d.ts.map +1 -0
  335. package/dist/tools/tool-validator.js +116 -0
  336. package/dist/tools/tool-validator.js.map +1 -0
  337. package/dist/tools/types.d.ts +86 -3
  338. package/dist/tools/types.d.ts.map +1 -1
  339. package/dist/tools/types.js +51 -2
  340. package/dist/tools/types.js.map +1 -1
  341. package/dist/trace/trace-logger.d.ts +30 -4
  342. package/dist/trace/trace-logger.d.ts.map +1 -1
  343. package/dist/trace/trace-logger.js +83 -7
  344. package/dist/trace/trace-logger.js.map +1 -1
  345. package/package.json +14 -4
  346. package/dist/compression/sliding-window.d.ts +0 -21
  347. package/dist/compression/sliding-window.d.ts.map +0 -1
  348. package/dist/compression/sliding-window.js +0 -44
  349. package/dist/compression/sliding-window.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chroma-store.d.ts","sourceRoot":"","sources":["../../src/rag/chroma-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAK1E,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAID,qBAAa,iBAAkB,YAAW,WAAW;IAOvC,OAAO,CAAC,MAAM;IAN1B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,WAAW,CAAS;gBAER,MAAM,EAAE,uBAAuB;IAgB7C,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtC,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqChF,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAed,iBAAiB;CAahC"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChromaVectorStore = void 0;
4
+ const chromadb_1 = require("chromadb");
5
+ // ─── ChromaVectorStore ──────────────────────────────────────────────────────
6
+ class ChromaVectorStore {
7
+ config;
8
+ client;
9
+ collection = null;
10
+ collectionName;
11
+ _size = 0;
12
+ initialized = false;
13
+ constructor(config) {
14
+ this.config = config;
15
+ const params = {};
16
+ if (config.url) {
17
+ params.url = config.url;
18
+ }
19
+ else if (config.path) {
20
+ params.path = config.path;
21
+ }
22
+ else {
23
+ // Default: local embedded Chroma in `.chroma-data`
24
+ params.path = "./.chroma-data";
25
+ }
26
+ this.client = new chromadb_1.ChromaClient(params);
27
+ this.collectionName = config.collectionName ?? "kagent-rag";
28
+ }
29
+ // ─── VectorStore Implementation ────────────────────────────────────────
30
+ async add(chunks) {
31
+ await this.ensureInitialized();
32
+ const ids = [];
33
+ const embeddings = [];
34
+ const metadatas = [];
35
+ const documents = [];
36
+ for (const chunk of chunks) {
37
+ ids.push(`${chunk.sourcePath}#${chunk.chunkIndex}`);
38
+ embeddings.push(chunk.embedding);
39
+ metadatas.push({
40
+ sourcePath: chunk.sourcePath,
41
+ chunkIndex: chunk.chunkIndex,
42
+ });
43
+ documents.push(chunk.text);
44
+ }
45
+ await this.collection.add({ ids, embeddings, metadatas, documents });
46
+ this._size += chunks.length;
47
+ }
48
+ async search(queryEmbedding, topK) {
49
+ await this.ensureInitialized();
50
+ if (this._size === 0)
51
+ return [];
52
+ const result = await this.collection.query({
53
+ queryEmbeddings: [queryEmbedding],
54
+ nResults: topK,
55
+ include: [chromadb_1.IncludeEnum.Distances, chromadb_1.IncludeEnum.Documents, chromadb_1.IncludeEnum.Metadatas],
56
+ });
57
+ const ids = result.ids[0]; // Array of IDs for query 0
58
+ const distances = result.distances?.[0] ?? [];
59
+ const documents = result.documents?.[0] ?? [];
60
+ const metadatasArr = result.metadatas?.[0] ?? [];
61
+ const searchResults = [];
62
+ for (let i = 0; i < ids.length; i++) {
63
+ const distance = distances[i] ?? 0;
64
+ // Chroma returns L2 distance by default. Convert to similarity (0–1):
65
+ // similarity = 1 / (1 + distance)
66
+ const score = 1 / (1 + (typeof distance === "number" ? distance : 0));
67
+ searchResults.push({
68
+ chunk: {
69
+ text: documents[i] ?? "",
70
+ embedding: queryEmbedding, // not stored in results — placeholder
71
+ sourcePath: String(metadatasArr[i]?.sourcePath ?? ""),
72
+ chunkIndex: Number(metadatasArr[i]?.chunkIndex ?? 0),
73
+ },
74
+ score,
75
+ });
76
+ }
77
+ return searchResults;
78
+ }
79
+ get size() {
80
+ return this._size;
81
+ }
82
+ async clear() {
83
+ if (this.collection) {
84
+ try {
85
+ await this.client.deleteCollection({ name: this.collectionName });
86
+ }
87
+ catch {
88
+ // collection might not exist yet — ok
89
+ }
90
+ this.collection = null;
91
+ this.initialized = false;
92
+ this._size = 0;
93
+ }
94
+ }
95
+ // ─── Helpers ────────────────────────────────────────────────────────────
96
+ async ensureInitialized() {
97
+ if (this.initialized && this.collection)
98
+ return;
99
+ this.collection = await this.client.getOrCreateCollection({
100
+ name: this.collectionName,
101
+ metadata: { "description": "kagent-ts RAG documents" },
102
+ });
103
+ // Sync size from existing data
104
+ const count = await this.collection.count();
105
+ this._size = count;
106
+ this.initialized = true;
107
+ }
108
+ }
109
+ exports.ChromaVectorStore = ChromaVectorStore;
110
+ //# sourceMappingURL=chroma-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chroma-store.js","sourceRoot":"","sources":["../../src/rag/chroma-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Document loader — scans a directory and loads supported files.
3
+ *
4
+ * Supported formats:
5
+ * - .md (Markdown)
6
+ * - .txt (Plain text)
7
+ * - .json (treated as text — useful for structured data dumps)
8
+ *
9
+ * Recurses into subdirectories. Files/directories starting with "." are skipped.
10
+ */
11
+ import type { RAGDocument } from "./rag-types";
12
+ /**
13
+ * Load all supported documents from a directory (recursive).
14
+ *
15
+ * @param dir Root directory to scan.
16
+ * @param chunkSize Max characters per chunk.
17
+ * @param chunkOverlap Overlap characters between adjacent chunks.
18
+ * @returns An array of RAGDocuments with populated (but not yet embedded) chunks.
19
+ */
20
+ export declare function loadDocuments(dir: string, chunkSize: number, chunkOverlap: number): RAGDocument[];
21
+ //# sourceMappingURL=document-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-loader.d.ts","sourceRoot":"","sources":["../../src/rag/document-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AASzD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,WAAW,EAAE,CAMf"}
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ /**
3
+ * Document loader — scans a directory and loads supported files.
4
+ *
5
+ * Supported formats:
6
+ * - .md (Markdown)
7
+ * - .txt (Plain text)
8
+ * - .json (treated as text — useful for structured data dumps)
9
+ *
10
+ * Recurses into subdirectories. Files/directories starting with "." are skipped.
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.loadDocuments = loadDocuments;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const text_splitter_1 = require("./text-splitter");
50
+ /** Max file size to load (5 MiB). Larger files are skipped. */
51
+ const MAX_FILE_SIZE = 5 * 1024 * 1024;
52
+ /** Supported file extensions. */
53
+ const SUPPORTED_EXTENSIONS = new Set([".md", ".txt", ".json"]);
54
+ /**
55
+ * Load all supported documents from a directory (recursive).
56
+ *
57
+ * @param dir Root directory to scan.
58
+ * @param chunkSize Max characters per chunk.
59
+ * @param chunkOverlap Overlap characters between adjacent chunks.
60
+ * @returns An array of RAGDocuments with populated (but not yet embedded) chunks.
61
+ */
62
+ function loadDocuments(dir, chunkSize, chunkOverlap) {
63
+ const resolved = path.resolve(dir);
64
+ const documents = [];
65
+ walk(resolved, resolved, documents, chunkSize, chunkOverlap);
66
+ return documents;
67
+ }
68
+ // ─── Internal ────────────────────────────────────────────────────────────────
69
+ function walk(root, current, out, chunkSize, chunkOverlap) {
70
+ let entries;
71
+ try {
72
+ entries = fs.readdirSync(current, { withFileTypes: true });
73
+ }
74
+ catch {
75
+ return;
76
+ }
77
+ for (const entry of entries) {
78
+ if (entry.name.startsWith("."))
79
+ continue;
80
+ const fullPath = path.join(current, entry.name);
81
+ if (entry.isDirectory()) {
82
+ walk(root, fullPath, out, chunkSize, chunkOverlap);
83
+ }
84
+ else if (entry.isFile()) {
85
+ const ext = path.extname(entry.name).toLowerCase();
86
+ if (!SUPPORTED_EXTENSIONS.has(ext))
87
+ continue;
88
+ const doc = loadFile(fullPath, root, chunkSize, chunkOverlap);
89
+ if (doc)
90
+ out.push(doc);
91
+ }
92
+ }
93
+ }
94
+ function loadFile(filePath, root, chunkSize, chunkOverlap) {
95
+ let stat;
96
+ try {
97
+ stat = fs.statSync(filePath);
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ if (stat.size > MAX_FILE_SIZE)
103
+ return null;
104
+ if (stat.size === 0)
105
+ return null;
106
+ let raw;
107
+ try {
108
+ raw = fs.readFileSync(filePath, "utf-8");
109
+ }
110
+ catch {
111
+ return null;
112
+ }
113
+ if (raw.trim().length === 0)
114
+ return null;
115
+ const relativePath = path.relative(root, filePath).replace(/\\/g, "/");
116
+ const textChunks = (0, text_splitter_1.splitText)(raw, chunkSize, chunkOverlap);
117
+ const chunks = textChunks.map((text, i) => ({
118
+ text,
119
+ embedding: [], // Populated later by RAGManager
120
+ sourcePath: relativePath,
121
+ chunkIndex: i,
122
+ }));
123
+ return {
124
+ path: relativePath,
125
+ content: raw,
126
+ chunks,
127
+ };
128
+ }
129
+ //# sourceMappingURL=document-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-loader.js","sourceRoot":"","sources":["../../src/rag/document-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Built-in EmbeddingProvider implementations.
3
+ *
4
+ * The interface is exported from rag-types.ts so users can bring their own;
5
+ * this file provides the OpenAI implementation out of the box.
6
+ */
7
+ import type { EmbeddingProvider } from "./rag-types";
8
+ /**
9
+ * Configuration for OpenAIEmbeddingProvider.
10
+ */
11
+ export interface OpenAIEmbeddingConfig {
12
+ /** OpenAI API key. */
13
+ apiKey: string;
14
+ /** Embedding model ID (default: "text-embedding-3-small"). */
15
+ model?: string;
16
+ /** Optional base URL for proxies / compatible APIs. */
17
+ baseURL?: string;
18
+ /** Request timeout in milliseconds (default: 30_000). */
19
+ timeoutMs?: number;
20
+ }
21
+ /**
22
+ * Embedding provider backed by the OpenAI embeddings API.
23
+ *
24
+ * Supports text-embedding-3-small (1536d), text-embedding-3-large (3072d),
25
+ * and text-embedding-ada-002 (1536d).
26
+ */
27
+ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
28
+ readonly model: string;
29
+ readonly dimensions: number;
30
+ private apiKey;
31
+ private baseURL;
32
+ private timeoutMs;
33
+ constructor(config: OpenAIEmbeddingConfig);
34
+ embed(texts: string[]): Promise<number[][]>;
35
+ }
36
+ //# sourceMappingURL=embedding-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.d.ts","sourceRoot":"","sources":["../../src/rag/embedding-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,qBAAqB;IAQnC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CAuClD"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ /**
3
+ * Built-in EmbeddingProvider implementations.
4
+ *
5
+ * The interface is exported from rag-types.ts so users can bring their own;
6
+ * this file provides the OpenAI implementation out of the box.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OpenAIEmbeddingProvider = void 0;
10
+ /**
11
+ * Embedding provider backed by the OpenAI embeddings API.
12
+ *
13
+ * Supports text-embedding-3-small (1536d), text-embedding-3-large (3072d),
14
+ * and text-embedding-ada-002 (1536d).
15
+ */
16
+ class OpenAIEmbeddingProvider {
17
+ model;
18
+ dimensions;
19
+ apiKey;
20
+ baseURL;
21
+ timeoutMs;
22
+ constructor(config) {
23
+ this.apiKey = config.apiKey;
24
+ this.model = config.model ?? "text-embedding-3-small";
25
+ this.baseURL = config.baseURL ?? "https://api.openai.com/v1";
26
+ this.timeoutMs = config.timeoutMs ?? 30_000;
27
+ this.dimensions = dimensionForModel(this.model);
28
+ }
29
+ async embed(texts) {
30
+ const controller = new AbortController();
31
+ const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
32
+ try {
33
+ const response = await fetch(`${this.baseURL}/embeddings`, {
34
+ method: "POST",
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ Authorization: `Bearer ${this.apiKey}`,
38
+ },
39
+ body: JSON.stringify({
40
+ model: this.model,
41
+ input: texts,
42
+ }),
43
+ signal: controller.signal,
44
+ });
45
+ if (!response.ok) {
46
+ const body = await response.text().catch(() => "");
47
+ throw new Error(`OpenAI Embeddings API returned ${response.status} ${response.statusText}: ${body}`);
48
+ }
49
+ const json = (await response.json());
50
+ // Sort by index so results align with input order
51
+ return json.data
52
+ .sort((a, b) => a.index - b.index)
53
+ .map((item) => item.embedding);
54
+ }
55
+ catch (err) {
56
+ if (err instanceof DOMException || (err instanceof Error && err.name === "AbortError")) {
57
+ throw new Error(`OpenAI Embeddings API timed out after ${this.timeoutMs}ms`);
58
+ }
59
+ throw err;
60
+ }
61
+ finally {
62
+ clearTimeout(timeout);
63
+ }
64
+ }
65
+ }
66
+ exports.OpenAIEmbeddingProvider = OpenAIEmbeddingProvider;
67
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
68
+ function dimensionForModel(model) {
69
+ if (model.startsWith("text-embedding-3-large"))
70
+ return 3072;
71
+ // text-embedding-3-small, text-embedding-ada-002, and most others are 1536
72
+ return 1536;
73
+ }
74
+ //# sourceMappingURL=embedding-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-provider.js","sourceRoot":"","sources":["../../src/rag/embedding-provider.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAoBH;;;;;GAKG;AACH,MAAa,uBAAuB;IACzB,KAAK,CAAS;IACd,UAAU,CAAS;IAEpB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,SAAS,CAAS;IAE1B,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,wBAAwB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC;QAC7D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAe;QACzB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,aAAa,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,KAAK;iBACb,CAAC;gBACF,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CACpF,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;YAChE,kDAAkD;YAClD,OAAO,IAAI,CAAC,IAAI;iBACb,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,YAAY,IAAI,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;gBACvF,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAvDD,0DAuDC;AAED,gFAAgF;AAEhF,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,2EAA2E;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,17 @@
1
+ export { RAGManager } from "./rag-manager";
2
+ export { OpenAIEmbeddingProvider } from "./embedding-provider";
3
+ export type { OpenAIEmbeddingConfig } from "./embedding-provider";
4
+ export { InMemoryVectorStore, cosineSimilarity } from "./vector-store";
5
+ export { ChromaVectorStore } from "./chroma-store";
6
+ export type { ChromaVectorStoreConfig } from "./chroma-store";
7
+ export { InMemoryKeywordIndex } from "./keyword-index";
8
+ export type { BM25Result } from "./keyword-index";
9
+ export { rrfFusion, chunkKey } from "./rrf";
10
+ export type { RankedResult, RRFFusionResult } from "./rrf";
11
+ export { LLMReRanker } from "./llm-reranker";
12
+ export type { LLMReRankerConfig } from "./llm-reranker";
13
+ export { loadDocuments } from "./document-loader";
14
+ export { splitText } from "./text-splitter";
15
+ export type { RAGDocument, RAGChunk, EmbeddingProvider, VectorStore, RAGSearchResult, RAGConfig, ReRanker, } from "./rag-types";
16
+ export { createSearchKnowledgeTool, createListKnowledgeDocumentsTool, } from "./search-knowledge";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EACV,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,SAAS,EACT,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,GACjC,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createListKnowledgeDocumentsTool = exports.createSearchKnowledgeTool = exports.splitText = exports.loadDocuments = exports.LLMReRanker = exports.chunkKey = exports.rrfFusion = exports.InMemoryKeywordIndex = exports.ChromaVectorStore = exports.cosineSimilarity = exports.InMemoryVectorStore = exports.OpenAIEmbeddingProvider = exports.RAGManager = void 0;
4
+ var rag_manager_1 = require("./rag-manager");
5
+ Object.defineProperty(exports, "RAGManager", { enumerable: true, get: function () { return rag_manager_1.RAGManager; } });
6
+ var embedding_provider_1 = require("./embedding-provider");
7
+ Object.defineProperty(exports, "OpenAIEmbeddingProvider", { enumerable: true, get: function () { return embedding_provider_1.OpenAIEmbeddingProvider; } });
8
+ var vector_store_1 = require("./vector-store");
9
+ Object.defineProperty(exports, "InMemoryVectorStore", { enumerable: true, get: function () { return vector_store_1.InMemoryVectorStore; } });
10
+ Object.defineProperty(exports, "cosineSimilarity", { enumerable: true, get: function () { return vector_store_1.cosineSimilarity; } });
11
+ var chroma_store_1 = require("./chroma-store");
12
+ Object.defineProperty(exports, "ChromaVectorStore", { enumerable: true, get: function () { return chroma_store_1.ChromaVectorStore; } });
13
+ var keyword_index_1 = require("./keyword-index");
14
+ Object.defineProperty(exports, "InMemoryKeywordIndex", { enumerable: true, get: function () { return keyword_index_1.InMemoryKeywordIndex; } });
15
+ var rrf_1 = require("./rrf");
16
+ Object.defineProperty(exports, "rrfFusion", { enumerable: true, get: function () { return rrf_1.rrfFusion; } });
17
+ Object.defineProperty(exports, "chunkKey", { enumerable: true, get: function () { return rrf_1.chunkKey; } });
18
+ var llm_reranker_1 = require("./llm-reranker");
19
+ Object.defineProperty(exports, "LLMReRanker", { enumerable: true, get: function () { return llm_reranker_1.LLMReRanker; } });
20
+ var document_loader_1 = require("./document-loader");
21
+ Object.defineProperty(exports, "loadDocuments", { enumerable: true, get: function () { return document_loader_1.loadDocuments; } });
22
+ var text_splitter_1 = require("./text-splitter");
23
+ Object.defineProperty(exports, "splitText", { enumerable: true, get: function () { return text_splitter_1.splitText; } });
24
+ var search_knowledge_1 = require("./search-knowledge");
25
+ Object.defineProperty(exports, "createSearchKnowledgeTool", { enumerable: true, get: function () { return search_knowledge_1.createSearchKnowledgeTool; } });
26
+ Object.defineProperty(exports, "createListKnowledgeDocumentsTool", { enumerable: true, get: function () { return search_knowledge_1.createListKnowledgeDocumentsTool; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rag/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2DAA+D;AAAtD,6HAAA,uBAAuB,OAAA;AAEhC,+CAAuE;AAA9D,mHAAA,mBAAmB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAC9C,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAE1B,iDAAuD;AAA9C,qHAAA,oBAAoB,OAAA;AAE7B,6BAA4C;AAAnC,gGAAA,SAAS,OAAA;AAAE,+FAAA,QAAQ,OAAA;AAE5B,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,qDAAkD;AAAzC,gHAAA,aAAa,OAAA;AACtB,iDAA4C;AAAnC,0GAAA,SAAS,OAAA;AAUlB,uDAG4B;AAF1B,6HAAA,yBAAyB,OAAA;AACzB,oIAAA,gCAAgC,OAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * In-memory BM25 keyword index.
3
+ *
4
+ * Builds an inverted index from chunk text during indexing and scores
5
+ * documents against queries using the standard BM25 formula:
6
+ *
7
+ * score(D, Q) = Σ IDF(qᵢ) · (f(qᵢ, D) · (k1+1)) / (f(qᵢ, D) + k1·(1 − b + b·|D|/avgdl))
8
+ *
9
+ * where:
10
+ * f(qᵢ, D) = term frequency of query term qᵢ in document D
11
+ * |D| = document length (token count)
12
+ * avgdl = average document length across the corpus
13
+ * k1 = term saturation parameter (default: 1.5)
14
+ * b = length normalization parameter (default: 0.75)
15
+ * IDF(qᵢ) = log((N − n(qᵢ) + 0.5) / (n(qᵢ) + 0.5) + 1)
16
+ *
17
+ * Zero external dependencies — pure TypeScript implementation suitable
18
+ * for knowledge bases up to ~10K chunks.
19
+ */
20
+ import type { RAGChunk } from "./rag-types";
21
+ export interface BM25Result {
22
+ chunk: RAGChunk;
23
+ score: number;
24
+ }
25
+ export declare class InMemoryKeywordIndex {
26
+ /** invertedIndex: word → Map<chunkId → term frequency> */
27
+ private invertedIndex;
28
+ /** IDF values: word → idf */
29
+ private idfValues;
30
+ /** Document lengths: chunkId → token count */
31
+ private docLengths;
32
+ /** Average document length across the corpus. */
33
+ private avgDocLength;
34
+ /** Total number of indexed chunks. */
35
+ private totalDocs;
36
+ /** All chunks indexed (for retrieval). chunkId → RAGChunk */
37
+ private chunks;
38
+ /** Next chunkId. */
39
+ private nextId;
40
+ /**
41
+ * Add chunks to the keyword index.
42
+ * Recomputes IDF and avgDocLength incrementally.
43
+ */
44
+ add(newChunks: RAGChunk[]): void;
45
+ /**
46
+ * Search for the top-K chunks matching the query using BM25 scoring.
47
+ */
48
+ search(query: string, topK: number): BM25Result[];
49
+ get size(): number;
50
+ clear(): void;
51
+ private recomputeStats;
52
+ }
53
+ //# sourceMappingURL=keyword-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword-index.d.ts","sourceRoot":"","sources":["../../src/rag/keyword-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,QAAQ,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAkCD,qBAAa,oBAAoB;IAC/B,0DAA0D;IAC1D,OAAO,CAAC,aAAa,CAA0C;IAE/D,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAA6B;IAE9C,8CAA8C;IAC9C,OAAO,CAAC,UAAU,CAA6B;IAE/C,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAK;IAEzB,sCAAsC;IACtC,OAAO,CAAC,SAAS,CAAK;IAEtB,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAA+B;IAE7C,oBAAoB;IACpB,OAAO,CAAC,MAAM,CAAK;IAInB;;;OAGG;IACH,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IA4BhC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAwCjD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,cAAc;CAmBvB"}