nlm-memory 0.20.1 → 0.21.12

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 (475) hide show
  1. package/README.md +69 -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 +69 -4
  5. package/dist/cli/digest.js.map +1 -1
  6. package/dist/cli/nlm.d.ts +14 -0
  7. package/dist/cli/nlm.js +556 -71
  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-backfill.d.ts +34 -0
  13. package/dist/cli/scope-backfill.js +237 -0
  14. package/dist/cli/scope-backfill.js.map +1 -0
  15. package/dist/cli/scope-coverage.d.ts +44 -0
  16. package/dist/cli/scope-coverage.js +208 -0
  17. package/dist/cli/scope-coverage.js.map +1 -0
  18. package/dist/cli/supersede.js +8 -7
  19. package/dist/cli/supersede.js.map +1 -1
  20. package/dist/core/actions/actions-log.d.ts +65 -8
  21. package/dist/core/actions/actions-log.js +134 -17
  22. package/dist/core/actions/actions-log.js.map +1 -1
  23. package/dist/core/actions/overlay.d.ts +11 -2
  24. package/dist/core/actions/overlay.js +18 -6
  25. package/dist/core/actions/overlay.js.map +1 -1
  26. package/dist/core/adapters/claude-code.d.ts +14 -0
  27. package/dist/core/adapters/claude-code.js +30 -0
  28. package/dist/core/adapters/claude-code.js.map +1 -1
  29. package/dist/core/adapters/from-source.js +11 -3
  30. package/dist/core/adapters/from-source.js.map +1 -1
  31. package/dist/core/adapters/fs-wiki-writer.d.ts +44 -0
  32. package/dist/core/adapters/fs-wiki-writer.js +132 -0
  33. package/dist/core/adapters/fs-wiki-writer.js.map +1 -0
  34. package/dist/core/adapters/hermes-agent.d.ts +15 -2
  35. package/dist/core/adapters/hermes-agent.js +57 -11
  36. package/dist/core/adapters/hermes-agent.js.map +1 -1
  37. package/dist/core/adapters/memory-wiki-writer.d.ts +8 -0
  38. package/dist/core/adapters/memory-wiki-writer.js +16 -0
  39. package/dist/core/adapters/memory-wiki-writer.js.map +1 -0
  40. package/dist/core/adapters/muse.d.ts +51 -0
  41. package/dist/core/adapters/muse.js +271 -0
  42. package/dist/core/adapters/muse.js.map +1 -0
  43. package/dist/core/adapters/opencode.d.ts +11 -4
  44. package/dist/core/adapters/opencode.js +41 -7
  45. package/dist/core/adapters/opencode.js.map +1 -1
  46. package/dist/core/alerts/alert-state.d.ts +17 -0
  47. package/dist/core/alerts/alert-state.js +45 -0
  48. package/dist/core/alerts/alert-state.js.map +1 -0
  49. package/dist/core/alerts/check-and-alert.d.ts +28 -0
  50. package/dist/core/alerts/check-and-alert.js +53 -0
  51. package/dist/core/alerts/check-and-alert.js.map +1 -0
  52. package/dist/core/alerts/drift-transition.d.ts +27 -0
  53. package/dist/core/alerts/drift-transition.js +56 -0
  54. package/dist/core/alerts/drift-transition.js.map +1 -0
  55. package/dist/core/alerts/embedder-transition.d.ts +23 -0
  56. package/dist/core/alerts/embedder-transition.js +40 -0
  57. package/dist/core/alerts/embedder-transition.js.map +1 -0
  58. package/dist/core/alerts/fire-alert.d.ts +24 -0
  59. package/dist/core/alerts/fire-alert.js +72 -0
  60. package/dist/core/alerts/fire-alert.js.map +1 -0
  61. package/dist/core/alerts/job-alert.d.ts +12 -0
  62. package/dist/core/alerts/job-alert.js +37 -0
  63. package/dist/core/alerts/job-alert.js.map +1 -0
  64. package/dist/core/alerts/types.d.ts +104 -0
  65. package/dist/core/alerts/types.js +11 -0
  66. package/dist/core/alerts/types.js.map +1 -0
  67. package/dist/core/alerts/wiki-alert.d.ts +15 -0
  68. package/dist/core/alerts/wiki-alert.js +31 -0
  69. package/dist/core/alerts/wiki-alert.js.map +1 -0
  70. package/dist/core/classifier/prompt.d.ts +13 -0
  71. package/dist/core/classifier/prompt.js +52 -2
  72. package/dist/core/classifier/prompt.js.map +1 -1
  73. package/dist/core/dataset/build-dataset.d.ts +16 -1
  74. package/dist/core/dataset/build-dataset.js +46 -13
  75. package/dist/core/dataset/build-dataset.js.map +1 -1
  76. package/dist/core/digest/compose.d.ts +11 -3
  77. package/dist/core/digest/compose.js +70 -17
  78. package/dist/core/digest/compose.js.map +1 -1
  79. package/dist/core/digest/hook-injection.d.ts +43 -0
  80. package/dist/core/digest/hook-injection.js +87 -0
  81. package/dist/core/digest/hook-injection.js.map +1 -0
  82. package/dist/core/digest/hook-version-parity.d.ts +31 -0
  83. package/dist/core/digest/hook-version-parity.js +56 -0
  84. package/dist/core/digest/hook-version-parity.js.map +1 -0
  85. package/dist/core/embedding/pg-embed-backfill.js +1 -1
  86. package/dist/core/embedding/pg-embed-backfill.js.map +1 -1
  87. package/dist/core/exemplars/capture-from-session.d.ts +2 -1
  88. package/dist/core/exemplars/capture-from-session.js +4 -4
  89. package/dist/core/exemplars/capture-from-session.js.map +1 -1
  90. package/dist/core/exemplars/embed-backfill.d.ts +9 -0
  91. package/dist/core/exemplars/embed-backfill.js +9 -1
  92. package/dist/core/exemplars/embed-backfill.js.map +1 -1
  93. package/dist/core/exemplars/extract-exemplar.d.ts +2 -0
  94. package/dist/core/exemplars/extract-exemplar.js +7 -1
  95. package/dist/core/exemplars/extract-exemplar.js.map +1 -1
  96. package/dist/core/exemplars/ingest-exemplar.d.ts +1 -0
  97. package/dist/core/exemplars/ingest-exemplar.js +1 -0
  98. package/dist/core/exemplars/ingest-exemplar.js.map +1 -1
  99. package/dist/core/exemplars/recall-code.d.ts +1 -1
  100. package/dist/core/exemplars/recall-code.js +2 -2
  101. package/dist/core/exemplars/recall-code.js.map +1 -1
  102. package/dist/core/facts/backfill-facts.d.ts +1 -1
  103. package/dist/core/facts/backfill-facts.js +4 -4
  104. package/dist/core/facts/backfill-facts.js.map +1 -1
  105. package/dist/core/facts/embed-backfill.d.ts +54 -0
  106. package/dist/core/facts/embed-backfill.js +109 -0
  107. package/dist/core/facts/embed-backfill.js.map +1 -0
  108. package/dist/core/facts/reconcile-facts.d.ts +42 -0
  109. package/dist/core/facts/reconcile-facts.js +133 -0
  110. package/dist/core/facts/reconcile-facts.js.map +1 -0
  111. package/dist/core/health/embed-failure-state.d.ts +4 -0
  112. package/dist/core/health/embed-failure-state.js +12 -0
  113. package/dist/core/health/embed-failure-state.js.map +1 -0
  114. package/dist/core/health/warmup-retry.d.ts +27 -0
  115. package/dist/core/health/warmup-retry.js +53 -0
  116. package/dist/core/health/warmup-retry.js.map +1 -0
  117. package/dist/core/health/warmup-state.d.ts +15 -0
  118. package/dist/core/health/warmup-state.js +15 -1
  119. package/dist/core/health/warmup-state.js.map +1 -1
  120. package/dist/core/hook/cite-memo.d.ts +11 -7
  121. package/dist/core/hook/cite-memo.js +25 -17
  122. package/dist/core/hook/cite-memo.js.map +1 -1
  123. package/dist/core/hook/claude-settings.d.ts +1 -1
  124. package/dist/core/hook/claude-settings.js +0 -1
  125. package/dist/core/hook/claude-settings.js.map +1 -1
  126. package/dist/core/hook/hook-log.d.ts +13 -2
  127. package/dist/core/hook/hook-log.js +16 -8
  128. package/dist/core/hook/hook-log.js.map +1 -1
  129. package/dist/core/hook/memo.d.ts +10 -6
  130. package/dist/core/hook/memo.js +25 -17
  131. package/dist/core/hook/memo.js.map +1 -1
  132. package/dist/core/hook/pointer-block.d.ts +8 -1
  133. package/dist/core/hook/pointer-block.js +17 -4
  134. package/dist/core/hook/pointer-block.js.map +1 -1
  135. package/dist/core/hook/resolve-conversation-by-query.d.ts +6 -5
  136. package/dist/core/hook/resolve-conversation-by-query.js +24 -12
  137. package/dist/core/hook/resolve-conversation-by-query.js.map +1 -1
  138. package/dist/core/ingest/backfill-derivables.d.ts +92 -0
  139. package/dist/core/ingest/backfill-derivables.js +175 -0
  140. package/dist/core/ingest/backfill-derivables.js.map +1 -0
  141. package/dist/core/ingest/ingest-session.d.ts +1 -1
  142. package/dist/core/ingest/ingest-session.js +23 -3
  143. package/dist/core/ingest/ingest-session.js.map +1 -1
  144. package/dist/core/ingest/reclassify-oversized.d.ts +1 -1
  145. package/dist/core/ingest/reclassify-oversized.js +8 -2
  146. package/dist/core/ingest/reclassify-oversized.js.map +1 -1
  147. package/dist/core/ingest/reprocess.d.ts +1 -1
  148. package/dist/core/ingest/reprocess.js +7 -2
  149. package/dist/core/ingest/reprocess.js.map +1 -1
  150. package/dist/core/ingest/transcript-derivables.d.ts +27 -0
  151. package/dist/core/ingest/transcript-derivables.js +138 -0
  152. package/dist/core/ingest/transcript-derivables.js.map +1 -0
  153. package/dist/core/jobs/job-supervisor.d.ts +168 -0
  154. package/dist/core/jobs/job-supervisor.js +335 -0
  155. package/dist/core/jobs/job-supervisor.js.map +1 -0
  156. package/dist/core/learner/model.d.ts +63 -0
  157. package/dist/core/learner/model.js +30 -0
  158. package/dist/core/learner/model.js.map +1 -0
  159. package/dist/core/learner/service.d.ts +42 -0
  160. package/dist/core/learner/service.js +74 -0
  161. package/dist/core/learner/service.js.map +1 -0
  162. package/dist/core/learner/summary.d.ts +28 -0
  163. package/dist/core/learner/summary.js +70 -0
  164. package/dist/core/learner/summary.js.map +1 -0
  165. package/dist/core/learner/validate.d.ts +18 -0
  166. package/dist/core/learner/validate.js +95 -0
  167. package/dist/core/learner/validate.js.map +1 -0
  168. package/dist/core/metrics/re-derivation.d.ts +31 -2
  169. package/dist/core/metrics/re-derivation.js +36 -4
  170. package/dist/core/metrics/re-derivation.js.map +1 -1
  171. package/dist/core/outcome/coverage.d.ts +33 -0
  172. package/dist/core/outcome/coverage.js +46 -0
  173. package/dist/core/outcome/coverage.js.map +1 -0
  174. package/dist/core/outcome/rollup.d.ts +33 -0
  175. package/dist/core/outcome/rollup.js +113 -0
  176. package/dist/core/outcome/rollup.js.map +1 -0
  177. package/dist/core/providers/provider-registry.d.ts +40 -23
  178. package/dist/core/providers/provider-registry.js +99 -81
  179. package/dist/core/providers/provider-registry.js.map +1 -1
  180. package/dist/core/recall/citation-log.d.ts +10 -5
  181. package/dist/core/recall/citation-log.js +21 -10
  182. package/dist/core/recall/citation-log.js.map +1 -1
  183. package/dist/core/recall/hook-recall-log.d.ts +7 -4
  184. package/dist/core/recall/hook-recall-log.js +14 -8
  185. package/dist/core/recall/hook-recall-log.js.map +1 -1
  186. package/dist/core/recall/miss-log.d.ts +7 -4
  187. package/dist/core/recall/miss-log.js +18 -11
  188. package/dist/core/recall/miss-log.js.map +1 -1
  189. package/dist/core/recall/query-log.d.ts +8 -5
  190. package/dist/core/recall/query-log.js +16 -9
  191. package/dist/core/recall/query-log.js.map +1 -1
  192. package/dist/core/recall/recall-service.d.ts +10 -1
  193. package/dist/core/recall/recall-service.js +31 -12
  194. package/dist/core/recall/recall-service.js.map +1 -1
  195. package/dist/core/recall/recent-log.d.ts +6 -1
  196. package/dist/core/recall/recent-log.js +13 -5
  197. package/dist/core/recall/recent-log.js.map +1 -1
  198. package/dist/core/recall/related-concepts.d.ts +29 -0
  199. package/dist/core/recall/related-concepts.js +67 -0
  200. package/dist/core/recall/related-concepts.js.map +1 -0
  201. package/dist/core/recall/related-exemplars.d.ts +1 -1
  202. package/dist/core/recall/related-exemplars.js +2 -2
  203. package/dist/core/recall/related-exemplars.js.map +1 -1
  204. package/dist/core/recall/related-facts.d.ts +1 -1
  205. package/dist/core/recall/related-facts.js +3 -3
  206. package/dist/core/recall/related-facts.js.map +1 -1
  207. package/dist/core/recall-facts/fact-query-log.d.ts +8 -4
  208. package/dist/core/recall-facts/fact-query-log.js +16 -8
  209. package/dist/core/recall-facts/fact-query-log.js.map +1 -1
  210. package/dist/core/recall-facts/fact-recall-service.d.ts +2 -2
  211. package/dist/core/recall-facts/fact-recall-service.js +13 -12
  212. package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
  213. package/dist/core/scheduler/scan-once.js +15 -12
  214. package/dist/core/scheduler/scan-once.js.map +1 -1
  215. package/dist/core/scheduler/scheduler.d.ts +3 -0
  216. package/dist/core/scheduler/scheduler.js +45 -10
  217. package/dist/core/scheduler/scheduler.js.map +1 -1
  218. package/dist/core/scope/alias-map.d.ts +10 -0
  219. package/dist/core/scope/alias-map.js +41 -0
  220. package/dist/core/scope/alias-map.js.map +1 -0
  221. package/dist/core/scope/derive-scope.d.ts +8 -0
  222. package/dist/core/scope/derive-scope.js +54 -0
  223. package/dist/core/scope/derive-scope.js.map +1 -0
  224. package/dist/core/scope/scope-clause.d.ts +16 -0
  225. package/dist/core/scope/scope-clause.js +21 -0
  226. package/dist/core/scope/scope-clause.js.map +1 -0
  227. package/dist/core/scope/stamp-flag.d.ts +1 -0
  228. package/dist/core/scope/stamp-flag.js +4 -0
  229. package/dist/core/scope/stamp-flag.js.map +1 -0
  230. package/dist/core/signals/code-signal.d.ts +1 -0
  231. package/dist/core/signals/code-signal.js +1 -0
  232. package/dist/core/signals/code-signal.js.map +1 -1
  233. package/dist/core/signals/failure-mode-recall.d.ts +1 -1
  234. package/dist/core/signals/failure-mode-recall.js +2 -2
  235. package/dist/core/signals/failure-mode-recall.js.map +1 -1
  236. package/dist/core/signals/ingest-signal.d.ts +1 -1
  237. package/dist/core/signals/ingest-signal.js +3 -1
  238. package/dist/core/signals/ingest-signal.js.map +1 -1
  239. package/dist/core/signals/stamp-scope.d.ts +18 -0
  240. package/dist/core/signals/stamp-scope.js +28 -0
  241. package/dist/core/signals/stamp-scope.js.map +1 -0
  242. package/dist/core/sources/source-registry.d.ts +49 -28
  243. package/dist/core/sources/source-registry.js +113 -70
  244. package/dist/core/sources/source-registry.js.map +1 -1
  245. package/dist/core/storage/pg-code-exemplar-store.d.ts +19 -10
  246. package/dist/core/storage/pg-code-exemplar-store.js +62 -27
  247. package/dist/core/storage/pg-code-exemplar-store.js.map +1 -1
  248. package/dist/core/storage/pg-entity-store.d.ts +6 -1
  249. package/dist/core/storage/pg-entity-store.js +33 -18
  250. package/dist/core/storage/pg-entity-store.js.map +1 -1
  251. package/dist/core/storage/pg-fact-ingest.d.ts +1 -1
  252. package/dist/core/storage/pg-fact-ingest.js +10 -7
  253. package/dist/core/storage/pg-fact-ingest.js.map +1 -1
  254. package/dist/core/storage/pg-fact-store.d.ts +29 -17
  255. package/dist/core/storage/pg-fact-store.js +99 -46
  256. package/dist/core/storage/pg-fact-store.js.map +1 -1
  257. package/dist/core/storage/pg-learner-store.d.ts +27 -0
  258. package/dist/core/storage/pg-learner-store.js +174 -0
  259. package/dist/core/storage/pg-learner-store.js.map +1 -0
  260. package/dist/core/storage/pg-session-store.d.ts +25 -21
  261. package/dist/core/storage/pg-session-store.js +186 -114
  262. package/dist/core/storage/pg-session-store.js.map +1 -1
  263. package/dist/core/storage/pg-signal-store.d.ts +10 -5
  264. package/dist/core/storage/pg-signal-store.js +26 -13
  265. package/dist/core/storage/pg-signal-store.js.map +1 -1
  266. package/dist/core/storage/pg-storage.d.ts +4 -0
  267. package/dist/core/storage/pg-storage.js +6 -0
  268. package/dist/core/storage/pg-storage.js.map +1 -1
  269. package/dist/core/storage/pg-workstream-store.d.ts +17 -11
  270. package/dist/core/storage/pg-workstream-store.js +47 -29
  271. package/dist/core/storage/pg-workstream-store.js.map +1 -1
  272. package/dist/core/storage/sqlite-code-exemplar-store.d.ts +24 -10
  273. package/dist/core/storage/sqlite-code-exemplar-store.js +86 -40
  274. package/dist/core/storage/sqlite-code-exemplar-store.js.map +1 -1
  275. package/dist/core/storage/sqlite-entity-store.d.ts +8 -1
  276. package/dist/core/storage/sqlite-entity-store.js +46 -27
  277. package/dist/core/storage/sqlite-entity-store.js.map +1 -1
  278. package/dist/core/storage/sqlite-fact-store.d.ts +45 -19
  279. package/dist/core/storage/sqlite-fact-store.js +175 -64
  280. package/dist/core/storage/sqlite-fact-store.js.map +1 -1
  281. package/dist/core/storage/sqlite-learner-store.d.ts +33 -0
  282. package/dist/core/storage/sqlite-learner-store.js +178 -0
  283. package/dist/core/storage/sqlite-learner-store.js.map +1 -0
  284. package/dist/core/storage/sqlite-outcome-store.d.ts +104 -0
  285. package/dist/core/storage/sqlite-outcome-store.js +211 -0
  286. package/dist/core/storage/sqlite-outcome-store.js.map +1 -0
  287. package/dist/core/storage/sqlite-session-store.d.ts +50 -21
  288. package/dist/core/storage/sqlite-session-store.js +233 -149
  289. package/dist/core/storage/sqlite-session-store.js.map +1 -1
  290. package/dist/core/storage/sqlite-signal-store.d.ts +12 -5
  291. package/dist/core/storage/sqlite-signal-store.js +29 -15
  292. package/dist/core/storage/sqlite-signal-store.js.map +1 -1
  293. package/dist/core/storage/sqlite-storage.d.ts +4 -0
  294. package/dist/core/storage/sqlite-storage.js +10 -2
  295. package/dist/core/storage/sqlite-storage.js.map +1 -1
  296. package/dist/core/storage/sqlite-workstream-store.d.ts +17 -11
  297. package/dist/core/storage/sqlite-workstream-store.js +53 -31
  298. package/dist/core/storage/sqlite-workstream-store.js.map +1 -1
  299. package/dist/core/storage/supersedence-log.d.ts +10 -7
  300. package/dist/core/storage/supersedence-log.js +21 -14
  301. package/dist/core/storage/supersedence-log.js.map +1 -1
  302. package/dist/core/telemetry/probe-filter.d.ts +35 -0
  303. package/dist/core/telemetry/probe-filter.js +56 -0
  304. package/dist/core/telemetry/probe-filter.js.map +1 -0
  305. package/dist/core/tenancy/default-team.d.ts +6 -0
  306. package/dist/core/tenancy/default-team.js +7 -0
  307. package/dist/core/tenancy/default-team.js.map +1 -0
  308. package/dist/core/tenancy/hosted-mode.d.ts +9 -0
  309. package/dist/core/tenancy/hosted-mode.js +12 -0
  310. package/dist/core/tenancy/hosted-mode.js.map +1 -0
  311. package/dist/core/tenancy/team-auth.d.ts +16 -0
  312. package/dist/core/tenancy/team-auth.js +22 -0
  313. package/dist/core/tenancy/team-auth.js.map +1 -0
  314. package/dist/core/tenancy/team-token-store.d.ts +45 -0
  315. package/dist/core/tenancy/team-token-store.js +52 -0
  316. package/dist/core/tenancy/team-token-store.js.map +1 -0
  317. package/dist/core/tenancy/tenant-clause.d.ts +37 -0
  318. package/dist/core/tenancy/tenant-clause.js +11 -0
  319. package/dist/core/tenancy/tenant-clause.js.map +1 -0
  320. package/dist/core/tenancy/tenant-state-path.d.ts +28 -0
  321. package/dist/core/tenancy/tenant-state-path.js +49 -0
  322. package/dist/core/tenancy/tenant-state-path.js.map +1 -0
  323. package/dist/core/update-check/check.d.ts +6 -0
  324. package/dist/core/update-check/check.js +35 -0
  325. package/dist/core/update-check/check.js.map +1 -1
  326. package/dist/core/wiki/project.d.ts +17 -0
  327. package/dist/core/wiki/project.js +37 -0
  328. package/dist/core/wiki/project.js.map +1 -0
  329. package/dist/core/wiki/reconcile.d.ts +15 -0
  330. package/dist/core/wiki/reconcile.js +14 -0
  331. package/dist/core/wiki/reconcile.js.map +1 -0
  332. package/dist/core/wiki/render.d.ts +5 -0
  333. package/dist/core/wiki/render.js +84 -0
  334. package/dist/core/wiki/render.js.map +1 -0
  335. package/dist/core/wiki/rollup.d.ts +28 -0
  336. package/dist/core/wiki/rollup.js +91 -0
  337. package/dist/core/wiki/rollup.js.map +1 -0
  338. package/dist/core/wiki/select.d.ts +8 -0
  339. package/dist/core/wiki/select.js +7 -0
  340. package/dist/core/wiki/select.js.map +1 -0
  341. package/dist/core/wiki/slug.d.ts +36 -0
  342. package/dist/core/wiki/slug.js +71 -0
  343. package/dist/core/wiki/slug.js.map +1 -0
  344. package/dist/core/wiki/types.d.ts +37 -0
  345. package/dist/core/wiki/types.js +2 -0
  346. package/dist/core/wiki/types.js.map +1 -0
  347. package/dist/core/work-digest/build-work-digest.d.ts +1 -1
  348. package/dist/core/work-digest/build-work-digest.js +3 -3
  349. package/dist/core/work-digest/build-work-digest.js.map +1 -1
  350. package/dist/core/workstream/bind.d.ts +3 -2
  351. package/dist/core/workstream/bind.js +29 -10
  352. package/dist/core/workstream/bind.js.map +1 -1
  353. package/dist/core/workstream/model.d.ts +1 -0
  354. package/dist/core/workstream/model.js.map +1 -1
  355. package/dist/core/workstream/rollup.d.ts +1 -1
  356. package/dist/core/workstream/rollup.js +6 -6
  357. package/dist/core/workstream/rollup.js.map +1 -1
  358. package/dist/hook/hook-helpers.d.ts +14 -0
  359. package/dist/hook/hook-helpers.js +29 -2
  360. package/dist/hook/hook-helpers.js.map +1 -1
  361. package/dist/hook/pre-compact-hook.js +8 -5
  362. package/dist/hook/pre-compact-hook.js.map +1 -1
  363. package/dist/hook/prompt-recall-hook.d.ts +7 -3
  364. package/dist/hook/prompt-recall-hook.js +35 -20
  365. package/dist/hook/prompt-recall-hook.js.map +1 -1
  366. package/dist/hook/recall-over-http.d.ts +28 -3
  367. package/dist/hook/recall-over-http.js +58 -12
  368. package/dist/hook/recall-over-http.js.map +1 -1
  369. package/dist/hook/session-end-hook.js +7 -5
  370. package/dist/hook/session-end-hook.js.map +1 -1
  371. package/dist/hook/session-start-hook.d.ts +14 -1
  372. package/dist/hook/session-start-hook.js +57 -16
  373. package/dist/hook/session-start-hook.js.map +1 -1
  374. package/dist/hook/stop-hook.js +11 -8
  375. package/dist/hook/stop-hook.js.map +1 -1
  376. package/dist/http/app.d.ts +47 -3
  377. package/dist/http/app.js +379 -132
  378. package/dist/http/app.js.map +1 -1
  379. package/dist/install/claude-code.d.ts +17 -0
  380. package/dist/install/claude-code.js +44 -5
  381. package/dist/install/claude-code.js.map +1 -1
  382. package/dist/install/codex.d.ts +23 -2
  383. package/dist/install/codex.js +111 -14
  384. package/dist/install/codex.js.map +1 -1
  385. package/dist/install/cursor.d.ts +2 -2
  386. package/dist/install/cursor.js +7 -7
  387. package/dist/install/cursor.js.map +1 -1
  388. package/dist/install/hermes.d.ts +8 -0
  389. package/dist/install/hermes.js +28 -5
  390. package/dist/install/hermes.js.map +1 -1
  391. package/dist/install/local-source.d.ts +20 -0
  392. package/dist/install/local-source.js +28 -0
  393. package/dist/install/local-source.js.map +1 -0
  394. package/dist/install/mcp-block.d.ts +77 -0
  395. package/dist/install/mcp-block.js +99 -0
  396. package/dist/install/mcp-block.js.map +1 -0
  397. package/dist/install/pi.d.ts +26 -0
  398. package/dist/install/pi.js +43 -0
  399. package/dist/install/pi.js.map +1 -1
  400. package/dist/install/setup.js +6 -0
  401. package/dist/install/setup.js.map +1 -1
  402. package/dist/install/windsurf.d.ts +2 -2
  403. package/dist/install/windsurf.js +7 -7
  404. package/dist/install/windsurf.js.map +1 -1
  405. package/dist/llm/classifier-box.d.ts +5 -0
  406. package/dist/llm/classifier-box.js +5 -0
  407. package/dist/llm/classifier-box.js.map +1 -1
  408. package/dist/mcp/server.d.ts +94 -15
  409. package/dist/mcp/server.js +402 -79
  410. package/dist/mcp/server.js.map +1 -1
  411. package/dist/ports/clock.d.ts +12 -0
  412. package/dist/ports/clock.js +10 -0
  413. package/dist/ports/clock.js.map +1 -0
  414. package/dist/ports/code-exemplar-store.d.ts +13 -13
  415. package/dist/ports/entity-store.d.ts +5 -1
  416. package/dist/ports/fact-store.d.ts +0 -0
  417. package/dist/ports/fact-store.js +0 -0
  418. package/dist/ports/fact-store.js.map +1 -1
  419. package/dist/ports/learner-store.d.ts +80 -0
  420. package/dist/ports/learner-store.js +19 -0
  421. package/dist/ports/learner-store.js.map +1 -0
  422. package/dist/ports/outcome.d.ts +85 -0
  423. package/dist/ports/outcome.js +11 -0
  424. package/dist/ports/outcome.js.map +1 -0
  425. package/dist/ports/session-store.d.ts +20 -20
  426. package/dist/ports/session-store.js +5 -0
  427. package/dist/ports/session-store.js.map +1 -1
  428. package/dist/ports/signal-store.d.ts +12 -8
  429. package/dist/ports/spawn-child.d.ts +14 -0
  430. package/dist/ports/spawn-child.js +10 -0
  431. package/dist/ports/spawn-child.js.map +1 -0
  432. package/dist/ports/storage.d.ts +6 -0
  433. package/dist/ports/transcript-adapter.d.ts +11 -0
  434. package/dist/ports/wiki-writer.d.ts +19 -0
  435. package/dist/ports/wiki-writer.js +12 -0
  436. package/dist/ports/wiki-writer.js.map +1 -0
  437. package/dist/ports/workstream-store.d.ts +20 -12
  438. package/dist/shared/net.d.ts +3 -0
  439. package/dist/shared/net.js +4 -0
  440. package/dist/shared/net.js.map +1 -0
  441. package/dist/shared/types.d.ts +55 -0
  442. package/dist/shared/types.js +4 -1
  443. package/dist/shared/types.js.map +1 -1
  444. package/dist/shared/version.d.ts +9 -0
  445. package/dist/shared/version.js +11 -0
  446. package/dist/shared/version.js.map +1 -0
  447. package/dist/ui/assets/index-D6F3xAis.js +11 -0
  448. package/dist/ui/index.html +1 -1
  449. package/migrations/029_project_scope.sql +21 -0
  450. package/migrations/032_session_derivables.sql +11 -0
  451. package/migrations/033_actions_kind_check.sql +58 -0
  452. package/migrations/034_tenancy_teams_and_stamps.sql +40 -0
  453. package/migrations/035_tenancy_entity_rekey.sql +75 -0
  454. package/migrations/036_tenant_name_uniqueness.sql +59 -0
  455. package/migrations/037_sessions_covering_index.sql +25 -0
  456. package/migrations/038_sources_muse.sql +33 -0
  457. package/migrations/039_learner_evidence.sql +51 -0
  458. package/migrations/pg/030_project_scope.sql +23 -0
  459. package/migrations/pg/031_widen_session_edges_kind.sql +11 -0
  460. package/migrations/pg/032_session_derivables.sql +17 -0
  461. package/migrations/pg/033_actions_kind_check.sql +17 -0
  462. package/migrations/pg/034_tenancy.sql +77 -0
  463. package/migrations/pg/035_tenant_name_uniqueness.sql +15 -0
  464. package/migrations/pg/036_sources_muse.sql +12 -0
  465. package/migrations/pg/037_learner_evidence.sql +55 -0
  466. package/nlm/index.js +258 -59
  467. package/package.json +10 -5
  468. package/plugin/.codex-plugin/plugin.json +1 -1
  469. package/plugin/scripts/prompt-recall-hook.mjs +256 -58
  470. package/plugin/scripts/session-start-hook.mjs +283 -55
  471. package/plugin/scripts/stop-hook.mjs +199 -38
  472. package/dist/hook/subagent-start-hook.d.ts +0 -28
  473. package/dist/hook/subagent-start-hook.js +0 -81
  474. package/dist/hook/subagent-start-hook.js.map +0 -1
  475. package/dist/ui/assets/index-CMpQkbQy.js +0 -11
