nlm-memory 0.20.0 → 0.20.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 (392) hide show
  1. package/README.md +17 -10
  2. package/dist/cli/digest.js +21 -0
  3. package/dist/cli/digest.js.map +1 -1
  4. package/dist/cli/init.d.ts +12 -0
  5. package/dist/cli/init.js +49 -0
  6. package/dist/cli/init.js.map +1 -0
  7. package/dist/cli/nlm.d.ts +13 -1
  8. package/dist/cli/nlm.js +766 -55
  9. package/dist/cli/nlm.js.map +1 -1
  10. package/dist/core/actions/overlay.d.ts +20 -6
  11. package/dist/core/actions/overlay.js +32 -18
  12. package/dist/core/actions/overlay.js.map +1 -1
  13. package/dist/core/adapters/claude-code.js +6 -0
  14. package/dist/core/adapters/claude-code.js.map +1 -1
  15. package/dist/core/classifier/prompt.js +3 -3
  16. package/dist/core/digest/compose.d.ts +10 -0
  17. package/dist/core/digest/compose.js +7 -1
  18. package/dist/core/digest/compose.js.map +1 -1
  19. package/dist/core/embedding/embed-backfill.d.ts +13 -2
  20. package/dist/core/embedding/embed-backfill.js +181 -43
  21. package/dist/core/embedding/embed-backfill.js.map +1 -1
  22. package/dist/core/embedding/embedding-config.d.ts +17 -0
  23. package/dist/core/embedding/embedding-config.js +12 -0
  24. package/dist/core/embedding/embedding-config.js.map +1 -0
  25. package/dist/core/embedding/pg-embed-backfill.d.ts +31 -0
  26. package/dist/core/embedding/pg-embed-backfill.js +264 -0
  27. package/dist/core/embedding/pg-embed-backfill.js.map +1 -0
  28. package/dist/core/entities/dedup-suggest.d.ts +25 -0
  29. package/dist/core/entities/dedup-suggest.js +107 -0
  30. package/dist/core/entities/dedup-suggest.js.map +1 -0
  31. package/dist/core/eval/classifier-fixture-eval.d.ts +29 -0
  32. package/dist/core/eval/classifier-fixture-eval.js +217 -0
  33. package/dist/core/eval/classifier-fixture-eval.js.map +1 -0
  34. package/dist/core/eval/extraction-scoring.d.ts +63 -0
  35. package/dist/core/eval/extraction-scoring.js +79 -0
  36. package/dist/core/eval/extraction-scoring.js.map +1 -0
  37. package/dist/core/eval/run-eval.d.ts +40 -0
  38. package/dist/core/eval/run-eval.js +34 -0
  39. package/dist/core/eval/run-eval.js.map +1 -0
  40. package/dist/core/exemplars/capture-from-session.d.ts +1 -0
  41. package/dist/core/exemplars/capture-from-session.js +6 -2
  42. package/dist/core/exemplars/capture-from-session.js.map +1 -1
  43. package/dist/core/exemplars/diff-parse.d.ts +23 -0
  44. package/dist/core/exemplars/diff-parse.js +73 -0
  45. package/dist/core/exemplars/diff-parse.js.map +1 -0
  46. package/dist/core/exemplars/embed-backfill.d.ts +36 -0
  47. package/dist/core/exemplars/embed-backfill.js +85 -0
  48. package/dist/core/exemplars/embed-backfill.js.map +1 -0
  49. package/dist/core/exemplars/embed-text.d.ts +15 -0
  50. package/dist/core/exemplars/embed-text.js +18 -0
  51. package/dist/core/exemplars/embed-text.js.map +1 -0
  52. package/dist/core/exemplars/extract-exemplar.js +2 -65
  53. package/dist/core/exemplars/extract-exemplar.js.map +1 -1
  54. package/dist/core/exemplars/recall-code.js +4 -0
  55. package/dist/core/exemplars/recall-code.js.map +1 -1
  56. package/dist/core/exemplars/warm-embedder.d.ts +14 -0
  57. package/dist/core/exemplars/warm-embedder.js +18 -0
  58. package/dist/core/exemplars/warm-embedder.js.map +1 -0
  59. package/dist/core/health/corpus-state.d.ts +8 -0
  60. package/dist/core/health/corpus-state.js +11 -0
  61. package/dist/core/health/corpus-state.js.map +1 -0
  62. package/dist/core/health/embed-inflight.d.ts +9 -0
  63. package/dist/core/health/embed-inflight.js +30 -0
  64. package/dist/core/health/embed-inflight.js.map +1 -0
  65. package/dist/core/health/embedding-lane-state.d.ts +6 -0
  66. package/dist/core/health/embedding-lane-state.js +18 -0
  67. package/dist/core/health/embedding-lane-state.js.map +1 -0
  68. package/dist/core/health/warmup-state.d.ts +12 -0
  69. package/dist/core/health/warmup-state.js +12 -0
  70. package/dist/core/health/warmup-state.js.map +1 -0
  71. package/dist/core/hook/gate.d.ts +13 -6
  72. package/dist/core/hook/gate.js +47 -6
  73. package/dist/core/hook/gate.js.map +1 -1
  74. package/dist/core/hook/hook-log.d.ts +5 -0
  75. package/dist/core/hook/hook-log.js.map +1 -1
  76. package/dist/core/hook/memo.d.ts +12 -0
  77. package/dist/core/hook/memo.js +41 -1
  78. package/dist/core/hook/memo.js.map +1 -1
  79. package/dist/core/hook/pointer-block.d.ts +1 -0
  80. package/dist/core/hook/pointer-block.js +23 -2
  81. package/dist/core/hook/pointer-block.js.map +1 -1
  82. package/dist/core/hook/query-extract.d.ts +2 -1
  83. package/dist/core/hook/query-extract.js +10 -1
  84. package/dist/core/hook/query-extract.js.map +1 -1
  85. package/dist/core/hook/resolve-conversation-by-query.d.ts +28 -0
  86. package/dist/core/hook/resolve-conversation-by-query.js +98 -0
  87. package/dist/core/hook/resolve-conversation-by-query.js.map +1 -0
  88. package/dist/core/hook/select.d.ts +8 -0
  89. package/dist/core/hook/select.js +9 -2
  90. package/dist/core/hook/select.js.map +1 -1
  91. package/dist/core/hook/transcript.js +16 -2
  92. package/dist/core/hook/transcript.js.map +1 -1
  93. package/dist/core/ingest/ingest-session.d.ts +5 -0
  94. package/dist/core/ingest/ingest-session.js +3 -0
  95. package/dist/core/ingest/ingest-session.js.map +1 -1
  96. package/dist/core/ingest/reclassify-oversized.d.ts +5 -0
  97. package/dist/core/ingest/reclassify-oversized.js +3 -0
  98. package/dist/core/ingest/reclassify-oversized.js.map +1 -1
  99. package/dist/core/ingest/reprocess.d.ts +96 -0
  100. package/dist/core/ingest/reprocess.js +275 -0
  101. package/dist/core/ingest/reprocess.js.map +1 -0
  102. package/dist/core/integrity/check-invariants.d.ts +6 -1
  103. package/dist/core/integrity/check-invariants.js +209 -3
  104. package/dist/core/integrity/check-invariants.js.map +1 -1
  105. package/dist/core/metrics/corpus-stats.d.ts +49 -0
  106. package/dist/core/metrics/corpus-stats.js +111 -0
  107. package/dist/core/metrics/corpus-stats.js.map +1 -0
  108. package/dist/core/metrics/re-derivation.d.ts +48 -0
  109. package/dist/core/metrics/re-derivation.js +87 -0
  110. package/dist/core/metrics/re-derivation.js.map +1 -0
  111. package/dist/core/recall/citation-log.d.ts +8 -0
  112. package/dist/core/recall/citation-log.js +17 -0
  113. package/dist/core/recall/citation-log.js.map +1 -1
  114. package/dist/core/recall/query-intent.d.ts +7 -0
  115. package/dist/core/recall/query-intent.js +25 -0
  116. package/dist/core/recall/query-intent.js.map +1 -0
  117. package/dist/core/recall/query-log.d.ts +4 -0
  118. package/dist/core/recall/query-log.js +4 -0
  119. package/dist/core/recall/query-log.js.map +1 -1
  120. package/dist/core/recall/recall-service.d.ts +37 -1
  121. package/dist/core/recall/recall-service.js +106 -63
  122. package/dist/core/recall/recall-service.js.map +1 -1
  123. package/dist/core/recall/related-exemplars.d.ts +1 -0
  124. package/dist/core/recall/related-exemplars.js +4 -1
  125. package/dist/core/recall/related-exemplars.js.map +1 -1
  126. package/dist/core/recall/related-facts.js +2 -2
  127. package/dist/core/recall/related-facts.js.map +1 -1
  128. package/dist/core/recall/reranker.d.ts +2 -1
  129. package/dist/core/recall/reranker.js +3 -3
  130. package/dist/core/recall/reranker.js.map +1 -1
  131. package/dist/core/recall-facts/fact-query-log.d.ts +7 -0
  132. package/dist/core/recall-facts/fact-query-log.js +2 -0
  133. package/dist/core/recall-facts/fact-query-log.js.map +1 -1
  134. package/dist/core/recall-facts/fact-recall-service.d.ts +9 -1
  135. package/dist/core/recall-facts/fact-recall-service.js +21 -8
  136. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  137. package/dist/core/scheduler/scan-once.d.ts +6 -6
  138. package/dist/core/scheduler/scan-once.js +13 -49
  139. package/dist/core/scheduler/scan-once.js.map +1 -1
  140. package/dist/core/scheduler/scheduler.d.ts +10 -0
  141. package/dist/core/scheduler/scheduler.js +75 -10
  142. package/dist/core/scheduler/scheduler.js.map +1 -1
  143. package/dist/core/signals/code-signal.d.ts +49 -0
  144. package/dist/core/signals/code-signal.js +53 -0
  145. package/dist/core/signals/code-signal.js.map +1 -0
  146. package/dist/core/storage/db-restore.js +3 -1
  147. package/dist/core/storage/db-restore.js.map +1 -1
  148. package/dist/core/storage/fact-batch.d.ts +9 -0
  149. package/dist/core/storage/fact-batch.js +14 -0
  150. package/dist/core/storage/fact-batch.js.map +1 -0
  151. package/dist/core/storage/pg-code-exemplar-store.d.ts +1 -0
  152. package/dist/core/storage/pg-code-exemplar-store.js +7 -0
  153. package/dist/core/storage/pg-code-exemplar-store.js.map +1 -1
  154. package/dist/core/storage/pg-embedding-config.d.ts +29 -0
  155. package/dist/core/storage/pg-embedding-config.js +53 -0
  156. package/dist/core/storage/pg-embedding-config.js.map +1 -0
  157. package/dist/core/storage/pg-entity-store.d.ts +12 -0
  158. package/dist/core/storage/pg-entity-store.js +79 -0
  159. package/dist/core/storage/pg-entity-store.js.map +1 -0
  160. package/dist/core/storage/pg-fact-ingest.d.ts +15 -0
  161. package/dist/core/storage/pg-fact-ingest.js +34 -0
  162. package/dist/core/storage/pg-fact-ingest.js.map +1 -0
  163. package/dist/core/storage/pg-fact-store.d.ts +3 -0
  164. package/dist/core/storage/pg-fact-store.js +26 -30
  165. package/dist/core/storage/pg-fact-store.js.map +1 -1
  166. package/dist/core/storage/pg-migrate.d.ts +18 -0
  167. package/dist/core/storage/pg-migrate.js +73 -0
  168. package/dist/core/storage/pg-migrate.js.map +1 -0
  169. package/dist/core/storage/pg-session-store.d.ts +9 -0
  170. package/dist/core/storage/pg-session-store.js +204 -76
  171. package/dist/core/storage/pg-session-store.js.map +1 -1
  172. package/dist/core/storage/pg-storage.d.ts +9 -7
  173. package/dist/core/storage/pg-storage.js +20 -50
  174. package/dist/core/storage/pg-storage.js.map +1 -1
  175. package/dist/core/storage/pg-workstream-store.d.ts +24 -0
  176. package/dist/core/storage/pg-workstream-store.js +96 -0
  177. package/dist/core/storage/pg-workstream-store.js.map +1 -0
  178. package/dist/core/storage/sqlite-code-exemplar-store.d.ts +1 -0
  179. package/dist/core/storage/sqlite-code-exemplar-store.js +11 -0
  180. package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -1
  181. package/dist/core/storage/sqlite-embedding-config.d.ts +10 -0
  182. package/dist/core/storage/sqlite-embedding-config.js +27 -0
  183. package/dist/core/storage/sqlite-embedding-config.js.map +1 -0
  184. package/dist/core/storage/sqlite-entity-store.d.ts +13 -0
  185. package/dist/core/storage/sqlite-entity-store.js +96 -0
  186. package/dist/core/storage/sqlite-entity-store.js.map +1 -0
  187. package/dist/core/storage/sqlite-fact-store.d.ts +15 -7
  188. package/dist/core/storage/sqlite-fact-store.js +76 -25
  189. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  190. package/dist/core/storage/sqlite-session-store.d.ts +20 -5
  191. package/dist/core/storage/sqlite-session-store.js +183 -68
  192. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  193. package/dist/core/storage/sqlite-storage.d.ts +8 -8
  194. package/dist/core/storage/sqlite-storage.js +21 -32
  195. package/dist/core/storage/sqlite-storage.js.map +1 -1
  196. package/dist/core/storage/sqlite-workstream-store.d.ts +24 -0
  197. package/dist/core/storage/sqlite-workstream-store.js +98 -0
  198. package/dist/core/storage/sqlite-workstream-store.js.map +1 -0
  199. package/dist/core/work-digest/active-spans.d.ts +8 -0
  200. package/dist/core/work-digest/active-spans.js +29 -0
  201. package/dist/core/work-digest/active-spans.js.map +1 -0
  202. package/dist/core/work-digest/attribute.d.ts +15 -0
  203. package/dist/core/work-digest/attribute.js +76 -0
  204. package/dist/core/work-digest/attribute.js.map +1 -0
  205. package/dist/core/work-digest/build-work-digest.d.ts +12 -0
  206. package/dist/core/work-digest/build-work-digest.js +69 -0
  207. package/dist/core/work-digest/build-work-digest.js.map +1 -0
  208. package/dist/core/work-digest/compose-work-digest.d.ts +3 -0
  209. package/dist/core/work-digest/compose-work-digest.js +52 -0
  210. package/dist/core/work-digest/compose-work-digest.js.map +1 -0
  211. package/dist/core/work-digest/merge-active.d.ts +10 -0
  212. package/dist/core/work-digest/merge-active.js +22 -0
  213. package/dist/core/work-digest/merge-active.js.map +1 -0
  214. package/dist/core/work-digest/read-transcript-timestamps.d.ts +7 -0
  215. package/dist/core/work-digest/read-transcript-timestamps.js +40 -0
  216. package/dist/core/work-digest/read-transcript-timestamps.js.map +1 -0
  217. package/dist/core/work-digest/topics.d.ts +18 -0
  218. package/dist/core/work-digest/topics.js +26 -0
  219. package/dist/core/work-digest/topics.js.map +1 -0
  220. package/dist/core/work-digest/types.d.ts +45 -0
  221. package/dist/core/work-digest/types.js +2 -0
  222. package/dist/core/work-digest/types.js.map +1 -0
  223. package/dist/core/workstream/bind.d.ts +25 -0
  224. package/dist/core/workstream/bind.js +23 -0
  225. package/dist/core/workstream/bind.js.map +1 -0
  226. package/dist/core/workstream/compose-recall.d.ts +2 -0
  227. package/dist/core/workstream/compose-recall.js +39 -0
  228. package/dist/core/workstream/compose-recall.js.map +1 -0
  229. package/dist/core/workstream/merge-suggest.d.ts +19 -0
  230. package/dist/core/workstream/merge-suggest.js +61 -0
  231. package/dist/core/workstream/merge-suggest.js.map +1 -0
  232. package/dist/core/workstream/model.d.ts +20 -0
  233. package/dist/core/workstream/model.js +9 -0
  234. package/dist/core/workstream/model.js.map +1 -0
  235. package/dist/core/workstream/name-match.d.ts +8 -0
  236. package/dist/core/workstream/name-match.js +18 -0
  237. package/dist/core/workstream/name-match.js.map +1 -0
  238. package/dist/core/workstream/resolve.d.ts +10 -0
  239. package/dist/core/workstream/resolve.js +21 -0
  240. package/dist/core/workstream/resolve.js.map +1 -0
  241. package/dist/core/workstream/rollup.d.ts +12 -0
  242. package/dist/core/workstream/rollup.js +17 -0
  243. package/dist/core/workstream/rollup.js.map +1 -0
  244. package/dist/core/workstream/work-topics.d.ts +10 -0
  245. package/dist/core/workstream/work-topics.js +55 -0
  246. package/dist/core/workstream/work-topics.js.map +1 -0
  247. package/dist/hook/hook-helpers.d.ts +4 -0
  248. package/dist/hook/hook-helpers.js +36 -0
  249. package/dist/hook/hook-helpers.js.map +1 -0
  250. package/dist/hook/pre-compact-hook.d.ts +23 -0
  251. package/dist/hook/pre-compact-hook.js +66 -0
  252. package/dist/hook/pre-compact-hook.js.map +1 -0
  253. package/dist/hook/prompt-recall-hook.d.ts +37 -0
  254. package/dist/hook/prompt-recall-hook.js +120 -20
  255. package/dist/hook/prompt-recall-hook.js.map +1 -1
  256. package/dist/hook/recall-gate.d.ts +29 -0
  257. package/dist/hook/recall-gate.js +50 -0
  258. package/dist/hook/recall-gate.js.map +1 -0
  259. package/dist/hook/recall-over-http.d.ts +1 -1
  260. package/dist/hook/recall-over-http.js +11 -11
  261. package/dist/hook/recall-over-http.js.map +1 -1
  262. package/dist/hook/recent-context.d.ts +25 -0
  263. package/dist/hook/recent-context.js +104 -0
  264. package/dist/hook/recent-context.js.map +1 -0
  265. package/dist/hook/score-floor.d.ts +27 -0
  266. package/dist/hook/score-floor.js +42 -0
  267. package/dist/hook/score-floor.js.map +1 -0
  268. package/dist/hook/session-end-hook.js +8 -29
  269. package/dist/hook/session-end-hook.js.map +1 -1
  270. package/dist/hook/session-start-hook.js +24 -59
  271. package/dist/hook/session-start-hook.js.map +1 -1
  272. package/dist/hook/stop-hook.js +22 -59
  273. package/dist/hook/stop-hook.js.map +1 -1
  274. package/dist/hook/subagent-start-hook.d.ts +28 -0
  275. package/dist/hook/subagent-start-hook.js +81 -0
  276. package/dist/hook/subagent-start-hook.js.map +1 -0
  277. package/dist/http/app.js +28 -8
  278. package/dist/http/app.js.map +1 -1
  279. package/dist/install/setup.js +2 -0
  280. package/dist/install/setup.js.map +1 -1
  281. package/dist/llm/build-classifier.d.ts +22 -0
  282. package/dist/llm/build-classifier.js +42 -0
  283. package/dist/llm/build-classifier.js.map +1 -0
  284. package/dist/llm/build-embedder.d.ts +11 -0
  285. package/dist/llm/build-embedder.js +42 -0
  286. package/dist/llm/build-embedder.js.map +1 -0
  287. package/dist/llm/bundled-embedder-client.d.ts +37 -0
  288. package/dist/llm/bundled-embedder-client.js +90 -0
  289. package/dist/llm/bundled-embedder-client.js.map +1 -0
  290. package/dist/llm/classifier-box.d.ts +13 -5
  291. package/dist/llm/classifier-box.js +28 -6
  292. package/dist/llm/classifier-box.js.map +1 -1
  293. package/dist/llm/classifier-egress.d.ts +18 -0
  294. package/dist/llm/classifier-egress.js +59 -0
  295. package/dist/llm/classifier-egress.js.map +1 -0
  296. package/dist/llm/client-shared.d.ts +4 -0
  297. package/dist/llm/client-shared.js +39 -0
  298. package/dist/llm/client-shared.js.map +1 -0
  299. package/dist/llm/deepseek-client.d.ts +20 -0
  300. package/dist/llm/deepseek-client.js +59 -45
  301. package/dist/llm/deepseek-client.js.map +1 -1
  302. package/dist/llm/embedder-info.d.ts +15 -0
  303. package/dist/llm/embedder-info.js +27 -0
  304. package/dist/llm/embedder-info.js.map +1 -0
  305. package/dist/llm/model-quirks.d.ts +4 -0
  306. package/dist/llm/model-quirks.js +7 -0
  307. package/dist/llm/model-quirks.js.map +1 -0
  308. package/dist/llm/naming.d.ts +5 -0
  309. package/dist/llm/naming.js +20 -0
  310. package/dist/llm/naming.js.map +1 -0
  311. package/dist/llm/ollama-client.d.ts +7 -8
  312. package/dist/llm/ollama-client.js +59 -51
  313. package/dist/llm/ollama-client.js.map +1 -1
  314. package/dist/llm/ollama-code-embedder.d.ts +8 -3
  315. package/dist/llm/ollama-code-embedder.js +14 -24
  316. package/dist/llm/ollama-code-embedder.js.map +1 -1
  317. package/dist/llm/openai-code-embedder-client.d.ts +25 -0
  318. package/dist/llm/openai-code-embedder-client.js +52 -0
  319. package/dist/llm/openai-code-embedder-client.js.map +1 -0
  320. package/dist/llm/openai-embedder-client.d.ts +41 -0
  321. package/dist/llm/openai-embedder-client.js +83 -0
  322. package/dist/llm/openai-embedder-client.js.map +1 -0
  323. package/dist/mcp/server.d.ts +47 -2
  324. package/dist/mcp/server.js +303 -18
  325. package/dist/mcp/server.js.map +1 -1
  326. package/dist/ports/code-embedder.d.ts +6 -1
  327. package/dist/ports/code-exemplar-store.d.ts +5 -0
  328. package/dist/ports/entity-store.d.ts +35 -0
  329. package/dist/ports/entity-store.js +7 -0
  330. package/dist/ports/entity-store.js.map +1 -0
  331. package/dist/ports/fact-store.d.ts +0 -0
  332. package/dist/ports/fact-store.js.map +1 -1
  333. package/dist/ports/llm-client.d.ts +9 -1
  334. package/dist/ports/session-store.d.ts +12 -0
  335. package/dist/ports/storage.d.ts +7 -30
  336. package/dist/ports/storage.js +3 -7
  337. package/dist/ports/storage.js.map +1 -1
  338. package/dist/ports/transcript-adapter.d.ts +2 -0
  339. package/dist/ports/workstream-store.d.ts +21 -0
  340. package/dist/ports/workstream-store.js +2 -0
  341. package/dist/ports/workstream-store.js.map +1 -0
  342. package/dist/shared/types.d.ts +23 -2
  343. package/fixtures/classifier-gold/README.md +94 -0
  344. package/fixtures/classifier-gold/reference.json +318 -0
  345. package/fixtures/classifier-gold/transcripts/01-bug-fix-null-pointer-api.txt +75 -0
  346. package/fixtures/classifier-gold/transcripts/02-bug-fix-race-condition-queue.txt +77 -0
  347. package/fixtures/classifier-gold/transcripts/03-bug-fix-jwt-clock-skew.txt +86 -0
  348. package/fixtures/classifier-gold/transcripts/04-feature-webhook-retry.txt +95 -0
  349. package/fixtures/classifier-gold/transcripts/05-feature-csv-export.txt +86 -0
  350. package/fixtures/classifier-gold/transcripts/06-feature-rate-limiting.txt +61 -0
  351. package/fixtures/classifier-gold/transcripts/07-refactor-db-abstraction.txt +72 -0
  352. package/fixtures/classifier-gold/transcripts/08-refactor-config-loading.txt +89 -0
  353. package/fixtures/classifier-gold/transcripts/09-ops-docker-staging.txt +94 -0
  354. package/fixtures/classifier-gold/transcripts/10-ops-nginx-ssl.txt +121 -0
  355. package/fixtures/classifier-gold/transcripts/11-ops-postgres-migration.txt +74 -0
  356. package/fixtures/classifier-gold/transcripts/12-ops-cron-debugging.txt +73 -0
  357. package/fixtures/classifier-gold/transcripts/13-research-vector-db-comparison.txt +59 -0
  358. package/fixtures/classifier-gold/transcripts/14-research-oauth-provider.txt +74 -0
  359. package/fixtures/classifier-gold/transcripts/15-writing-api-docs.txt +154 -0
  360. package/fixtures/classifier-gold/transcripts/16-meeting-sprint-planning.txt +69 -0
  361. package/fixtures/classifier-gold/transcripts/17-trivial-list-files.txt +14 -0
  362. package/fixtures/classifier-gold/transcripts/18-trivial-version-check.txt +21 -0
  363. package/fixtures/classifier-gold/transcripts/19-trivial-syntax-help.txt +29 -0
  364. package/fixtures/classifier-gold/transcripts/20-trivial-read-package-json.txt +41 -0
  365. package/migrations/000_initial_schema.sql +1 -1
  366. package/migrations/024_backfill_exemplar_repo_basename.sql +32 -0
  367. package/migrations/025_workstreams.sql +30 -0
  368. package/migrations/026_embedding_config.sql +12 -0
  369. package/migrations/027_drop_legacy_session_embeddings.sql +7 -0
  370. package/migrations/028_classifier_provenance.sql +5 -0
  371. package/migrations/pg/001_initial.sql +34 -0
  372. package/migrations/pg/019_split_replaces.sql +16 -7
  373. package/migrations/pg/025_workstreams.sql +34 -0
  374. package/migrations/pg/026_embedding_config.sql +12 -0
  375. package/migrations/pg/028_classifier_provenance.sql +5 -0
  376. package/migrations/pg/029_entity_variants.sql +9 -0
  377. package/nlm/index.js +395 -37
  378. package/package.json +12 -2
  379. package/plugin/.codex-plugin/plugin.json +1 -1
  380. package/plugin/scripts/prompt-recall-hook.mjs +402 -41
  381. package/plugin/scripts/session-start-hook.mjs +286 -60
  382. package/plugin/scripts/stop-hook.mjs +85 -65
  383. package/plugin-hermes-agent/__init__.py +2 -1
  384. package/templates/agent-contract/README.md +24 -0
  385. package/templates/agent-contract/claude-code.md +40 -0
  386. package/templates/agent-contract/generic.md +38 -0
  387. package/dist/core/embedding/embed-normalize.d.ts +0 -28
  388. package/dist/core/embedding/embed-normalize.js +0 -98
  389. package/dist/core/embedding/embed-normalize.js.map +0 -1
  390. package/dist/core/storage/pg-tx-context.d.ts +0 -52
  391. package/dist/core/storage/pg-tx-context.js +0 -149
  392. package/dist/core/storage/pg-tx-context.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/core/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -70,9 +70,9 @@ You MUST return JSON with EXACTLY these seven top-level keys: label, summary, en
