nlm-memory 0.21.0 → 0.21.13

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 (413) hide show
  1. package/README.md +67 -12
  2. package/assets/replay-eval-dark.svg +26 -0
  3. package/assets/replay-eval-light.svg +26 -0
  4. package/dist/cli/digest.js +34 -7
  5. package/dist/cli/digest.js.map +1 -1
  6. package/dist/cli/nlm.d.ts +14 -0
  7. package/dist/cli/nlm.js +450 -65
  8. package/dist/cli/nlm.js.map +1 -1
  9. package/dist/cli/reprocess-job-adapters.d.ts +35 -0
  10. package/dist/cli/reprocess-job-adapters.js +80 -0
  11. package/dist/cli/reprocess-job-adapters.js.map +1 -0
  12. package/dist/cli/scope-coverage.js +4 -1
  13. package/dist/cli/scope-coverage.js.map +1 -1
  14. package/dist/cli/supersede.js +8 -7
  15. package/dist/cli/supersede.js.map +1 -1
  16. package/dist/core/actions/actions-log.d.ts +65 -8
  17. package/dist/core/actions/actions-log.js +134 -17
  18. package/dist/core/actions/actions-log.js.map +1 -1
  19. package/dist/core/actions/overlay.d.ts +11 -2
  20. package/dist/core/actions/overlay.js +18 -6
  21. package/dist/core/actions/overlay.js.map +1 -1
  22. package/dist/core/adapters/from-source.js +11 -3
  23. package/dist/core/adapters/from-source.js.map +1 -1
  24. package/dist/core/adapters/fs-wiki-writer.d.ts +44 -0
  25. package/dist/core/adapters/fs-wiki-writer.js +132 -0
  26. package/dist/core/adapters/fs-wiki-writer.js.map +1 -0
  27. package/dist/core/adapters/hermes-agent.d.ts +15 -2
  28. package/dist/core/adapters/hermes-agent.js +57 -11
  29. package/dist/core/adapters/hermes-agent.js.map +1 -1
  30. package/dist/core/adapters/memory-wiki-writer.d.ts +8 -0
  31. package/dist/core/adapters/memory-wiki-writer.js +16 -0
  32. package/dist/core/adapters/memory-wiki-writer.js.map +1 -0
  33. package/dist/core/adapters/muse.d.ts +51 -0
  34. package/dist/core/adapters/muse.js +271 -0
  35. package/dist/core/adapters/muse.js.map +1 -0
  36. package/dist/core/adapters/opencode.d.ts +11 -4
  37. package/dist/core/adapters/opencode.js +41 -7
  38. package/dist/core/adapters/opencode.js.map +1 -1
  39. package/dist/core/alerts/alert-state.d.ts +17 -0
  40. package/dist/core/alerts/alert-state.js +45 -0
  41. package/dist/core/alerts/alert-state.js.map +1 -0
  42. package/dist/core/alerts/check-and-alert.d.ts +28 -0
  43. package/dist/core/alerts/check-and-alert.js +53 -0
  44. package/dist/core/alerts/check-and-alert.js.map +1 -0
  45. package/dist/core/alerts/drift-transition.d.ts +27 -0
  46. package/dist/core/alerts/drift-transition.js +56 -0
  47. package/dist/core/alerts/drift-transition.js.map +1 -0
  48. package/dist/core/alerts/embedder-transition.d.ts +23 -0
  49. package/dist/core/alerts/embedder-transition.js +40 -0
  50. package/dist/core/alerts/embedder-transition.js.map +1 -0
  51. package/dist/core/alerts/fire-alert.d.ts +24 -0
  52. package/dist/core/alerts/fire-alert.js +72 -0
  53. package/dist/core/alerts/fire-alert.js.map +1 -0
  54. package/dist/core/alerts/job-alert.d.ts +12 -0
  55. package/dist/core/alerts/job-alert.js +37 -0
  56. package/dist/core/alerts/job-alert.js.map +1 -0
  57. package/dist/core/alerts/types.d.ts +104 -0
  58. package/dist/core/alerts/types.js +11 -0
  59. package/dist/core/alerts/types.js.map +1 -0
  60. package/dist/core/alerts/wiki-alert.d.ts +15 -0
  61. package/dist/core/alerts/wiki-alert.js +31 -0
  62. package/dist/core/alerts/wiki-alert.js.map +1 -0
  63. package/dist/core/classifier/prompt.d.ts +13 -0
  64. package/dist/core/classifier/prompt.js +52 -2
  65. package/dist/core/classifier/prompt.js.map +1 -1
  66. package/dist/core/dataset/build-dataset.d.ts +16 -1
  67. package/dist/core/dataset/build-dataset.js +105 -45
  68. package/dist/core/dataset/build-dataset.js.map +1 -1
  69. package/dist/core/digest/compose.d.ts +8 -0
  70. package/dist/core/digest/compose.js +54 -0
  71. package/dist/core/digest/compose.js.map +1 -1
  72. package/dist/core/digest/hook-injection.d.ts +1 -1
  73. package/dist/core/digest/hook-injection.js +9 -1
  74. package/dist/core/digest/hook-injection.js.map +1 -1
  75. package/dist/core/digest/hook-version-parity.d.ts +31 -0
  76. package/dist/core/digest/hook-version-parity.js +56 -0
  77. package/dist/core/digest/hook-version-parity.js.map +1 -0
  78. package/dist/core/embedding/pg-embed-backfill.js +1 -1
  79. package/dist/core/embedding/pg-embed-backfill.js.map +1 -1
  80. package/dist/core/exemplars/capture-from-session.d.ts +1 -1
  81. package/dist/core/exemplars/capture-from-session.js +3 -3
  82. package/dist/core/exemplars/capture-from-session.js.map +1 -1
  83. package/dist/core/exemplars/embed-backfill.d.ts +9 -0
  84. package/dist/core/exemplars/embed-backfill.js +9 -1
  85. package/dist/core/exemplars/embed-backfill.js.map +1 -1
  86. package/dist/core/exemplars/recall-code.d.ts +1 -1
  87. package/dist/core/exemplars/recall-code.js +2 -2
  88. package/dist/core/exemplars/recall-code.js.map +1 -1
  89. package/dist/core/facts/backfill-facts.d.ts +1 -1
  90. package/dist/core/facts/backfill-facts.js +4 -4
  91. package/dist/core/facts/backfill-facts.js.map +1 -1
  92. package/dist/core/facts/embed-backfill.d.ts +54 -0
  93. package/dist/core/facts/embed-backfill.js +109 -0
  94. package/dist/core/facts/embed-backfill.js.map +1 -0
  95. package/dist/core/facts/reconcile-facts.d.ts +42 -0
  96. package/dist/core/facts/reconcile-facts.js +133 -0
  97. package/dist/core/facts/reconcile-facts.js.map +1 -0
  98. package/dist/core/health/embed-failure-state.d.ts +4 -0
  99. package/dist/core/health/embed-failure-state.js +12 -0
  100. package/dist/core/health/embed-failure-state.js.map +1 -0
  101. package/dist/core/health/warmup-retry.d.ts +27 -0
  102. package/dist/core/health/warmup-retry.js +53 -0
  103. package/dist/core/health/warmup-retry.js.map +1 -0
  104. package/dist/core/health/warmup-state.d.ts +15 -0
  105. package/dist/core/health/warmup-state.js +15 -1
  106. package/dist/core/health/warmup-state.js.map +1 -1
  107. package/dist/core/hook/cite-memo.d.ts +11 -7
  108. package/dist/core/hook/cite-memo.js +25 -17
  109. package/dist/core/hook/cite-memo.js.map +1 -1
  110. package/dist/core/hook/hook-log.d.ts +13 -2
  111. package/dist/core/hook/hook-log.js +16 -8
  112. package/dist/core/hook/hook-log.js.map +1 -1
  113. package/dist/core/hook/memo.d.ts +10 -6
  114. package/dist/core/hook/memo.js +25 -17
  115. package/dist/core/hook/memo.js.map +1 -1
  116. package/dist/core/hook/pointer-block.d.ts +8 -1
  117. package/dist/core/hook/pointer-block.js +17 -4
  118. package/dist/core/hook/pointer-block.js.map +1 -1
  119. package/dist/core/hook/resolve-conversation-by-query.d.ts +6 -5
  120. package/dist/core/hook/resolve-conversation-by-query.js +24 -12
  121. package/dist/core/hook/resolve-conversation-by-query.js.map +1 -1
  122. package/dist/core/ingest/ingest-session.d.ts +1 -1
  123. package/dist/core/ingest/ingest-session.js +3 -3
  124. package/dist/core/ingest/ingest-session.js.map +1 -1
  125. package/dist/core/ingest/reclassify-oversized.d.ts +1 -1
  126. package/dist/core/ingest/reclassify-oversized.js +2 -2
  127. package/dist/core/ingest/reclassify-oversized.js.map +1 -1
  128. package/dist/core/ingest/reprocess.d.ts +1 -1
  129. package/dist/core/ingest/reprocess.js +2 -2
  130. package/dist/core/ingest/reprocess.js.map +1 -1
  131. package/dist/core/jobs/job-supervisor.d.ts +168 -0
  132. package/dist/core/jobs/job-supervisor.js +335 -0
  133. package/dist/core/jobs/job-supervisor.js.map +1 -0
  134. package/dist/core/learner/model.d.ts +63 -0
  135. package/dist/core/learner/model.js +30 -0
  136. package/dist/core/learner/model.js.map +1 -0
  137. package/dist/core/learner/service.d.ts +42 -0
  138. package/dist/core/learner/service.js +74 -0
  139. package/dist/core/learner/service.js.map +1 -0
  140. package/dist/core/learner/summary.d.ts +28 -0
  141. package/dist/core/learner/summary.js +70 -0
  142. package/dist/core/learner/summary.js.map +1 -0
  143. package/dist/core/learner/validate.d.ts +18 -0
  144. package/dist/core/learner/validate.js +95 -0
  145. package/dist/core/learner/validate.js.map +1 -0
  146. package/dist/core/metrics/re-derivation.d.ts +31 -2
  147. package/dist/core/metrics/re-derivation.js +36 -4
  148. package/dist/core/metrics/re-derivation.js.map +1 -1
  149. package/dist/core/outcome/coverage.d.ts +1 -1
  150. package/dist/core/outcome/coverage.js +2 -2
  151. package/dist/core/outcome/coverage.js.map +1 -1
  152. package/dist/core/outcome/rollup.d.ts +1 -1
  153. package/dist/core/outcome/rollup.js +4 -4
  154. package/dist/core/outcome/rollup.js.map +1 -1
  155. package/dist/core/providers/provider-registry.d.ts +40 -23
  156. package/dist/core/providers/provider-registry.js +99 -81
  157. package/dist/core/providers/provider-registry.js.map +1 -1
  158. package/dist/core/recall/citation-log.d.ts +10 -5
  159. package/dist/core/recall/citation-log.js +21 -10
  160. package/dist/core/recall/citation-log.js.map +1 -1
  161. package/dist/core/recall/hook-recall-log.d.ts +5 -2
  162. package/dist/core/recall/hook-recall-log.js +12 -6
  163. package/dist/core/recall/hook-recall-log.js.map +1 -1
  164. package/dist/core/recall/miss-log.d.ts +7 -4
  165. package/dist/core/recall/miss-log.js +18 -11
  166. package/dist/core/recall/miss-log.js.map +1 -1
  167. package/dist/core/recall/query-log.d.ts +8 -5
  168. package/dist/core/recall/query-log.js +16 -9
  169. package/dist/core/recall/query-log.js.map +1 -1
  170. package/dist/core/recall/recall-service.d.ts +10 -1
  171. package/dist/core/recall/recall-service.js +31 -12
  172. package/dist/core/recall/recall-service.js.map +1 -1
  173. package/dist/core/recall/recent-log.d.ts +6 -1
  174. package/dist/core/recall/recent-log.js +13 -5
  175. package/dist/core/recall/recent-log.js.map +1 -1
  176. package/dist/core/recall/related-concepts.d.ts +29 -0
  177. package/dist/core/recall/related-concepts.js +67 -0
  178. package/dist/core/recall/related-concepts.js.map +1 -0
  179. package/dist/core/recall/related-exemplars.d.ts +1 -1
  180. package/dist/core/recall/related-exemplars.js +2 -2
  181. package/dist/core/recall/related-exemplars.js.map +1 -1
  182. package/dist/core/recall/related-facts.d.ts +1 -1
  183. package/dist/core/recall/related-facts.js +3 -3
  184. package/dist/core/recall/related-facts.js.map +1 -1
  185. package/dist/core/recall-facts/fact-query-log.d.ts +8 -4
  186. package/dist/core/recall-facts/fact-query-log.js +16 -8
  187. package/dist/core/recall-facts/fact-query-log.js.map +1 -1
  188. package/dist/core/recall-facts/fact-recall-service.d.ts +2 -2
  189. package/dist/core/recall-facts/fact-recall-service.js +12 -12
  190. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  191. package/dist/core/scheduler/scan-once.js +15 -14
  192. package/dist/core/scheduler/scan-once.js.map +1 -1
  193. package/dist/core/scheduler/scheduler.d.ts +3 -0
  194. package/dist/core/scheduler/scheduler.js +15 -11
  195. package/dist/core/scheduler/scheduler.js.map +1 -1
  196. package/dist/core/signals/failure-mode-recall.d.ts +1 -1
  197. package/dist/core/signals/failure-mode-recall.js +2 -2
  198. package/dist/core/signals/failure-mode-recall.js.map +1 -1
  199. package/dist/core/signals/stamp-scope.d.ts +2 -2
  200. package/dist/core/signals/stamp-scope.js +2 -2
  201. package/dist/core/signals/stamp-scope.js.map +1 -1
  202. package/dist/core/sources/source-registry.d.ts +49 -28
  203. package/dist/core/sources/source-registry.js +113 -70
  204. package/dist/core/sources/source-registry.js.map +1 -1
  205. package/dist/core/storage/pg-code-exemplar-store.d.ts +19 -10
  206. package/dist/core/storage/pg-code-exemplar-store.js +58 -27
  207. package/dist/core/storage/pg-code-exemplar-store.js.map +1 -1
  208. package/dist/core/storage/pg-entity-store.d.ts +6 -1
  209. package/dist/core/storage/pg-entity-store.js +33 -18
  210. package/dist/core/storage/pg-entity-store.js.map +1 -1
  211. package/dist/core/storage/pg-fact-ingest.d.ts +1 -1
  212. package/dist/core/storage/pg-fact-ingest.js +10 -7
  213. package/dist/core/storage/pg-fact-ingest.js.map +1 -1
  214. package/dist/core/storage/pg-fact-store.d.ts +29 -17
  215. package/dist/core/storage/pg-fact-store.js +99 -46
  216. package/dist/core/storage/pg-fact-store.js.map +1 -1
  217. package/dist/core/storage/pg-learner-store.d.ts +27 -0
  218. package/dist/core/storage/pg-learner-store.js +174 -0
  219. package/dist/core/storage/pg-learner-store.js.map +1 -0
  220. package/dist/core/storage/pg-session-store.d.ts +24 -20
  221. package/dist/core/storage/pg-session-store.js +162 -90
  222. package/dist/core/storage/pg-session-store.js.map +1 -1
  223. package/dist/core/storage/pg-signal-store.d.ts +10 -5
  224. package/dist/core/storage/pg-signal-store.js +24 -12
  225. package/dist/core/storage/pg-signal-store.js.map +1 -1
  226. package/dist/core/storage/pg-storage.d.ts +4 -0
  227. package/dist/core/storage/pg-storage.js +6 -0
  228. package/dist/core/storage/pg-storage.js.map +1 -1
  229. package/dist/core/storage/pg-workstream-store.d.ts +16 -11
  230. package/dist/core/storage/pg-workstream-store.js +46 -29
  231. package/dist/core/storage/pg-workstream-store.js.map +1 -1
  232. package/dist/core/storage/sqlite-code-exemplar-store.d.ts +24 -10
  233. package/dist/core/storage/sqlite-code-exemplar-store.js +84 -40
  234. package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -1
  235. package/dist/core/storage/sqlite-entity-store.d.ts +8 -1
  236. package/dist/core/storage/sqlite-entity-store.js +46 -27
  237. package/dist/core/storage/sqlite-entity-store.js.map +1 -1
  238. package/dist/core/storage/sqlite-fact-store.d.ts +45 -19
  239. package/dist/core/storage/sqlite-fact-store.js +172 -64
  240. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  241. package/dist/core/storage/sqlite-learner-store.d.ts +33 -0
  242. package/dist/core/storage/sqlite-learner-store.js +178 -0
  243. package/dist/core/storage/sqlite-learner-store.js.map +1 -0
  244. package/dist/core/storage/sqlite-outcome-store.d.ts +37 -22
  245. package/dist/core/storage/sqlite-outcome-store.js +90 -37
  246. package/dist/core/storage/sqlite-outcome-store.js.map +1 -1
  247. package/dist/core/storage/sqlite-session-store.d.ts +29 -20
  248. package/dist/core/storage/sqlite-session-store.js +207 -121
  249. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  250. package/dist/core/storage/sqlite-signal-store.d.ts +12 -5
  251. package/dist/core/storage/sqlite-signal-store.js +27 -15
  252. package/dist/core/storage/sqlite-signal-store.js.map +1 -1
  253. package/dist/core/storage/sqlite-storage.d.ts +4 -0
  254. package/dist/core/storage/sqlite-storage.js +10 -2
  255. package/dist/core/storage/sqlite-storage.js.map +1 -1
  256. package/dist/core/storage/sqlite-workstream-store.d.ts +16 -11
  257. package/dist/core/storage/sqlite-workstream-store.js +52 -31
  258. package/dist/core/storage/sqlite-workstream-store.js.map +1 -1
  259. package/dist/core/storage/supersedence-log.d.ts +10 -7
  260. package/dist/core/storage/supersedence-log.js +19 -14
  261. package/dist/core/storage/supersedence-log.js.map +1 -1
  262. package/dist/core/tenancy/default-team.d.ts +6 -0
  263. package/dist/core/tenancy/default-team.js +7 -0
  264. package/dist/core/tenancy/default-team.js.map +1 -0
  265. package/dist/core/tenancy/hosted-mode.d.ts +9 -0
  266. package/dist/core/tenancy/hosted-mode.js +12 -0
  267. package/dist/core/tenancy/hosted-mode.js.map +1 -0
  268. package/dist/core/tenancy/team-auth.d.ts +16 -0
  269. package/dist/core/tenancy/team-auth.js +22 -0
  270. package/dist/core/tenancy/team-auth.js.map +1 -0
  271. package/dist/core/tenancy/team-token-store.d.ts +45 -0
  272. package/dist/core/tenancy/team-token-store.js +52 -0
  273. package/dist/core/tenancy/team-token-store.js.map +1 -0
  274. package/dist/core/tenancy/tenant-clause.d.ts +37 -0
  275. package/dist/core/tenancy/tenant-clause.js +11 -0
  276. package/dist/core/tenancy/tenant-clause.js.map +1 -0
  277. package/dist/core/tenancy/tenant-state-path.d.ts +28 -0
  278. package/dist/core/tenancy/tenant-state-path.js +49 -0
  279. package/dist/core/tenancy/tenant-state-path.js.map +1 -0
  280. package/dist/core/wiki/project.d.ts +17 -0
  281. package/dist/core/wiki/project.js +37 -0
  282. package/dist/core/wiki/project.js.map +1 -0
  283. package/dist/core/wiki/reconcile.d.ts +15 -0
  284. package/dist/core/wiki/reconcile.js +14 -0
  285. package/dist/core/wiki/reconcile.js.map +1 -0
  286. package/dist/core/wiki/render.d.ts +5 -0
  287. package/dist/core/wiki/render.js +84 -0
  288. package/dist/core/wiki/render.js.map +1 -0
  289. package/dist/core/wiki/rollup.d.ts +28 -0
  290. package/dist/core/wiki/rollup.js +91 -0
  291. package/dist/core/wiki/rollup.js.map +1 -0
  292. package/dist/core/wiki/select.d.ts +8 -0
  293. package/dist/core/wiki/select.js +7 -0
  294. package/dist/core/wiki/select.js.map +1 -0
  295. package/dist/core/wiki/slug.d.ts +36 -0
  296. package/dist/core/wiki/slug.js +71 -0
  297. package/dist/core/wiki/slug.js.map +1 -0
  298. package/dist/core/wiki/types.d.ts +37 -0
  299. package/dist/core/wiki/types.js +2 -0
  300. package/dist/core/wiki/types.js.map +1 -0
  301. package/dist/core/work-digest/build-work-digest.d.ts +1 -1
  302. package/dist/core/work-digest/build-work-digest.js +3 -3
  303. package/dist/core/work-digest/build-work-digest.js.map +1 -1
  304. package/dist/core/workstream/bind.d.ts +1 -1
  305. package/dist/core/workstream/bind.js +10 -10
  306. package/dist/core/workstream/bind.js.map +1 -1
  307. package/dist/core/workstream/rollup.d.ts +1 -1
  308. package/dist/core/workstream/rollup.js +6 -6
  309. package/dist/core/workstream/rollup.js.map +1 -1
  310. package/dist/hook/hook-helpers.d.ts +14 -0
  311. package/dist/hook/hook-helpers.js +29 -2
  312. package/dist/hook/hook-helpers.js.map +1 -1
  313. package/dist/hook/pre-compact-hook.js +6 -4
  314. package/dist/hook/pre-compact-hook.js.map +1 -1
  315. package/dist/hook/prompt-recall-hook.d.ts +5 -2
  316. package/dist/hook/prompt-recall-hook.js +28 -17
  317. package/dist/hook/prompt-recall-hook.js.map +1 -1
  318. package/dist/hook/recall-over-http.d.ts +27 -3
  319. package/dist/hook/recall-over-http.js +44 -11
  320. package/dist/hook/recall-over-http.js.map +1 -1
  321. package/dist/hook/session-end-hook.js +7 -5
  322. package/dist/hook/session-end-hook.js.map +1 -1
  323. package/dist/hook/session-start-hook.d.ts +14 -1
  324. package/dist/hook/session-start-hook.js +55 -15
  325. package/dist/hook/session-start-hook.js.map +1 -1
  326. package/dist/hook/stop-hook.js +9 -7
  327. package/dist/hook/stop-hook.js.map +1 -1
  328. package/dist/http/app.d.ts +41 -3
  329. package/dist/http/app.js +355 -96
  330. package/dist/http/app.js.map +1 -1
  331. package/dist/install/claude-code.d.ts +17 -0
  332. package/dist/install/claude-code.js +44 -5
  333. package/dist/install/claude-code.js.map +1 -1
  334. package/dist/install/codex.d.ts +23 -2
  335. package/dist/install/codex.js +111 -14
  336. package/dist/install/codex.js.map +1 -1
  337. package/dist/install/cursor.d.ts +2 -2
  338. package/dist/install/cursor.js +7 -7
  339. package/dist/install/cursor.js.map +1 -1
  340. package/dist/install/hermes.d.ts +8 -0
  341. package/dist/install/hermes.js +28 -5
  342. package/dist/install/hermes.js.map +1 -1
  343. package/dist/install/local-source.d.ts +20 -0
  344. package/dist/install/local-source.js +28 -0
  345. package/dist/install/local-source.js.map +1 -0
  346. package/dist/install/mcp-block.d.ts +77 -0
  347. package/dist/install/mcp-block.js +99 -0
  348. package/dist/install/mcp-block.js.map +1 -0
  349. package/dist/install/pi.d.ts +26 -0
  350. package/dist/install/pi.js +43 -0
  351. package/dist/install/pi.js.map +1 -1
  352. package/dist/install/setup.js +6 -0
  353. package/dist/install/setup.js.map +1 -1
  354. package/dist/install/windsurf.d.ts +2 -2
  355. package/dist/install/windsurf.js +7 -7
  356. package/dist/install/windsurf.js.map +1 -1
  357. package/dist/llm/classifier-box.d.ts +5 -0
  358. package/dist/llm/classifier-box.js +5 -0
  359. package/dist/llm/classifier-box.js.map +1 -1
  360. package/dist/mcp/server.d.ts +73 -16
  361. package/dist/mcp/server.js +306 -83
  362. package/dist/mcp/server.js.map +1 -1
  363. package/dist/ports/clock.d.ts +12 -0
  364. package/dist/ports/clock.js +10 -0
  365. package/dist/ports/clock.js.map +1 -0
  366. package/dist/ports/code-exemplar-store.d.ts +13 -13
  367. package/dist/ports/entity-store.d.ts +5 -1
  368. package/dist/ports/fact-store.d.ts +0 -0
  369. package/dist/ports/fact-store.js +0 -0
  370. package/dist/ports/fact-store.js.map +1 -1
  371. package/dist/ports/learner-store.d.ts +80 -0
  372. package/dist/ports/learner-store.js +19 -0
  373. package/dist/ports/learner-store.js.map +1 -0
  374. package/dist/ports/outcome.d.ts +3 -3
  375. package/dist/ports/session-store.d.ts +20 -14
  376. package/dist/ports/session-store.js +5 -0
  377. package/dist/ports/session-store.js.map +1 -1
  378. package/dist/ports/signal-store.d.ts +12 -8
  379. package/dist/ports/spawn-child.d.ts +14 -0
  380. package/dist/ports/spawn-child.js +10 -0
  381. package/dist/ports/spawn-child.js.map +1 -0
  382. package/dist/ports/storage.d.ts +6 -0
  383. package/dist/ports/transcript-adapter.d.ts +11 -0
  384. package/dist/ports/wiki-writer.d.ts +19 -0
  385. package/dist/ports/wiki-writer.js +12 -0
  386. package/dist/ports/wiki-writer.js.map +1 -0
  387. package/dist/ports/workstream-store.d.ts +19 -12
  388. package/dist/shared/types.d.ts +22 -0
  389. package/dist/shared/types.js.map +1 -1
  390. package/dist/shared/version.d.ts +9 -0
  391. package/dist/shared/version.js +11 -0
  392. package/dist/shared/version.js.map +1 -0
  393. package/dist/ui/assets/index-D6F3xAis.js +11 -0
  394. package/dist/ui/index.html +1 -1
  395. package/migrations/033_actions_kind_check.sql +58 -0
  396. package/migrations/034_tenancy_teams_and_stamps.sql +40 -0
  397. package/migrations/035_tenancy_entity_rekey.sql +75 -0
  398. package/migrations/036_tenant_name_uniqueness.sql +59 -0
  399. package/migrations/037_sessions_covering_index.sql +25 -0
  400. package/migrations/038_sources_muse.sql +33 -0
  401. package/migrations/039_learner_evidence.sql +51 -0
  402. package/migrations/pg/033_actions_kind_check.sql +17 -0
  403. package/migrations/pg/034_tenancy.sql +77 -0
  404. package/migrations/pg/035_tenant_name_uniqueness.sql +15 -0
  405. package/migrations/pg/036_sources_muse.sql +12 -0
  406. package/migrations/pg/037_learner_evidence.sql +55 -0
  407. package/nlm/index.js +246 -55
  408. package/package.json +10 -5
  409. package/plugin/.codex-plugin/plugin.json +2 -2
  410. package/plugin/scripts/prompt-recall-hook.mjs +244 -55
  411. package/plugin/scripts/session-start-hook.mjs +273 -53
  412. package/plugin/scripts/stop-hook.mjs +195 -37
  413. package/dist/ui/assets/index-CSaBtgXD.js +0 -11