@@ -19,6 +19,7 @@ import { SqliteStorage } from "../core/storage/sqlite-storage.js";
19
19
  import { RecallService } from "../core/recall/recall-service.js";
20
20
  import { OllamaClient } from "../llm/ollama-client.js";
21
21
  import { appendSupersedence } from "../core/storage/supersedence-log.js";
22
+ import { DEFAULT_TEAM_ID } from "../core/tenancy/default-team.js";
22
23
  const CANDIDATE_LIMIT = 8;
23
24
  export async function executeSupersede(deps, opts) {
24
25
  const predecessor = await resolveSession(deps, opts.predecessor, "predecessor");
@@ -68,14 +69,14 @@ export async function executeSupersede(deps, opts) {
68
69
  return { kind: "cancelled", reason: "user-declined-confirm" };
69
70
  }
70
71
  try {
71
- await deps.store.markSuperseded(predecessor.session.id, successor.session.id);
72
+ await deps.store.markSuperseded(DEFAULT_TEAM_ID, predecessor.session.id, successor.session.id);
72
73
  }
73
74
  catch (e) {
74
75
  const msg = e instanceof Error ? e.message : String(e);
75
76
  deps.io.warn(`Failed to mark supersedence: ${msg}`);
76
77
  return { kind: "cancelled", reason: msg };
77
78
  }
78
- void appendSupersedence({
79
+ void appendSupersedence(DEFAULT_TEAM_ID, {
79
80
  predecessorId: predecessor.session.id,
80
81
  successorId: successor.session.id,
81
82
  source: "cli",
@@ -91,7 +92,7 @@ export async function executeSupersede(deps, opts) {
91
92
  }
92
93
  async function resolveSession(deps, argValue, role) {
93
94
  if (argValue) {
94
- const session = await deps.store.getById(argValue);
95
+ const session = await deps.store.getById(DEFAULT_TEAM_ID, argValue);
95
96
  if (!session) {
96
97
  deps.io.warn(`Session ${argValue} not found.`);
97
98
  return { kind: "cancelled", reason: "unknown-id" };
@@ -113,7 +114,7 @@ async function resolveSession(deps, argValue, role) {
113
114
  deps.io.warn(`Empty ${role} query — nothing to search.`);
114
115
  return { kind: "cancelled", reason: "empty-query" };
115
116
  }
116
- const result = await deps.recall.search({
117
+ const result = await deps.recall.search(DEFAULT_TEAM_ID, {
117
118
  query,
118
119
  mode: "hybrid",
119
120
  limit: CANDIDATE_LIMIT,
@@ -122,7 +123,7 @@ async function resolveSession(deps, argValue, role) {
122
123
  deps.io.warn(`No sessions matched "${query}".`);
123
124
  return { kind: "cancelled", reason: "no-matches" };
124
125
  }
125
- const enriched = await deps.store.getByIds(result.results.map((r) => r.id));
126
+ const enriched = await deps.store.getByIds(DEFAULT_TEAM_ID, result.results.map((r) => r.id));
126
127
  const runtimeById = new Map(enriched.map((s) => [s.id, s.runtime]));
127
128
  const candidates = result.results.map((r) => ({
128
129
  id: r.id,
@@ -141,11 +142,11 @@ async function resolveSession(deps, argValue, role) {
141
142
  return { kind: "resolved", session: match };
142
143
  }
143
144
  async function readExistingSupersededBy(store, predecessorId) {
144
- const session = await store.getById(predecessorId);
145
+ const session = await store.getById(DEFAULT_TEAM_ID, predecessorId);
145
146
  return session?.supersededBy ?? null;
146
147
  }
147
148
  async function resolveCandidateById(store, id) {
148
- const session = await store.getById(id);
149
+ const session = await store.getById(DEFAULT_TEAM_ID, id);
149
150
  if (!session) {
150
151
  return { id, label: "(unknown)", startedAt: null, runtime: "" };
151
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"supersede.js","sourceRoot":"","sources":["../../src/cli/supersede.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supersede.js","sourceRoot":"","sources":["../../src/cli/supersede.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,33 @@
5
5
  * all rows here, never destructive mutations elsewhere. Dataset projection
6
6
  * (build-dataset.ts) reads this table to overlay user-driven state on top
7
7
  * of the persisted store. Ports server.py's _write_action + undo flow.
8
+ *
9
+ * Tenancy (program spec §4.6 hardening 1, M2 plan Wave B6): `actions` is
10
+ * DERIVE per the M1 census ("via target session/entity rows") with NO
11
+ * `tenant_id` column. In practice `subject_type` is a free-text polymorphic
12
+ * tag — confirmed real values are `session`, `entity`, `decision`,
13
+ * `open_question` (ids shaped `${sessionId}::<hash>`, see
14
+ * `@core/actions/overlay.ts`'s `openQuestionId`/`decisionId`), and `alert`
15
+ * (ephemeral ids computed fresh per request in build-dataset.ts, e.g.
16
+ * `stale_<mangled-canonical>`, with NO stored row to join against) plus
17
+ * `action` (self-referential undo-of-undo chains). Only the first four
18
+ * resolve to a stamped table; `alert`/`action` never do, by construction —
19
+ * no schema exists that would let them. Chosen mechanism, `tenantId`
20
+ * threaded through every function: `listActions`/`undoAction` require, for
21
+ * a row whose `subject_type` IS resolvable, that the subject exist in the
22
+ * caller's tenant (EXISTS join to `sessions`/`entities`, session-prefix
23
+ * match for decision/open_question); rows with an unresolvable
24
+ * `subject_type` pass through unfiltered rather than being faked closed —
25
+ * excluding them would silently break the real, tested alert
26
+ * dismiss/snooze/undo flow with no isolation benefit (an unresolvable id
27
+ * can't be attributed to ANY tenant, so filtering it out for tenant A
28
+ * would filter it out for every tenant identically). `writeAction`/
29
+ * `writeActionsBatch` take `tenantId` for signature uniformity but do not
30
+ * validate subject ownership (no column to stamp, and validating against
31
+ * the same resolvability rule would reject every legitimate alert write);
32
+ * write-time subject authorization is the caller's job, exactly as
33
+ * Source/Provider registry writes are authorized by the composition root
34
+ * before reaching the store (M2 is plumbing, not auth — program spec §4.6).
8
35
  */
9
36
  import type Database from "better-sqlite3";
10
37
  import type { Pool } from "pg";
@@ -27,22 +54,52 @@ export interface ActionRow {
27
54
  readonly runtime: string | null;
28
55
  readonly reverted_by: string | null;
29
56
  }
30
- export declare function writeAction(db: Database.Database, input: ActionInput): string;
31
- export declare function writeActionsBatch(db: Database.Database, inputs: ReadonlyArray<ActionInput>): string[];
57
+ /**
58
+ * Collapses identical rows (same kind + subjectType + subjectId + payload)
59
+ * within a single batch, keeping the first occurrence. A batch is typically
60
+ * one UI gesture replayed by a flaky client retry, not intentionally repeated
61
+ * writes, so silently dropping the duplicates is the correct behavior rather
62
+ * than inserting redundant log rows.
63
+ */
64
+ export declare function dedupeActionInputs(inputs: ReadonlyArray<ActionInput>): ActionInput[];
65
+ /** tenantId is accepted for signature uniformity (see the module doc
66
+ * comment) but not used to filter or stamp — `actions` has no tenant_id
67
+ * column, and write-time subject authorization is the caller's job. */
68
+ export declare function writeAction(db: Database.Database, _tenantId: string, input: ActionInput): string;
69
+ export declare function writeActionsBatch(db: Database.Database, tenantId: string, inputs: ReadonlyArray<ActionInput>): string[];
32
70
  export interface UndoResult {
33
71
  readonly undoId: string;
34
72
  readonly originalKind: string;
35
73
  }
36
- export declare function undoAction(db: Database.Database, actionId: string): UndoResult | null;
37
- export declare function listActions(db: Database.Database, opts?: {
74
+ /** Builds the subject-resolvability predicate shared by undoAction/listActions
75
+ * (see the module doc comment): resolvable subject_types must belong to the
76
+ * caller's tenant; unresolvable ones pass through. `alias` is the actions
77
+ * table's name/alias in the enclosing query. Returns the SQL fragment plus
78
+ * its bound params, in the order they appear in the fragment. */
79
+ export declare function subjectTenantPredicate(tenantId: string, alias?: string): {
80
+ sql: string;
81
+ params: string[];
82
+ };
83
+ export declare function undoAction(db: Database.Database, tenantId: string, actionId: string): UndoResult | null;
84
+ export declare function listActions(db: Database.Database, tenantId: string, opts?: {
38
85
  limit?: number;
39
86
  subjectId?: string;
40
87
  kind?: string;
41
88
  }): ActionRow[];
42
- export declare function writeActionPg(pool: Pool, input: ActionInput): Promise<string>;
43
- export declare function writeActionsBatchPg(pool: Pool, inputs: ReadonlyArray<ActionInput>): Promise<string[]>;
44
- export declare function undoActionPg(pool: Pool, actionId: string): Promise<UndoResult | null>;
45
- export declare function listActionsPg(pool: Pool, opts?: {
89
+ /** Pg counterpart of subjectTenantPredicate — see the module doc comment.
90
+ * `startIdx` is the next free `$n` slot; returns the following free index too. */
91
+ export declare function subjectTenantPredicatePg(tenantId: string, startIdx: number, alias?: string): {
92
+ sql: string;
93
+ params: string[];
94
+ nextIdx: number;
95
+ };
96
+ /** tenantId is accepted for signature uniformity (see the module doc
97
+ * comment) but not used to filter or stamp — `actions` has no tenant_id
98
+ * column, and write-time subject authorization is the caller's job. */
99
+ export declare function writeActionPg(pool: Pool, _tenantId: string, input: ActionInput): Promise<string>;
100
+ export declare function writeActionsBatchPg(pool: Pool, _tenantId: string, inputs: ReadonlyArray<ActionInput>): Promise<string[]>;
101
+ export declare function undoActionPg(pool: Pool, tenantId: string, actionId: string): Promise<UndoResult | null>;
102
+ export declare function listActionsPg(pool: Pool, tenantId: string, opts?: {
46
103
  limit?: number;
47
104
  subjectId?: string;
48
105
  kind?: string;
@@ -5,13 +5,67 @@
5
5
  * all rows here, never destructive mutations elsewhere. Dataset projection
6
6
  * (build-dataset.ts) reads this table to overlay user-driven state on top
7
7
  * of the persisted store. Ports server.py's _write_action + undo flow.
8
+ *
9
+ * Tenancy (program spec §4.6 hardening 1, M2 plan Wave B6): `actions` is
10
+ * DERIVE per the M1 census ("via target session/entity rows") with NO
11
+ * `tenant_id` column. In practice `subject_type` is a free-text polymorphic
12
+ * tag — confirmed real values are `session`, `entity`, `decision`,
13
+ * `open_question` (ids shaped `${sessionId}::<hash>`, see
14
+ * `@core/actions/overlay.ts`'s `openQuestionId`/`decisionId`), and `alert`
15
+ * (ephemeral ids computed fresh per request in build-dataset.ts, e.g.
16
+ * `stale_<mangled-canonical>`, with NO stored row to join against) plus
17
+ * `action` (self-referential undo-of-undo chains). Only the first four
18
+ * resolve to a stamped table; `alert`/`action` never do, by construction —
19
+ * no schema exists that would let them. Chosen mechanism, `tenantId`
20
+ * threaded through every function: `listActions`/`undoAction` require, for
21
+ * a row whose `subject_type` IS resolvable, that the subject exist in the
22
+ * caller's tenant (EXISTS join to `sessions`/`entities`, session-prefix
23
+ * match for decision/open_question); rows with an unresolvable
24
+ * `subject_type` pass through unfiltered rather than being faked closed —
25
+ * excluding them would silently break the real, tested alert
26
+ * dismiss/snooze/undo flow with no isolation benefit (an unresolvable id
27
+ * can't be attributed to ANY tenant, so filtering it out for tenant A
28
+ * would filter it out for every tenant identically). `writeAction`/
29
+ * `writeActionsBatch` take `tenantId` for signature uniformity but do not
30
+ * validate subject ownership (no column to stamp, and validating against
31
+ * the same resolvability rule would reject every legitimate alert write);
32
+ * write-time subject authorization is the caller's job, exactly as
33
+ * Source/Provider registry writes are authorized by the composition root
34
+ * before reaching the store (M2 is plumbing, not auth — program spec §4.6).
8
35
  */
36
+ import { tenantClause, tenantClausePg } from "../tenancy/tenant-clause.js";
37
+ const RESOLVABLE_SUBJECT_TYPES = "('session', 'entity', 'decision', 'open_question')";
9
38
  function makeActionId() {
10
39
  const ts = new Date().toISOString().replace(/[:.]/g, "-");
11
40
  const rand = Math.random().toString(16).slice(2, 10);
12
41
  return `act_${ts}_${rand}`;
13
42
  }
14
- export function writeAction(db, input) {
43
+ function actionDedupeKey(input) {
44
+ return JSON.stringify([input.kind, input.subjectType, input.subjectId, input.payload ?? null]);
45
+ }
46
+ /**
47
+ * Collapses identical rows (same kind + subjectType + subjectId + payload)
48
+ * within a single batch, keeping the first occurrence. A batch is typically
49
+ * one UI gesture replayed by a flaky client retry, not intentionally repeated
50
+ * writes, so silently dropping the duplicates is the correct behavior rather
51
+ * than inserting redundant log rows.
52
+ */
53
+ export function dedupeActionInputs(inputs) {
54
+ const seen = new Set();
55
+ const out = [];
56
+ for (const input of inputs) {
57
+ const key = actionDedupeKey(input);
58
+ if (seen.has(key))
59
+ continue;
60
+ seen.add(key);
61
+ out.push(input);
62
+ }
63
+ return out;
64
+ }
65
+ /** tenantId is accepted for signature uniformity (see the module doc
66
+ * comment) but not used to filter or stamp — `actions` has no tenant_id
67
+ * column, and write-time subject authorization is the caller's job. */
68
+ export function writeAction(db, _tenantId, input) {
15
69
  const id = makeActionId();
16
70
  const payload = input.payload ? JSON.stringify(input.payload) : null;
17
71
  db.prepare(`
@@ -20,15 +74,50 @@ export function writeAction(db, input) {
20
74
  `).run(id, new Date().toISOString(), input.kind, input.subjectType, input.subjectId, payload, input.actor ?? "user", input.runtime ?? "api");
21
75
  return id;
22
76
  }
23
- export function writeActionsBatch(db, inputs) {
24
- const txn = db.transaction((rows) => rows.map((r) => writeAction(db, r)));
25
- return txn(inputs);
77
+ export function writeActionsBatch(db, tenantId, inputs) {
78
+ const deduped = dedupeActionInputs(inputs);
79
+ const txn = db.transaction((rows) => rows.map((r) => writeAction(db, tenantId, r)));
80
+ return txn(deduped);
26
81
  }
27
- export function undoAction(db, actionId) {
82
+ /** Builds the subject-resolvability predicate shared by undoAction/listActions
83
+ * (see the module doc comment): resolvable subject_types must belong to the
84
+ * caller's tenant; unresolvable ones pass through. `alias` is the actions
85
+ * table's name/alias in the enclosing query. Returns the SQL fragment plus
86
+ * its bound params, in the order they appear in the fragment. */
87
+ export function subjectTenantPredicate(tenantId, alias = "actions") {
88
+ const sessionTc = tenantClause(tenantId, "s.tenant_id");
89
+ const entityTc = tenantClause(tenantId, "e.tenant_id");
90
+ const prefixTc = tenantClause(tenantId, "sp.tenant_id");
91
+ // The prefix arm splits subject_id on '::' and looks the parent up by equality
92
+ // rather than `subject_id LIKE sp.id || '::%'`. The LIKE form builds its
93
+ // pattern from a column, so sqlite cannot use the sessions primary key and
94
+ // full-scans every session once per action row. On a 15k-session store that
95
+ // read the 378MB sessions table 16 times and took 9.6s inside a synchronous
96
+ // better-sqlite3 .all(), which blocks the event loop and made the whole daemon
97
+ // unreachable (NLM #457). Equality seeks the PK instead.
98
+ //
99
+ // Equivalent because no session id contains '::' (they are `<runtime>_<uuid>`),
100
+ // so the first separator always ends the parent id. When subject_id has no
101
+ // '::' at all, instr returns 0 and substr(x, 1, -1) is '', which matches no
102
+ // session - the same miss the LIKE produced.
103
+ const sql = `(
104
+ EXISTS (SELECT 1 FROM sessions s WHERE s.id = ${alias}.subject_id AND ${sessionTc.sql})
105
+ OR EXISTS (SELECT 1 FROM entities e WHERE e.canonical = ${alias}.subject_id AND ${entityTc.sql})
106
+ OR EXISTS (SELECT 1 FROM sessions sp WHERE sp.id = substr(${alias}.subject_id, 1, instr(${alias}.subject_id, '::') - 1) AND ${prefixTc.sql})
107
+ OR ${alias}.subject_type NOT IN ${RESOLVABLE_SUBJECT_TYPES}
108
+ )`;
109
+ return { sql, params: [sessionTc.param, entityTc.param, prefixTc.param] };
110
+ }
111
+ export function undoAction(db, tenantId, actionId) {
112
+ const pred = subjectTenantPredicate(tenantId);
28
113
  const target = db
29
- .prepare("SELECT id, kind, subject_type, subject_id FROM actions WHERE id = ? AND reverted_by IS NULL")
30
- .get(actionId);
31
- if (!target)
114
+ .prepare(`SELECT id, kind, subject_type, subject_id FROM actions WHERE id = ? AND reverted_by IS NULL AND ${pred.sql}`)
115
+ .get(actionId, ...pred.params);
116
+ // An 'undo' row is itself unrevertable: reverting it wouldn't restore the
117
+ // original action (reverted_by on the original stays pointed at it), so it
118
+ // would just be a dead row. Reject cleanly with the same "not found or
119
+ // already undone" contract the caller already handles.
120
+ if (!target || target.kind === "undo")
32
121
  return null;
33
122
  const undoId = makeActionId();
34
123
  const undoPayload = JSON.stringify({
@@ -45,7 +134,7 @@ export function undoAction(db, actionId) {
45
134
  txn();
46
135
  return { undoId, originalKind: target.kind };
47
136
  }
48
- export function listActions(db, opts = {}) {
137
+ export function listActions(db, tenantId, opts = {}) {
49
138
  const limit = opts.limit ?? 100;
50
139
  const where = [];
51
140
  const params = [];
@@ -57,6 +146,9 @@ export function listActions(db, opts = {}) {
57
146
  where.push("kind = ?");
58
147
  params.push(opts.kind);
59
148
  }
149
+ const pred = subjectTenantPredicate(tenantId);
150
+ where.push(pred.sql);
151
+ params.push(...pred.params);
60
152
  const whereSql = where.length > 0 ? `WHERE ${where.join(" AND ")}` : "";
61
153
  const sql = `
62
154
  SELECT id, timestamp, kind, subject_type, subject_id, payload, actor, runtime, reverted_by
@@ -72,7 +164,24 @@ export function listActions(db, opts = {}) {
72
164
  // ---------------------------------------------------------------------------
73
165
  // PG-native counterparts
74
166
  // ---------------------------------------------------------------------------
75
- export async function writeActionPg(pool, input) {
167
+ /** Pg counterpart of subjectTenantPredicate — see the module doc comment.
168
+ * `startIdx` is the next free `$n` slot; returns the following free index too. */
169
+ export function subjectTenantPredicatePg(tenantId, startIdx, alias = "actions") {
170
+ const sessionTc = tenantClausePg(tenantId, startIdx, "s.tenant_id");
171
+ const entityTc = tenantClausePg(tenantId, startIdx + 1, "e.tenant_id");
172
+ const prefixTc = tenantClausePg(tenantId, startIdx + 2, "sp.tenant_id");
173
+ const sql = `(
174
+ EXISTS (SELECT 1 FROM sessions s WHERE s.id = ${alias}.subject_id AND ${sessionTc.sql})
175
+ OR EXISTS (SELECT 1 FROM entities e WHERE e.canonical = ${alias}.subject_id AND ${entityTc.sql})
176
+ OR EXISTS (SELECT 1 FROM sessions sp WHERE ${alias}.subject_id LIKE sp.id || '::%' AND ${prefixTc.sql})
177
+ OR ${alias}.subject_type NOT IN ${RESOLVABLE_SUBJECT_TYPES}
178
+ )`;
179
+ return { sql, params: [sessionTc.param, entityTc.param, prefixTc.param], nextIdx: startIdx + 3 };
180
+ }
181
+ /** tenantId is accepted for signature uniformity (see the module doc
182
+ * comment) but not used to filter or stamp — `actions` has no tenant_id
183
+ * column, and write-time subject authorization is the caller's job. */
184
+ export async function writeActionPg(pool, _tenantId, input) {
76
185
  const id = makeActionId();
77
186
  const payload = input.payload ? JSON.stringify(input.payload) : null;
78
187
  await pool.query(`INSERT INTO actions (id, timestamp, kind, subject_type, subject_id, payload, actor, runtime)
@@ -80,14 +189,15 @@ export async function writeActionPg(pool, input) {
80
189
  payload, input.actor ?? "user", input.runtime ?? "api"]);
81
190
  return id;
82
191
  }
83
- export async function writeActionsBatchPg(pool, inputs) {
84
- if (inputs.length === 0)
192
+ export async function writeActionsBatchPg(pool, _tenantId, inputs) {
193
+ const deduped = dedupeActionInputs(inputs);
194
+ if (deduped.length === 0)
85
195
  return [];
86
196
  const client = await pool.connect();
87
197
  try {
88
198
  await client.query("BEGIN");
89
199
  const ids = [];
90
- for (const input of inputs) {
200
+ for (const input of deduped) {
91
201
  const id = makeActionId();
92
202
  const payload = input.payload ? JSON.stringify(input.payload) : null;
93
203
  await client.query(`INSERT INTO actions (id, timestamp, kind, subject_type, subject_id, payload, actor, runtime)
@@ -106,12 +216,15 @@ export async function writeActionsBatchPg(pool, inputs) {
106
216
  client.release();
107
217
  }
108
218
  }
109
- export async function undoActionPg(pool, actionId) {
219
+ export async function undoActionPg(pool, tenantId, actionId) {
110
220
  const client = await pool.connect();
111
221
  try {
112
222
  await client.query("BEGIN");
113
- const target = await client.query("SELECT id, kind, subject_type, subject_id FROM actions WHERE id = $1 AND reverted_by IS NULL FOR UPDATE", [actionId]);
114
- if (!target.rows[0]) {
223
+ const pred = subjectTenantPredicatePg(tenantId, 2);
224
+ const target = await client.query(`SELECT id, kind, subject_type, subject_id FROM actions WHERE id = $1 AND reverted_by IS NULL AND ${pred.sql} FOR UPDATE`, [actionId, ...pred.params]);
225
+ // See undoAction's sqlite counterpart: an 'undo' row can't itself be
226
+ // undone without leaving a dead row that doesn't restore anything.
227
+ if (!target.rows[0] || target.rows[0].kind === "undo") {
115
228
  await client.query("ROLLBACK");
116
229
  return null;
117
230
  }
@@ -132,7 +245,7 @@ export async function undoActionPg(pool, actionId) {
132
245
  client.release();
133
246
  }
134
247
  }
135
- export async function listActionsPg(pool, opts = {}) {
248
+ export async function listActionsPg(pool, tenantId, opts = {}) {
136
249
  const limit = opts.limit ?? 100;
137
250
  const where = [];
138
251
  const params = [];
@@ -145,6 +258,10 @@ export async function listActionsPg(pool, opts = {}) {
145
258
  where.push(`kind = $${idx++}`);
146
259
  params.push(opts.kind);
147
260
  }
261
+ const pred = subjectTenantPredicatePg(tenantId, idx);
262
+ where.push(pred.sql);
263
+ params.push(...pred.params);
264
+ idx = pred.nextIdx;
148
265
  const whereSql = where.length > 0 ? `WHERE ${where.join(" AND ")}` : "";
149
266
  params.push(limit);
150
267
  const result = await pool.query(`SELECT id, timestamp, kind, subject_type, subject_id, payload, actor, runtime, reverted_by
@@ -1 +1 @@
1
- {"version":3,"file":"actions-log.js","sourceRoot":"","sources":["../../../src/core/actions/actions-log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions-log.js","sourceRoot":"","sources":["../../../src/core/actions/actions-log.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAoCpF,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,eAAe,EAAE,IAAI,GAAG,EAAE;IAC1B,aAAa,EAAE,IAAI,GAAG,EAAE;IACxB,eAAe,EAAE,IAAI,GAAG,EAAE;IAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;IAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;IAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;IAC1B,aAAa,EAAE,IAAI,GAAG,EAAE;IACxB,aAAa,EAAE,IAAI,GAAG,EAAE;IACxB,kBAAkB,EAAE,IAAI,GAAG,EAAE;IAC7B,gBAAgB,EAAE,IAAI,GAAG,EAAE;IAC3B,kBAAkB,EAAE,IAAI,GAAG,EAAE;IAC7B,cAAc,EAAE,IAAI,GAAG,EAAE;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA8B;IAC7D,MAAM,OAAO,GAAkB;QAC7B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,cAAc,EAAE,IAAI,GAAG,EAAE;KAC1B,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAoC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5F,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,CAAC,eAAe,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,IAAI,KAAK,GAAG,GAAG;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,OAAO,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvF,IAAI,OAAO;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,EAAE,GAAG,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;gBACxE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;YAC3E,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,OAAO,OAAO,EAAE,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,IAAI,UAAU;gBAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAC1E,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACzE,MAAM,EAAE,GAAG,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,EAAE;gBAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;gBAClD,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACpE,MAAM,IAAI,GAAG,OAAO,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,IAAI,IAAI;gBAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;;gBACpD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAClE,OAAO,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAqB,EAAE,QAAgB;IACvE,MAAM,UAAU,GAAG,EAAE;SAClB,OAAO,CAAuB,sEAAsE,CAAC;SACrG,GAAG,EAAE,CAAC;IACT,IAAI,CAAC,UAAU;QAAE,OAAO,aAAa,CAAC;IAEtC,MAAM,IAAI,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC9C,0EAA0E;IAC1E,4DAA4D;IAC5D,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAuB;;;sCAGG,IAAI,CAAC,GAAG;;KAEzC,CAAC;SACD,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,QAAgB;IACpE,MAAM,IAAI,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAC7B;;qCAEiC,IAAI,CAAC,GAAG;iBAC5B,EACb,IAAI,CAAC,MAAM,CACZ,CAAC;IACF,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,IAAY;IAC5D,OAAO,GAAG,SAAS,KAAK,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,IAAY;IACxD,OAAO,GAAG,SAAS,UAAU,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,GAAG,mBAAmB,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -30,3 +30,17 @@ export declare class ClaudeCodeAdapter implements TranscriptAdapter {
30
30
  private isSubagentPath;
31
31
  private maybeAdd;
32
32
  }
33
+ /**
34
+ * Re-derives subagent persona + parent link from a claude-code chunk's
35
+ * already-computed `runtimeSessionId` and `label` — the same two fields the
36
+ * ingest stamp site has on hand, without re-reading the raw transcript.
37
+ * Reverse of the encoding parseSession performs above: id has no slash ->
38
+ * top-level session ("orchestrator", no parent); id matches
39
+ * `<parent>/agent-<id>` -> parent + persona parsed from the label's
40
+ * `[subagent <slug>]` prefix. Any other shape is treated as malformed and
41
+ * returns nulls rather than throwing.
42
+ */
43
+ export declare function deriveSubagentMeta(runtimeSessionId: string, label: string): {
44
+ persona: string | null;
45
+ parentSessionId: string | null;
46
+ };