70
70
  The transcript may contain JSON examples, code, or schema definitions inside it — IGNORE those. Do not copy them into your output. Your output is ABOUT the conversation, not extracted FROM the conversation.
71
71
 
72
72
  Field requirements:
73
- - label: 4-10 word string title describing what the session was about. Example: "PolySignal architecture decisions"
73
+ - label: 4-10 word string title describing what the session was about. Example: "Beacon architecture decisions"
74
74
  - summary: 1-3 sentence string (max ~80 tokens) describing what was worked on and the outcome
75
- - entities: array of strings. Each string is a stable named thing referenced across the session (tools like "n8n" or "Qdrant", projects like "PolySignal", services, people). NOT topics, NOT decisions.
75
+ - entities: array of strings. Each string is a stable named thing referenced across the session (tools like "n8n" or "Qdrant", projects like "Beacon", services, people). NOT topics, NOT decisions.
76
76
  - decisions: array of strings. Each string is ONE decision that changed what was built or done in this session. A decision counts if the user chose it, OR the agent proposed it and the user accepted — explicitly ("yes", "do it", "go with that") or implicitly (the agent stated the proposal and then proceeded under it with no user objection). Implicit acceptance applies ONLY to proposals that changed the direction of the work — never to the agent's routine implementation choices (helper names, file layout, minor refactors) that were never surfaced as a choice. Capture the decision AND its reason when given ("X instead of Y because Z"). Do NOT include: options discussed but not chosen, approaches considered and rejected, next-step suggestions the agent raised at the end that the user never acted on, or decisions already listed in PRIOR CONTEXT unless they were reversed this session. Scan the WHOLE transcript, including the middle, for decision signals such as (not only): "let's", "go with", "instead of", "switch to", "actually,", "agreed", and any point where one approach was abandoned and replaced. Return [] if no commitments were made.