@@ -7,6 +7,15 @@
7
7
  * Shared by buildDataset (UI projection) and SqliteSessionStore (recall
8
8
  * path), so the same overlay drives both surfaces. Append-only; every
9
9
  * mutation lives as a row in `actions`.
10
+ *
11
+ * Tenancy (program spec §4.6 hardening 1, M2 plan Wave B6): `actions` has no
12
+ * tenant_id column (see `@core/actions/actions-log.ts`'s module doc comment
13
+ * for the full mechanism/rationale). `loadActionOverlay`/`loadActionOverlayPg`
14
+ * reuse the same subject-resolvability predicate so an overlay entry keyed
15
+ * by an entity canonical or session-derived id that collides across tenants
16
+ * (the fixture's adversarial shared-entity case) never applies to the wrong
17
+ * tenant's projection — e.g. team B retiring their own "shared-entity" must
18
+ * never mark team A's distinct "shared-entity" row retired too.
10
19
  */
11
20
  import type Database from "better-sqlite3";
12
21
  import type { Pool } from "pg";
@@ -49,8 +58,8 @@ export declare const EMPTY_OVERLAY: ActionOverlay;
49
58
  * loaders so the projection logic is shared and not duplicated per backend.
50
59
  */
51
60
  export declare function reduceActionRows(rows: ReadonlyArray<ActionRow>): ActionOverlay;
52
- export declare function loadActionOverlay(db: Database.Database): ActionOverlay;
53
- export declare function loadActionOverlayPg(pool: Pool): Promise<ActionOverlay>;
61
+ export declare function loadActionOverlay(db: Database.Database, tenantId: string): ActionOverlay;
62
+ export declare function loadActionOverlayPg(pool: Pool, tenantId: string): Promise<ActionOverlay>;
54
63
  /**
55
64
  * Stable id for an open question: `${sessionId}::${hash12(text)}`. Both
56
65
  * sides (overlay creators and consumers) compute it the same way so action
@@ -7,7 +7,17 @@
7
7
  * Shared by buildDataset (UI projection) and SqliteSessionStore (recall
8
8
  * path), so the same overlay drives both surfaces. Append-only; every
9
9
  * mutation lives as a row in `actions`.
10
+ *
11
+ * Tenancy (program spec §4.6 hardening 1, M2 plan Wave B6): `actions` has no
12
+ * tenant_id column (see `@core/actions/actions-log.ts`'s module doc comment
13
+ * for the full mechanism/rationale). `loadActionOverlay`/`loadActionOverlayPg`
14
+ * reuse the same subject-resolvability predicate so an overlay entry keyed
15
+ * by an entity canonical or session-derived id that collides across tenants
16
+ * (the fixture's adversarial shared-entity case) never applies to the wrong
17
+ * tenant's projection — e.g. team B retiring their own "shared-entity" must
18
+ * never mark team A's distinct "shared-entity" row retired too.
10
19
  */
20
+ import { subjectTenantPredicate, subjectTenantPredicatePg } from "./actions-log.js";
11
21
  export const EMPTY_OVERLAY = {
12
22
  dismissedAlerts: new Set(),
13
23
  snoozedAlerts: new Map(),
@@ -110,29 +120,31 @@ export function reduceActionRows(rows) {
110
120
  }
111
121
  return overlay;
112
122
  }
113
- export function loadActionOverlay(db) {
123
+ export function loadActionOverlay(db, tenantId) {
114
124
  const hasActions = db
115
125
  .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='actions'")
116
126
  .get();
117
127
  if (!hasActions)
118
128
  return EMPTY_OVERLAY;
129
+ const pred = subjectTenantPredicate(tenantId);
119
130
  // ORDER BY id keeps reducer deterministic: later writes overwrite earlier
120
131
  // ones, so the latest non-reverted rename per subject wins.
121
132
  const rows = db
122
133
  .prepare(`
123
134
  SELECT kind, subject_type, subject_id, payload
124
135
  FROM actions
125
- WHERE reverted_by IS NULL
136
+ WHERE reverted_by IS NULL AND ${pred.sql}
126
137
  ORDER BY id
127
138
  `)
128
- .all();
139
+ .all(...pred.params);
129
140
  return reduceActionRows(rows);
130
141
  }
131
- export async function loadActionOverlayPg(pool) {
142
+ export async function loadActionOverlayPg(pool, tenantId) {
143
+ const pred = subjectTenantPredicatePg(tenantId, 1);
132
144
  const result = await pool.query(`SELECT kind, subject_type, subject_id, payload
133
145
  FROM actions
134
- WHERE reverted_by IS NULL
135
- ORDER BY id`);
146
+ WHERE reverted_by IS NULL AND ${pred.sql}
147
+ ORDER BY id`, pred.params);
136
148
  return reduceActionRows(result.rows);
137
149
  }
138
150
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/core/actions/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../../src/core/actions/overlay.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { CursorAdapter } from "./cursor.js";
13
13
  import { HermesAdapter } from "./hermes.js";
14
14
  import { HermesAgentAdapter } from "./hermes-agent.js";
15
15
  import { JsonlGenericAdapter } from "./jsonl-generic.js";
16
+ import { MuseAdapter } from "./muse.js";
16
17
  import { OpenCodeAdapter } from "./opencode.js";
17
18
  import { PiAdapter } from "./pi.js";
18
19
  import { WindsurfAdapter } from "./windsurf.js";
@@ -38,10 +39,17 @@ export function adapterFromSource(source) {
38
39
  return source.pathOrUrl
39
40
  ? new HermesAdapter({ sessionsPath: source.pathOrUrl })
40
41
  : new HermesAdapter();
41
- case "hermes-agent":
42
+ case "hermes-agent": {
43
+ const exclude = source.parseConfig["excludeSources"];
44
+ return new HermesAgentAdapter({
45
+ ...(source.pathOrUrl ? { dbPath: source.pathOrUrl } : {}),
46
+ ...(Array.isArray(exclude) ? { excludeSources: exclude.filter((x) => typeof x === "string") } : {}),
47
+ });
48
+ }
49
+ case "muse":
42
50
  return source.pathOrUrl
43
- ? new HermesAgentAdapter({ dbPath: source.pathOrUrl })
44
- : new HermesAgentAdapter();
51
+ ? new MuseAdapter({ sessionsPath: source.pathOrUrl })
52
+ : new MuseAdapter();
45
53
  case "opencode":
46
54
  return source.pathOrUrl
47
55
  ? new OpenCodeAdapter({ dbPath: source.pathOrUrl })
@@ -1 +1 @@
1
- {"version":3,"file":"from-source.js","sourceRoot":"","sources":["../../../src/core/adapters/from-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"from-source.js","sourceRoot":"","sources":["../../../src/core/adapters/from-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { WikiWriter } from "../../ports/wiki-writer.js";
2
+ export declare const SENTINEL_FILE = "AGENTS.md";
3
+ /**
4
+ * Adoption requires this marker inside the sentinel body, not just the
5
+ * sentinel's filename. AGENTS.md is now a widely used human/agent
6
+ * convention file on its own, so a directory holding someone else's
7
+ * AGENTS.md alongside their own notes must be refused, not silently
8
+ * adopted and later garbage-collected by reconcile.
9
+ */
10
+ export declare const SENTINEL_MARKER = "<!-- nlm-generated-wiki -->";
11
+ export declare class WikiOwnershipError extends Error {
12
+ constructor(message: string);
13
+ }
14
+ export declare class FsWikiWriter implements WikiWriter {
15
+ private readonly root;
16
+ private ensured;
17
+ constructor(root: string);
18
+ private resolveWithin;
19
+ /**
20
+ * Runs the expensive adoption scan once per instance, then writes the
21
+ * sentinel so the root is provably owned before any content write. The
22
+ * scan itself is not repeated on later calls — that cost is paid once per
23
+ * writer, matching the daemon's one-writer-per-run lifecycle.
24
+ */
25
+ private ensureOwned;
26
+ /**
27
+ * Adoption-time check only: a sentinel FILE named AGENTS.md is not enough
28
+ * evidence of ownership on its own, since that filename is now a common
29
+ * human/agent convention file a directory might carry for unrelated
30
+ * reasons. Its BODY must also carry SENTINEL_MARKER.
31
+ */
32
+ private hasMarkedSentinel;
33
+ /**
34
+ * Cheap re-check for every destructive call after the one-time adoption
35
+ * scan. If a human deletes the sentinel mid-run, this is what stops the
36
+ * rest of that run's writes and removes rather than trusting the stale
37
+ * `ensured` latch.
38
+ */
39
+ private verifySentinelPresent;
40
+ write(relPath: string, content: string): Promise<void>;
41
+ read(relPath: string): Promise<string | null>;
42
+ remove(relPath: string): Promise<void>;
43
+ list(): Promise<ReadonlyArray<string>>;
44
+ }
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Filesystem WikiWriter.
3
+ *
4
+ * The ownership check is the load-bearing part. NLM regenerates this tree and
5
+ * deletes files that no longer qualify, so pointing it at a directory a human
6
+ * writes into would destroy their work. A root is writable only when it is
7
+ * absent, empty, or already carries this writer's sentinel. Adoption of a
8
+ * directory holding any other entry is refused, and that includes
9
+ * subdirectories: a nested folder is evidence of a human layout, not of a
10
+ * prior run, because this writer never creates one.
11
+ */
12
+ import { mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync, existsSync } from "node:fs";
13
+ import { join, resolve, relative, isAbsolute } from "node:path";
14
+ export const SENTINEL_FILE = "AGENTS.md";
15
+ /**
16
+ * Adoption requires this marker inside the sentinel body, not just the
17
+ * sentinel's filename. AGENTS.md is now a widely used human/agent
18
+ * convention file on its own, so a directory holding someone else's
19
+ * AGENTS.md alongside their own notes must be refused, not silently
20
+ * adopted and later garbage-collected by reconcile.
21
+ */
22
+ export const SENTINEL_MARKER = "<!-- nlm-generated-wiki -->";
23
+ export class WikiOwnershipError extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = "WikiOwnershipError";
27
+ }
28
+ }
29
+ export class FsWikiWriter {
30
+ root;
31
+ ensured = false;
32
+ constructor(root) {
33
+ this.root = resolve(root);
34
+ }
35
+ resolveWithin(relPath) {
36
+ const full = resolve(this.root, relPath);
37
+ const rel = relative(this.root, full);
38
+ if (rel === "" || rel.startsWith("..") || isAbsolute(rel)) {
39
+ throw new WikiOwnershipError(`path escapes the wiki root: ${relPath}`);
40
+ }
41
+ return full;
42
+ }
43
+ /**
44
+ * Runs the expensive adoption scan once per instance, then writes the
45
+ * sentinel so the root is provably owned before any content write. The
46
+ * scan itself is not repeated on later calls — that cost is paid once per
47
+ * writer, matching the daemon's one-writer-per-run lifecycle.
48
+ */
49
+ ensureOwned() {
50
+ if (this.ensured) {
51
+ return;
52
+ }
53
+ if (!existsSync(this.root)) {
54
+ mkdirSync(this.root, { recursive: true });
55
+ }
56
+ else {
57
+ const entries = readdirSync(this.root);
58
+ if (entries.length > 0 && !this.hasMarkedSentinel(entries)) {
59
+ throw new WikiOwnershipError(`refusing to write into ${this.root}: it holds ${entries.length} entr` +
60
+ `${entries.length === 1 ? "y" : "ies"} and no ${SENTINEL_FILE} carrying the ` +
61
+ `NLM marker, so it is not a directory NLM owns`);
62
+ }
63
+ }
64
+ const sentinel = join(this.root, SENTINEL_FILE);
65
+ if (!existsSync(sentinel)) {
66
+ writeFileSync(sentinel, SENTINEL_BODY, "utf8");
67
+ }
68
+ this.ensured = true;
69
+ }
70
+ /**
71
+ * Adoption-time check only: a sentinel FILE named AGENTS.md is not enough
72
+ * evidence of ownership on its own, since that filename is now a common
73
+ * human/agent convention file a directory might carry for unrelated
74
+ * reasons. Its BODY must also carry SENTINEL_MARKER.
75
+ */
76
+ hasMarkedSentinel(entries) {
77
+ if (!entries.includes(SENTINEL_FILE))
78
+ return false;
79
+ const body = readFileSync(join(this.root, SENTINEL_FILE), "utf8");
80
+ return body.includes(SENTINEL_MARKER);
81
+ }
82
+ /**
83
+ * Cheap re-check for every destructive call after the one-time adoption
84
+ * scan. If a human deletes the sentinel mid-run, this is what stops the
85
+ * rest of that run's writes and removes rather than trusting the stale
86
+ * `ensured` latch.
87
+ */
88
+ verifySentinelPresent() {
89
+ if (!existsSync(join(this.root, SENTINEL_FILE))) {
90
+ throw new WikiOwnershipError(`refusing to modify ${this.root}: its ${SENTINEL_FILE} sentinel is gone, ` +
91
+ `so it may no longer be owned by NLM`);
92
+ }
93
+ }
94
+ async write(relPath, content) {
95
+ this.ensureOwned();
96
+ this.verifySentinelPresent();
97
+ const full = this.resolveWithin(relPath);
98
+ writeFileSync(full, content, "utf8");
99
+ }
100
+ async read(relPath) {
101
+ const full = this.resolveWithin(relPath);
102
+ if (!existsSync(full))
103
+ return null;
104
+ return readFileSync(full, "utf8");
105
+ }
106
+ async remove(relPath) {
107
+ this.ensureOwned();
108
+ this.verifySentinelPresent();
109
+ rmSync(this.resolveWithin(relPath), { force: true });
110
+ }
111
+ async list() {
112
+ if (!existsSync(this.root))
113
+ return [];
114
+ return readdirSync(this.root, { withFileTypes: true })
115
+ .filter((entry) => entry.isFile() && entry.name.endsWith(".md") && entry.name !== SENTINEL_FILE)
116
+ .map((entry) => entry.name);
117
+ }
118
+ }
119
+ const SENTINEL_BODY = `${SENTINEL_MARKER}
120
+ # Generated by NLM
121
+
122
+ Every file in this directory is projected from NLM's session corpus and is
123
+ rewritten on each projection run. Edits made here are overwritten without
124
+ warning.
125
+
126
+ To keep something, promote it. Promotion copies the content into a page you
127
+ own, outside this directory, which NLM never touches.
128
+
129
+ This file also marks the directory as NLM-owned. Deleting it makes NLM refuse
130
+ to write here until the directory is empty again.
131
+ `;
132
+ //# sourceMappingURL=fs-wiki-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-wiki-writer.js","sourceRoot":"","sources":["../../../src/core/adapters/fs-wiki-writer.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,14 @@
17
17
  * This adapter is distinct from HermesAdapter (src/core/adapters/hermes.ts),
18
18
  * which reads Whtnxt Hermes WebUI session JSON files from ~/.hermes/sessions/.
19
19
  */
20
- import type { DetectionResult, DiscoverOptions, SessionChunk, TranscriptAdapter } from "../../ports/transcript-adapter.js";
20
+ import type { DetectionResult, DiscoverOptions, SessionChunk, SourceStat, TranscriptAdapter } from "../../ports/transcript-adapter.js";
21
21
  export interface HermesAgentAdapterOptions {
22
22
  readonly dbPath?: string;
23
+ /**
24
+ * Session `source` values to skip. Machine-driven runs (cron jobs, agent
25
+ * protocol loops) are mostly repetitive and flood recall. Default: cron.
26
+ */
27
+ readonly excludeSources?: ReadonlyArray<string>;
23
28
  }
24
29
  export declare function defaultDbPath(): string;
25
30
  export declare class HermesAgentAdapter implements TranscriptAdapter {
@@ -27,8 +32,16 @@ export declare class HermesAgentAdapter implements TranscriptAdapter {
27
32
  readonly runtimeVersion = "hermes-agent/1.0";
28
33
  readonly transcriptKind = "hermes-agent-sqlite";
29
34
  private readonly dbPath;
35
+ private readonly excludeSources;
30
36
  constructor(opts?: HermesAgentAdapterOptions);
31
37
  detect(): DetectionResult;
32
38
  discover(options?: DiscoverOptions): Promise<ReadonlyArray<string>>;
33
- parseSession(sessionId: string): Promise<SessionChunk | null>;
39
+ /**
40
+ * `<dbPath>::<sessionId>`, the key discover() emits and chunk.sourcePath
41
+ * carries, so scanOnce's adapter_state lookup matches what it recorded.
42
+ */
43
+ private sourceKey;
44
+ private sessionIdOf;
45
+ stat(source: string): SourceStat | null;
46
+ parseSession(source: string): Promise<SessionChunk | null>;
34
47
  }
@@ -23,6 +23,7 @@ import { join } from "node:path";
23
23
  import Database from "better-sqlite3";
24
24
  import { durationMinutes, normalizeTimestamp, safeSessionId } from "./common.js";
25
25
  const TOOL_RESULT_PREVIEW_CHARS = 240;
26
+ const DEFAULT_EXCLUDED_SOURCES = ["cron"];
26
27
  export function defaultDbPath() {
27
28
  if (process.env["NLM_HERMES_AGENT_DB_PATH"])
28
29
  return process.env["NLM_HERMES_AGENT_DB_PATH"];
@@ -100,8 +101,10 @@ export class HermesAgentAdapter {
100
101
  runtimeVersion = "hermes-agent/1.0";
101
102
  transcriptKind = "hermes-agent-sqlite";
102
103
  dbPath;
104
+ excludeSources;
103
105
  constructor(opts = {}) {
104
106
  this.dbPath = opts.dbPath ?? defaultDbPath();
107
+ this.excludeSources = opts.excludeSources ?? DEFAULT_EXCLUDED_SOURCES;
105
108
  }
106
109
  detect() {
107
110
  if (existsSync(this.dbPath)) {
@@ -120,19 +123,26 @@ export class HermesAgentAdapter {
120
123
  let db;
121
124
  try {
122
125
  db = new Database(this.dbPath, { readonly: true });
123
- let rows;
126
+ // Older state.db schemas have no `source` column; nothing to filter there.
127
+ const hasSource = db
128
+ .prepare("SELECT name FROM pragma_table_info('sessions')")
129
+ .all()
130
+ .some((c) => c.name === "source");
131
+ const clauses = [];
132
+ const params = [];
124
133
  if (options?.since) {
125
- const sinceTs = options.since.getTime() / 1000;
126
- rows = db
127
- .prepare(`SELECT id FROM sessions WHERE started_at >= ? ORDER BY started_at ASC`)
128
- .all(sinceTs);
134
+ clauses.push("started_at >= ?");
135
+ params.push(options.since.getTime() / 1000);
129
136
  }
130
- else {
131
- rows = db
132
- .prepare(`SELECT id FROM sessions ORDER BY started_at ASC`)
133
- .all();
137
+ if (hasSource && this.excludeSources.length > 0) {
138
+ clauses.push(`COALESCE(source, '') NOT IN (${this.excludeSources.map(() => "?").join(", ")})`);
139
+ params.push(...this.excludeSources);
134
140
  }
135
- return rows.map((r) => r.id);
141
+ const where = clauses.length > 0 ? `WHERE ${clauses.join(" AND ")}` : "";
142
+ const rows = db
143
+ .prepare(`SELECT id FROM sessions ${where} ORDER BY started_at ASC`)
144
+ .all(...params);
145
+ return rows.map((r) => this.sourceKey(r.id));
136
146
  }
137
147
  catch {
138
148
  return [];
@@ -141,7 +151,43 @@ export class HermesAgentAdapter {
141
151
  db?.close();
142
152
  }
143
153
  }
144
- async parseSession(sessionId) {
154
+ /**
155
+ * `<dbPath>::<sessionId>`, the key discover() emits and chunk.sourcePath
156
+ * carries, so scanOnce's adapter_state lookup matches what it recorded.
157
+ */
158
+ sourceKey(sessionId) {
159
+ return `${this.dbPath}::${sessionId}`;
160
+ }
161
+ sessionIdOf(source) {
162
+ const sep = source.lastIndexOf("::");
163
+ return sep === -1 ? source : source.slice(sep + 2);
164
+ }
165
+ stat(source) {
166
+ if (!existsSync(this.dbPath))
167
+ return null;
168
+ let db;
169
+ try {
170
+ db = new Database(this.dbPath, { readonly: true });
171
+ const row = db
172
+ .prepare(`SELECT MAX(m.timestamp) AS last, COUNT(m.id) AS n, s.started_at AS started
173
+ FROM sessions s LEFT JOIN messages m ON m.session_id = s.id
174
+ WHERE s.id = ? GROUP BY s.id`)
175
+ .get(this.sessionIdOf(source));
176
+ if (!row)
177
+ return null;
178
+ // Timestamps are Unix seconds. The message count is the change marker:
179
+ // it only moves when the session gains messages.
180
+ return { mtimeMs: (row.last ?? row.started ?? 0) * 1000, size: row.n };
181
+ }
182
+ catch {
183
+ return null;
184
+ }
185
+ finally {
186
+ db?.close();
187
+ }
188
+ }
189
+ async parseSession(source) {
190
+ const sessionId = this.sessionIdOf(source);
145
191
  if (!existsSync(this.dbPath))
146
192
  return null;
147
193
  let db;
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-agent.js","sourceRoot":"","sources":["../../../src/core/adapters/hermes-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hermes-agent.js","sourceRoot":"","sources":["../../../src/core/adapters/hermes-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { WikiWriter } from "../../ports/wiki-writer.js";
2
+ export declare class MemoryWikiWriter implements WikiWriter {
3
+ readonly files: Map<string, string>;
4
+ write(relPath: string, content: string): Promise<void>;
5
+ read(relPath: string): Promise<string | null>;
6
+ remove(relPath: string): Promise<void>;
7
+ list(): Promise<ReadonlyArray<string>>;
8
+ }
@@ -0,0 +1,16 @@
1
+ export class MemoryWikiWriter {
2
+ files = new Map();
3
+ async write(relPath, content) {
4
+ this.files.set(relPath, content);
5
+ }
6
+ async read(relPath) {
7
+ return this.files.get(relPath) ?? null;
8
+ }
9
+ async remove(relPath) {
10
+ this.files.delete(relPath);
11
+ }
12
+ async list() {
13
+ return [...this.files.keys()];
14
+ }
15
+ }
16
+ //# sourceMappingURL=memory-wiki-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-wiki-writer.js","sourceRoot":"","sources":["../../../src/core/adapters/memory-wiki-writer.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,gBAAgB;IAClB,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE3C,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,OAAe;QAC1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Muse adapter.
3
+ *
4
+ * Reads ${XDG_DATA_HOME:-~/.local/share}/muse/sessions/YYYY/MM/DD/<session-id>/session.jsonl
5
+ * files. Each line is an event-sourced record (`record_type: "event"`,
6
+ * microsecond `recorded_at`); conversation turns come from a small set of
7
+ * payloads and everything else is recall noise:
8
+ *
9
+ * Conversation extraction:
10
+ * - `runtime.user_intent.accepted` (`surface: "main"`, `refill_blocks[].text`)
11
+ * -> [user] turn. The `run.started` event's `prompt` duplicates this text
12
+ * and is skipped. Non-main surfaces are steering, not conversation.
13
+ * - `runtime.session` / `assistant_message_committed.text` -> [assistant] turn.
14
+ *
15
+ * Tool surface: `assistant_tool_calls_committed.tool_calls[].name` ->
16
+ * `[tool_use: <name>]`; `tool_result_batch_committed.results[].text` ->
17
+ * `[tool_result: <240-char preview>]`.
18
+ *
19
+ * Dropped: hooks, reasoning, reminders, approvals, task lifecycle,
20
+ * resource samples, `model_user_messages` (a skill-body bundle), and the
21
+ * `session.*.observed` bookkeeping events.
22
+ *
23
+ * Session id is the parent directory name; project dir comes from the
24
+ * `runtime.session.metadata` record's `workspace_root`.
25
+ *
26
+ * Format reference: verified against a live 11k-line session on 2026-09-27.
27
+ */
28
+ import type { DetectionResult, DiscoverOptions, SessionChunk, TranscriptAdapter } from "../../ports/transcript-adapter.js";
29
+ export interface MuseAdapterOptions {
30
+ readonly sessionsPath?: string;
31
+ readonly idleMinutes?: number;
32
+ }
33
+ export declare function defaultSessionsPath(): string;
34
+ /**
35
+ * Subagent runs live at `<parent>/subagent/<id>/session.jsonl`. They take the
36
+ * `<parent>/agent-<id>` shape claude-code uses, so deriveSubagentMeta links
37
+ * them to their parent instead of ingesting them as standalone sessions.
38
+ */
39
+ export declare function museRuntimeSessionId(path: string): string;
40
+ export declare class MuseAdapter implements TranscriptAdapter {
41
+ readonly name = "muse";
42
+ readonly runtimeVersion = "muse/1.0";
43
+ readonly transcriptKind = "muse-jsonl";
44
+ private readonly sessionsPath;
45
+ readonly idleMinutes: number;
46
+ constructor(opts?: MuseAdapterOptions);
47
+ detect(): DetectionResult;
48
+ discover(options?: DiscoverOptions): Promise<ReadonlyArray<string>>;
49
+ parseSession(path: string): Promise<SessionChunk | null>;
50
+ private walk;
51
+ }