causantic 0.2.0 → 0.3.0

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 (465) 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 +8 -2
  11. package/dist/cli/commands/hook.js.map +1 -1
  12. package/dist/cli/commands/init.d.ts.map +1 -1
  13. package/dist/cli/commands/init.js +39 -32
  14. package/dist/cli/commands/init.js.map +1 -1
  15. package/dist/cli/commands/maintenance.d.ts.map +1 -1
  16. package/dist/cli/commands/maintenance.js +10 -3
  17. package/dist/cli/commands/maintenance.js.map +1 -1
  18. package/dist/cli/commands/serve.d.ts.map +1 -1
  19. package/dist/cli/commands/serve.js +3 -3
  20. package/dist/cli/commands/serve.js.map +1 -1
  21. package/dist/cli/index.js +1 -1
  22. package/dist/cli/skill-templates.d.ts.map +1 -1
  23. package/dist/cli/skill-templates.js +223 -153
  24. package/dist/cli/skill-templates.js.map +1 -1
  25. package/dist/cli/uninstall.d.ts.map +1 -1
  26. package/dist/cli/uninstall.js +4 -1
  27. package/dist/cli/uninstall.js.map +1 -1
  28. package/dist/clusters/cluster-manager.d.ts +23 -0
  29. package/dist/clusters/cluster-manager.d.ts.map +1 -1
  30. package/dist/clusters/cluster-manager.js +69 -2
  31. package/dist/clusters/cluster-manager.js.map +1 -1
  32. package/dist/clusters/cluster-refresh.d.ts.map +1 -1
  33. package/dist/clusters/cluster-refresh.js +5 -1
  34. package/dist/clusters/cluster-refresh.js.map +1 -1
  35. package/dist/clusters/hdbscan/cluster-extraction.d.ts.map +1 -1
  36. package/dist/clusters/hdbscan/cluster-extraction.js +1 -2
  37. package/dist/clusters/hdbscan/cluster-extraction.js.map +1 -1
  38. package/dist/clusters/hdbscan/hierarchy.d.ts.map +1 -1
  39. package/dist/clusters/hdbscan/hierarchy.js +1 -3
  40. package/dist/clusters/hdbscan/hierarchy.js.map +1 -1
  41. package/dist/clusters/hdbscan/incremental.d.ts.map +1 -1
  42. package/dist/clusters/hdbscan/incremental.js.map +1 -1
  43. package/dist/clusters/hdbscan/probabilities.d.ts +1 -1
  44. package/dist/clusters/hdbscan/probabilities.d.ts.map +1 -1
  45. package/dist/clusters/hdbscan/probabilities.js +1 -1
  46. package/dist/clusters/hdbscan/probabilities.js.map +1 -1
  47. package/dist/clusters/hdbscan.d.ts.map +1 -1
  48. package/dist/clusters/hdbscan.js +3 -5
  49. package/dist/clusters/hdbscan.js.map +1 -1
  50. package/dist/config/loader.d.ts +10 -15
  51. package/dist/config/loader.d.ts.map +1 -1
  52. package/dist/config/loader.js +40 -71
  53. package/dist/config/loader.js.map +1 -1
  54. package/dist/config/memory-config.d.ts +2 -45
  55. package/dist/config/memory-config.d.ts.map +1 -1
  56. package/dist/config/memory-config.js +6 -109
  57. package/dist/config/memory-config.js.map +1 -1
  58. package/dist/core/index.d.ts +1 -1
  59. package/dist/core/index.d.ts.map +1 -1
  60. package/dist/core/lexical-features.d.ts.map +1 -1
  61. package/dist/core/lexical-features.js +141 -20
  62. package/dist/core/lexical-features.js.map +1 -1
  63. package/dist/dashboard/client/assets/index-DdImwNQ0.css +1 -0
  64. package/dist/dashboard/client/assets/index-Ofx8zngH.js +166 -0
  65. package/dist/dashboard/client/index.html +2 -2
  66. package/dist/dashboard/routes/benchmark-collection.d.ts.map +1 -1
  67. package/dist/dashboard/routes/benchmark-collection.js +2 -6
  68. package/dist/dashboard/routes/benchmark-collection.js.map +1 -1
  69. package/dist/dashboard/routes/chain.d.ts +3 -0
  70. package/dist/dashboard/routes/chain.d.ts.map +1 -0
  71. package/dist/dashboard/routes/chain.js +74 -0
  72. package/dist/dashboard/routes/chain.js.map +1 -0
  73. package/dist/dashboard/routes/chunks.d.ts.map +1 -1
  74. package/dist/dashboard/routes/chunks.js +16 -1
  75. package/dist/dashboard/routes/chunks.js.map +1 -1
  76. package/dist/dashboard/routes/graph.d.ts.map +1 -1
  77. package/dist/dashboard/routes/graph.js.map +1 -1
  78. package/dist/dashboard/routes/search.d.ts.map +1 -1
  79. package/dist/dashboard/routes/search.js.map +1 -1
  80. package/dist/dashboard/routes/stats.d.ts.map +1 -1
  81. package/dist/dashboard/routes/stats.js +8 -6
  82. package/dist/dashboard/routes/stats.js.map +1 -1
  83. package/dist/dashboard/routes/timeline.d.ts +3 -0
  84. package/dist/dashboard/routes/timeline.d.ts.map +1 -0
  85. package/dist/dashboard/routes/timeline.js +90 -0
  86. package/dist/dashboard/routes/timeline.js.map +1 -0
  87. package/dist/dashboard/server.d.ts.map +1 -1
  88. package/dist/dashboard/server.js +4 -0
  89. package/dist/dashboard/server.js.map +1 -1
  90. package/dist/eval/annotation-schema.d.ts.map +1 -1
  91. package/dist/eval/annotation-schema.js +2 -5
  92. package/dist/eval/annotation-schema.js.map +1 -1
  93. package/dist/eval/benchmark-runner.d.ts.map +1 -1
  94. package/dist/eval/benchmark-runner.js +2 -2
  95. package/dist/eval/benchmark-runner.js.map +1 -1
  96. package/dist/eval/cluster-evaluator.d.ts.map +1 -1
  97. package/dist/eval/cluster-evaluator.js.map +1 -1
  98. package/dist/eval/collection-benchmark/chain-quality.d.ts +15 -0
  99. package/dist/eval/collection-benchmark/chain-quality.d.ts.map +1 -0
  100. package/dist/eval/collection-benchmark/chain-quality.js +60 -0
  101. package/dist/eval/collection-benchmark/chain-quality.js.map +1 -0
  102. package/dist/eval/collection-benchmark/health.d.ts.map +1 -1
  103. package/dist/eval/collection-benchmark/health.js +2 -2
  104. package/dist/eval/collection-benchmark/health.js.map +1 -1
  105. package/dist/eval/collection-benchmark/history.d.ts.map +1 -1
  106. package/dist/eval/collection-benchmark/history.js +14 -11
  107. package/dist/eval/collection-benchmark/history.js.map +1 -1
  108. package/dist/eval/collection-benchmark/latency.d.ts.map +1 -1
  109. package/dist/eval/collection-benchmark/latency.js +14 -11
  110. package/dist/eval/collection-benchmark/latency.js.map +1 -1
  111. package/dist/eval/collection-benchmark/reporter.d.ts.map +1 -1
  112. package/dist/eval/collection-benchmark/reporter.js +18 -28
  113. package/dist/eval/collection-benchmark/reporter.js.map +1 -1
  114. package/dist/eval/collection-benchmark/retrieval.d.ts.map +1 -1
  115. package/dist/eval/collection-benchmark/retrieval.js +14 -8
  116. package/dist/eval/collection-benchmark/retrieval.js.map +1 -1
  117. package/dist/eval/collection-benchmark/runner.d.ts +3 -3
  118. package/dist/eval/collection-benchmark/runner.d.ts.map +1 -1
  119. package/dist/eval/collection-benchmark/runner.js +46 -37
  120. package/dist/eval/collection-benchmark/runner.js.map +1 -1
  121. package/dist/eval/collection-benchmark/sampler.d.ts.map +1 -1
  122. package/dist/eval/collection-benchmark/sampler.js +14 -12
  123. package/dist/eval/collection-benchmark/sampler.js.map +1 -1
  124. package/dist/eval/collection-benchmark/tuning.d.ts.map +1 -1
  125. package/dist/eval/collection-benchmark/tuning.js +56 -71
  126. package/dist/eval/collection-benchmark/tuning.js.map +1 -1
  127. package/dist/eval/collection-benchmark/types.d.ts +12 -24
  128. package/dist/eval/collection-benchmark/types.d.ts.map +1 -1
  129. package/dist/eval/corpus-builder.d.ts.map +1 -1
  130. package/dist/eval/corpus-builder.js.map +1 -1
  131. package/dist/eval/experiments/boilerplate-filter.d.ts.map +1 -1
  132. package/dist/eval/experiments/boilerplate-filter.js.map +1 -1
  133. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.d.ts.map +1 -1
  134. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js +3 -5
  135. package/dist/eval/experiments/cluster-threshold/run-threshold-sweep.js.map +1 -1
  136. package/dist/eval/experiments/code-focused-mode.d.ts.map +1 -1
  137. package/dist/eval/experiments/code-focused-mode.js +1 -1
  138. package/dist/eval/experiments/code-focused-mode.js.map +1 -1
  139. package/dist/eval/experiments/edge-decay/decay-curves.d.ts +25 -19
  140. package/dist/eval/experiments/edge-decay/decay-curves.d.ts.map +1 -1
  141. package/dist/eval/experiments/edge-decay/decay-curves.js +47 -40
  142. package/dist/eval/experiments/edge-decay/decay-curves.js.map +1 -1
  143. package/dist/eval/experiments/edge-decay/index.d.ts +6 -4
  144. package/dist/eval/experiments/edge-decay/index.d.ts.map +1 -1
  145. package/dist/eval/experiments/edge-decay/index.js +5 -3
  146. package/dist/eval/experiments/edge-decay/index.js.map +1 -1
  147. package/dist/eval/experiments/edge-decay/presets.d.ts +14 -4
  148. package/dist/eval/experiments/edge-decay/presets.d.ts.map +1 -1
  149. package/dist/eval/experiments/edge-decay/presets.js +73 -68
  150. package/dist/eval/experiments/edge-decay/presets.js.map +1 -1
  151. package/dist/eval/experiments/edge-decay/reference-extractor.d.ts +2 -1
  152. package/dist/eval/experiments/edge-decay/reference-extractor.d.ts.map +1 -1
  153. package/dist/eval/experiments/edge-decay/reference-extractor.js +26 -40
  154. package/dist/eval/experiments/edge-decay/reference-extractor.js.map +1 -1
  155. package/dist/eval/experiments/edge-decay/reference-types.d.ts +24 -17
  156. package/dist/eval/experiments/edge-decay/reference-types.d.ts.map +1 -1
  157. package/dist/eval/experiments/edge-decay/reference-types.js +3 -0
  158. package/dist/eval/experiments/edge-decay/reference-types.js.map +1 -1
  159. package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts +8 -8
  160. package/dist/eval/experiments/edge-decay/retrieval-ranking.d.ts.map +1 -1
  161. package/dist/eval/experiments/edge-decay/retrieval-ranking.js +77 -133
  162. package/dist/eval/experiments/edge-decay/retrieval-ranking.js.map +1 -1
  163. package/dist/eval/experiments/edge-decay/run-experiments.d.ts +7 -3
  164. package/dist/eval/experiments/edge-decay/run-experiments.d.ts.map +1 -1
  165. package/dist/eval/experiments/edge-decay/run-experiments.js +71 -52
  166. package/dist/eval/experiments/edge-decay/run-experiments.js.map +1 -1
  167. package/dist/eval/experiments/edge-decay/simulate.d.ts +1 -1
  168. package/dist/eval/experiments/edge-decay/simulate.d.ts.map +1 -1
  169. package/dist/eval/experiments/edge-decay/simulate.js +7 -19
  170. package/dist/eval/experiments/edge-decay/simulate.js.map +1 -1
  171. package/dist/eval/experiments/hdbscan-sweep.d.ts.map +1 -1
  172. package/dist/eval/experiments/hdbscan-sweep.js +2 -6
  173. package/dist/eval/experiments/hdbscan-sweep.js.map +1 -1
  174. package/dist/eval/experiments/single-model-run.d.ts.map +1 -1
  175. package/dist/eval/experiments/single-model-run.js +2 -2
  176. package/dist/eval/experiments/single-model-run.js.map +1 -1
  177. package/dist/eval/experiments/thinking-ablation.d.ts.map +1 -1
  178. package/dist/eval/experiments/thinking-ablation.js +1 -1
  179. package/dist/eval/experiments/thinking-ablation.js.map +1 -1
  180. package/dist/eval/experiments/topic-continuity/hybrid-classifier.d.ts.map +1 -1
  181. package/dist/eval/experiments/topic-continuity/hybrid-classifier.js +54 -6
  182. package/dist/eval/experiments/topic-continuity/hybrid-classifier.js.map +1 -1
  183. package/dist/eval/experiments/topic-continuity/labeler.d.ts.map +1 -1
  184. package/dist/eval/experiments/topic-continuity/labeler.js +1 -4
  185. package/dist/eval/experiments/topic-continuity/labeler.js.map +1 -1
  186. package/dist/eval/experiments/topic-continuity/run-experiment.d.ts.map +1 -1
  187. package/dist/eval/experiments/topic-continuity/run-experiment.js +5 -13
  188. package/dist/eval/experiments/topic-continuity/run-experiment.js.map +1 -1
  189. package/dist/eval/experiments/truncation.d.ts.map +1 -1
  190. package/dist/eval/experiments/truncation.js.map +1 -1
  191. package/dist/eval/experiments/types.d.ts.map +1 -1
  192. package/dist/eval/experiments/types.js.map +1 -1
  193. package/dist/eval/metrics.d.ts.map +1 -1
  194. package/dist/eval/metrics.js.map +1 -1
  195. package/dist/hooks/claudemd-generator.d.ts.map +1 -1
  196. package/dist/hooks/claudemd-generator.js +3 -4
  197. package/dist/hooks/claudemd-generator.js.map +1 -1
  198. package/dist/hooks/hook-utils.d.ts +16 -0
  199. package/dist/hooks/hook-utils.d.ts.map +1 -1
  200. package/dist/hooks/hook-utils.js +51 -2
  201. package/dist/hooks/hook-utils.js.map +1 -1
  202. package/dist/hooks/index.d.ts +4 -2
  203. package/dist/hooks/index.d.ts.map +1 -1
  204. package/dist/hooks/index.js +3 -1
  205. package/dist/hooks/index.js.map +1 -1
  206. package/dist/hooks/pre-compact.d.ts.map +1 -1
  207. package/dist/hooks/pre-compact.js +6 -51
  208. package/dist/hooks/pre-compact.js.map +1 -1
  209. package/dist/hooks/session-end.d.ts +58 -0
  210. package/dist/hooks/session-end.d.ts.map +1 -0
  211. package/dist/hooks/session-end.js +82 -0
  212. package/dist/hooks/session-end.js.map +1 -0
  213. package/dist/hooks/session-start.d.ts.map +1 -1
  214. package/dist/hooks/session-start.js +3 -5
  215. package/dist/hooks/session-start.js.map +1 -1
  216. package/dist/index.d.ts +1 -2
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +1 -3
  219. package/dist/index.js.map +1 -1
  220. package/dist/ingest/batch-ingest.d.ts.map +1 -1
  221. package/dist/ingest/batch-ingest.js.map +1 -1
  222. package/dist/ingest/brief-debrief-detector.d.ts +6 -13
  223. package/dist/ingest/brief-debrief-detector.d.ts.map +1 -1
  224. package/dist/ingest/brief-debrief-detector.js +9 -16
  225. package/dist/ingest/brief-debrief-detector.js.map +1 -1
  226. package/dist/ingest/cross-session-linker.d.ts +2 -1
  227. package/dist/ingest/cross-session-linker.d.ts.map +1 -1
  228. package/dist/ingest/cross-session-linker.js +17 -7
  229. package/dist/ingest/cross-session-linker.js.map +1 -1
  230. package/dist/ingest/edge-creator.d.ts +14 -40
  231. package/dist/ingest/edge-creator.d.ts.map +1 -1
  232. package/dist/ingest/edge-creator.js +34 -132
  233. package/dist/ingest/edge-creator.js.map +1 -1
  234. package/dist/ingest/edge-detector.d.ts +27 -12
  235. package/dist/ingest/edge-detector.d.ts.map +1 -1
  236. package/dist/ingest/edge-detector.js +68 -200
  237. package/dist/ingest/edge-detector.js.map +1 -1
  238. package/dist/ingest/index.d.ts +3 -3
  239. package/dist/ingest/index.d.ts.map +1 -1
  240. package/dist/ingest/index.js +3 -3
  241. package/dist/ingest/index.js.map +1 -1
  242. package/dist/ingest/ingest-session.d.ts +1 -8
  243. package/dist/ingest/ingest-session.d.ts.map +1 -1
  244. package/dist/ingest/ingest-session.js +54 -107
  245. package/dist/ingest/ingest-session.js.map +1 -1
  246. package/dist/ingest/rebuild-edges.d.ts +17 -0
  247. package/dist/ingest/rebuild-edges.d.ts.map +1 -0
  248. package/dist/ingest/rebuild-edges.js +97 -0
  249. package/dist/ingest/rebuild-edges.js.map +1 -0
  250. package/dist/maintenance/scheduler.d.ts +2 -3
  251. package/dist/maintenance/scheduler.d.ts.map +1 -1
  252. package/dist/maintenance/scheduler.js +14 -23
  253. package/dist/maintenance/scheduler.js.map +1 -1
  254. package/dist/maintenance/tasks/cleanup-vectors.d.ts +3 -1
  255. package/dist/maintenance/tasks/cleanup-vectors.d.ts.map +1 -1
  256. package/dist/maintenance/tasks/cleanup-vectors.js +6 -4
  257. package/dist/maintenance/tasks/cleanup-vectors.js.map +1 -1
  258. package/dist/maintenance/tasks/index.d.ts +0 -1
  259. package/dist/maintenance/tasks/index.d.ts.map +1 -1
  260. package/dist/maintenance/tasks/index.js +0 -1
  261. package/dist/maintenance/tasks/index.js.map +1 -1
  262. package/dist/mcp/index.d.ts +1 -1
  263. package/dist/mcp/index.d.ts.map +1 -1
  264. package/dist/mcp/index.js +1 -1
  265. package/dist/mcp/index.js.map +1 -1
  266. package/dist/mcp/server.d.ts.map +1 -1
  267. package/dist/mcp/server.js +9 -8
  268. package/dist/mcp/server.js.map +1 -1
  269. package/dist/mcp/tools.d.ts +5 -5
  270. package/dist/mcp/tools.d.ts.map +1 -1
  271. package/dist/mcp/tools.js +42 -36
  272. package/dist/mcp/tools.js.map +1 -1
  273. package/dist/models/device-detector.d.ts.map +1 -1
  274. package/dist/models/device-detector.js +20 -10
  275. package/dist/models/device-detector.js.map +1 -1
  276. package/dist/models/embedder.d.ts.map +1 -1
  277. package/dist/models/embedder.js +5 -2
  278. package/dist/models/embedder.js.map +1 -1
  279. package/dist/models/model-registry.d.ts.map +1 -1
  280. package/dist/models/model-registry.js.map +1 -1
  281. package/dist/parser/chunker.d.ts +5 -40
  282. package/dist/parser/chunker.d.ts.map +1 -1
  283. package/dist/parser/chunker.js +5 -111
  284. package/dist/parser/chunker.js.map +1 -1
  285. package/dist/parser/session-reader.d.ts.map +1 -1
  286. package/dist/parser/session-reader.js +3 -6
  287. package/dist/parser/session-reader.js.map +1 -1
  288. package/dist/parser/turn-assembler.d.ts.map +1 -1
  289. package/dist/parser/turn-assembler.js +0 -1
  290. package/dist/parser/turn-assembler.js.map +1 -1
  291. package/dist/parser/types.d.ts.map +1 -1
  292. package/dist/report/reporter.d.ts.map +1 -1
  293. package/dist/report/reporter.js +1 -3
  294. package/dist/report/reporter.js.map +1 -1
  295. package/dist/retrieval/chain-assembler.d.ts +58 -0
  296. package/dist/retrieval/chain-assembler.d.ts.map +1 -0
  297. package/dist/retrieval/chain-assembler.js +126 -0
  298. package/dist/retrieval/chain-assembler.js.map +1 -0
  299. package/dist/retrieval/chain-walker.d.ts +57 -0
  300. package/dist/retrieval/chain-walker.d.ts.map +1 -0
  301. package/dist/retrieval/chain-walker.js +121 -0
  302. package/dist/retrieval/chain-walker.js.map +1 -0
  303. package/dist/retrieval/cluster-expander.d.ts.map +1 -1
  304. package/dist/retrieval/cluster-expander.js +3 -3
  305. package/dist/retrieval/cluster-expander.js.map +1 -1
  306. package/dist/retrieval/context-assembler.d.ts +13 -36
  307. package/dist/retrieval/context-assembler.d.ts.map +1 -1
  308. package/dist/retrieval/context-assembler.js +50 -287
  309. package/dist/retrieval/context-assembler.js.map +1 -1
  310. package/dist/retrieval/index.d.ts +8 -4
  311. package/dist/retrieval/index.d.ts.map +1 -1
  312. package/dist/retrieval/index.js +7 -3
  313. package/dist/retrieval/index.js.map +1 -1
  314. package/dist/retrieval/rrf.d.ts.map +1 -1
  315. package/dist/retrieval/rrf.js +4 -2
  316. package/dist/retrieval/rrf.js.map +1 -1
  317. package/dist/retrieval/search-assembler.d.ts +59 -0
  318. package/dist/retrieval/search-assembler.d.ts.map +1 -0
  319. package/dist/retrieval/search-assembler.js +209 -0
  320. package/dist/retrieval/search-assembler.js.map +1 -0
  321. package/dist/retrieval/session-reconstructor.d.ts.map +1 -1
  322. package/dist/retrieval/session-reconstructor.js +9 -7
  323. package/dist/retrieval/session-reconstructor.js.map +1 -1
  324. package/dist/storage/archive.d.ts +0 -2
  325. package/dist/storage/archive.d.ts.map +1 -1
  326. package/dist/storage/archive.js +18 -12
  327. package/dist/storage/archive.js.map +1 -1
  328. package/dist/storage/checkpoint-store.d.ts +0 -1
  329. package/dist/storage/checkpoint-store.d.ts.map +1 -1
  330. package/dist/storage/checkpoint-store.js +5 -7
  331. package/dist/storage/checkpoint-store.js.map +1 -1
  332. package/dist/storage/chunk-store.d.ts.map +1 -1
  333. package/dist/storage/chunk-store.js +15 -17
  334. package/dist/storage/chunk-store.js.map +1 -1
  335. package/dist/storage/cluster-store.d.ts.map +1 -1
  336. package/dist/storage/cluster-store.js.map +1 -1
  337. package/dist/storage/db.d.ts.map +1 -1
  338. package/dist/storage/db.js.map +1 -1
  339. package/dist/storage/edge-store.d.ts +17 -30
  340. package/dist/storage/edge-store.d.ts.map +1 -1
  341. package/dist/storage/edge-store.js +43 -123
  342. package/dist/storage/edge-store.js.map +1 -1
  343. package/dist/storage/embedding-cache.d.ts.map +1 -1
  344. package/dist/storage/embedding-cache.js +1 -3
  345. package/dist/storage/embedding-cache.js.map +1 -1
  346. package/dist/storage/encryption.d.ts.map +1 -1
  347. package/dist/storage/encryption.js +4 -15
  348. package/dist/storage/encryption.js.map +1 -1
  349. package/dist/storage/index.d.ts +1 -4
  350. package/dist/storage/index.d.ts.map +1 -1
  351. package/dist/storage/index.js +1 -5
  352. package/dist/storage/index.js.map +1 -1
  353. package/dist/storage/keyword-store.d.ts.map +1 -1
  354. package/dist/storage/keyword-store.js +11 -7
  355. package/dist/storage/keyword-store.js.map +1 -1
  356. package/dist/storage/migrations.d.ts.map +1 -1
  357. package/dist/storage/migrations.js +56 -4
  358. package/dist/storage/migrations.js.map +1 -1
  359. package/dist/storage/schema.sql +8 -20
  360. package/dist/storage/types.d.ts +12 -26
  361. package/dist/storage/types.d.ts.map +1 -1
  362. package/dist/storage/types.js +1 -2
  363. package/dist/storage/types.js.map +1 -1
  364. package/dist/storage/vector-store.d.ts +9 -15
  365. package/dist/storage/vector-store.d.ts.map +1 -1
  366. package/dist/storage/vector-store.js +64 -43
  367. package/dist/storage/vector-store.js.map +1 -1
  368. package/dist/utils/angular-distance.d.ts.map +1 -1
  369. package/dist/utils/angular-distance.js.map +1 -1
  370. package/dist/utils/logger.d.ts.map +1 -1
  371. package/dist/utils/logger.js.map +1 -1
  372. package/dist/utils/secret-store.d.ts.map +1 -1
  373. package/dist/utils/secret-store.js +17 -13
  374. package/dist/utils/secret-store.js.map +1 -1
  375. package/dist/utils/secure-buffer.d.ts.map +1 -1
  376. package/dist/utils/secure-buffer.js.map +1 -1
  377. package/package.json +7 -6
  378. package/src/dashboard/client/package-lock.json +3 -3
  379. package/src/dashboard/client/package.json +3 -3
  380. package/dist/dashboard/client/assets/index-CMUKy4f9.css +0 -1
  381. package/dist/dashboard/client/assets/index-esv8TpCN.js +0 -168
  382. package/dist/eval/collection-benchmark/graph-value.d.ts +0 -16
  383. package/dist/eval/collection-benchmark/graph-value.d.ts.map +0 -1
  384. package/dist/eval/collection-benchmark/graph-value.js +0 -162
  385. package/dist/eval/collection-benchmark/graph-value.js.map +0 -1
  386. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts +0 -10
  387. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.d.ts.map +0 -1
  388. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js +0 -229
  389. package/dist/eval/experiments/vector-decay-shapes/curve-shapes-experiment.js.map +0 -1
  390. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts +0 -12
  391. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.d.ts.map +0 -1
  392. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js +0 -316
  393. package/dist/eval/experiments/vector-decay-shapes/graph-range-experiment.js.map +0 -1
  394. package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts +0 -19
  395. package/dist/eval/experiments/vector-decay-shapes/hop-decay.d.ts.map +0 -1
  396. package/dist/eval/experiments/vector-decay-shapes/hop-decay.js +0 -127
  397. package/dist/eval/experiments/vector-decay-shapes/hop-decay.js.map +0 -1
  398. package/dist/eval/experiments/vector-decay-shapes/index.d.ts +0 -11
  399. package/dist/eval/experiments/vector-decay-shapes/index.d.ts.map +0 -1
  400. package/dist/eval/experiments/vector-decay-shapes/index.js +0 -11
  401. package/dist/eval/experiments/vector-decay-shapes/index.js.map +0 -1
  402. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts +0 -14
  403. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.d.ts.map +0 -1
  404. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js +0 -274
  405. package/dist/eval/experiments/vector-decay-shapes/path-traversal-experiment.js.map +0 -1
  406. package/dist/eval/experiments/vector-decay-shapes/presets.d.ts +0 -36
  407. package/dist/eval/experiments/vector-decay-shapes/presets.d.ts.map +0 -1
  408. package/dist/eval/experiments/vector-decay-shapes/presets.js +0 -157
  409. package/dist/eval/experiments/vector-decay-shapes/presets.js.map +0 -1
  410. package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts +0 -20
  411. package/dist/eval/experiments/vector-decay-shapes/run-experiment.d.ts.map +0 -1
  412. package/dist/eval/experiments/vector-decay-shapes/run-experiment.js +0 -504
  413. package/dist/eval/experiments/vector-decay-shapes/run-experiment.js.map +0 -1
  414. package/dist/eval/experiments/vector-decay-shapes/types.d.ts +0 -111
  415. package/dist/eval/experiments/vector-decay-shapes/types.d.ts.map +0 -1
  416. package/dist/eval/experiments/vector-decay-shapes/types.js +0 -15
  417. package/dist/eval/experiments/vector-decay-shapes/types.js.map +0 -1
  418. package/dist/eval/experiments/vector-decay-sweep/index.d.ts +0 -7
  419. package/dist/eval/experiments/vector-decay-sweep/index.d.ts.map +0 -1
  420. package/dist/eval/experiments/vector-decay-sweep/index.js +0 -7
  421. package/dist/eval/experiments/vector-decay-sweep/index.js.map +0 -1
  422. package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts +0 -30
  423. package/dist/eval/experiments/vector-decay-sweep/run-sweep.d.ts.map +0 -1
  424. package/dist/eval/experiments/vector-decay-sweep/run-sweep.js +0 -378
  425. package/dist/eval/experiments/vector-decay-sweep/run-sweep.js.map +0 -1
  426. package/dist/eval/experiments/vector-decay-sweep/types.d.ts +0 -109
  427. package/dist/eval/experiments/vector-decay-sweep/types.d.ts.map +0 -1
  428. package/dist/eval/experiments/vector-decay-sweep/types.js +0 -16
  429. package/dist/eval/experiments/vector-decay-sweep/types.js.map +0 -1
  430. package/dist/maintenance/tasks/prune-graph.d.ts +0 -12
  431. package/dist/maintenance/tasks/prune-graph.d.ts.map +0 -1
  432. package/dist/maintenance/tasks/prune-graph.js +0 -23
  433. package/dist/maintenance/tasks/prune-graph.js.map +0 -1
  434. package/dist/retrieval/traverser.d.ts +0 -66
  435. package/dist/retrieval/traverser.d.ts.map +0 -1
  436. package/dist/retrieval/traverser.js +0 -160
  437. package/dist/retrieval/traverser.js.map +0 -1
  438. package/dist/storage/clock-store.d.ts +0 -80
  439. package/dist/storage/clock-store.d.ts.map +0 -1
  440. package/dist/storage/clock-store.js +0 -155
  441. package/dist/storage/clock-store.js.map +0 -1
  442. package/dist/storage/decay.d.ts +0 -125
  443. package/dist/storage/decay.d.ts.map +0 -1
  444. package/dist/storage/decay.js +0 -276
  445. package/dist/storage/decay.js.map +0 -1
  446. package/dist/storage/pruner.d.ts +0 -111
  447. package/dist/storage/pruner.d.ts.map +0 -1
  448. package/dist/storage/pruner.js +0 -280
  449. package/dist/storage/pruner.js.map +0 -1
  450. package/dist/temporal/clock-compactor.d.ts +0 -65
  451. package/dist/temporal/clock-compactor.d.ts.map +0 -1
  452. package/dist/temporal/clock-compactor.js +0 -157
  453. package/dist/temporal/clock-compactor.js.map +0 -1
  454. package/dist/temporal/index.d.ts +0 -6
  455. package/dist/temporal/index.d.ts.map +0 -1
  456. package/dist/temporal/index.js +0 -6
  457. package/dist/temporal/index.js.map +0 -1
  458. package/dist/temporal/vector-clock.d.ts +0 -143
  459. package/dist/temporal/vector-clock.d.ts.map +0 -1
  460. package/dist/temporal/vector-clock.js +0 -231
  461. package/dist/temporal/vector-clock.js.map +0 -1
  462. package/dist/utils/keychain.d.ts +0 -43
  463. package/dist/utils/keychain.d.ts.map +0 -1
  464. package/dist/utils/keychain.js +0 -82
  465. package/dist/utils/keychain.js.map +0 -1
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Types for turn-to-turn reference extraction and relevance decay experiments.
3
+ *
4
+ * Distance metric: hop distance (turn count difference).
5
+ * Each turn is one D-T-D (Data-Transformation-Data) cycle.
3
6
  */