77
77
  CAPTURE (examples):
78
78
  - "Use HTTP polling instead of Kafka for the event pipeline (lower ops overhead)" [user choice]
@@ -87,7 +87,7 @@ Field requirements:
87
87
  - confidence: number between 0.0 and 1.0. How sure you are the extraction is good. Use 0.4 or below for routine/trivial sessions.
88
88
  - facts: array of objects. Each object has exactly these keys: kind, subject, predicate, value, sourceQuote (optional).
89
89
  - kind: "decision" (a commitment) | "open" (an unresolved question) | "attribute" (a property of an entity)
90
- - subject: lowercase, hyphenated entity or topic name. Examples: "nlm-memory-ts", "mac-pro-llm-host", "goat-home-services"
90
+ - subject: lowercase, hyphenated entity or topic name. Examples: "nlm-memory-ts", "local-llm-host", "acme-client"
91
91
  - predicate: MUST be one of these exact strings: ${PREDICATE_VOCABULARY.join(", ")}.
92
92
  - value: the answer, as a short phrase or sentence. Examples: "Hono", "http://macpro:8080/v1", "Q3 2026"
93
93
  - sourceQuote: (optional) verbatim slice from the transcript that anchors this fact. Keep under 200 chars.
@@ -26,11 +26,21 @@ export interface RecentEntry {
26
26
  readonly source?: string;
27
27
  readonly query?: string | null;
28
28
  }
