causantic 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/README.md +53 -66
  2. package/config.schema.json +12 -87
  3. package/dist/cli/commands/archive.d.ts.map +1 -1
  4. package/dist/cli/commands/archive.js.map +1 -1
  5. package/dist/cli/commands/benchmark-collection.d.ts.map +1 -1
  6. package/dist/cli/commands/benchmark-collection.js.map +1 -1
  7. package/dist/cli/commands/encryption.d.ts.map +1 -1
  8. package/dist/cli/commands/encryption.js.map +1 -1
  9. package/dist/cli/commands/hook.d.ts.map +1 -1
  10. package/dist/cli/commands/hook.js.map +1 -1
  11. package/dist/cli/commands/init.d.ts.map +1 -1
  12. package/dist/cli/commands/init.js +51 -43
  13. package/dist/cli/commands/init.js.map +1 -1
  14. package/dist/cli/commands/maintenance.d.ts.map +1 -1
  15. package/dist/cli/commands/maintenance.js +10 -3
  16. package/dist/cli/commands/maintenance.js.map +1 -1
  17. package/dist/cli/commands/serve.d.ts.map +1 -1
  18. package/dist/cli/commands/serve.js +3 -3
  19. package/dist/cli/commands/serve.js.map +1 -1
  20. package/dist/cli/skill-templates.d.ts.map +1 -1
  21. package/dist/cli/skill-templates.js +223 -153
  22. package/dist/cli/skill-templates.js.map +1 -1
  23. package/dist/cli/uninstall.d.ts.map +1 -1
  24. package/dist/cli/uninstall.js +4 -1
  25. package/dist/cli/uninstall.js.map +1 -1
  26. package/dist/clusters/cluster-manager.d.ts +23 -0
  27. package/dist/clusters/cluster-manager.d.ts.map +1 -1
  28. package/dist/clusters/cluster-manager.js +69 -2
  29. package/dist/clusters/cluster-manager.js.map +1 -1
  30. package/dist/clusters/cluster-refresh.d.ts.map +1 -1
  31. package/dist/clusters/cluster-refresh.js +5 -1
  32. package/dist/clusters/cluster-refresh.js.map +1 -1
  33. package/dist/clusters/hdbscan/cluster-extraction.d.ts.map +1 -1
  34. package/dist/clusters/hdbscan/cluster-extraction.js +1 -2
  35. package/dist/clusters/hdbscan/cluster-extraction.js.map +1 -1
  36. package/dist/clusters/hdbscan/hierarchy.d.ts.map +1 -1
  37. package/dist/clusters/hdbscan/hierarchy.js +1 -3
  38. package/dist/clusters/hdbscan/hierarchy.js.map +1 -1
  39. package/dist/clusters/hdbscan/incremental.d.ts.map +1 -1
  40. package/dist/clusters/hdbscan/incremental.js.map +1 -1
  41. package/dist/clusters/hdbscan/probabilities.d.ts +1 -1
  42. package/dist/clusters/hdbscan/probabilities.d.ts.map +1 -1
  43. package/dist/clusters/hdbscan/probabilities.js +1 -1
  44. package/dist/clusters/hdbscan/probabilities.js.map +1 -1
  45. package/dist/clusters/hdbscan.d.ts.map +1 -1
  46. package/dist/clusters/hdbscan.js +3 -5
  47. package/dist/clusters/hdbscan.js.map +1 -1
  48. package/dist/config/loader.d.ts +10 -15
  49. package/dist/config/loader.d.ts.map +1 -1
  50. package/dist/config/loader.js +40 -71
  51. package/dist/config/loader.js.map +1 -1
  52. package/dist/config/memory-config.d.ts +2 -45
  53. package/dist/config/memory-config.d.ts.map +1 -1
  54. package/dist/config/memory-config.js +6 -109
  55. package/dist/config/memory-config.js.map +1 -1
  56. package/dist/core/index.d.ts +1 -1
  57. package/dist/core/index.d.ts.map +1 -1
  58. package/dist/core/lexical-features.d.ts.map +1 -1
  59. package/dist/core/lexical-features.js +141 -20
  60. package/dist/core/lexical-features.js.map +1 -1
  61. package/dist/dashboard/client/assets/index-DdImwNQ0.css +1 -0
  62. package/dist/dashboard/client/assets/index-Ofx8zngH.js +166 -0
  63. package/dist/dashboard/client/index.html +2 -2
  64. package/dist/dashboard/routes/benchmark-collection.d.ts.map +1 -1
  65. package/dist/dashboard/routes/benchmark-collection.js +2 -6
  66. package/dist/dashboard/routes/benchmark-collection.js.map +1 -1
  67. package/dist/dashboard/routes/chain.d.ts +3 -0
  68. package/dist/dashboard/routes/chain.d.ts.map +1 -0
  69. package/dist/dashboard/routes/chain.js +74 -0
  70. package/dist/dashboard/routes/chain.js.map +1 -0
  71. package/dist/dashboard/routes/chunks.d.ts.map +1 -1
  72. package/dist/dashboard/routes/chunks.js +16 -1
  73. package/dist/dashboard/routes/chunks.js.map +1 -1
  74. package/dist/dashboard/routes/graph.d.ts.map +1 -1
  75. package/dist/dashboard/routes/graph.js.map +1 -1
  76. package/dist/dashboard/routes/search.d.ts.map +1 -1
  77. package/dist/dashboard/routes/search.js.map +1 -1
  78. package/dist/dashboard/routes/stats.d.ts.map +1 -1
  79. package/dist/dashboard/routes/stats.js +8 -6
  80. package/dist/dashboard/routes/stats.js.map +1 -1
  81. package/dist/dashboard/routes/timeline.d.ts +3 -0
  82. package/dist/dashboard/routes/timeline.d.ts.map +1 -0
  83. package/dist/dashboard/routes/timeline.js +90 -0
  84. package/dist/dashboard/routes/timeline.js.map +1 -0
  85. package/dist/dashboard/server.d.ts.map +1 -1
  86. package/dist/dashboard/server.js +4 -0
  87. package/dist/dashboard/server.js.map +1 -1
  88. package/dist/eval/annotation-schema.d.ts.map +1 -1
  89. package/dist/eval/annotation-schema.js +2 -5
  90. package/dist/eval/annotation-schema.js.map +1 -1
  91. package/dist/eval/benchmark-runner.d.ts.map +1 -1
  92. package/dist/eval/benchmark-runner.js +2 -2
  93. package/dist/eval/benchmark-runner.js.map +1 -1
  94. package/dist/eval/cluster-evaluator.d.ts.map +1 -1
  95. package/dist/eval/cluster-evaluator.js.map +1 -1
  96. package/dist/eval/collection-benchmark/chain-quality.d.ts +15 -0
  97. package/dist/eval/collection-benchmark/chain-quality.d.ts.map +1 -0
  98. package/dist/eval/collection-benchmark/chain-quality.js +60 -0
  99. package/dist/eval/collection-benchmark/chain-quality.js.map +1 -0
  100. package/dist/eval/collection-benchmark/health.d.ts.map +1 -1
  101. package/dist/eval/collection-benchmark/health.js +2 -2
  102. package/dist/eval/collection-benchmark/health.js.map +1 -1
  103. package/dist/eval/collection-benchmark/history.d.ts.map +1 -1
  104. package/dist/eval/collection-benchmark/history.js +14 -11
  105. package/dist/eval/collection-benchmark/history.js.map +1 -1
  106. package/dist/eval/collection-benchmark/latency.d.ts.map +1 -1
  107. package/dist/eval/collection-benchmark/latency.js +14 -11
  108. package/dist/eval/collection-benchmark/latency.js.map +1 -1
  109. package/dist/eval/collection-benchmark/reporter.d.ts.map +1 -1
  110. package/dist/eval/collection-benchmark/reporter.js +18 -28
  111. package/dist/eval/collection-benchmark/reporter.js.map +1 -1
  112. package/dist/eval/collection-benchmark/retrieval.d.ts.map +1 -1
  113. package/dist/eval/collection-benchmark/retrieval.js +14 -8
  114. package/dist/eval/collection-benchmark/retrieval.js.map +1 -1
  115. package/dist/eval/collection-benchmark/runner.d.ts +3 -3
  116. package/dist/eval/collection-benchmark/runner.d.ts.map +1 -1
  117. package/dist/eval/collection-benchmark/runner.js +46 -37
  118. package/dist/eval/collection-benchmark/runner.js.map +1 -1
  119. package/dist/eval/collection-benchmark/sampler.d.ts.map +1 -1
  120. package/dist/eval/collection-benchmark/sampler.js +14 -12
  121. package/dist/eval/collection-benchmark/sampler.js.map +1 -1
  122. package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -1
  123. package/dist/eval/collection-benchmark/tuning.js +56 -71
  124. package/dist/eval/collection-benchmark/tuning.js.map +1 -1
  125. package/dist/eval/collection-benchmark/types.d.ts +12 -24
  126. package/dist/eval/collection-benchmark/types.d.ts.map +1 -1
  127. package/dist/eval/corpus-builder.d.ts.map +1 -1
  128. package/dist/eval/corpus-builder.js.map +1 -1
  129. package/dist/eval/experiments/boilerplate-filter.d.ts.map +1 -1
  130. package/dist/eval/experiments/boilerplate-filter.js.map +1 -1
  131. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.d.ts.map +1 -1
  132. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js +3 -5
  133. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js.map +1 -1
  134. package/dist/eval/experiments/code-focused-mode.d.ts.map +1 -1
  135. package/dist/eval/experiments/code-focused-mode.js +1 -1
  136. package/dist/eval/experiments/code-focused-mode.js.map +1 -1
  137. package/dist/eval/experiments/edge-decay/decay-curves.d.ts +25 -19
  138. package/dist/eval/experiments/edge-decay/decay-curves.d.ts.map +1 -1
  139. package/dist/eval/experiments/edge-decay/decay-curves.js +47 -40
  140. package/dist/eval/experiments/edge-decay/decay-curves.js.map +1 -1
  141. package/dist/eval/experiments/edge-decay/index.d.ts +6 -4
  142. package/dist/eval/experiments/edge-decay/index.d.ts.map +1 -1
  143. package/dist/eval/experiments/edge-decay/index.js +5 -3
  144. package/dist/eval/experiments/edge-decay/index.js.map +1 -1
  145. package/dist/eval/experiments/edge-decay/presets.d.ts +14 -4
  146. package/dist/eval/experiments/edge-decay/presets.d.ts.map +1 -1
  147. package/dist/eval/experiments/edge-decay/presets.js +73 -68
  148. package/dist/eval/experiments/edge-decay/presets.js.map +1 -1
  149. package/dist/eval/experiments/edge-decay/reference-extractor.d.ts +2 -1
  150. package/dist/eval/experiments/edge-decay/reference-extractor.d.ts.map +1 -1
  151. package/dist/eval/experiments/edge-decay/reference-extractor.js +26 -40
  152. package/dist/eval/experiments/edge-decay/reference-extractor.js.map +1 -1
  153. package/dist/eval/experiments/edge-decay/reference-types.d.ts +24 -17
  154. package/dist/eval/experiments/edge-decay/reference-types.d.ts.map +1 -1
  155. package/dist/eval/experiments/edge-decay/reference-types.js +3 -0
  156. package/dist/eval/experiments/edge-decay/reference-types.js.map +1 -1
  157. package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts +8 -8
  158. package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts.map +1 -1
  159. package/dist/eval/experiments/edge-decay/retrieval-ranking.js +77 -133
  160. package/dist/eval/experiments/edge-decay/retrieval-ranking.js.map +1 -1
  161. package/dist/eval/experiments/edge-decay/run-experiments.d.ts +7 -3
  162. package/dist/eval/experiments/edge-decay/run-experiments.d.ts.map +1 -1
  163. package/dist/eval/experiments/edge-decay/run-experiments.js +71 -52
  164. package/dist/eval/experiments/edge-decay/run-experiments.js.map +1 -1
  165. package/dist/eval/experiments/edge-decay/simulate.d.ts +1 -1
  166. package/dist/eval/experiments/edge-decay/simulate.d.ts.map +1 -1
  167. package/dist/eval/experiments/edge-decay/simulate.js +7 -19
  168. package/dist/eval/experiments/edge-decay/simulate.js.map +1 -1
  169. package/dist/eval/experiments/hdbscan-sweep.d.ts.map +1 -1
  170. package/dist/eval/experiments/hdbscan-sweep.js +2 -6
  171. package/dist/eval/experiments/hdbscan-sweep.js.map +1 -1
  172. package/dist/eval/experiments/single-model-run.d.ts.map +1 -1
  173. package/dist/eval/experiments/single-model-run.js +2 -2
  174. package/dist/eval/experiments/single-model-run.js.map +1 -1
  175. package/dist/eval/experiments/thinking-ablation.d.ts.map +1 -1
  176. package/dist/eval/experiments/thinking-ablation.js +1 -1
  177. package/dist/eval/experiments/thinking-ablation.js.map +1 -1
  178. package/dist/eval/experiments/topic-continuity/hybrid-classifier.d.ts.map +1 -1
  179. package/dist/eval/experiments/topic-continuity/hybrid-classifier.js +54 -6
  180. package/dist/eval/experiments/topic-continuity/hybrid-classifier.js.map +1 -1
  181. package/dist/eval/experiments/topic-continuity/labeler.d.ts.map +1 -1
  182. package/dist/eval/experiments/topic-continuity/labeler.js +1 -4
  183. package/dist/eval/experiments/topic-continuity/labeler.js.map +1 -1
  184. package/dist/eval/experiments/topic-continuity/run-experiment.d.ts.map +1 -1
  185. package/dist/eval/experiments/topic-continuity/run-experiment.js +5 -13
  186. package/dist/eval/experiments/topic-continuity/run-experiment.js.map +1 -1
  187. package/dist/eval/experiments/truncation.d.ts.map +1 -1
  188. package/dist/eval/experiments/truncation.js.map +1 -1
  189. package/dist/eval/experiments/types.d.ts.map +1 -1
  190. package/dist/eval/experiments/types.js.map +1 -1
  191. package/dist/eval/metrics.d.ts.map +1 -1
  192. package/dist/eval/metrics.js.map +1 -1
  193. package/dist/hooks/claudemd-generator.d.ts.map +1 -1
  194. package/dist/hooks/claudemd-generator.js +3 -4
  195. package/dist/hooks/claudemd-generator.js.map +1 -1
  196. package/dist/hooks/hook-utils.d.ts.map +1 -1
  197. package/dist/hooks/hook-utils.js +0 -2
  198. package/dist/hooks/hook-utils.js.map +1 -1
  199. package/dist/hooks/pre-compact.d.ts.map +1 -1
  200. package/dist/hooks/pre-compact.js +4 -2
  201. package/dist/hooks/pre-compact.js.map +1 -1
  202. package/dist/hooks/session-end.d.ts.map +1 -1
  203. package/dist/hooks/session-end.js +4 -2
  204. package/dist/hooks/session-end.js.map +1 -1
  205. package/dist/hooks/session-start.d.ts.map +1 -1
  206. package/dist/hooks/session-start.js +3 -5
  207. package/dist/hooks/session-start.js.map +1 -1
  208. package/dist/index.d.ts +0 -1
  209. package/dist/index.d.ts.map +1 -1
  210. package/dist/index.js +0 -2
  211. package/dist/index.js.map +1 -1
  212. package/dist/ingest/batch-ingest.d.ts.map +1 -1
  213. package/dist/ingest/batch-ingest.js.map +1 -1
  214. package/dist/ingest/brief-debrief-detector.d.ts +6 -13
  215. package/dist/ingest/brief-debrief-detector.d.ts.map +1 -1
  216. package/dist/ingest/brief-debrief-detector.js +9 -16
  217. package/dist/ingest/brief-debrief-detector.js.map +1 -1
  218. package/dist/ingest/cross-session-linker.d.ts +2 -1
  219. package/dist/ingest/cross-session-linker.d.ts.map +1 -1
  220. package/dist/ingest/cross-session-linker.js +17 -7
  221. package/dist/ingest/cross-session-linker.js.map +1 -1
  222. package/dist/ingest/edge-creator.d.ts +14 -40
  223. package/dist/ingest/edge-creator.d.ts.map +1 -1
  224. package/dist/ingest/edge-creator.js +34 -132
  225. package/dist/ingest/edge-creator.js.map +1 -1
  226. package/dist/ingest/edge-detector.d.ts +27 -12
  227. package/dist/ingest/edge-detector.d.ts.map +1 -1
  228. package/dist/ingest/edge-detector.js +68 -200
  229. package/dist/ingest/edge-detector.js.map +1 -1
  230. package/dist/ingest/index.d.ts +3 -3
  231. package/dist/ingest/index.d.ts.map +1 -1
  232. package/dist/ingest/index.js +3 -3
  233. package/dist/ingest/index.js.map +1 -1
  234. package/dist/ingest/ingest-session.d.ts +1 -8
  235. package/dist/ingest/ingest-session.d.ts.map +1 -1
  236. package/dist/ingest/ingest-session.js +54 -107
  237. package/dist/ingest/ingest-session.js.map +1 -1
  238. package/dist/ingest/rebuild-edges.d.ts +17 -0
  239. package/dist/ingest/rebuild-edges.d.ts.map +1 -0
  240. package/dist/ingest/rebuild-edges.js +97 -0
  241. package/dist/ingest/rebuild-edges.js.map +1 -0
  242. package/dist/maintenance/scheduler.d.ts +2 -3
  243. package/dist/maintenance/scheduler.d.ts.map +1 -1
  244. package/dist/maintenance/scheduler.js +14 -23
  245. package/dist/maintenance/scheduler.js.map +1 -1
  246. package/dist/maintenance/tasks/cleanup-vectors.d.ts +3 -1
  247. package/dist/maintenance/tasks/cleanup-vectors.d.ts.map +1 -1
  248. package/dist/maintenance/tasks/cleanup-vectors.js +6 -4
  249. package/dist/maintenance/tasks/cleanup-vectors.js.map +1 -1
  250. package/dist/maintenance/tasks/index.d.ts +0 -1
  251. package/dist/maintenance/tasks/index.d.ts.map +1 -1
  252. package/dist/maintenance/tasks/index.js +0 -1
  253. package/dist/maintenance/tasks/index.js.map +1 -1
  254. package/dist/mcp/index.d.ts +1 -1
  255. package/dist/mcp/index.d.ts.map +1 -1
  256. package/dist/mcp/index.js +1 -1
  257. package/dist/mcp/index.js.map +1 -1
  258. package/dist/mcp/server.d.ts.map +1 -1
  259. package/dist/mcp/server.js +15 -8
  260. package/dist/mcp/server.js.map +1 -1
  261. package/dist/mcp/tools.d.ts +5 -5
  262. package/dist/mcp/tools.d.ts.map +1 -1
  263. package/dist/mcp/tools.js +42 -36
  264. package/dist/mcp/tools.js.map +1 -1
  265. package/dist/models/device-detector.d.ts.map +1 -1
  266. package/dist/models/device-detector.js +20 -10
  267. package/dist/models/device-detector.js.map +1 -1
  268. package/dist/models/embedder.d.ts.map +1 -1
  269. package/dist/models/embedder.js +5 -2
  270. package/dist/models/embedder.js.map +1 -1
  271. package/dist/models/model-registry.d.ts.map +1 -1
  272. package/dist/models/model-registry.js.map +1 -1
  273. package/dist/parser/chunker.d.ts +5 -40
  274. package/dist/parser/chunker.d.ts.map +1 -1
  275. package/dist/parser/chunker.js +5 -111
  276. package/dist/parser/chunker.js.map +1 -1
  277. package/dist/parser/session-reader.d.ts.map +1 -1
  278. package/dist/parser/session-reader.js +3 -6
  279. package/dist/parser/session-reader.js.map +1 -1
  280. package/dist/parser/turn-assembler.d.ts.map +1 -1
  281. package/dist/parser/turn-assembler.js +0 -1
  282. package/dist/parser/turn-assembler.js.map +1 -1
  283. package/dist/parser/types.d.ts.map +1 -1
  284. package/dist/report/reporter.d.ts.map +1 -1
  285. package/dist/report/reporter.js +1 -3
  286. package/dist/report/reporter.js.map +1 -1
  287. package/dist/retrieval/chain-assembler.d.ts +58 -0
  288. package/dist/retrieval/chain-assembler.d.ts.map +1 -0
  289. package/dist/retrieval/chain-assembler.js +126 -0
  290. package/dist/retrieval/chain-assembler.js.map +1 -0
  291. package/dist/retrieval/chain-walker.d.ts +57 -0
  292. package/dist/retrieval/chain-walker.d.ts.map +1 -0
  293. package/dist/retrieval/chain-walker.js +121 -0
  294. package/dist/retrieval/chain-walker.js.map +1 -0
  295. package/dist/retrieval/cluster-expander.d.ts.map +1 -1
  296. package/dist/retrieval/cluster-expander.js +3 -3
  297. package/dist/retrieval/cluster-expander.js.map +1 -1
  298. package/dist/retrieval/context-assembler.d.ts +13 -36
  299. package/dist/retrieval/context-assembler.d.ts.map +1 -1
  300. package/dist/retrieval/context-assembler.js +50 -287
  301. package/dist/retrieval/context-assembler.js.map +1 -1
  302. package/dist/retrieval/index.d.ts +8 -4
  303. package/dist/retrieval/index.d.ts.map +1 -1
  304. package/dist/retrieval/index.js +7 -3
  305. package/dist/retrieval/index.js.map +1 -1
  306. package/dist/retrieval/rrf.d.ts.map +1 -1
  307. package/dist/retrieval/rrf.js +4 -2
  308. package/dist/retrieval/rrf.js.map +1 -1
  309. package/dist/retrieval/search-assembler.d.ts +59 -0
  310. package/dist/retrieval/search-assembler.d.ts.map +1 -0
  311. package/dist/retrieval/search-assembler.js +209 -0
  312. package/dist/retrieval/search-assembler.js.map +1 -0
  313. package/dist/retrieval/session-reconstructor.d.ts.map +1 -1
  314. package/dist/retrieval/session-reconstructor.js +9 -7
  315. package/dist/retrieval/session-reconstructor.js.map +1 -1
  316. package/dist/storage/archive.d.ts +0 -2
  317. package/dist/storage/archive.d.ts.map +1 -1
  318. package/dist/storage/archive.js +18 -12
  319. package/dist/storage/archive.js.map +1 -1
  320. package/dist/storage/checkpoint-store.d.ts +0 -1
  321. package/dist/storage/checkpoint-store.d.ts.map +1 -1
  322. package/dist/storage/checkpoint-store.js +5 -7
  323. package/dist/storage/checkpoint-store.js.map +1 -1
  324. package/dist/storage/chunk-store.d.ts.map +1 -1
  325. package/dist/storage/chunk-store.js +15 -17
  326. package/dist/storage/chunk-store.js.map +1 -1
  327. package/dist/storage/cluster-store.d.ts.map +1 -1
  328. package/dist/storage/cluster-store.js.map +1 -1
  329. package/dist/storage/db.d.ts.map +1 -1
  330. package/dist/storage/db.js.map +1 -1
  331. package/dist/storage/edge-store.d.ts +17 -30
  332. package/dist/storage/edge-store.d.ts.map +1 -1
  333. package/dist/storage/edge-store.js +43 -123
  334. package/dist/storage/edge-store.js.map +1 -1
  335. package/dist/storage/embedding-cache.d.ts.map +1 -1
  336. package/dist/storage/embedding-cache.js +1 -3
  337. package/dist/storage/embedding-cache.js.map +1 -1
  338. package/dist/storage/encryption.d.ts.map +1 -1
  339. package/dist/storage/encryption.js +4 -15
  340. package/dist/storage/encryption.js.map +1 -1
  341. package/dist/storage/index.d.ts +1 -4
  342. package/dist/storage/index.d.ts.map +1 -1
  343. package/dist/storage/index.js +1 -5
  344. package/dist/storage/index.js.map +1 -1
  345. package/dist/storage/keyword-store.d.ts.map +1 -1
  346. package/dist/storage/keyword-store.js +11 -7
  347. package/dist/storage/keyword-store.js.map +1 -1
  348. package/dist/storage/migrations.d.ts.map +1 -1
  349. package/dist/storage/migrations.js +56 -4
  350. package/dist/storage/migrations.js.map +1 -1
  351. package/dist/storage/schema.sql +8 -20
  352. package/dist/storage/types.d.ts +12 -26
  353. package/dist/storage/types.d.ts.map +1 -1
  354. package/dist/storage/types.js +1 -2
  355. package/dist/storage/types.js.map +1 -1
  356. package/dist/storage/vector-store.d.ts +9 -15
  357. package/dist/storage/vector-store.d.ts.map +1 -1
  358. package/dist/storage/vector-store.js +64 -43
  359. package/dist/storage/vector-store.js.map +1 -1
  360. package/dist/utils/angular-distance.d.ts.map +1 -1
  361. package/dist/utils/angular-distance.js.map +1 -1
  362. package/dist/utils/logger.d.ts.map +1 -1
  363. package/dist/utils/logger.js.map +1 -1
  364. package/dist/utils/secret-store.d.ts.map +1 -1
  365. package/dist/utils/secret-store.js +17 -13
  366. package/dist/utils/secret-store.js.map +1 -1
  367. package/dist/utils/secure-buffer.d.ts.map +1 -1
  368. package/dist/utils/secure-buffer.js.map +1 -1
  369. package/package.json +6 -5
  370. package/src/dashboard/client/package-lock.json +3 -3
  371. package/src/dashboard/client/package.json +3 -3
  372. package/dist/dashboard/client/assets/index-CMUKy4f9.css +0 -1
  373. package/dist/dashboard/client/assets/index-esv8TpCN.js +0 -168
  374. package/dist/eval/collection-benchmark/graph-value.d.ts +0 -16
  375. package/dist/eval/collection-benchmark/graph-value.d.ts.map +0 -1
  376. package/dist/eval/collection-benchmark/graph-value.js +0 -162
  377. package/dist/eval/collection-benchmark/graph-value.js.map +0 -1
  378. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts +0 -10
  379. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts.map +0 -1
  380. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js +0 -229
  381. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js.map +0 -1
  382. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts +0 -12
  383. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts.map +0 -1
  384. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js +0 -316
  385. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js.map +0 -1
  386. package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts +0 -19
  387. package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts.map +0 -1
  388. package/dist/eval/experiments/vector-decay-shapes/hop-decay.js +0 -127
  389. package/dist/eval/experiments/vector-decay-shapes/hop-decay.js.map +0 -1
  390. package/dist/eval/experiments/vector-decay-shapes/index.d.ts +0 -11
  391. package/dist/eval/experiments/vector-decay-shapes/index.d.ts.map +0 -1
  392. package/dist/eval/experiments/vector-decay-shapes/index.js +0 -11
  393. package/dist/eval/experiments/vector-decay-shapes/index.js.map +0 -1
  394. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts +0 -14
  395. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts.map +0 -1
  396. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js +0 -274
  397. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js.map +0 -1
  398. package/dist/eval/experiments/vector-decay-shapes/presets.d.ts +0 -36
  399. package/dist/eval/experiments/vector-decay-shapes/presets.d.ts.map +0 -1
  400. package/dist/eval/experiments/vector-decay-shapes/presets.js +0 -157
  401. package/dist/eval/experiments/vector-decay-shapes/presets.js.map +0 -1
  402. package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts +0 -20
  403. package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts.map +0 -1
  404. package/dist/eval/experiments/vector-decay-shapes/run-experiment.js +0 -504
  405. package/dist/eval/experiments/vector-decay-shapes/run-experiment.js.map +0 -1
  406. package/dist/eval/experiments/vector-decay-shapes/types.d.ts +0 -111
  407. package/dist/eval/experiments/vector-decay-shapes/types.d.ts.map +0 -1
  408. package/dist/eval/experiments/vector-decay-shapes/types.js +0 -15
  409. package/dist/eval/experiments/vector-decay-shapes/types.js.map +0 -1
  410. package/dist/eval/experiments/vector-decay-sweep/index.d.ts +0 -7
  411. package/dist/eval/experiments/vector-decay-sweep/index.d.ts.map +0 -1
  412. package/dist/eval/experiments/vector-decay-sweep/index.js +0 -7
  413. package/dist/eval/experiments/vector-decay-sweep/index.js.map +0 -1
  414. package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts +0 -30
  415. package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts.map +0 -1
  416. package/dist/eval/experiments/vector-decay-sweep/run-sweep.js +0 -378
  417. package/dist/eval/experiments/vector-decay-sweep/run-sweep.js.map +0 -1
  418. package/dist/eval/experiments/vector-decay-sweep/types.d.ts +0 -109
  419. package/dist/eval/experiments/vector-decay-sweep/types.d.ts.map +0 -1
  420. package/dist/eval/experiments/vector-decay-sweep/types.js +0 -16
  421. package/dist/eval/experiments/vector-decay-sweep/types.js.map +0 -1
  422. package/dist/maintenance/tasks/prune-graph.d.ts +0 -12
  423. package/dist/maintenance/tasks/prune-graph.d.ts.map +0 -1
  424. package/dist/maintenance/tasks/prune-graph.js +0 -23
  425. package/dist/maintenance/tasks/prune-graph.js.map +0 -1
  426. package/dist/retrieval/traverser.d.ts +0 -66
  427. package/dist/retrieval/traverser.d.ts.map +0 -1
  428. package/dist/retrieval/traverser.js +0 -160
  429. package/dist/retrieval/traverser.js.map +0 -1
  430. package/dist/storage/clock-store.d.ts +0 -80
  431. package/dist/storage/clock-store.d.ts.map +0 -1
  432. package/dist/storage/clock-store.js +0 -155
  433. package/dist/storage/clock-store.js.map +0 -1
  434. package/dist/storage/decay.d.ts +0 -125
  435. package/dist/storage/decay.d.ts.map +0 -1
  436. package/dist/storage/decay.js +0 -276
  437. package/dist/storage/decay.js.map +0 -1
  438. package/dist/storage/pruner.d.ts +0 -111
  439. package/dist/storage/pruner.d.ts.map +0 -1
  440. package/dist/storage/pruner.js +0 -280
  441. package/dist/storage/pruner.js.map +0 -1
  442. package/dist/temporal/clock-compactor.d.ts +0 -65
  443. package/dist/temporal/clock-compactor.d.ts.map +0 -1
  444. package/dist/temporal/clock-compactor.js +0 -157
  445. package/dist/temporal/clock-compactor.js.map +0 -1
  446. package/dist/temporal/index.d.ts +0 -6
  447. package/dist/temporal/index.d.ts.map +0 -1
  448. package/dist/temporal/index.js +0 -6
  449. package/dist/temporal/index.js.map +0 -1
  450. package/dist/temporal/vector-clock.d.ts +0 -143
  451. package/dist/temporal/vector-clock.d.ts.map +0 -1
  452. package/dist/temporal/vector-clock.js +0 -231
  453. package/dist/temporal/vector-clock.js.map +0 -1
  454. package/dist/utils/keychain.d.ts +0 -43
  455. package/dist/utils/keychain.d.ts.map +0 -1
  456. package/dist/utils/keychain.js +0 -82
  457. package/dist/utils/keychain.js.map +0 -1