4
7
  /**
5
8
  * A detected reference from a user turn to a specific earlier assistant turn.
@@ -15,11 +18,15 @@ export interface TurnReference {
15
18
  confidence: 'high' | 'medium' | 'low';
16
19
  /** Evidence that triggered the detection (e.g., matched file path) */
17
20
  evidence: string;
18
- /** Time gap in ms between the referenced turn and the referencing turn */
19
- timeGapMs: number;
21
+ /** Hop distance (turn count difference: userTurnIndex - referencedTurnIndex) */
22
+ hopDistance: number;
20
23
  }
21
24
  /**
22
- * Types of detectable references.
25
+ * Local reference types for session analysis (NOT the storage ReferenceType).
26
+ * These describe the empirical reference patterns detected in raw session data
27
+ * and are used by the decay curve experiments. They are independent of the
28
+ * structural edge types (within-chain, cross-session, brief, debrief) used
29
+ * in the causal graph storage layer.
23
30
  */
24
31
  export type ReferenceType = 'file-path' | 'error-fragment' | 'code-entity' | 'explicit-backref' | 'tool-output' | 'adjacent' | 'cross-session';
25
32
  /**
@@ -40,7 +47,7 @@ export interface SessionReferences {
40
47
  */
41
48
  export interface CandidateTurn {
42
49
  turnIndex: number;
43
- timeGapMs: number;
50
+ hopDistance: number;
44
51
  /** Decay weight at query time (depends on decay model) */
45
52
  decayWeight: number;
46
53
  /** Whether this turn is actually referenced by the query turn */
@@ -86,15 +93,15 @@ export interface RetrievalRankingResult {
86
93
  evaluations: QueryEvaluation[];
87
94
  }
88
95
  /**
89
- * Time-offset bin for correlation analysis.
96
+ * Hop-distance bin for correlation analysis.
90
97
  */
91
- export interface TimeOffsetBin {
92
- /** Bin label (e.g., "0-5min", "5-30min") */
98
+ export interface HopDistanceBin {
99
+ /** Bin label (e.g., "1 hop", "2-3 hops") */
93
100
  label: string;
94
- /** Min time offset in ms */
95
- minMs: number;
96
- /** Max time offset in ms */
97
- maxMs: number;
101
+ /** Min hop distance (inclusive) */
102
+ minHops: number;
103
+ /** Max hop distance (exclusive) */
104
+ maxHops: number;
98
105
  /** Number of turn pairs in this bin */
99
106
  pairCount: number;
100
107
  /** Actual reference rate (% of pairs where later turn references earlier) */
@@ -103,11 +110,11 @@ export interface TimeOffsetBin {
103
110
  meanDecayWeights: Record<string, number>;
104
111
  }
105
112
  /**
106
- * Results of time-offset correlation experiment.
113
+ * Results of hop-distance correlation experiment.
107
114
  */
108
- export interface TimeOffsetCorrelationResult {
109
- /** Time bins analyzed */
110
- bins: TimeOffsetBin[];
115
+ export interface HopDistanceCorrelationResult {
116
+ /** Hop-distance bins analyzed */
117
+ bins: HopDistanceBin[];
111
118
  /** Spearman correlation for each model */
112
119
  correlations: Record<string, number>;
113
120
  }
@@ -125,7 +132,7 @@ export interface EdgeDecayExperimentResults {
125
132
  referenceCount: number;
126
133
  /** Retrieval ranking results per model */
127
134
  retrievalRanking: RetrievalRankingResult[];
128
- /** Time-offset correlation results */
129
- timeOffsetCorrelation?: TimeOffsetCorrelationResult;
135
+ /** Hop-distance correlation results */
136
+ hopDistanceCorrelation?: HopDistanceCorrelationResult;
130
137
  }
131
138
  //# sourceMappingURL=reference-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference-types.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/reference-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-types.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/reference-types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  /**
2
2
  * Types for turn-to-turn reference extraction and relevance decay experiments.
3
+ *
4
+ * Distance metric: hop distance (turn count difference).
5
+ * Each turn is one D-T-D (Data-Transformation-Data) cycle.
3
6
  */
4
7
  export {};
5
8
  //# sourceMappingURL=reference-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference-types.js","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/reference-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"reference-types.js","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/reference-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -3,17 +3,17 @@
3
3
  *
4
4
  * Tests whether decay-weighted ranking of candidate turns
5
5
  * correlates with actual turn-to-turn references.
6
+ *
7
+ * Distance metric: hop distance (turn count difference).
6
8
  */
7
9
  import type { DecayModelConfig } from './types.js';
8
- import type { SessionReferences, RetrievalRankingResult, TimeOffsetCorrelationResult } from './reference-types.js';
10
+ import type { SessionReferences, RetrievalRankingResult, HopDistanceCorrelationResult } from './reference-types.js';
9
11
  /**
10
12
  * Options for filtering references to focus on long-range retrieval.
11
13
  */
12
14
  export interface ReferenceFilterOptions {
13
15
  /** Minimum turn distance to include (e.g., 2 = skip immediately previous) */
14
16
  minTurnDistance?: number;
15
- /** Minimum time gap in ms to include (e.g., 5 * MS_PER_MINUTE) */
16
- minTimeGapMs?: number;
17
17
  /** Exclude 'adjacent' reference type (low confidence recency) */
18
18
  excludeAdjacent?: boolean;
19
19
  /** Only include high confidence references */
@@ -34,17 +34,17 @@ export declare function evaluateRetrievalRanking(sessions: SessionReferences[],
34
34
  */
35
35
  export declare function compareRetrievalRanking(sessions: SessionReferences[], decayModels: DecayModelConfig[], verbose?: boolean): RetrievalRankingResult[];
36
36
  /**
37
- * Run time-offset correlation experiment.
37
+ * Run hop-distance correlation experiment.
38
38
  */
39
- export declare function evaluateTimeOffsetCorrelation(sessions: SessionReferences[], decayModels: DecayModelConfig[]): TimeOffsetCorrelationResult;
39
+ export declare function evaluateHopDistanceCorrelation(sessions: SessionReferences[], decayModels: DecayModelConfig[]): HopDistanceCorrelationResult;
40
40
  /**
41
41
  * Format retrieval ranking results as a comparison table.
42
42
  */
43
43
  export declare function formatRetrievalRankingTable(results: RetrievalRankingResult[]): string;
44
44
  /**
45
- * Format time-offset correlation results.
45
+ * Format hop-distance correlation results.
46
46
  */
47
- export declare function formatTimeOffsetTable(result: TimeOffsetCorrelationResult, decayModels: DecayModelConfig[]): string;
47
+ export declare function formatHopDistanceTable(result: HopDistanceCorrelationResult, decayModels: DecayModelConfig[]): string;
48
48
  /**
49
49
  * Run forward prediction experiment for a single decay model.
50
50
  *
@@ -52,7 +52,7 @@ export declare function formatTimeOffsetTable(result: TimeOffsetCorrelationResul
52
52
  * - Predict which future turns will reference it (using decay weights)
53
53
  * - Measure if actual referencing turns rank highly
54
54
  */
55
- export declare function evaluateForwardPrediction(sessions: SessionReferences[], decayModel: DecayModelConfig): RetrievalRankingResult;
55
+ export declare function evaluateForwardPrediction(sessions: SessionReferences[], decayModel: DecayModelConfig, minHopDistance?: number): RetrievalRankingResult;
56
56
  /**
57
57
  * Run forward prediction experiment for multiple decay models.
58
58
  */
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval-ranking.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/retrieval-ranking.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EACV,iBAAiB,EAIjB,sBAAsB,EAEtB,2BAA2B,EAC5B,MAAM,sBAAsB,CAAC;AAI9B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,EAAE,CA+BrB;AAuFD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,gBAAgB,GAC3B,sBAAsB,CA0FxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,OAAO,GAAE,OAAc,GACtB,sBAAsB,EAAE,CAiB1B;AAoDD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,GAC9B,2BAA2B,CA8D7B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAyCrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,2BAA2B,EACnC,WAAW,EAAE,gBAAgB,EAAE,GAC9B,MAAM,CAwCR;AAoGD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,gBAAgB,GAC3B,sBAAsB,CAuFxB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,OAAO,GAAE,OAAc,GACtB,sBAAsB,EAAE,CAiB1B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,sBAAsB,EAAE,EACzC,cAAc,EAAE,sBAAsB,EAAE,GACvC,MAAM,CAwCR"}
1
+ {"version":3,"file":"retrieval-ranking.d.ts","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/retrieval-ranking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EACV,iBAAiB,EAIjB,sBAAsB,EAEtB,4BAA4B,EAC7B,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,OAAO,GAAE,sBAA2B,GACnC,iBAAiB,EAAE,CAsBrB;AAiED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,gBAAgB,GAC3B,sBAAsB,CA6DxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,OAAO,GAAE,OAAc,GACtB,sBAAsB,EAAE,CAiB1B;AAoDD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,GAC9B,4BAA4B,CAuE9B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,MAAM,CAyCrF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,4BAA4B,EACpC,WAAW,EAAE,gBAAgB,EAAE,GAC9B,MAAM,CAwCR;AA+ED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,gBAAgB,EAC5B,cAAc,GAAE,MAAU,GACzB,sBAAsB,CAiExB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,WAAW,EAAE,gBAAgB,EAAE,EAC/B,OAAO,GAAE,OAAc,GACtB,sBAAsB,EAAE,CAiB1B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,eAAe,EAAE,sBAAsB,EAAE,EACzC,cAAc,EAAE,sBAAsB,EAAE,GACvC,MAAM,CAwCR"}
@@ -3,24 +3,21 @@
3
3
  *
4
4
  * Tests whether decay-weighted ranking of candidate turns
5
5
  * correlates with actual turn-to-turn references.
6
+ *
7
+ * Distance metric: hop distance (turn count difference).
6
8
  */
7
9
  import { calculateWeight } from './decay-curves.js';
8
- import { MS_PER_MINUTE, MS_PER_HOUR, MS_PER_DAY } from './types.js';
9
10
  /**
10
11
  * Filter references to focus on long-range retrieval scenarios.
11
12
  * This simulates what the memory system actually needs to retrieve —
12
13
  * context that's NOT in Claude's immediate context window.
13
14
  */
14
15
  export function filterLongRangeReferences(sessions, options = {}) {
15
- const { minTurnDistance = 1, minTimeGapMs = 0, excludeAdjacent = false, highConfidenceOnly = false, } = options;
16
- return sessions.map(session => {
17
- const filteredRefs = session.references.filter(ref => {
18
- // Check turn distance
19
- const turnDistance = ref.userTurnIndex - ref.referencedTurnIndex;
20
- if (turnDistance < minTurnDistance)
21
- return false;
22
- // Check time gap
23
- if (ref.timeGapMs < minTimeGapMs)
16
+ const { minTurnDistance = 1, excludeAdjacent = false, highConfidenceOnly = false } = options;
17
+ return sessions.map((session) => {
18
+ const filteredRefs = session.references.filter((ref) => {
19
+ // Check turn distance (= hop distance)
20
+ if (ref.hopDistance < minTurnDistance)
24
21
  return false;
25
22
  // Exclude adjacent type if requested
26
23
  if (excludeAdjacent && ref.referenceType === 'adjacent')
@@ -49,32 +46,19 @@ function buildReferenceMap(references) {
49
46
  }
50
47
  return map;
51
48
  }
52
- /**
53
- * Build a map from query turn to time gaps for each candidate.
54
- */
55
- function buildTimeGapMap(references, turnCount) {
56
- const map = new Map();
57
- // Initialize from explicit references
58
- for (const ref of references) {
59
- if (!map.has(ref.userTurnIndex)) {
60
- map.set(ref.userTurnIndex, new Map());
61
- }
62
- map.get(ref.userTurnIndex).set(ref.referencedTurnIndex, ref.timeGapMs);
63
- }
64
- return map;
65
- }
66
49
  /**
67
50
  * Evaluate a single query turn against all candidates using a decay model.
51
+ * Distance metric: hop distance (queryTurnIndex - candidateTurnIndex).
68
52
  */
69
- function evaluateQuery(queryTurnIndex, candidateTurnIndices, relevantTurns, timeGaps, decayModel) {
70
- // Score each candidate
71
- const candidates = candidateTurnIndices.map(turnIndex => {
72
- const timeGapMs = timeGaps.get(turnIndex) ?? 0;
73
- const decayWeight = calculateWeight(decayModel, timeGapMs);
53
+ function evaluateQuery(queryTurnIndex, candidateTurnIndices, relevantTurns, decayModel) {
54
+ // Score each candidate by hop distance
55
+ const candidates = candidateTurnIndices.map((turnIndex) => {
56
+ const hopDistance = queryTurnIndex - turnIndex;
57
+ const decayWeight = calculateWeight(decayModel, hopDistance);
74
58
  const isRelevant = relevantTurns.has(turnIndex);
75
59
  return {
76
60
  turnIndex,
77
- timeGapMs,
61
+ hopDistance,
78
62
  decayWeight,
79
63
  isRelevant,
80
64
  };
@@ -113,7 +97,6 @@ export function evaluateRetrievalRanking(sessions, decayModel) {
113
97
  };
114
98
  for (const session of sessions) {
115
99
  const referenceMap = buildReferenceMap(session.references);
116
- const timeGapMap = buildTimeGapMap(session.references, session.turnCount);
117
100
  // For each query turn that has references
118
101
  for (const [queryTurnIndex, relevantTurns] of referenceMap) {
119
102
  // Skip if no relevant turns
@@ -123,28 +106,7 @@ export function evaluateRetrievalRanking(sessions, decayModel) {
123
106
  const candidateTurnIndices = Array.from({ length: queryTurnIndex }, (_, i) => i);
124
107
  if (candidateTurnIndices.length === 0)
125
108
  continue;
126
- // Get time gaps for this query
127
- const timeGaps = timeGapMap.get(queryTurnIndex) ?? new Map();
128
- // For candidates without explicit time gaps, estimate from reference data
129
- // (This shouldn't happen often since we extract time gaps during reference extraction)
130
- for (const candidateIdx of candidateTurnIndices) {
131
- if (!timeGaps.has(candidateIdx)) {
132
- // Find a reference with known time gap to estimate
133
- const knownRef = session.references.find(r => r.userTurnIndex === queryTurnIndex && r.referencedTurnIndex !== candidateIdx);
134
- if (knownRef) {
135
- // Estimate based on turn distance ratio
136
- const refTurnDist = queryTurnIndex - knownRef.referencedTurnIndex;
137
- const thisTurnDist = queryTurnIndex - candidateIdx;
138
- const estimatedGap = (knownRef.timeGapMs / refTurnDist) * thisTurnDist;
139
- timeGaps.set(candidateIdx, estimatedGap);
140
- }
141
- else {
142
- // Default to 5 minutes per turn distance
143
- timeGaps.set(candidateIdx, (queryTurnIndex - candidateIdx) * 5 * MS_PER_MINUTE);
144
- }
145
- }
146
- }
147
- const evaluation = evaluateQuery(queryTurnIndex, candidateTurnIndices, relevantTurns, timeGaps, decayModel);
109
+ const evaluation = evaluateQuery(queryTurnIndex, candidateTurnIndices, relevantTurns, decayModel);
148
110
  evaluations.push(evaluation);
149
111
  totalRR += evaluation.reciprocalRank;
150
112
  if (evaluation.firstRelevantRank > 0) {
@@ -193,15 +155,15 @@ export function compareRetrievalRanking(sessions, decayModels, verbose = true) {
193
155
  return results;
194
156
  }
195
157
  /**
196
- * Time offset bins for correlation analysis.
158
+ * Hop-distance bins for correlation analysis.
197
159
  */
198
- const TIME_OFFSET_BINS = [
199
- { label: '0-5min', minMs: 0, maxMs: 5 * MS_PER_MINUTE },
200
- { label: '5-30min', minMs: 5 * MS_PER_MINUTE, maxMs: 30 * MS_PER_MINUTE },
201
- { label: '30min-1h', minMs: 30 * MS_PER_MINUTE, maxMs: MS_PER_HOUR },
202
- { label: '1-4h', minMs: MS_PER_HOUR, maxMs: 4 * MS_PER_HOUR },
203
- { label: '4-24h', minMs: 4 * MS_PER_HOUR, maxMs: MS_PER_DAY },
204
- { label: '1-7d', minMs: MS_PER_DAY, maxMs: 7 * MS_PER_DAY },
160
+ const HOP_DISTANCE_BINS = [
161
+ { label: '1 hop', minHops: 1, maxHops: 2 },
162
+ { label: '2-3 hops', minHops: 2, maxHops: 4 },
163
+ { label: '4-6 hops', minHops: 4, maxHops: 7 },
164
+ { label: '7-10 hops', minHops: 7, maxHops: 11 },
165
+ { label: '11-20 hops', minHops: 11, maxHops: 21 },
166
+ { label: '21+ hops', minHops: 21, maxHops: Infinity },
205
167
  ];
206
168
  /**
207
169
  * Compute Spearman rank correlation between two arrays.
@@ -235,11 +197,11 @@ function computeRanks(values) {
235
197
  return ranks;
236
198
  }
237
199
  /**
238
- * Run time-offset correlation experiment.
200
+ * Run hop-distance correlation experiment.
239
201
  */
240
- export function evaluateTimeOffsetCorrelation(sessions, decayModels) {
202
+ export function evaluateHopDistanceCorrelation(sessions, decayModels) {
241
203
  // Initialize bins
242
- const bins = TIME_OFFSET_BINS.map(b => ({
204
+ const bins = HOP_DISTANCE_BINS.map((b) => ({
243
205
  ...b,
244
206
  pairCount: 0,
245
207
  referenceRate: 0,
@@ -250,40 +212,49 @@ export function evaluateTimeOffsetCorrelation(sessions, decayModels) {
250
212
  for (const model of decayModels) {
251
213
  decayWeightSums[model.id] = bins.map(() => 0);
252
214
  }
253
- // Count references in each bin
215
+ // Count references and total possible pairs in each bin
254
216
  const referenceCounts = bins.map(() => 0);
255
217
  const pairCounts = bins.map(() => 0);
256
- // Process all references
218
+ // Count all possible turn pairs at each hop distance.
219
+ // A session with N turns has (N - d) pairs at distance d
220
+ // (each user turn i can reference assistant turn i-d).
257
221
  for (const session of sessions) {
258
- for (const ref of session.references) {
259
- // Find which bin this reference falls into
260
- const binIndex = bins.findIndex(b => ref.timeGapMs >= b.minMs && ref.timeGapMs < b.maxMs);
222
+ for (let d = 1; d < session.turnCount; d++) {
223
+ const binIndex = bins.findIndex((b) => d >= b.minHops && d < b.maxHops);
261
224
  if (binIndex >= 0) {
262
- referenceCounts[binIndex]++;
263
- pairCounts[binIndex]++;
264
- // Accumulate decay weights
225
+ // Number of pairs at this exact distance in this session
226
+ pairCounts[binIndex] += session.turnCount - d;
227
+ // Accumulate decay weights for all possible pairs at this distance
265
228
  for (const model of decayModels) {
266
- const weight = calculateWeight(model, ref.timeGapMs);
267
- decayWeightSums[model.id][binIndex] += weight;
229
+ const weight = calculateWeight(model, d);
230
+ decayWeightSums[model.id][binIndex] += weight * (session.turnCount - d);
268
231
  }
269
232
  }
270
233
  }
271
234
  }
235
+ // Count actual references per bin
236
+ for (const session of sessions) {
237
+ for (const ref of session.references) {
238
+ const binIndex = bins.findIndex((b) => ref.hopDistance >= b.minHops && ref.hopDistance < b.maxHops);
239
+ if (binIndex >= 0) {
240
+ referenceCounts[binIndex]++;
241
+ }
242
+ }
243
+ }
272
244
  // Compute mean decay weights and reference rates
273
245
  for (let i = 0; i < bins.length; i++) {
274
246
  bins[i].pairCount = pairCounts[i];
275
247
  bins[i].referenceRate = pairCounts[i] > 0 ? referenceCounts[i] / pairCounts[i] : 0;
276
248
  for (const model of decayModels) {
277
- bins[i].meanDecayWeights[model.id] = pairCounts[i] > 0
278
- ? decayWeightSums[model.id][i] / pairCounts[i]
279
- : 0;
249
+ bins[i].meanDecayWeights[model.id] =
250
+ pairCounts[i] > 0 ? decayWeightSums[model.id][i] / pairCounts[i] : 0;
280
251
  }
281
252
  }
282
253
  // Compute correlations
283
254
  const correlations = {};
284
- const referenceRates = bins.map(b => b.referenceRate);
255
+ const referenceRates = bins.map((b) => b.referenceRate);
285
256
  for (const model of decayModels) {
286
- const decayWeights = bins.map(b => b.meanDecayWeights[model.id]);
257
+ const decayWeights = bins.map((b) => b.meanDecayWeights[model.id]);
287
258
  correlations[model.id] = spearmanCorrelation(referenceRates, decayWeights);
288
259
  }
289
260
  return { bins, correlations };
@@ -326,21 +297,23 @@ export function formatRetrievalRankingTable(results) {
326
297
  return lines.join('\n');
327
298
  }
328
299
  /**
329
- * Format time-offset correlation results.
300
+ * Format hop-distance correlation results.
330
301
  */
331
- export function formatTimeOffsetTable(result, decayModels) {
302
+ export function formatHopDistanceTable(result, decayModels) {
332
303
  const lines = [];
333
304
  lines.push('='.repeat(100));
334
- lines.push(' TIME-OFFSET CORRELATION');
305
+ lines.push(' HOP-DISTANCE CORRELATION');
335
306
  lines.push('='.repeat(100));
336
307
  // Header
337
- const modelHeaders = decayModels.map(m => m.name.slice(0, 12).padEnd(12)).join(' | ');
338
- const header = `${'Time Bin'.padEnd(12)} | ${'Pairs'.padEnd(8)} | ${'Ref Rate'.padEnd(8)} | ${modelHeaders}`;
308
+ const modelHeaders = decayModels.map((m) => m.name.slice(0, 12).padEnd(12)).join(' | ');
309
+ const header = `${'Hops'.padEnd(12)} | ${'Pairs'.padEnd(8)} | ${'Ref Rate'.padEnd(8)} | ${modelHeaders}`;
339
310
  lines.push(header);
340
311
  lines.push('-'.repeat(100));
341
312
  // Rows
342
313
  for (const bin of result.bins) {
343
- const weights = decayModels.map(m => bin.meanDecayWeights[m.id].toFixed(3).padEnd(12)).join(' | ');
314
+ const weights = decayModels
315
+ .map((m) => bin.meanDecayWeights[m.id].toFixed(3).padEnd(12))
316
+ .join(' | ');
344
317
  const row = [
345
318
  bin.label.padEnd(12),
346
319
  bin.pairCount.toString().padEnd(8),
@@ -351,7 +324,9 @@ export function formatTimeOffsetTable(result, decayModels) {
351
324
  }
352
325
  lines.push('-'.repeat(100));
353
326
  // Correlations
354
- const corrValues = decayModels.map(m => result.correlations[m.id].toFixed(3).padEnd(12)).join(' | ');
327
+ const corrValues = decayModels
328
+ .map((m) => result.correlations[m.id].toFixed(3).padEnd(12))
329
+ .join(' | ');
355
330
  lines.push(`${'Correlation'.padEnd(12)} | ${''.padEnd(8)} | ${''.padEnd(8)} | ${corrValues}`);
356
331
  lines.push('='.repeat(100));
357
332
  return lines.join('\n');
@@ -381,33 +356,20 @@ function buildForwardReferenceMap(references) {
381
356
  }
382
357
  return map;
383
358
  }
384
- /**
385
- * Build time gap map for forward queries.
386
- * Maps source turn → future turn → time gap.
387
- */
388
- function buildForwardTimeGapMap(references) {
389
- const map = new Map();
390
- for (const ref of references) {
391
- if (!map.has(ref.referencedTurnIndex)) {
392
- map.set(ref.referencedTurnIndex, new Map());
393
- }
394
- map.get(ref.referencedTurnIndex).set(ref.userTurnIndex, ref.timeGapMs);
395
- }
396
- return map;
397
- }
398
359
  /**
399
360
  * Evaluate forward prediction for a single source turn.
400
361
  * Given turn T, predict which future turns will reference it.
362
+ * Distance metric: hop distance (futureTurnIndex - sourceTurnIndex).
401
363
  */
402
- function evaluateForwardQuery(sourceTurnIndex, candidateFutureTurns, actualReferencingTurns, timeGaps, decayModel) {
403
- // Score each candidate future turn
404
- const candidates = candidateFutureTurns.map(futureTurnIndex => {
405
- const timeGapMs = timeGaps.get(futureTurnIndex) ?? 0;
406
- const decayWeight = calculateWeight(decayModel, timeGapMs);
364
+ function evaluateForwardQuery(sourceTurnIndex, candidateFutureTurns, actualReferencingTurns, decayModel) {
365
+ // Score each candidate future turn by hop distance
366
+ const candidates = candidateFutureTurns.map((futureTurnIndex) => {
367
+ const hopDistance = futureTurnIndex - sourceTurnIndex;
368
+ const decayWeight = calculateWeight(decayModel, hopDistance);
407
369
  const isRelevant = actualReferencingTurns.has(futureTurnIndex);
408
370
  return {
409
371
  turnIndex: futureTurnIndex,
410
- timeGapMs,
372
+ hopDistance,
411
373
  decayWeight,
412
374
  isRelevant,
413
375
  };
@@ -438,7 +400,7 @@ function evaluateForwardQuery(sourceTurnIndex, candidateFutureTurns, actualRefer
438
400
  * - Predict which future turns will reference it (using decay weights)
439
401
  * - Measure if actual referencing turns rank highly
440
402
  */
441
- export function evaluateForwardPrediction(sessions, decayModel) {
403
+ export function evaluateForwardPrediction(sessions, decayModel, minHopDistance = 1) {
442
404
  const evaluations = [];
443
405
  let totalRR = 0;
444
406
  let queriesWithRelevant = 0;
@@ -449,36 +411,18 @@ export function evaluateForwardPrediction(sessions, decayModel) {
449
411
  rank11_plus: 0,
450
412
  };
451
413
  for (const session of sessions) {
452
- const forwardMap = buildForwardReferenceMap(session.references);
453
- const timeGapMap = buildForwardTimeGapMap(session.references);
454
- // For each source turn that has future references
414
+ // Filter references to only include those at or beyond minHopDistance
415
+ const filteredRefs = session.references.filter((ref) => ref.hopDistance >= minHopDistance);
416
+ const forwardMap = buildForwardReferenceMap(filteredRefs);
417
+ // For each source turn that has future references beyond the min distance
455
418
  for (const [sourceTurnIndex, referencingTurns] of forwardMap) {
456
419
  if (referencingTurns.size === 0)
457
420
  continue;
458
- // Candidates are all turns after the source
459
- const candidateFutureTurns = Array.from({ length: session.turnCount - sourceTurnIndex - 1 }, (_, i) => sourceTurnIndex + 1 + i);
421
+ // Candidates are turns at or beyond minHopDistance from source
422
+ const candidateFutureTurns = Array.from({ length: session.turnCount - sourceTurnIndex - minHopDistance }, (_, i) => sourceTurnIndex + minHopDistance + i);
460
423
  if (candidateFutureTurns.length === 0)
461
424
  continue;
462
- // Get time gaps for this source turn
463
- const timeGaps = timeGapMap.get(sourceTurnIndex) ?? new Map();
464
- // Estimate time gaps for candidates without explicit references
465
- for (const futureIdx of candidateFutureTurns) {
466
- if (!timeGaps.has(futureIdx)) {
467
- // Find a reference with known time gap to estimate
468
- const knownRef = session.references.find(r => r.referencedTurnIndex === sourceTurnIndex && r.userTurnIndex !== futureIdx);
469
- if (knownRef) {
470
- const refTurnDist = knownRef.userTurnIndex - sourceTurnIndex;
471
- const thisTurnDist = futureIdx - sourceTurnIndex;
472
- const estimatedGap = (knownRef.timeGapMs / refTurnDist) * thisTurnDist;
473
- timeGaps.set(futureIdx, estimatedGap);
474
- }
475
- else {
476
- // Default to 5 minutes per turn distance
477
- timeGaps.set(futureIdx, (futureIdx - sourceTurnIndex) * 5 * MS_PER_MINUTE);
478
- }
479
- }
480
- }
481
- const evaluation = evaluateForwardQuery(sourceTurnIndex, candidateFutureTurns, referencingTurns, timeGaps, decayModel);
425
+ const evaluation = evaluateForwardQuery(sourceTurnIndex, candidateFutureTurns, referencingTurns, decayModel);
482
426
  evaluations.push(evaluation);
483
427
  totalRR += evaluation.reciprocalRank;
484
428
  if (evaluation.firstRelevantRank > 0) {
@@ -545,7 +489,7 @@ export function formatDirectionalComparison(backwardResults, forwardResults) {
545
489
  lines.push('-'.repeat(100));
546
490
  // Match results by model ID
547
491
  for (const backward of backwardResults) {
548
- const forward = forwardResults.find(f => f.modelId === backward.modelId);
492
+ const forward = forwardResults.find((f) => f.modelId === backward.modelId);
549
493
  if (!forward)
550
494
  continue;
551
495
  const delta = forward.mrr - backward.mrr;
@@ -1 +1 @@
1
- {"version":3,"file":"retrieval-ranking.js","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/retrieval-ranking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retrieval-ranking.js","sourceRoot":"","sources":["../../../../src/eval/experiments/edge-decay/retrieval-ranking.ts"],"names":[],"mappings":"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"}