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,73 @@
1
+ "use strict";
2
+ /**
3
+ * In-memory vector store with cosine similarity search.
4
+ *
5
+ * Zero external dependencies — pure TypeScript implementation suitable
6
+ * for knowledge bases with up to ~10K chunks.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InMemoryVectorStore = void 0;
10
+ exports.cosineSimilarity = cosineSimilarity;
11
+ /**
12
+ * An in-memory vector store backed by a simple array.
13
+ *
14
+ * Search uses brute-force cosine similarity, which is fast enough
15
+ * for typical knowledge base sizes (a few thousand chunks).
16
+ */
17
+ class InMemoryVectorStore {
18
+ chunks = [];
19
+ async add(chunks) {
20
+ this.chunks.push(...chunks);
21
+ }
22
+ get size() {
23
+ return this.chunks.length;
24
+ }
25
+ async clear() {
26
+ this.chunks = [];
27
+ }
28
+ /**
29
+ * Search for the top-K most similar chunks via cosine similarity.
30
+ *
31
+ * Returns results sorted by similarity score descending (best match first).
32
+ * Chunks with near-zero-norm embeddings are excluded from results.
33
+ */
34
+ async search(queryEmbedding, topK) {
35
+ if (this.chunks.length === 0)
36
+ return [];
37
+ const results = [];
38
+ for (const chunk of this.chunks) {
39
+ const score = cosineSimilarity(queryEmbedding, chunk.embedding);
40
+ if (score > 0) {
41
+ results.push({ chunk, score });
42
+ }
43
+ }
44
+ results.sort((a, b) => b.score - a.score);
45
+ return results.slice(0, topK);
46
+ }
47
+ }
48
+ exports.InMemoryVectorStore = InMemoryVectorStore;
49
+ // ─── Cosine similarity ───────────────────────────────────────────────────────
50
+ /**
51
+ * Compute cosine similarity between two vectors.
52
+ *
53
+ * Returns a value in [0, 1] for non-negative embeddings (the usual case),
54
+ * or [-1, 1] in the general case. Returns 0 for zero-norm vectors.
55
+ */
56
+ function cosineSimilarity(a, b) {
57
+ if (a.length !== b.length) {
58
+ throw new Error(`Vector dimension mismatch: ${a.length} vs ${b.length}`);
59
+ }
60
+ let dotProduct = 0;
61
+ let normA = 0;
62
+ let normB = 0;
63
+ for (let i = 0; i < a.length; i++) {
64
+ dotProduct += a[i] * b[i];
65
+ normA += a[i] * a[i];
66
+ normB += b[i] * b[i];
67
+ }
68
+ const denominator = Math.sqrt(normA) * Math.sqrt(normB);
69
+ if (denominator === 0)
70
+ return 0;
71
+ return dotProduct / denominator;
72
+ }
73
+ //# sourceMappingURL=vector-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../src/rag/vector-store.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAwDH,4CAoBC;AAxED;;;;;GAKG;AACH,MAAa,mBAAmB;IACtB,MAAM,GAAe,EAAE,CAAC;IAEhC,KAAK,CAAC,GAAG,CAAC,MAAkB;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,cAAwB,EAAE,IAAY;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;CACF;AApCD,kDAoCC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CACxD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,UAAU,GAAG,WAAW,CAAC;AAClC,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Category of an error found during reflection.
3
+ */
4
+ export type ReflectionErrorCategory = "reasoning_error" | "tool_misuse" | "missed_optimization" | "incomplete_answer" | "hallucination" | "context_mismanagement" | "other";
5
+ /**
6
+ * A single entry in the error notebook (错题本).
7
+ */
8
+ export interface ErrorNotebookEntry {
9
+ id: string;
10
+ sessionId: string;
11
+ timestamp: string;
12
+ category: ReflectionErrorCategory;
13
+ description: string;
14
+ cause: string;
15
+ suggestion: string;
16
+ userQuery?: string;
17
+ relatedTraceIds?: string[];
18
+ }
19
+ /**
20
+ * Configuration for the ErrorNotebook.
21
+ */
22
+ export interface ErrorNotebookConfig {
23
+ /** Directory where notebook entries are stored. Default: ".error-notebook". */
24
+ storageDir?: string;
25
+ /** Max entries to keep. Default: 200. */
26
+ maxEntries?: number;
27
+ }
28
+ /**
29
+ * Error Notebook (错题本) — persistent record of mistakes discovered
30
+ * during post-execution reflection.
31
+ *
32
+ * Storage layout:
33
+ * ```
34
+ * .error-notebook/
35
+ * index.json ← lightweight index (id, sessionId, category, description)
36
+ * entries/
37
+ * nb_xxx.json ← full entry, one file per entry
38
+ * ```
39
+ *
40
+ * The index is always kept in memory and written on every mutation.
41
+ * Individual entry files are loaded lazily (only when querying by session,
42
+ * category, or building the rules prompt).
43
+ */
44
+ export declare class ErrorNotebook {
45
+ private index;
46
+ private storageDir;
47
+ private entriesDir;
48
+ private indexFile;
49
+ private maxEntries;
50
+ constructor(config?: ErrorNotebookConfig);
51
+ /**
52
+ * Add an entry to the notebook.
53
+ */
54
+ add(entry: Omit<ErrorNotebookEntry, "id" | "timestamp">): ErrorNotebookEntry;
55
+ /**
56
+ * Add multiple entries at once.
57
+ */
58
+ addMany(entries: Array<Omit<ErrorNotebookEntry, "id" | "timestamp">>): void;
59
+ /**
60
+ * Remove an entry by ID.
61
+ */
62
+ remove(id: string): boolean;
63
+ /**
64
+ * Get all entries (loads full data from disk).
65
+ */
66
+ getAll(): ErrorNotebookEntry[];
67
+ /**
68
+ * Get entries for a specific session.
69
+ */
70
+ getBySession(sessionId: string): ErrorNotebookEntry[];
71
+ /**
72
+ * Get recent entries (most recent first).
73
+ */
74
+ getRecent(limit?: number): ErrorNotebookEntry[];
75
+ /**
76
+ * Get entries by category.
77
+ */
78
+ getByCategory(category: ReflectionErrorCategory): ErrorNotebookEntry[];
79
+ /**
80
+ * Total number of entries.
81
+ */
82
+ get count(): number;
83
+ /**
84
+ * Category distribution.
85
+ */
86
+ getCategoryStats(): Record<ReflectionErrorCategory, number>;
87
+ /**
88
+ * Build a compact prompt section from recent entries.
89
+ *
90
+ * The content is LLM-generated (via ReflectionAgent), so it is wrapped
91
+ * with {@link wrapUntrusted} boundary markers and scanned for prompt-
92
+ * injection signatures before being returned. This prevents the LLM
93
+ * from accidentally poisoning its own system prompt via the notebook.
94
+ */
95
+ buildRulesPrompt(maxEntries?: number, minRepetitions?: number): string;
96
+ private entryPath;
97
+ private ensureDirs;
98
+ private persistIndex;
99
+ private loadIndex;
100
+ /**
101
+ * Load a single full entry from its individual file.
102
+ * Returns null if the file is missing or corrupt.
103
+ */
104
+ private loadEntry;
105
+ /**
106
+ * Load full entry data for a slice of the index.
107
+ */
108
+ private loadFullEntries;
109
+ /**
110
+ * Prune the oldest entries if over maxEntries.
111
+ * Also cleans up orphaned individual entry files that aren't referenced
112
+ * by the current index.
113
+ */
114
+ private pruneIfNeeded;
115
+ /**
116
+ * Clean up orphaned entry files (files not referenced by the index).
117
+ * Call this during construction to recover from partial writes.
118
+ */
119
+ private cleanupOrphans;
120
+ /**
121
+ * Generate a human-readable markdown report.
122
+ */
123
+ generateMarkdownReport(): string;
124
+ }
125
+ //# sourceMappingURL=error-notebook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-notebook.d.ts","sourceRoot":"","sources":["../../src/reflection/error-notebook.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B,iBAAiB,GACjB,aAAa,GACb,qBAAqB,GACrB,mBAAmB,GACnB,eAAe,GACf,uBAAuB,GACvB,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,uBAAuB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2BD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,CAAC,EAAE,mBAAmB;IAWxC;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,kBAAkB;IA6B5E;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,IAAI;IAI3E;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAe3B;;OAEG;IACH,MAAM,IAAI,kBAAkB,EAAE;IAI9B;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAKrD;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAW,GAAG,kBAAkB,EAAE;IAOnD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,uBAAuB,GAAG,kBAAkB,EAAE;IAKtE;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,gBAAgB,IAAI,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC;IAU3D;;;;;;;OAOG;IACH,gBAAgB,CAAC,UAAU,GAAE,MAAW,EAAE,cAAc,GAAE,MAAU,GAAG,MAAM;IAkD7E,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IASjB;;;OAGG;IACH,OAAO,CAAC,SAAS;IASjB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,sBAAsB,IAAI,MAAM;CAiCjC"}
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ErrorNotebook = void 0;
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const boundaries_1 = require("../security/boundaries");
40
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
41
+ function generateId() {
42
+ const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
43
+ let id = "nb_";
44
+ for (let i = 0; i < 12; i++)
45
+ id += chars[Math.floor(Math.random() * chars.length)];
46
+ return id;
47
+ }
48
+ function nowISO() {
49
+ return new Date().toISOString();
50
+ }
51
+ // ─── ErrorNotebook ───────────────────────────────────────────────────────────
52
+ /**
53
+ * Error Notebook (错题本) — persistent record of mistakes discovered
54
+ * during post-execution reflection.
55
+ *
56
+ * Storage layout:
57
+ * ```
58
+ * .error-notebook/
59
+ * index.json ← lightweight index (id, sessionId, category, description)
60
+ * entries/
61
+ * nb_xxx.json ← full entry, one file per entry
62
+ * ```
63
+ *
64
+ * The index is always kept in memory and written on every mutation.
65
+ * Individual entry files are loaded lazily (only when querying by session,
66
+ * category, or building the rules prompt).
67
+ */
68
+ class ErrorNotebook {
69
+ index = [];
70
+ storageDir;
71
+ entriesDir;
72
+ indexFile;
73
+ maxEntries;
74
+ constructor(config) {
75
+ this.storageDir = path.resolve(config?.storageDir ?? ".error-notebook");
76
+ this.entriesDir = path.join(this.storageDir, "entries");
77
+ this.indexFile = path.join(this.storageDir, "index.json");
78
+ this.maxEntries = config?.maxEntries ?? 200;
79
+ this.ensureDirs();
80
+ this.loadIndex();
81
+ }
82
+ // ─── Write ──────────────────────────────────────────────────────────────
83
+ /**
84
+ * Add an entry to the notebook.
85
+ */
86
+ add(entry) {
87
+ const full = {
88
+ ...entry,
89
+ id: generateId(),
90
+ timestamp: nowISO(),
91
+ };
92
+ // Write individual entry file
93
+ const filePath = this.entryPath(full.id);
94
+ fs.writeFileSync(filePath, JSON.stringify(full, null, 2), "utf-8");
95
+ // Update in-memory index
96
+ this.index.push({
97
+ id: full.id,
98
+ sessionId: full.sessionId,
99
+ timestamp: full.timestamp,
100
+ category: full.category,
101
+ description: full.description,
102
+ });
103
+ // Prune oldest if over limit
104
+ this.pruneIfNeeded();
105
+ // Persist index
106
+ this.persistIndex();
107
+ return full;
108
+ }
109
+ /**
110
+ * Add multiple entries at once.
111
+ */
112
+ addMany(entries) {
113
+ for (const e of entries)
114
+ this.add(e);
115
+ }
116
+ /**
117
+ * Remove an entry by ID.
118
+ */
119
+ remove(id) {
120
+ const idx = this.index.findIndex((e) => e.id === id);
121
+ if (idx === -1)
122
+ return false;
123
+ // Remove individual file
124
+ try {
125
+ fs.unlinkSync(this.entryPath(id));
126
+ }
127
+ catch { /* already gone */ }
128
+ // Remove from index
129
+ this.index.splice(idx, 1);
130
+ this.persistIndex();
131
+ return true;
132
+ }
133
+ // ─── Read ───────────────────────────────────────────────────────────────
134
+ /**
135
+ * Get all entries (loads full data from disk).
136
+ */
137
+ getAll() {
138
+ return this.loadFullEntries(this.index);
139
+ }
140
+ /**
141
+ * Get entries for a specific session.
142
+ */
143
+ getBySession(sessionId) {
144
+ const matches = this.index.filter((e) => e.sessionId === sessionId);
145
+ return this.loadFullEntries(matches);
146
+ }
147
+ /**
148
+ * Get recent entries (most recent first).
149
+ */
150
+ getRecent(limit = 20) {
151
+ const recent = [...this.index]
152
+ .sort((a, b) => b.timestamp.localeCompare(a.timestamp))
153
+ .slice(0, limit);
154
+ return this.loadFullEntries(recent);
155
+ }
156
+ /**
157
+ * Get entries by category.
158
+ */
159
+ getByCategory(category) {
160
+ const matches = this.index.filter((e) => e.category === category);
161
+ return this.loadFullEntries(matches);
162
+ }
163
+ /**
164
+ * Total number of entries.
165
+ */
166
+ get count() {
167
+ return this.index.length;
168
+ }
169
+ /**
170
+ * Category distribution.
171
+ */
172
+ getCategoryStats() {
173
+ const stats = {};
174
+ for (const e of this.index) {
175
+ stats[e.category] = (stats[e.category] || 0) + 1;
176
+ }
177
+ return stats;
178
+ }
179
+ // ─── Prompt Injection ───────────────────────────────────────────────────
180
+ /**
181
+ * Build a compact prompt section from recent entries.
182
+ *
183
+ * The content is LLM-generated (via ReflectionAgent), so it is wrapped
184
+ * with {@link wrapUntrusted} boundary markers and scanned for prompt-
185
+ * injection signatures before being returned. This prevents the LLM
186
+ * from accidentally poisoning its own system prompt via the notebook.
187
+ */
188
+ buildRulesPrompt(maxEntries = 10, minRepetitions = 1) {
189
+ // Group by (category, description) to count repetitions — uses index only
190
+ const grouped = new Map();
191
+ for (const e of this.index) {
192
+ const key = `${e.category}::${e.description}`;
193
+ const existing = grouped.get(key);
194
+ if (existing) {
195
+ existing.count++;
196
+ }
197
+ else {
198
+ grouped.set(key, { entry: e, count: 1 });
199
+ }
200
+ }
201
+ const filtered = Array.from(grouped.values())
202
+ .filter((g) => g.count >= minRepetitions)
203
+ .slice(-maxEntries)
204
+ .reverse();
205
+ if (filtered.length === 0)
206
+ return "";
207
+ const lines = [
208
+ "=== Error Notebook (错题本) ===",
209
+ "These mistakes were discovered during previous sessions. Learn from them.",
210
+ "",
211
+ ];
212
+ for (const { entry, count } of filtered) {
213
+ // Load full entry to get the suggestion
214
+ const full = this.loadEntry(entry.id);
215
+ const cat = formatCategory(entry.category);
216
+ const rep = count > 1 ? ` (×${count})` : "";
217
+ lines.push(`**${cat}${rep}**: ${full?.suggestion ?? entry.description}`);
218
+ }
219
+ const body = lines.join("\n");
220
+ // Scan for prompt-injection signatures in LLM-generated content.
221
+ // The notebook is authored by the LLM itself — it could accidentally
222
+ // (or adversarially) produce injection text that poisons future runs.
223
+ const patterns = (0, boundaries_1.detectInjectionSignatures)(body);
224
+ const warning = (0, boundaries_1.buildInjectionWarning)(patterns, "error notebook");
225
+ // Wrap as untrusted data (LLM-authored, not user-authored)
226
+ const wrapped = (0, boundaries_1.wrapUntrusted)("error-notebook", body);
227
+ return "\n\n" + warning + wrapped;
228
+ }
229
+ // ─── Persistence ────────────────────────────────────────────────────────
230
+ entryPath(id) {
231
+ return path.join(this.entriesDir, `${id}.json`);
232
+ }
233
+ ensureDirs() {
234
+ if (!fs.existsSync(this.storageDir)) {
235
+ fs.mkdirSync(this.storageDir, { recursive: true });
236
+ }
237
+ if (!fs.existsSync(this.entriesDir)) {
238
+ fs.mkdirSync(this.entriesDir, { recursive: true });
239
+ }
240
+ }
241
+ persistIndex() {
242
+ fs.writeFileSync(this.indexFile, JSON.stringify(this.index, null, 2), "utf-8");
243
+ }
244
+ loadIndex() {
245
+ try {
246
+ const raw = fs.readFileSync(this.indexFile, "utf-8");
247
+ this.index = JSON.parse(raw);
248
+ }
249
+ catch {
250
+ this.index = [];
251
+ }
252
+ }
253
+ /**
254
+ * Load a single full entry from its individual file.
255
+ * Returns null if the file is missing or corrupt.
256
+ */
257
+ loadEntry(id) {
258
+ try {
259
+ const raw = fs.readFileSync(this.entryPath(id), "utf-8");
260
+ return JSON.parse(raw);
261
+ }
262
+ catch {
263
+ return null;
264
+ }
265
+ }
266
+ /**
267
+ * Load full entry data for a slice of the index.
268
+ */
269
+ loadFullEntries(subset) {
270
+ const results = [];
271
+ for (const idx of subset) {
272
+ const full = this.loadEntry(idx.id);
273
+ if (full)
274
+ results.push(full);
275
+ }
276
+ return results;
277
+ }
278
+ /**
279
+ * Prune the oldest entries if over maxEntries.
280
+ * Also cleans up orphaned individual entry files that aren't referenced
281
+ * by the current index.
282
+ */
283
+ pruneIfNeeded() {
284
+ const excess = this.index.length - this.maxEntries;
285
+ if (excess <= 0)
286
+ return;
287
+ // Index is append-only, so oldest entries are at the front
288
+ const toRemove = this.index.splice(0, excess);
289
+ for (const { id } of toRemove) {
290
+ try {
291
+ fs.unlinkSync(this.entryPath(id));
292
+ }
293
+ catch { /* ok */ }
294
+ }
295
+ }
296
+ /**
297
+ * Clean up orphaned entry files (files not referenced by the index).
298
+ * Call this during construction to recover from partial writes.
299
+ */
300
+ cleanupOrphans() {
301
+ let entryFiles;
302
+ try {
303
+ entryFiles = fs.readdirSync(this.entriesDir);
304
+ }
305
+ catch {
306
+ return;
307
+ }
308
+ const referenced = new Set(this.index.map((e) => `${e.id}.json`));
309
+ for (const file of entryFiles) {
310
+ if (!file.endsWith(".json"))
311
+ continue;
312
+ if (!referenced.has(file)) {
313
+ try {
314
+ fs.unlinkSync(path.join(this.entriesDir, file));
315
+ }
316
+ catch { /* ok */ }
317
+ }
318
+ }
319
+ }
320
+ // ─── Markdown Report ─────────────────────────────────────────────────────
321
+ /**
322
+ * Generate a human-readable markdown report.
323
+ */
324
+ generateMarkdownReport() {
325
+ const entries = this.getRecent(100);
326
+ if (entries.length === 0) {
327
+ return "# Error Notebook Report\n\n*No errors recorded. Keep up the good work!*\n";
328
+ }
329
+ const stats = this.getCategoryStats();
330
+ let report = `# Error Notebook Report (错题本)\n\n`;
331
+ report += `- **Total entries:** ${this.count}\n`;
332
+ report += `- **Generated:** ${nowISO()}\n\n`;
333
+ report += `## Category Distribution\n\n| Category | Count |\n|----------|------|\n`;
334
+ for (const [cat, count] of Object.entries(stats)) {
335
+ report += `| ${formatCategory(cat)} | ${count} |\n`;
336
+ }
337
+ report += `\n---\n\n## Recent Entries\n\n`;
338
+ for (const e of entries) {
339
+ report += `### ${e.id} — ${formatCategory(e.category)}\n\n`;
340
+ report += `- **Session:** \`${e.sessionId}\`\n`;
341
+ report += `- **Time:** ${e.timestamp}\n`;
342
+ report += `- **Description:** ${e.description}\n`;
343
+ report += `- **Cause:** ${e.cause}\n`;
344
+ report += `- **Suggestion:** ${e.suggestion}\n`;
345
+ if (e.userQuery)
346
+ report += `- **User Query:** ${e.userQuery}\n`;
347
+ if (e.relatedTraceIds?.length) {
348
+ report += `- **Related Traces:** ${e.relatedTraceIds.join(", ")}\n`;
349
+ }
350
+ report += `\n`;
351
+ }
352
+ return report;
353
+ }
354
+ }
355
+ exports.ErrorNotebook = ErrorNotebook;
356
+ // ─── Formatting ──────────────────────────────────────────────────────────────
357
+ function formatCategory(cat) {
358
+ switch (cat) {
359
+ case "reasoning_error": return "🧠 Reasoning Error";
360
+ case "tool_misuse": return "🔧 Tool Misuse";
361
+ case "missed_optimization": return "⚡ Missed Optimization";
362
+ case "incomplete_answer": return "📝 Incomplete Answer";
363
+ case "hallucination": return "💭 Hallucination";
364
+ case "context_mismanagement": return "📋 Context Mismanagement";
365
+ case "other": return "❓ Other";
366
+ }
367
+ }
368
+ //# sourceMappingURL=error-notebook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-notebook.js","sourceRoot":"","sources":["../../src/reflection/error-notebook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { ErrorNotebook } from "./error-notebook";
2
+ export type { ErrorNotebookEntry, ErrorNotebookConfig, ReflectionErrorCategory, } from "./error-notebook";
3
+ export { ReflectionAgent } from "./reflection-agent";
4
+ export type { ReflectionAgentConfig, ReflectionInput, ReflectionFinding, } from "./reflection-agent";
5
+ export { MemoryReflector } from "./memory-reflector";
6
+ export type { MemoryReflectorConfig, MemoryReflectionInput, ExtractedMemory, } from "./memory-reflector";
7
+ export { createReflectionHook } from "./reflection-hook";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reflection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createReflectionHook = exports.MemoryReflector = exports.ReflectionAgent = exports.ErrorNotebook = void 0;
4
+ var error_notebook_1 = require("./error-notebook");
5
+ Object.defineProperty(exports, "ErrorNotebook", { enumerable: true, get: function () { return error_notebook_1.ErrorNotebook; } });
6
+ var reflection_agent_1 = require("./reflection-agent");
7
+ Object.defineProperty(exports, "ReflectionAgent", { enumerable: true, get: function () { return reflection_agent_1.ReflectionAgent; } });
8
+ var memory_reflector_1 = require("./memory-reflector");
9
+ Object.defineProperty(exports, "MemoryReflector", { enumerable: true, get: function () { return memory_reflector_1.MemoryReflector; } });
10
+ var reflection_hook_1 = require("./reflection-hook");
11
+ Object.defineProperty(exports, "createReflectionHook", { enumerable: true, get: function () { return reflection_hook_1.createReflectionHook; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reflection/index.ts"],"names":[],"mappings":";;;AAAA,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAMxB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAMxB,qDAAyD;AAAhD,uHAAA,oBAAoB,OAAA"}