@@ -1,7 +0,0 @@
1
- /**
2
- * Vector decay parameter sweep experiment.
3
- * Tests different weightPerHop values to find optimal vector clock decay.
4
- */
5
- export * from './types.js';
6
- export * from './run-sweep.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Vector decay parameter sweep experiment.
3
- * Tests different weightPerHop values to find optimal vector clock decay.
4
- */
5
- export * from './types.js';
6
- export * from './run-sweep.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Vector decay parameter sweep experiment.
3
- *
4
- * Tests different weightPerHop values to find optimal decay rate
5
- * for vector clock-based edge decay.
6
- *
7
- * The experiment works by:
8
- * 1. For each source chunk, get its actual target chunks (positive samples)
9
- * 2. Sample random chunks from the same project as negatives
10
- * 3. Rank all candidates using vector clock decay weights
11
- * 4. Measure if positive samples rank higher than negatives (MRR)
12
- */
13
- import type { VectorDecayVariant, VectorDecaySweepResults } from './types.js';
14
- /**
15
- * Create decay variants from weight-per-hop values.
16
- */
17
- export declare function createVariants(weightPerHopValues?: number[]): VectorDecayVariant[];
18
- /**
19
- * Run the vector decay sweep experiment.
20
- */
21
- export declare function runVectorDecaySweep(options?: {
22
- weightPerHopValues?: number[];
23
- verbose?: boolean;
24
- maxQueries?: number;
25
- }): Promise<VectorDecaySweepResults>;
26
- /**
27
- * Format sweep results as a table.
28
- */
29
- export declare function formatSweepResults(results: VectorDecaySweepResults): string;
30
- //# sourceMappingURL=run-sweep.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-sweep.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/run-sweep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EACV,kBAAkB,EAElB,uBAAuB,EAGxB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,kBAAkB,GAAE,MAAM,EAA0B,GAAG,kBAAkB,EAAE,CASzG;AAiMD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,GAAE;IACP,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,GACL,OAAO,CAAC,uBAAuB,CAAC,CAuLlC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAiE3E"}
@@ -1,378 +0,0 @@
1
- /**
2
- * Vector decay parameter sweep experiment.
3
- *
4
- * Tests different weightPerHop values to find optimal decay rate
5
- * for vector clock-based edge decay.
6
- *
7
- * The experiment works by:
8
- * 1. For each source chunk, get its actual target chunks (positive samples)
9
- * 2. Sample random chunks from the same project as negatives
10
- * 3. Rank all candidates using vector clock decay weights
11
- * 4. Measure if positive samples rank higher than negatives (MRR)
12
- */
13
- import { getDb } from '../../../storage/db.js';
14
- import { deserialize, hopCount } from '../../../temporal/vector-clock.js';
15
- import { calculateVectorDecayWeight } from '../../../storage/decay.js';
16
- import { getReferenceClock } from '../../../storage/clock-store.js';
17
- import { WEIGHT_PER_HOP_VALUES, HOP_BIN_BOUNDARIES } from './types.js';
18
- /** Number of negative samples per query */
19
- const NEGATIVE_SAMPLE_COUNT = 10;
20
- /**
21
- * Create decay variants from weight-per-hop values.
22
- */
23
- export function createVariants(weightPerHopValues = WEIGHT_PER_HOP_VALUES) {
24
- return weightPerHopValues.map((wph) => ({
25
- id: `wph-${(wph * 100).toFixed(0)}`,
26
- name: `Weight/Hop ${(wph * 100).toFixed(0)}%`,
27
- config: {
28
- weightPerHop: wph,
29
- minWeight: 0.01,
30
- },
31
- }));
32
- }
33
- /**
34
- * Get hop bin for a given hop count.
35
- */
36
- function getHopBin(hops) {
37
- if (hops <= HOP_BIN_BOUNDARIES.near.max)
38
- return 'near';
39
- if (hops <= HOP_BIN_BOUNDARIES.medium.max)
40
- return 'medium';
41
- return 'far';
42
- }
43
- /**
44
- * Load edges with vector clocks from database.
45
- */
46
- function loadEdgesWithClocks() {
47
- const db = getDb();
48
- return db.prepare(`
49
- SELECT id, source_chunk_id as sourceChunkId, target_chunk_id as targetChunkId,
50
- vector_clock as vectorClock, initial_weight as initialWeight,
51
- reference_type as referenceType
52
- FROM edges
53
- WHERE vector_clock IS NOT NULL
54
- `).all();
55
- }
56
- /**
57
- * Load chunk metadata.
58
- */
59
- function loadChunks() {
60
- const db = getDb();
61
- const rows = db.prepare(`
62
- SELECT id, session_slug as sessionSlug, vector_clock as vectorClock
63
- FROM chunks
64
- `).all();
65
- return new Map(rows.map((r) => [r.id, r]));
66
- }
67
- /**
68
- * Group edges by source chunk for retrieval evaluation.
69
- */
70
- function groupEdgesBySource(edges) {
71
- const groups = new Map();
72
- for (const edge of edges) {
73
- const existing = groups.get(edge.sourceChunkId) ?? [];
74
- existing.push(edge);
75
- groups.set(edge.sourceChunkId, existing);
76
- }
77
- return groups;
78
- }
79
- /**
80
- * Sample random chunks from a project to use as negative samples.
81
- */
82
- function sampleNegativeChunks(projectSlug, excludeChunkIds, count, projectChunks) {
83
- const available = projectChunks.get(projectSlug) ?? [];
84
- const candidates = available.filter((c) => !excludeChunkIds.has(c.id) && c.vectorClock);
85
- if (candidates.length === 0)
86
- return [];
87
- // Fisher-Yates shuffle and take first `count`
88
- const shuffled = [...candidates];
89
- for (let i = shuffled.length - 1; i > 0; i--) {
90
- const j = Math.floor(Math.random() * (i + 1));
91
- [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
92
- }
93
- return shuffled.slice(0, count);
94
- }
95
- /**
96
- * Evaluate a single query (source chunk) with positive and negative samples.
97
- */
98
- function evaluateQuery(sourceChunkId, positiveEdges, projectSlug, referenceClock, config, projectChunks) {
99
- // Filter to edges with explicit references (not just adjacent)
100
- const relevantTypes = ['file-path', 'code-entity', 'explicit-backref', 'error-fragment', 'tool-output'];
101
- const relevantEdges = positiveEdges.filter((e) => relevantTypes.includes(e.referenceType ?? ''));
102
- if (relevantEdges.length === 0) {
103
- return null;
104
- }
105
- // Get the positive target chunk IDs
106
- const positiveTargetIds = new Set(relevantEdges.map((e) => e.targetChunkId));
107
- // Sample negative chunks
108
- const excludeIds = new Set([sourceChunkId, ...positiveTargetIds]);
109
- const negativeChunks = sampleNegativeChunks(projectSlug, excludeIds, NEGATIVE_SAMPLE_COUNT, projectChunks);
110
- if (negativeChunks.length === 0) {
111
- return null;
112
- }
113
- const candidates = [];
114
- // Add positive samples (from edges)
115
- for (const edge of relevantEdges) {
116
- if (!edge.vectorClock)
117
- continue;
118
- const edgeClock = deserialize(edge.vectorClock);
119
- const hops = hopCount(edgeClock, referenceClock);
120
- const weight = calculateVectorDecayWeight(edgeClock, referenceClock, config);
121
- candidates.push({
122
- chunkId: edge.targetChunkId,
123
- isPositive: true,
124
- hops,
125
- weight,
126
- });
127
- }
128
- // Add negative samples
129
- for (const chunk of negativeChunks) {
130
- if (!chunk.vectorClock)
131
- continue;
132
- const chunkClock = deserialize(chunk.vectorClock);
133
- const hops = hopCount(chunkClock, referenceClock);
134
- // For negative samples, calculate weight based on chunk's clock
135
- const weight = calculateVectorDecayWeight(chunkClock, referenceClock, config);
136
- candidates.push({
137
- chunkId: chunk.id,
138
- isPositive: false,
139
- hops,
140
- weight,
141
- });
142
- }
143
- if (candidates.filter((c) => c.isPositive).length === 0) {
144
- return null;
145
- }
146
- // Sort by weight descending (best candidates first)
147
- candidates.sort((a, b) => b.weight - a.weight);
148
- // Find rank of first positive (relevant) sample
149
- let firstRelevantRank = 0;
150
- for (let i = 0; i < candidates.length; i++) {
151
- if (candidates[i].isPositive) {
152
- firstRelevantRank = i + 1;
153
- break;
154
- }
155
- }
156
- const reciprocalRank = firstRelevantRank > 0 ? 1 / firstRelevantRank : 0;
157
- return {
158
- sourceChunkId,
159
- projectSlug,
160
- relevantHops: candidates.filter((c) => c.isPositive).map((c) => c.hops),
161
- allHops: candidates.map((c) => c.hops),
162
- reciprocalRank,
163
- firstRelevantRank,
164
- };
165
- }
166
- /**
167
- * Run the vector decay sweep experiment.
168
- */
169
- export async function runVectorDecaySweep(options = {}) {
170
- const { weightPerHopValues = WEIGHT_PER_HOP_VALUES, verbose = true, maxQueries = Infinity, } = options;
171
- if (verbose) {
172
- console.log('=== Vector Decay Parameter Sweep ===\n');
173
- }
174
- // Create variants
175
- const variants = createVariants(weightPerHopValues);
176
- if (verbose) {
177
- console.log('Variants to test:');
178
- for (const v of variants) {
179
- console.log(` ${v.id}: ${v.name}`);
180
- }
181
- console.log();
182
- }
183
- // Load edges
184
- if (verbose) {
185
- console.log('Loading edges with vector clocks...');
186
- }
187
- const allEdges = loadEdgesWithClocks();
188
- const chunks = loadChunks();
189
- if (verbose) {
190
- console.log(` Found ${allEdges.length} edges with vector clocks`);
191
- }
192
- // Group by source
193
- const edgesBySource = groupEdgesBySource(allEdges);
194
- if (verbose) {
195
- console.log(` ${edgesBySource.size} unique source chunks`);
196
- console.log();
197
- }
198
- // Get all unique project slugs
199
- const projectSlugs = new Set();
200
- for (const chunk of chunks.values()) {
201
- projectSlugs.add(chunk.sessionSlug);
202
- }
203
- // Pre-load reference clocks
204
- const referenceClocks = new Map();
205
- for (const slug of projectSlugs) {
206
- referenceClocks.set(slug, getReferenceClock(slug));
207
- }
208
- // Group chunks by project for negative sampling
209
- const projectChunks = new Map();
210
- for (const chunk of chunks.values()) {
211
- const existing = projectChunks.get(chunk.sessionSlug) ?? [];
212
- existing.push(chunk);
213
- projectChunks.set(chunk.sessionSlug, existing);
214
- }
215
- // Run sweep for each variant
216
- const results = [];
217
- for (const variant of variants) {
218
- if (verbose) {
219
- console.log(`Evaluating ${variant.name}...`);
220
- }
221
- const evaluations = [];
222
- let queriesProcessed = 0;
223
- for (const [sourceChunkId, edges] of edgesBySource) {
224
- if (queriesProcessed >= maxQueries)
225
- break;
226
- const chunk = chunks.get(sourceChunkId);
227
- if (!chunk)
228
- continue;
229
- const refClock = referenceClocks.get(chunk.sessionSlug);
230
- if (!refClock)
231
- continue;
232
- const evaluation = evaluateQuery(sourceChunkId, edges, chunk.sessionSlug, refClock, variant.config, projectChunks);
233
- if (evaluation) {
234
- evaluations.push(evaluation);
235
- queriesProcessed++;
236
- }
237
- }
238
- // Calculate metrics
239
- const mrr = evaluations.length > 0
240
- ? evaluations.reduce((sum, e) => sum + e.reciprocalRank, 0) / evaluations.length
241
- : 0;
242
- // Rank distribution
243
- const rankDistribution = {
244
- rank1: 0,
245
- rank2_5: 0,
246
- rank6_10: 0,
247
- rank11_plus: 0,
248
- };
249
- for (const e of evaluations) {
250
- if (e.firstRelevantRank === 1)
251
- rankDistribution.rank1++;
252
- else if (e.firstRelevantRank <= 5)
253
- rankDistribution.rank2_5++;
254
- else if (e.firstRelevantRank <= 10)
255
- rankDistribution.rank6_10++;
256
- else
257
- rankDistribution.rank11_plus++;
258
- }
259
- // Stratified by hop distance (use minimum hop from relevant edges)
260
- const stratified = {
261
- near: [],
262
- medium: [],
263
- far: [],
264
- };
265
- for (const e of evaluations) {
266
- if (e.relevantHops.length === 0)
267
- continue;
268
- const minHop = Math.min(...e.relevantHops);
269
- const bin = getHopBin(minHop);
270
- stratified[bin].push(e);
271
- }
272
- const stratifiedMRR = {
273
- near: stratified.near.length > 0
274
- ? stratified.near.reduce((s, e) => s + e.reciprocalRank, 0) / stratified.near.length
275
- : 0,
276
- medium: stratified.medium.length > 0
277
- ? stratified.medium.reduce((s, e) => s + e.reciprocalRank, 0) / stratified.medium.length
278
- : 0,
279
- far: stratified.far.length > 0
280
- ? stratified.far.reduce((s, e) => s + e.reciprocalRank, 0) / stratified.far.length
281
- : 0,
282
- };
283
- const result = {
284
- variantId: variant.id,
285
- variantName: variant.name,
286
- weightPerHop: variant.config.weightPerHop,
287
- mrr,
288
- queryCount: evaluations.length,
289
- rankDistribution,
290
- stratifiedMRR,
291
- stratifiedCounts: {
292
- near: stratified.near.length,
293
- medium: stratified.medium.length,
294
- far: stratified.far.length,
295
- },
296
- };
297
- results.push(result);
298
- if (verbose) {
299
- console.log(` MRR: ${mrr.toFixed(3)}, Queries: ${evaluations.length}`);
300
- console.log(` Near: ${stratifiedMRR.near.toFixed(3)} (${stratified.near.length})`);
301
- console.log(` Medium: ${stratifiedMRR.medium.toFixed(3)} (${stratified.medium.length})`);
302
- console.log(` Far: ${stratifiedMRR.far.toFixed(3)} (${stratified.far.length})`);
303
- }
304
- }
305
- // Find best variants
306
- const sortedByMRR = [...results].sort((a, b) => b.mrr - a.mrr);
307
- const sortedByFar = [...results].sort((a, b) => b.stratifiedMRR.far - a.stratifiedMRR.far);
308
- const sweepResults = {
309
- generatedAt: new Date().toISOString(),
310
- edgeCount: allEdges.length,
311
- edgesWithClocks: allEdges.length,
312
- results,
313
- bestVariantId: sortedByMRR[0]?.variantId ?? '',
314
- bestFarHopVariantId: sortedByFar[0]?.variantId ?? '',
315
- };
316
- if (verbose) {
317
- console.log('\n' + formatSweepResults(sweepResults));
318
- }
319
- return sweepResults;
320
- }
321
- /**
322
- * Format sweep results as a table.
323
- */
324
- export function formatSweepResults(results) {
325
- const lines = [];
326
- lines.push('='.repeat(90));
327
- lines.push(' VECTOR DECAY PARAMETER SWEEP RESULTS');
328
- lines.push('='.repeat(90));
329
- lines.push('\nEdges analyzed: ' + results.edgeCount);
330
- lines.push('');
331
- // Header
332
- const header = [
333
- 'Variant'.padEnd(20),
334
- 'Weight/Hop'.padEnd(12),
335
- 'MRR'.padEnd(10),
336
- 'Rank@1'.padEnd(10),
337
- 'Near MRR'.padEnd(10),
338
- 'Med MRR'.padEnd(10),
339
- 'Far MRR'.padEnd(10),
340
- ].join(' | ');
341
- lines.push(header);
342
- lines.push('-'.repeat(90));
343
- // Sort by overall MRR descending
344
- const sorted = [...results.results].sort((a, b) => b.mrr - a.mrr);
345
- for (const r of sorted) {
346
- const row = [
347
- r.variantName.padEnd(20),
348
- r.weightPerHop.toFixed(2).padEnd(12),
349
- r.mrr.toFixed(3).padEnd(10),
350
- r.rankDistribution.rank1.toString().padEnd(10),
351
- r.stratifiedMRR.near.toFixed(3).padEnd(10),
352
- r.stratifiedMRR.medium.toFixed(3).padEnd(10),
353
- r.stratifiedMRR.far.toFixed(3).padEnd(10),
354
- ].join(' | ');
355
- // Mark best overall and best far
356
- let suffix = '';
357
- if (r.variantId === results.bestVariantId)
358
- suffix += ' *BEST*';
359
- if (r.variantId === results.bestFarHopVariantId && r.variantId !== results.bestVariantId) {
360
- suffix += ' *BEST-FAR*';
361
- }
362
- lines.push(row + suffix);
363
- }
364
- lines.push('='.repeat(90));
365
- // Recommendations
366
- lines.push('\nRecommendations:');
367
- const best = sorted[0];
368
- lines.push(` Best overall: ${best.variantName} (MRR=${best.mrr.toFixed(3)})`);
369
- if (results.bestFarHopVariantId !== results.bestVariantId) {
370
- const bestFar = sorted.find((r) => r.variantId === results.bestFarHopVariantId);
371
- if (bestFar) {
372
- lines.push(` Best for far-hop: ${bestFar.variantName} (Far MRR=${bestFar.stratifiedMRR.far.toFixed(3)})`);
373
- }
374
- }
375
- lines.push('');
376
- return lines.join('\n');
377
- }
378
- //# sourceMappingURL=run-sweep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-sweep.js","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/run-sweep.ts"],"names":[],"mappings":"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"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Types for vector decay parameter sweep experiment.
3
- */
4
- import type { VectorDecayConfig } from '../../../storage/decay.js';
5
- /**
6
- * A single weight-per-hop configuration to test.
7
- */
8
- export interface VectorDecayVariant {
9
- /** Unique ID for this variant */
10
- id: string;
11
- /** Human-readable name */
12
- name: string;
13
- /** The decay configuration */
14
- config: VectorDecayConfig;
15
- }
16
- /**
17
- * Hop distance stratification levels.
18
- */
19
- export type HopBin = 'near' | 'medium' | 'far';
20
- /**
21
- * Evaluation result for a single query.
22
- */
23
- export interface VectorQueryEvaluation {
24
- /** Source chunk ID (the query) */
25
- sourceChunkId: string;
26
- /** Project slug */
27
- projectSlug: string;
28
- /** Hop counts for relevant edges */
29
- relevantHops: number[];
30
- /** Hop counts for all candidate edges */
31
- allHops: number[];
32
- /** Reciprocal rank using vector decay */
33
- reciprocalRank: number;
34
- /** First relevant rank */
35
- firstRelevantRank: number;
36
- }
37
- /**
38
- * Results for a single decay variant.
39
- */
40
- export interface VectorDecaySweepResult {
41
- /** Variant ID */
42
- variantId: string;
43
- /** Variant name */
44
- variantName: string;
45
- /** Weight per hop value */
46
- weightPerHop: number;
47
- /** Mean Reciprocal Rank overall */
48
- mrr: number;
49
- /** Number of queries evaluated */
50
- queryCount: number;
51
- /** Rank distribution */
52
- rankDistribution: {
53
- rank1: number;
54
- rank2_5: number;
55
- rank6_10: number;
56
- rank11_plus: number;
57
- };
58
- /** MRR stratified by hop distance */
59
- stratifiedMRR: {
60
- near: number;
61
- medium: number;
62
- far: number;
63
- };
64
- /** Query count by hop bin */
65
- stratifiedCounts: {
66
- near: number;
67
- medium: number;
68
- far: number;
69
- };
70
- }
71
- /**
72
- * Complete sweep results.
73
- */
74
- export interface VectorDecaySweepResults {
75
- /** Timestamp when sweep was run */
76
- generatedAt: string;
77
- /** Total edges analyzed */
78
- edgeCount: number;
79
- /** Edges with vector clocks */
80
- edgesWithClocks: number;
81
- /** Results per variant */
82
- results: VectorDecaySweepResult[];
83
- /** Best variant by overall MRR */
84
- bestVariantId: string;
85
- /** Best variant for far-hop retrieval */
86
- bestFarHopVariantId: string;
87
- }
88
- /**
89
- * Default weight-per-hop values to sweep.
90
- */
91
- export declare const WEIGHT_PER_HOP_VALUES: number[];
92
- /**
93
- * Hop bin boundaries.
94
- */
95
- export declare const HOP_BIN_BOUNDARIES: {
96
- near: {
97
- min: number;
98
- max: number;
99
- };
100
- medium: {
101
- min: number;
102
- max: number;
103
- };
104
- far: {
105
- min: number;
106
- max: number;
107
- };
108
- };
109
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yCAAyC;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,gBAAgB,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,qCAAqC;IACrC,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,6BAA6B;IAC7B,gBAAgB,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,UAA2B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAI9B,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Types for vector decay parameter sweep experiment.
3
- */
4
- /**
5
- * Default weight-per-hop values to sweep.
6
- */
7
- export const WEIGHT_PER_HOP_VALUES = [0.80, 0.85, 0.90, 0.95];
8
- /**
9
- * Hop bin boundaries.
10
- */
11
- export const HOP_BIN_BOUNDARIES = {
12
- near: { min: 1, max: 3 },
13
- medium: { min: 4, max: 7 },
14
- far: { min: 8, max: Infinity },
15
- };
16
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/eval/experiments/vector-decay-sweep/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4FH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE9D;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IACxB,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;IAC1B,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE;CAC/B,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Maintenance task: Remove dead edges and mark orphaned chunks for TTL cleanup.
3
- */
4
- import type { MaintenanceResult } from '../scheduler.js';
5
- export interface PruneGraphDeps {
6
- flushNow: () => Promise<{
7
- edgesDeleted: number;
8
- chunksOrphaned: number;
9
- }>;
10
- }
11
- export declare function pruneGraph(deps: PruneGraphDeps): Promise<MaintenanceResult>;
12
- //# sourceMappingURL=prune-graph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune-graph.d.ts","sourceRoot":"","sources":["../../../src/maintenance/tasks/prune-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBjF"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Maintenance task: Remove dead edges and mark orphaned chunks for TTL cleanup.
3
- */
4
- export async function pruneGraph(deps) {
5
- const startTime = Date.now();
6
- try {
7
- const result = await deps.flushNow();
8
- return {
9
- success: true,
10
- duration: Date.now() - startTime,
11
- message: `Pruned ${result.edgesDeleted} edges, marked ${result.chunksOrphaned} chunks for TTL cleanup`,
12
- details: result,
13
- };
14
- }
15
- catch (error) {
16
- return {
17
- success: false,
18
- duration: Date.now() - startTime,
19
- message: `Pruning failed: ${error.message}`,
20
- };
21
- }
22
- }
23
- //# sourceMappingURL=prune-graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prune-graph.js","sourceRoot":"","sources":["../../../src/maintenance/tasks/prune-graph.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAErC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,OAAO,EAAE,UAAU,MAAM,CAAC,YAAY,kBAAkB,MAAM,CAAC,cAAc,yBAAyB;YACtG,OAAO,EAAE,MAA4C;SACtD,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAChC,OAAO,EAAE,mBAAoB,KAAe,CAAC,OAAO,EAAE;SACvD,CAAC;IACJ,CAAC;AACH,CAAC"}