29
+ /**
30
+ * True cited-precision over hook-surfaced sessions — the honest "was the recall
31
+ * useful" metric, distinct from the surfacing rate. `precisionAtK` is null when
32
+ * no conversations were scoreable in the window (no citations / empty hook-log).
33
+ */
34
+ export interface DigestPrecision {
35
+ readonly precisionAtK: number | null;
36
+ readonly conversationCount: number;
37
+ }
29
38
  export interface ComposeInput {
30
39
  readonly stats: RecallStats;
31
40
  readonly recent: ReadonlyArray<RecentEntry>;
32
41
  readonly port: number;
33
42
  readonly hookAlert: string | null;
43
+ readonly precision?: DigestPrecision | null;
34
44
  /** Override "now" for deterministic tests; defaults to Date.now(). */
35
45
  readonly now?: Date;
36
46
  }
@@ -66,7 +66,8 @@ export function composeDigest(input) {
66
66
  `\n` +
67
67
  alertBlock +
68
68
  `Last 24h (real traffic): ${real24h.length} queries · ${sourceStr}\n` +
69
- `Last 7d: ${real7d} real / ${total7d} total · hit_rate ${pct(input.stats.hit_rate)}\n` +
69
+ `Last 7d: ${real7d} real / ${total7d} total · surfaced ${pct(input.stats.hit_rate)}\n` +
70
+ `Recall precision (cited/surfaced): ${formatPrecision(input.precision)}\n` +
70
71
  `\n` +
71
72
  `Top real queries (24h):\n` +
72
73
  `${topLines}\n` +
@@ -76,6 +77,11 @@ export function composeDigest(input) {
76
77
  function pct(n) {
77
78
  return `${Math.round(n * 100)}%`;
78
79
  }
80
+ function formatPrecision(p) {
81
+ if (!p || p.precisionAtK === null)
82
+ return "n/a (no scored conversations yet)";
83
+ return `${pct(p.precisionAtK)} (${p.conversationCount} conv)`;
84
+ }
79
85
  function truncate(s, max) {
80
86
  return s.length <= max ? s : s.slice(0, max);
81
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/core/digest/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/core/digest/compose.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * embed-backfill — re-embed every session in canonical.sqlite into the
3
- * chunk + max-pool index (session_embedding_chunks). Replaces the prior
4
- * one-vector-per-session backfill that wrote to session_embeddings.
3
+ * chunk + max-pool index (session_embedding_chunks).
5
4
  *
6
5
  * For each session: chunk (label + summary + body) via chunkSessionText,
7
6
  * embed each chunk with kind="document", and write to the chunk table +
@@ -12,6 +11,12 @@
12
11
  * session ids. A session is considered "done" only when ALL its chunks
13
12
  * embed successfully — partial sessions are retried on the next run.
14
13
  *
14
+ * When the probed embedder dim/model/provider differs from the stored
15
+ * embedding_config prose row, both vec tables are dropped and recreated at
16
+ * the new dim before the session loop runs. Facts (superseded_by IS NULL
17
+ * AND retired_at IS NULL) are reembedded immediately after the session
18
+ * loop. Same-config reruns skip the rebuild and reembed sessions only.
19
+ *
15
20
  * Layering: depends on the LLMClient port. SQLite touched directly via
16
21
  * better-sqlite3 because this is a one-shot operational tool, not a hot
17
22
  * path. Lives under core/ but is invoked from the CLI composition root.
@@ -22,6 +27,9 @@ export interface BackfillOptions {
22
27
  readonly embedder: LLMClient;
23
28
  readonly statePath?: string;
24
29
  readonly limit?: number;
30
+ readonly dryRun?: boolean;
31
+ /** Provider string written to embedding_config. Defaults to NLM_EMBED_PROVIDER env or "ollama". */
32
+ readonly embedderProvider?: string;
25
33
  readonly onProgress?: (i: number, total: number, sid: string, status: string) => void;
26
34
  }
27
35
  export interface BackfillReport {
@@ -31,5 +39,8 @@ export interface BackfillReport {
31
39
  readonly failed: number;
32
40
  readonly skippedAlreadyDone: number;
33
41
  readonly dbMissing: boolean;
42
+ readonly rebuilt?: boolean;
43
+ readonly factsReembedded?: number;
44
+ readonly dryRun?: boolean;
34
45
  }
35
46
  export declare function reembedCorpus(opts: BackfillOptions): Promise<BackfillReport>;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * embed-backfill — re-embed every session in canonical.sqlite into the
3
- * chunk + max-pool index (session_embedding_chunks). Replaces the prior
4
- * one-vector-per-session backfill that wrote to session_embeddings.
3
+ * chunk + max-pool index (session_embedding_chunks).
5
4
  *
6
5
  * For each session: chunk (label + summary + body) via chunkSessionText,
7
6
  * embed each chunk with kind="document", and write to the chunk table +
@@ -12,6 +11,12 @@
12
11
  * session ids. A session is considered "done" only when ALL its chunks
13
12
  * embed successfully — partial sessions are retried on the next run.
14
13
  *
14
+ * When the probed embedder dim/model/provider differs from the stored
15
+ * embedding_config prose row, both vec tables are dropped and recreated at
16
+ * the new dim before the session loop runs. Facts (superseded_by IS NULL
17
+ * AND retired_at IS NULL) are reembedded immediately after the session
18
+ * loop. Same-config reruns skip the rebuild and reembed sessions only.
19
+ *
15
20
  * Layering: depends on the LLMClient port. SQLite touched directly via
16
21
  * better-sqlite3 because this is a one-shot operational tool, not a hot
17
22
  * path. Lives under core/ but is invoked from the CLI composition root.
@@ -23,22 +28,26 @@ import Database from "better-sqlite3";
23
28
  import * as sqliteVec from "sqlite-vec";
24
29
  import { LLMUnreachableError } from "../../ports/llm-client.js";
25
30
  import { chunkSessionText } from "../embedding/chunk-body.js";
31
+ import { SqliteEmbeddingConfigStore } from "../storage/sqlite-embedding-config.js";
26
32
  const DEFAULT_STATE_PATH = join(homedir(), ".nlm", "embed_reembed.state");
27
33
  const SAVE_EVERY = 25;
28
- function loadState(path) {
34
+ function loadStateData(path) {
29
35
  if (!existsSync(path))
30
- return new Set();
36
+ return { done: new Set() };
31
37
  try {
32
- const data = JSON.parse(readFileSync(path, "utf8"));
33
- return new Set(data.done ?? []);
38
+ const raw = JSON.parse(readFileSync(path, "utf8"));
39
+ return { done: new Set(raw.done ?? []), ...(raw.config ? { config: raw.config } : {}) };
34
40
  }
35
41
  catch {
36
- return new Set();
42
+ return { done: new Set() };
37
43
  }
38
44
  }
39
- function saveState(path, done) {
45
+ function saveState(path, done, config) {
40
46
  mkdirSync(dirname(path), { recursive: true });
41
- writeFileSync(path, JSON.stringify({ done: [...done].sort() }));
47
+ const data = { done: [...done].sort() };
48
+ if (config)
49
+ data.config = config;
50
+ writeFileSync(path, JSON.stringify(data));
42
51
  }
43
52
  export async function reembedCorpus(opts) {
44
53
  const statePath = opts.statePath ?? DEFAULT_STATE_PATH;
@@ -47,31 +56,126 @@ export async function reembedCorpus(opts) {
47
56
  }
48
57
  const db = new Database(opts.dbPath);
49
58
  sqliteVec.load(db);
50
- // Backfill every session with content; live ingest covers ongoing writes.
51
- // The state file dedupes across runs so partial completion resumes cleanly.
52
- const sql = "SELECT s.id, s.label, s.summary, s.body FROM sessions s " +
53
- "WHERE s.body IS NOT NULL OR s.summary IS NOT NULL OR s.label IS NOT NULL " +
54
- "ORDER BY s.started_at" +
55
- (opts.limit ? ` LIMIT ${Math.trunc(opts.limit)}` : "");
56
- const rows = db.prepare(sql).all();
57
- const total = rows.length;
58
- const done = loadState(statePath);
59
- const selectChunks = db.prepare("SELECT chunk_id FROM session_chunk_map WHERE session_id = ?");
60
- const delChunks = (sessionId) => {
61
- const existing = selectChunks.all(sessionId);
62
- if (existing.length === 0)
63
- return;
64
- const placeholders = existing.map(() => "?").join(",");
65
- const ids = existing.map((r) => r.chunk_id);
66
- db.prepare(`DELETE FROM session_embedding_chunks WHERE chunk_id IN (${placeholders})`).run(...ids);
67
- db.prepare("DELETE FROM session_chunk_map WHERE session_id = ?").run(sessionId);
68
- };
69
- const insChunk = db.prepare("INSERT INTO session_embedding_chunks (embedding, session_id, chunk_idx) VALUES (?, ?, ?)");
70
- const insMap = db.prepare("INSERT INTO session_chunk_map (chunk_id, session_id, chunk_idx) VALUES (?, ?, ?)");
71
- let succeeded = 0;
72
- let failed = 0;
73
- let skipped = 0;
74
59
  try {
60
+ const configTableRow = db
61
+ .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='embedding_config'")
62
+ .get();
63
+ if (!configTableRow) {
64
+ throw new Error("embedding_config table not found; run `nlm migrate` to apply pending migrations");
65
+ }
66
+ const probeResult = await opts.embedder.embed("nlm dimension probe", "query");
67
+ const dim = probeResult.vector.length;
68
+ const model = probeResult.model;
69
+ const provider = opts.embedderProvider ?? process.env["NLM_EMBED_PROVIDER"] ?? "ollama";
70
+ const runtimeConfig = { lane: "prose", provider, model, dim };
71
+ const configStore = new SqliteEmbeddingConfigStore(db);
72
+ const storedConfig = configStore.getLane("prose");
73
+ const stateData = loadStateData(statePath);
74
+ let configMatch = false;
75
+ let needsRebuild = false;
76
+ if (storedConfig !== null) {
77
+ configMatch =
78
+ storedConfig.provider === runtimeConfig.provider &&
79
+ storedConfig.model === runtimeConfig.model &&
80
+ storedConfig.dim === runtimeConfig.dim;
81
+ if (!configMatch) {
82
+ // An interrupted rebuild already dropped+recreated the tables if the
83
+ // state file carries a matching config. Resume without re-dropping.
84
+ const stateConfigMatches = stateData.config !== undefined &&
85
+ stateData.config.provider === runtimeConfig.provider &&
86
+ stateData.config.model === runtimeConfig.model &&
87
+ stateData.config.dim === runtimeConfig.dim;
88
+ if (!stateConfigMatches) {
89
+ needsRebuild = true;
90
+ }
91
+ }
92
+ }
93
+ // Resume state: stored config differs from runtime, but the state file already
94
+ // carries the new config (tables were rebuilt in a prior interrupted run).
95
+ // No re-drop is needed, but facts must still be reembedded to finish the run.
96
+ const isResumeState = storedConfig !== null && !configMatch && !needsRebuild;
97
+ if (opts.dryRun) {
98
+ if (needsRebuild) {
99
+ const stored = storedConfig;
100
+ process.stderr.write(`[embed-backfill] dim mismatch: stored ${stored.provider}/${stored.model}@${stored.dim},` +
101
+ ` runtime ${provider}/${model}@${dim}.` +
102
+ ` Would DROP session_embedding_chunks, session_chunk_map entries, fact_embeddings.\n`);
103
+ }
104
+ else if (isResumeState) {
105
+ const stored = storedConfig;
106
+ process.stderr.write(`[embed-backfill] resume state: interrupted rebuild detected.` +
107
+ ` Stored config ${stored.provider}/${stored.model}@${stored.dim}` +
108
+ ` differs from runtime ${provider}/${model}@${dim},` +
109
+ ` but state file already matches runtime.` +
110
+ ` No re-drop; facts would be reembedded to complete the interrupted rebuild.\n`);
111
+ }
112
+ else {
113
+ process.stderr.write(`[embed-backfill] dry-run: config matches (${provider}/${model}@${dim}), no rebuild needed.\n`);
114
+ }
115
+ let dryRunFactCount = 0;
116
+ if (isResumeState) {
117
+ dryRunFactCount = db
118
+ .prepare("SELECT id FROM facts WHERE superseded_by IS NULL AND retired_at IS NULL")
119
+ .all().length;
120
+ }
121
+ return {
122
+ total: 0,
123
+ processed: 0,
124
+ succeeded: 0,
125
+ failed: 0,
126
+ skippedAlreadyDone: 0,
127
+ dbMissing: false,
128
+ dryRun: true,
129
+ rebuilt: needsRebuild,
130
+ factsReembedded: dryRunFactCount,
131
+ };
132
+ }
133
+ if (needsRebuild) {
134
+ const stored = storedConfig;
135
+ process.stderr.write(`[embed-backfill] rebuilding vec tables: stored ${stored.provider}/${stored.model}@${stored.dim}` +
136
+ ` vs runtime ${provider}/${model}@${dim}\n`);
137
+ process.stderr.write(`[embed-backfill] DROP TABLE IF EXISTS session_embedding_chunks\n`);
138
+ db.exec("DROP TABLE IF EXISTS session_embedding_chunks");
139
+ db.exec(`CREATE VIRTUAL TABLE session_embedding_chunks USING vec0(` +
140
+ `chunk_id INTEGER PRIMARY KEY, ` +
141
+ `embedding float[${dim}], ` +
142
+ `+session_id TEXT, ` +
143
+ `+chunk_idx INTEGER` +
144
+ `)`);
145
+ db.exec("DELETE FROM session_chunk_map");
146
+ process.stderr.write(`[embed-backfill] DROP TABLE IF EXISTS fact_embeddings\n`);
147
+ db.exec("DROP TABLE IF EXISTS fact_embeddings");
148
+ db.exec(`CREATE VIRTUAL TABLE fact_embeddings USING vec0(` +
149
+ `fact_id TEXT PRIMARY KEY, ` +
150
+ `embedding float[${dim}]` +
151
+ `)`);
152
+ // Ignore the stale state file; start fresh for this config.
153
+ stateData.done = new Set();
154
+ }
155
+ // Backfill every session with content; live ingest covers ongoing writes.
156
+ // The state file dedupes across runs so partial completion resumes cleanly.
157
+ const sql = "SELECT s.id, s.label, s.summary, s.body FROM sessions s " +
158
+ "WHERE s.body IS NOT NULL OR s.summary IS NOT NULL OR s.label IS NOT NULL " +
159
+ "ORDER BY s.started_at" +
160
+ (opts.limit ? ` LIMIT ${Math.trunc(opts.limit)}` : "");
161
+ const rows = db.prepare(sql).all();
162
+ const total = rows.length;
163
+ const done = stateData.done;
164
+ const selectChunks = db.prepare("SELECT chunk_id FROM session_chunk_map WHERE session_id = ?");
165
+ const delChunks = (sessionId) => {
166
+ const existing = selectChunks.all(sessionId);
167
+ if (existing.length === 0)
168
+ return;
169
+ const placeholders = existing.map(() => "?").join(",");
170
+ const ids = existing.map((r) => r.chunk_id);
171
+ db.prepare(`DELETE FROM session_embedding_chunks WHERE chunk_id IN (${placeholders})`).run(...ids);
172
+ db.prepare("DELETE FROM session_chunk_map WHERE session_id = ?").run(sessionId);
173
+ };
174
+ const insChunk = db.prepare("INSERT INTO session_embedding_chunks (embedding, session_id, chunk_idx) VALUES (?, ?, ?)");
175
+ const insMap = db.prepare("INSERT INTO session_chunk_map (chunk_id, session_id, chunk_idx) VALUES (?, ?, ?)");
176
+ let succeeded = 0;
177
+ let failed = 0;
178
+ let skipped = 0;
75
179
  for (let i = 0; i < rows.length; i++) {
76
180
  const row = rows[i];
77
181
  const idx = i + 1;
@@ -143,20 +247,54 @@ export async function reembedCorpus(opts) {
143
247
  : `PARTIAL (${vectors.length}/${chunks.length} chunks, ${chunkSkipped} skipped)`;
144
248
  opts.onProgress?.(idx, total, row.id, status);
145
249
  if (succeeded % SAVE_EVERY === 0)
146
- saveState(statePath, done);
250
+ saveState(statePath, done, { provider, model, dim });
251
+ }
252
+ // Reembed facts whenever the stored config does not match the runtime config
253
+ // (storedConfig exists but configMatch is false). This covers both fresh
254
+ // rebuilds and interrupted rebuilds that resume: after a rebuild the tables
255
+ // are empty and the state file carries the new config, but the embedding_config
256
+ // row is only updated on successful completion, so storedConfig still holds
257
+ // the old values. Gating on needsRebuild alone skips facts in that resume path.
258
+ let factsReembedded = 0;
259
+ if (storedConfig !== null && !configMatch) {
260
+ const factRows = db
261
+ .prepare("SELECT id, subject, predicate, value FROM facts" +
262
+ " WHERE superseded_by IS NULL AND retired_at IS NULL")
263
+ .all();
264
+ const delFactEmb = db.prepare("DELETE FROM fact_embeddings WHERE fact_id = ?");
265
+ const insFactEmb = db.prepare("INSERT INTO fact_embeddings (fact_id, embedding) VALUES (?, ?)");
266
+ for (const fact of factRows) {
267
+ const factText = `${fact.subject} ${fact.predicate} ${fact.value}`.trim();
268
+ if (!factText)
269
+ continue;
270
+ try {
271
+ const out = await opts.embedder.embed(factText, "document");
272
+ const blob = Buffer.from(out.vector.buffer, out.vector.byteOffset, out.vector.byteLength);
273
+ delFactEmb.run(fact.id);
274
+ insFactEmb.run(fact.id, blob);
275
+ factsReembedded += 1;
276
+ }
277
+ catch {
278
+ // Best-effort: fact row survives; semantic recall misses it until re-run.
279
+ }
280
+ }
147
281
  }
148
- saveState(statePath, done);
282
+ // Upsert prose config row on successful completion and persist final state.
283
+ configStore.upsertLane(runtimeConfig, new Date().toISOString());
284
+ saveState(statePath, done, { provider, model, dim });
285
+ return {
286
+ total,
287
+ processed: succeeded + failed + skipped,
288
+ succeeded,
289
+ failed,
290
+ skippedAlreadyDone: skipped,
291
+ dbMissing: false,
292
+ rebuilt: needsRebuild,
293
+ factsReembedded,
294
+ };
149
295
  }
150
296
  finally {
151
297
  db.close();
152
298
  }
153
- return {
154
- total,
155
- processed: succeeded + failed + skipped,
156
- succeeded,
157
- failed,
158
- skippedAlreadyDone: skipped,
159
- dbMissing: false,
160
- };
161
299
  }
162
300
  //# sourceMappingURL=embed-backfill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed-backfill.js","sourceRoot":"","sources":["../../../src/core/embedding/embed-backfill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed-backfill.js","sourceRoot":"","sources":["../../../src/core/embedding/embed-backfill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type EmbeddingLane = "prose" | "code";
2
+ export interface EmbeddingLaneConfig {
3
+ readonly lane: EmbeddingLane;
4
+ readonly provider: string;
5
+ readonly model: string;
6
+ readonly dim: number;
7
+ }
8
+ export interface EmbeddingConfigStore {
9
+ getLane(lane: EmbeddingLane): EmbeddingLaneConfig | null;
10
+ upsertLane(cfg: EmbeddingLaneConfig, updatedAtIso: string): void;
11
+ }
12
+ export type LaneReconcileState = "recorded" | "match" | "stale";
13
+ export interface LaneReconcileResult {
14
+ readonly state: LaneReconcileState;
15
+ readonly stored: EmbeddingLaneConfig | null;
16
+ }
17
+ export declare function reconcileLane(store: EmbeddingConfigStore, runtime: EmbeddingLaneConfig, nowIso: string): LaneReconcileResult;
@@ -0,0 +1,12 @@
1
+ export function reconcileLane(store, runtime, nowIso) {
2
+ const stored = store.getLane(runtime.lane);
3
+ if (!stored) {
4
+ store.upsertLane(runtime, nowIso);
5
+ return { state: "recorded", stored: null };
6
+ }
7
+ const match = stored.provider === runtime.provider &&
8
+ stored.model === runtime.model &&
9
+ stored.dim === runtime.dim;
10
+ return { state: match ? "match" : "stale", stored };
11
+ }
12
+ //# sourceMappingURL=embedding-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedding-config.js","sourceRoot":"","sources":["../../../src/core/embedding/embedding-config.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,aAAa,CAC3B,KAA2B,EAC3B,OAA4B,EAC5B,MAAc;IAEd,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QACpC,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QAC9B,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * pg-embed-backfill -- re-embed every session in the Postgres store into
3
+ * session_embedding_chunks. Mirrors reembedCorpus from embed-backfill.ts
4
+ * but drives a pg Pool instead of a SQLite file.
5
+ *
6
+ * Resumable via a JSON state file at $NLM_EMBED_STATE (default
7
+ * ~/.nlm/embed_reembed_pg.state). Same SAVE_EVERY = 25 checkpoint cadence.
8
+ *
9
+ * When the probed dim/model/provider differs from the stored embedding_config
10
+ * row, both vector tables are rebuilt: rows cleared, the embedding column
11
+ * altered to the new dimension, and indexes recreated. Facts (superseded_by
12
+ * IS NULL AND retired_at IS NULL) are reembedded after the session loop.
13
+ * Same-config reruns skip the rebuild.
14
+ *
15
+ * CRITICAL: the final config write is an awaited pool.query() INSERT ON
16
+ * CONFLICT -- never routed through PgEmbeddingConfigStore.upsertLane, which
17
+ * is fire-and-forget and can be lost when pool.end() follows.
18
+ */
19
+ import type { LLMClient } from "../../ports/llm-client.js";
20
+ import type { BackfillReport } from "../embedding/embed-backfill.js";
21
+ export type { BackfillReport };
22
+ export interface PgBackfillOptions {
23
+ readonly pgUrl: string;
24
+ readonly embedder: LLMClient;
25
+ readonly statePath?: string;
26
+ readonly limit?: number;
27
+ readonly dryRun?: boolean;
28
+ readonly embedderProvider?: string;
29
+ readonly onProgress?: (i: number, total: number, sid: string, status: string) => void;
30
+ }
31
+ export declare function reembedCorpusPg(opts: PgBackfillOptions): Promise<BackfillReport>;