@remnic/core 9.3.751 → 9.3.752

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 (319) hide show
  1. package/dist/access-boundary.d.ts +5 -5
  2. package/dist/access-boundary.js +29 -29
  3. package/dist/access-cli.js +88 -88
  4. package/dist/access-http.d.ts +5 -5
  5. package/dist/access-http.js +35 -35
  6. package/dist/access-mcp.d.ts +5 -5
  7. package/dist/access-mcp.js +34 -34
  8. package/dist/access-operations-batch.js +31 -31
  9. package/dist/access-operations.d.ts +5 -5
  10. package/dist/access-operations.js +33 -33
  11. package/dist/access-recall-surface.d.ts +363 -0
  12. package/dist/access-recall-surface.js +128 -0
  13. package/dist/access-schema.js +7 -7
  14. package/dist/{access-service-DmAEOJdJ.d.ts → access-service-C2cOHQvg.d.ts} +7 -26
  15. package/dist/access-service.d.ts +5 -5
  16. package/dist/access-service.js +28 -28
  17. package/dist/access-surface-catalog.d.ts +5 -5
  18. package/dist/action-confidence.d.ts +1 -1
  19. package/dist/active-memory-bridge.d.ts +1 -1
  20. package/dist/active-recall.d.ts +1 -1
  21. package/dist/active-recall.js +1 -1
  22. package/dist/behavior-learner.d.ts +1 -1
  23. package/dist/behavior-signals.d.ts +1 -1
  24. package/dist/bootstrap.d.ts +4 -4
  25. package/dist/briefing.d.ts +1 -1
  26. package/dist/briefing.js +4 -4
  27. package/dist/buffer-surprise-report.d.ts +1 -1
  28. package/dist/buffer.d.ts +1 -1
  29. package/dist/buffer.js +2 -2
  30. package/dist/calibration.d.ts +1 -1
  31. package/dist/capabilities.d.ts +1 -1
  32. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-CZJSLEFG.js} +3 -3
  33. package/dist/{catalog-BpOcwHdE.d.ts → catalog-D_FvzTM0.d.ts} +1 -1
  34. package/dist/causal-behavior.d.ts +1 -1
  35. package/dist/causal-behavior.js +2 -2
  36. package/dist/causal-chain.js +2 -2
  37. package/dist/causal-consolidation.d.ts +1 -1
  38. package/dist/causal-consolidation.js +9 -9
  39. package/dist/causal-retrieval.js +2 -2
  40. package/dist/causal-trajectory-graph.d.ts +1 -1
  41. package/dist/causal-trajectory.js +1 -1
  42. package/dist/{chunk-2NLLXCJG.js → chunk-2BFLDH5F.js} +2 -2
  43. package/dist/{chunk-UU32EAIY.js → chunk-2DPCAW2T.js} +5 -5
  44. package/dist/{chunk-5PZCDUJ6.js → chunk-2U4E34Y3.js} +4 -4
  45. package/dist/{chunk-JRZV3767.js → chunk-33NX5BLR.js} +4 -4
  46. package/dist/{chunk-X7Y7WX73.js → chunk-437S3G37.js} +2 -2
  47. package/dist/{chunk-HAZVVOYT.js → chunk-5DXUE7GB.js} +2 -2
  48. package/dist/{chunk-4DLFJJOQ.js → chunk-5JAT4ZJD.js} +4 -4
  49. package/dist/{chunk-RS25QOKZ.js → chunk-64SE4X5G.js} +2 -2
  50. package/dist/{chunk-QRRBXD24.js → chunk-67JRXV6Z.js} +7 -7
  51. package/dist/{chunk-WA7FECSG.js → chunk-6ROCH5JV.js} +7 -7
  52. package/dist/{chunk-5QANTTY2.js → chunk-BIAMJUUJ.js} +4 -4
  53. package/dist/{chunk-IKHKHADN.js → chunk-C4LNKQ3M.js} +5 -5
  54. package/dist/{chunk-B35L45HZ.js → chunk-DC5OBZS3.js} +2 -2
  55. package/dist/{chunk-ORAK3LNZ.js → chunk-ER3CCWK2.js} +2 -2
  56. package/dist/{chunk-SD34EK4Z.js → chunk-FEELYTRT.js} +5 -5
  57. package/dist/{chunk-KQAFEZQX.js → chunk-FLVL4L3L.js} +2 -2
  58. package/dist/{chunk-WIWPSQYU.js → chunk-FXRFFYWD.js} +4 -4
  59. package/dist/{chunk-W3M34XT4.js → chunk-GECEETQ3.js} +4 -4
  60. package/dist/{chunk-WWSXVOGY.js → chunk-GFGYHLON.js} +2 -2
  61. package/dist/{chunk-BJMBJZ2Y.js → chunk-GWTFLF2P.js} +59 -59
  62. package/dist/chunk-GWTFLF2P.js.map +1 -0
  63. package/dist/{chunk-WOX2UW4K.js → chunk-IBPEVGP5.js} +2 -2
  64. package/dist/{chunk-JZ7P26GF.js → chunk-IQWFWSCP.js} +4 -4
  65. package/dist/{chunk-6SXNQFHB.js → chunk-J2JB6BHT.js} +8 -8
  66. package/dist/{chunk-K2JM4DZZ.js → chunk-JHZ3LEM7.js} +2 -2
  67. package/dist/{chunk-YGGXUNS4.js → chunk-JNKSFIAY.js} +45 -45
  68. package/dist/{chunk-CGZWGVQF.js → chunk-K5CWCJKJ.js} +6 -6
  69. package/dist/{chunk-TPLE6SNY.js → chunk-KFNG72W7.js} +7 -7
  70. package/dist/{chunk-4NWIGAIC.js → chunk-KT2VQLP7.js} +8 -8
  71. package/dist/{chunk-6FNZ3NMS.js → chunk-L3VSTJ2V.js} +2 -2
  72. package/dist/{chunk-ARV3AUOM.js → chunk-M5QKGHCR.js} +2 -2
  73. package/dist/{chunk-E4PFDD3N.js → chunk-MEPWWSTD.js} +4 -4
  74. package/dist/{chunk-V5RVMULT.js → chunk-MLDAD27I.js} +7 -7
  75. package/dist/{chunk-K2R3DEEH.js → chunk-MTN2G4DT.js} +2 -2
  76. package/dist/{chunk-DBSMLRTO.js → chunk-MW7UUXTA.js} +5 -5
  77. package/dist/{chunk-OSMBC3JU.js → chunk-OKOF7ITI.js} +6 -6
  78. package/dist/{chunk-DBRVU5PR.js → chunk-OVMLS7TN.js} +3 -3
  79. package/dist/{chunk-NNL4LJAD.js → chunk-QMMCMV2L.js} +5 -5
  80. package/dist/{chunk-RNWWAS5V.js → chunk-QRM3K3XT.js} +5 -5
  81. package/dist/{chunk-HM6UJPPO.js → chunk-R7TGDLV3.js} +4 -4
  82. package/dist/{chunk-EEKDRAWX.js → chunk-RBYV3WSB.js} +4 -4
  83. package/dist/{chunk-LOPZ2DWR.js → chunk-RRRZ3CLN.js} +4 -4
  84. package/dist/{chunk-7TWA7DKP.js → chunk-S5UYWK3O.js} +6 -6
  85. package/dist/{chunk-QOGXUNWL.js → chunk-SC5AEZLU.js} +9 -9
  86. package/dist/{chunk-SNEXVX3U.js → chunk-UFNQKZV7.js} +15 -15
  87. package/dist/{chunk-W3BFT5OJ.js → chunk-V4ZPLQLC.js} +2 -2
  88. package/dist/{chunk-SQNED75R.js → chunk-V5UV7BOA.js} +1 -1
  89. package/dist/{chunk-RWZB6MAY.js → chunk-VQL22SHO.js} +891 -1002
  90. package/dist/chunk-VQL22SHO.js.map +1 -0
  91. package/dist/{chunk-UETBEHBA.js → chunk-VX2RYM2K.js} +2232 -1942
  92. package/dist/chunk-VX2RYM2K.js.map +1 -0
  93. package/dist/{chunk-K5LLP4CY.js → chunk-XKAOT4ZB.js} +4 -4
  94. package/dist/{chunk-ZBVQ4ZM4.js → chunk-YGNQG4Q6.js} +8 -8
  95. package/dist/{chunk-EZ25VE3G.js → chunk-YNDLCWXS.js} +4 -4
  96. package/dist/{chunk-HYI2GP3F.js → chunk-ZGGI3COG.js} +9 -9
  97. package/dist/{cli-lmf5RGyQ.d.ts → cli-DFUU9WYu.d.ts} +3 -3
  98. package/dist/cli.d.ts +6 -6
  99. package/dist/cli.js +60 -60
  100. package/dist/compounding/engine.d.ts +1 -1
  101. package/dist/compounding/engine.js +6 -6
  102. package/dist/compounding/preference-consolidator.d.ts +1 -1
  103. package/dist/compression-optimizer.d.ts +1 -1
  104. package/dist/config.d.ts +1 -1
  105. package/dist/config.js +1 -1
  106. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  107. package/dist/connectors/codex-materialize-runner.js +5 -5
  108. package/dist/connectors/codex-materialize.d.ts +1 -1
  109. package/dist/connectors/index.d.ts +1 -1
  110. package/dist/connectors/index.js +7 -7
  111. package/dist/consolidation-provenance-check.d.ts +1 -1
  112. package/dist/consolidation-undo.d.ts +1 -1
  113. package/dist/contradiction/index.d.ts +1 -1
  114. package/dist/contradiction/index.js +2 -2
  115. package/dist/{contradiction-scan-3FJYWS3G.js → contradiction-scan-KO4WWCS4.js} +3 -3
  116. package/dist/contradiction-scan-KO4WWCS4.js.map +1 -0
  117. package/dist/conversation-index/backend.d.ts +1 -1
  118. package/dist/conversation-index/chunker.d.ts +1 -1
  119. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  120. package/dist/conversation-index/indexer.d.ts +1 -1
  121. package/dist/conversation-index/search.d.ts +1 -1
  122. package/dist/dashboard-runtime.js +2 -2
  123. package/dist/day-summary.d.ts +1 -1
  124. package/dist/day-summary.js +2 -2
  125. package/dist/delinearize.d.ts +1 -1
  126. package/dist/direct-answer-wiring.d.ts +1 -1
  127. package/dist/direct-answer.d.ts +1 -1
  128. package/dist/embedding-fallback.d.ts +1 -1
  129. package/dist/embedding-fallback.js +2 -2
  130. package/dist/enrichment/index.d.ts +1 -1
  131. package/dist/entity-retrieval.d.ts +1 -1
  132. package/dist/entity-retrieval.js +5 -5
  133. package/dist/entity-schema.d.ts +1 -1
  134. package/dist/explicit-capture.d.ts +4 -4
  135. package/dist/explicit-capture.js +2 -2
  136. package/dist/extraction-faithfulness.d.ts +1 -1
  137. package/dist/extraction-judge-telemetry.d.ts +1 -1
  138. package/dist/extraction-judge-training.d.ts +1 -1
  139. package/dist/extraction-judge.d.ts +1 -1
  140. package/dist/extraction.d.ts +1 -1
  141. package/dist/extraction.js +4 -4
  142. package/dist/fallback-llm.d.ts +1 -1
  143. package/dist/graph-dashboard-diff.d.ts +1 -1
  144. package/dist/graph-dashboard-key.d.ts +1 -1
  145. package/dist/graph-dashboard-parser.d.ts +1 -1
  146. package/dist/graph-edge-reinforcement.d.ts +1 -1
  147. package/dist/graph-snapshot.d.ts +1 -1
  148. package/dist/graph.d.ts +1 -1
  149. package/dist/identity-continuity.d.ts +1 -1
  150. package/dist/importance.d.ts +1 -1
  151. package/dist/index.d.ts +9 -9
  152. package/dist/index.js +142 -142
  153. package/dist/intent.d.ts +1 -1
  154. package/dist/lcm/engine.d.ts +1 -1
  155. package/dist/lcm/engine.js +3 -3
  156. package/dist/lcm/index.d.ts +1 -1
  157. package/dist/lcm/index.js +8 -8
  158. package/dist/lcm/tools.d.ts +1 -1
  159. package/dist/lifecycle.d.ts +1 -1
  160. package/dist/live-connectors-runner.d.ts +1 -1
  161. package/dist/local-llm.d.ts +1 -1
  162. package/dist/local-llm.js +2 -2
  163. package/dist/local-model-endpoint.d.ts +1 -1
  164. package/dist/maintenance/memory-governance.d.ts +1 -1
  165. package/dist/maintenance/memory-governance.js +4 -4
  166. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -4
  167. package/dist/maintenance/rebuild-memory-projection.js +5 -5
  168. package/dist/mcp-memory-inspector-app.d.ts +5 -5
  169. package/dist/memory-action-policy.d.ts +1 -1
  170. package/dist/memory-cache.d.ts +1 -1
  171. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  172. package/dist/memory-projection-store.d.ts +1 -1
  173. package/dist/memory-provenance.d.ts +1 -1
  174. package/dist/memory-worth-outcomes.d.ts +1 -1
  175. package/dist/models-json.d.ts +1 -1
  176. package/dist/namespaces/migrate.d.ts +2 -2
  177. package/dist/namespaces/migrate.js +10 -10
  178. package/dist/namespaces/principal.d.ts +1 -1
  179. package/dist/namespaces/search.d.ts +1 -1
  180. package/dist/namespaces/search.js +4 -4
  181. package/dist/namespaces/storage.d.ts +2 -2
  182. package/dist/namespaces/storage.js +6 -6
  183. package/dist/native-knowledge.d.ts +1 -1
  184. package/dist/operator-toolkit.d.ts +1 -1
  185. package/dist/operator-toolkit.js +17 -17
  186. package/dist/orchestration/compression-guideline-coordinator.d.ts +1 -1
  187. package/dist/orchestration/compression-guideline-coordinator.js +2 -2
  188. package/dist/orchestration/maintenance.d.ts +2 -2
  189. package/dist/orchestration/maintenance.js +10 -10
  190. package/dist/{orchestrator-D7bb8ZGp.d.ts → orchestrator-BhxMxtQJ.d.ts} +27 -106
  191. package/dist/orchestrator.d.ts +4 -4
  192. package/dist/orchestrator.js +86 -86
  193. package/dist/patterns-cli.d.ts +1 -1
  194. package/dist/policy-runtime.d.ts +1 -1
  195. package/dist/provenance.d.ts +1 -1
  196. package/dist/qmd-recall-cache.d.ts +1 -1
  197. package/dist/qmd.d.ts +1 -1
  198. package/dist/recall-disclosure-escalation.d.ts +1 -1
  199. package/dist/recall-explain-renderer.d.ts +1 -1
  200. package/dist/recall-planner-llm.d.ts +1 -1
  201. package/dist/recall-state.d.ts +1 -1
  202. package/dist/recall-tag-filter.d.ts +1 -1
  203. package/dist/recall-xray-cli.d.ts +1 -1
  204. package/dist/recall-xray-renderer.d.ts +1 -1
  205. package/dist/recall-xray.d.ts +1 -1
  206. package/dist/resolve-auth-token.d.ts +1 -1
  207. package/dist/resume-bundles.js +1 -1
  208. package/dist/retrieval-agents.d.ts +1 -1
  209. package/dist/retrieval-tiers.d.ts +1 -1
  210. package/dist/routing/engine.d.ts +1 -1
  211. package/dist/routing/store.d.ts +1 -1
  212. package/dist/routing/store.js +2 -2
  213. package/dist/schemas.d.ts +22 -22
  214. package/dist/search/embed-helper.d.ts +1 -1
  215. package/dist/search/embed-helper.js +2 -2
  216. package/dist/search/factory.d.ts +1 -1
  217. package/dist/search/factory.js +3 -3
  218. package/dist/search/index.d.ts +1 -1
  219. package/dist/search/index.js +3 -3
  220. package/dist/search/lancedb-backend.d.ts +1 -1
  221. package/dist/search/meilisearch-backend.d.ts +1 -1
  222. package/dist/search/noop-backend.d.ts +1 -1
  223. package/dist/search/orama-backend.d.ts +1 -1
  224. package/dist/search/port.d.ts +1 -1
  225. package/dist/search/remote-backend.d.ts +1 -1
  226. package/dist/secure-store/index.js +2 -2
  227. package/dist/{semantic-consolidation-CTfbVwCA.d.ts → semantic-consolidation-BrsoFeMP.d.ts} +1 -1
  228. package/dist/semantic-consolidation.d.ts +2 -2
  229. package/dist/semantic-consolidation.js +7 -7
  230. package/dist/semantic-rule-promotion.js +4 -4
  231. package/dist/semantic-rule-verifier.d.ts +1 -1
  232. package/dist/semantic-rule-verifier.js +4 -4
  233. package/dist/session-observer-bands.d.ts +1 -1
  234. package/dist/session-observer-state.d.ts +1 -1
  235. package/dist/shared-context/manager.d.ts +1 -1
  236. package/dist/shared-context/manager.js +2 -2
  237. package/dist/signal.d.ts +1 -1
  238. package/dist/storage.d.ts +1 -1
  239. package/dist/storage.js +3 -3
  240. package/dist/summarizer.d.ts +1 -1
  241. package/dist/summarizer.js +3 -3
  242. package/dist/summary-snapshot.d.ts +1 -1
  243. package/dist/temporal-supersession.d.ts +1 -1
  244. package/dist/temporal-validity.d.ts +1 -1
  245. package/dist/threading.d.ts +1 -1
  246. package/dist/tier-migration.d.ts +1 -1
  247. package/dist/tier-routing.d.ts +1 -1
  248. package/dist/topics.d.ts +1 -1
  249. package/dist/transcript.d.ts +1 -1
  250. package/dist/transfer/backup.js +3 -3
  251. package/dist/transfer/capsule-export.js +3 -3
  252. package/dist/transfer/capsule-import.js +3 -3
  253. package/dist/transfer/types.d.ts +12 -12
  254. package/dist/trust-score-stage.d.ts +1 -1
  255. package/dist/trust-score.d.ts +1 -1
  256. package/dist/{types-D4NYDtXI.d.ts → types-BfI4uJeb.d.ts} +1 -1
  257. package/dist/types.d.ts +1 -1
  258. package/dist/utility-runtime.d.ts +1 -1
  259. package/dist/verified-recall.js +4 -4
  260. package/package.json +2 -2
  261. package/src/access-recall-surface.ts +1552 -0
  262. package/src/access-service.ts +29 -1219
  263. package/src/orchestration/recall-entry.ts +290 -0
  264. package/src/orchestration/session-context.ts +407 -0
  265. package/src/orchestrator.ts +125 -462
  266. package/dist/chunk-BJMBJZ2Y.js.map +0 -1
  267. package/dist/chunk-RWZB6MAY.js.map +0 -1
  268. package/dist/chunk-UETBEHBA.js.map +0 -1
  269. /package/dist/{capsule-crypto-7FJQINUR.js.map → access-recall-surface.js.map} +0 -0
  270. /package/dist/{contradiction-scan-3FJYWS3G.js.map → capsule-crypto-CZJSLEFG.js.map} +0 -0
  271. /package/dist/{chunk-2NLLXCJG.js.map → chunk-2BFLDH5F.js.map} +0 -0
  272. /package/dist/{chunk-UU32EAIY.js.map → chunk-2DPCAW2T.js.map} +0 -0
  273. /package/dist/{chunk-5PZCDUJ6.js.map → chunk-2U4E34Y3.js.map} +0 -0
  274. /package/dist/{chunk-JRZV3767.js.map → chunk-33NX5BLR.js.map} +0 -0
  275. /package/dist/{chunk-X7Y7WX73.js.map → chunk-437S3G37.js.map} +0 -0
  276. /package/dist/{chunk-HAZVVOYT.js.map → chunk-5DXUE7GB.js.map} +0 -0
  277. /package/dist/{chunk-4DLFJJOQ.js.map → chunk-5JAT4ZJD.js.map} +0 -0
  278. /package/dist/{chunk-RS25QOKZ.js.map → chunk-64SE4X5G.js.map} +0 -0
  279. /package/dist/{chunk-QRRBXD24.js.map → chunk-67JRXV6Z.js.map} +0 -0
  280. /package/dist/{chunk-WA7FECSG.js.map → chunk-6ROCH5JV.js.map} +0 -0
  281. /package/dist/{chunk-5QANTTY2.js.map → chunk-BIAMJUUJ.js.map} +0 -0
  282. /package/dist/{chunk-IKHKHADN.js.map → chunk-C4LNKQ3M.js.map} +0 -0
  283. /package/dist/{chunk-B35L45HZ.js.map → chunk-DC5OBZS3.js.map} +0 -0
  284. /package/dist/{chunk-ORAK3LNZ.js.map → chunk-ER3CCWK2.js.map} +0 -0
  285. /package/dist/{chunk-SD34EK4Z.js.map → chunk-FEELYTRT.js.map} +0 -0
  286. /package/dist/{chunk-KQAFEZQX.js.map → chunk-FLVL4L3L.js.map} +0 -0
  287. /package/dist/{chunk-WIWPSQYU.js.map → chunk-FXRFFYWD.js.map} +0 -0
  288. /package/dist/{chunk-W3M34XT4.js.map → chunk-GECEETQ3.js.map} +0 -0
  289. /package/dist/{chunk-WWSXVOGY.js.map → chunk-GFGYHLON.js.map} +0 -0
  290. /package/dist/{chunk-WOX2UW4K.js.map → chunk-IBPEVGP5.js.map} +0 -0
  291. /package/dist/{chunk-JZ7P26GF.js.map → chunk-IQWFWSCP.js.map} +0 -0
  292. /package/dist/{chunk-6SXNQFHB.js.map → chunk-J2JB6BHT.js.map} +0 -0
  293. /package/dist/{chunk-K2JM4DZZ.js.map → chunk-JHZ3LEM7.js.map} +0 -0
  294. /package/dist/{chunk-YGGXUNS4.js.map → chunk-JNKSFIAY.js.map} +0 -0
  295. /package/dist/{chunk-CGZWGVQF.js.map → chunk-K5CWCJKJ.js.map} +0 -0
  296. /package/dist/{chunk-TPLE6SNY.js.map → chunk-KFNG72W7.js.map} +0 -0
  297. /package/dist/{chunk-4NWIGAIC.js.map → chunk-KT2VQLP7.js.map} +0 -0
  298. /package/dist/{chunk-6FNZ3NMS.js.map → chunk-L3VSTJ2V.js.map} +0 -0
  299. /package/dist/{chunk-ARV3AUOM.js.map → chunk-M5QKGHCR.js.map} +0 -0
  300. /package/dist/{chunk-E4PFDD3N.js.map → chunk-MEPWWSTD.js.map} +0 -0
  301. /package/dist/{chunk-V5RVMULT.js.map → chunk-MLDAD27I.js.map} +0 -0
  302. /package/dist/{chunk-K2R3DEEH.js.map → chunk-MTN2G4DT.js.map} +0 -0
  303. /package/dist/{chunk-DBSMLRTO.js.map → chunk-MW7UUXTA.js.map} +0 -0
  304. /package/dist/{chunk-OSMBC3JU.js.map → chunk-OKOF7ITI.js.map} +0 -0
  305. /package/dist/{chunk-DBRVU5PR.js.map → chunk-OVMLS7TN.js.map} +0 -0
  306. /package/dist/{chunk-NNL4LJAD.js.map → chunk-QMMCMV2L.js.map} +0 -0
  307. /package/dist/{chunk-RNWWAS5V.js.map → chunk-QRM3K3XT.js.map} +0 -0
  308. /package/dist/{chunk-HM6UJPPO.js.map → chunk-R7TGDLV3.js.map} +0 -0
  309. /package/dist/{chunk-EEKDRAWX.js.map → chunk-RBYV3WSB.js.map} +0 -0
  310. /package/dist/{chunk-LOPZ2DWR.js.map → chunk-RRRZ3CLN.js.map} +0 -0
  311. /package/dist/{chunk-7TWA7DKP.js.map → chunk-S5UYWK3O.js.map} +0 -0
  312. /package/dist/{chunk-QOGXUNWL.js.map → chunk-SC5AEZLU.js.map} +0 -0
  313. /package/dist/{chunk-SNEXVX3U.js.map → chunk-UFNQKZV7.js.map} +0 -0
  314. /package/dist/{chunk-W3BFT5OJ.js.map → chunk-V4ZPLQLC.js.map} +0 -0
  315. /package/dist/{chunk-SQNED75R.js.map → chunk-V5UV7BOA.js.map} +0 -0
  316. /package/dist/{chunk-K5LLP4CY.js.map → chunk-XKAOT4ZB.js.map} +0 -0
  317. /package/dist/{chunk-ZBVQ4ZM4.js.map → chunk-YGNQG4Q6.js.map} +0 -0
  318. /package/dist/{chunk-EZ25VE3G.js.map → chunk-YNDLCWXS.js.map} +0 -0
  319. /package/dist/{chunk-HYI2GP3F.js.map → chunk-ZGGI3COG.js.map} +0 -0
@@ -11,23 +11,23 @@ import {
11
11
  processChatMessage,
12
12
  sessionBelongsToPrincipal,
13
13
  subscribeChatTranscript
14
- } from "./chunk-E4PFDD3N.js";
14
+ } from "./chunk-MEPWWSTD.js";
15
15
  import {
16
16
  validateRequest
17
- } from "./chunk-TPLE6SNY.js";
17
+ } from "./chunk-KFNG72W7.js";
18
18
  import {
19
19
  getOperation
20
- } from "./chunk-B35L45HZ.js";
20
+ } from "./chunk-DC5OBZS3.js";
21
21
  import {
22
22
  CorrectionContractError,
23
23
  EngramAccessInputError
24
- } from "./chunk-UETBEHBA.js";
24
+ } from "./chunk-VX2RYM2K.js";
25
25
  import {
26
26
  isTrustZoneName
27
27
  } from "./chunk-JGSKJHF7.js";
28
28
  import {
29
29
  projectTagProjectId
30
- } from "./chunk-W3M34XT4.js";
30
+ } from "./chunk-GECEETQ3.js";
31
31
  import {
32
32
  subscribeGraphEvents
33
33
  } from "./chunk-DEUNUKTD.js";
@@ -1767,7 +1767,7 @@ var EngramAccessHttpServer = class {
1767
1767
  if (req.method === "POST" && pathname === "/engram/v1/contradiction-scan") {
1768
1768
  void getOperation("contradiction_scan_run");
1769
1769
  const body = await this.readJsonBody(req);
1770
- const { runContradictionScan } = await import("./contradiction-scan-3FJYWS3G.js");
1770
+ const { runContradictionScan } = await import("./contradiction-scan-KO4WWCS4.js");
1771
1771
  const principal = this.resolveRequestPrincipal(req);
1772
1772
  const result = await runContradictionScan({
1773
1773
  storage: this.service.storageRef,
@@ -2627,4 +2627,4 @@ function positiveIntQueryParam(value, label) {
2627
2627
  export {
2628
2628
  EngramAccessHttpServer
2629
2629
  };
2630
- //# sourceMappingURL=chunk-WA7FECSG.js.map
2630
+ //# sourceMappingURL=chunk-6ROCH5JV.js.map
@@ -3,12 +3,12 @@ import {
3
3
  refineCompressionGuidelineCandidateSemantically,
4
4
  renderCompressionGuidelinesMarkdown
5
5
  } from "./chunk-OD4FM2U7.js";
6
- import {
7
- resolveCompressionCapabilities
8
- } from "./chunk-VSF7AAGE.js";
9
6
  import {
10
7
  log
11
8
  } from "./chunk-NU3CSQ4H.js";
9
+ import {
10
+ resolveCompressionCapabilities
11
+ } from "./chunk-VSF7AAGE.js";
12
12
 
13
13
  // src/orchestration/compression-guideline-coordinator.ts
14
14
  import { createHash } from "crypto";
@@ -283,4 +283,4 @@ export {
283
283
  CompressionGuidelineCoordinator,
284
284
  formatCompressionGuidelinesForRecall
285
285
  };
286
- //# sourceMappingURL=chunk-5QANTTY2.js.map
286
+ //# sourceMappingURL=chunk-BIAMJUUJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runPostConsolidationMaterialize
3
- } from "./chunk-SD34EK4Z.js";
3
+ } from "./chunk-FEELYTRT.js";
4
4
  import {
5
5
  discoverMemoryExtensions,
6
6
  renderExtensionsBlock,
@@ -13,12 +13,12 @@ import {
13
13
  import {
14
14
  isSemanticConsolidationLlmOperator
15
15
  } from "./chunk-G7D6GZ5J.js";
16
- import {
17
- resolvePipelineProcessingCapabilities
18
- } from "./chunk-VSF7AAGE.js";
19
16
  import {
20
17
  log
21
18
  } from "./chunk-NU3CSQ4H.js";
19
+ import {
20
+ resolvePipelineProcessingCapabilities
21
+ } from "./chunk-VSF7AAGE.js";
22
22
 
23
23
  // src/semantic-consolidation.ts
24
24
  function findSimilarClusters(memories, config) {
@@ -220,4 +220,4 @@ export {
220
220
  buildExtensionsBlockForConsolidation,
221
221
  materializeAfterSemanticConsolidation
222
222
  };
223
- //# sourceMappingURL=chunk-IKHKHADN.js.map
223
+ //# sourceMappingURL=chunk-C4LNKQ3M.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  EngramAccessInputError
3
- } from "./chunk-UETBEHBA.js";
3
+ } from "./chunk-VX2RYM2K.js";
4
4
  import {
5
5
  expandTildePath
6
6
  } from "./chunk-EYIEWJNI.js";
@@ -130,4 +130,4 @@ export {
130
130
  listRegisteredOperations,
131
131
  __resetRegistryForTest
132
132
  };
133
- //# sourceMappingURL=chunk-B35L45HZ.js.map
133
+ //# sourceMappingURL=chunk-DC5OBZS3.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-7FL4CNPV.js";
4
4
  import {
5
5
  resolveCausalTrajectoryStoreDir
6
- } from "./chunk-SQNED75R.js";
6
+ } from "./chunk-V5UV7BOA.js";
7
7
  import {
8
8
  normalizeRecallTokens
9
9
  } from "./chunk-ZBJMUXZH.js";
@@ -339,4 +339,4 @@ export {
339
339
  scoreStitchCandidate,
340
340
  stitchCausalChain
341
341
  };
342
- //# sourceMappingURL=chunk-ORAK3LNZ.js.map
342
+ //# sourceMappingURL=chunk-ER3CCWK2.js.map
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-3UXOZBHV.js";
8
8
  import {
9
9
  StorageManager
10
- } from "./chunk-ZBVQ4ZM4.js";
11
- import {
12
- isSafeRouteNamespace
13
- } from "./chunk-U3PN77QT.js";
10
+ } from "./chunk-YGNQG4Q6.js";
14
11
  import {
15
12
  log
16
13
  } from "./chunk-NU3CSQ4H.js";
14
+ import {
15
+ isSafeRouteNamespace
16
+ } from "./chunk-U3PN77QT.js";
17
17
 
18
18
  // src/connectors/codex-materialize-runner.ts
19
19
  import { existsSync } from "fs";
@@ -118,4 +118,4 @@ export {
118
118
  runCodexMaterialize,
119
119
  runPostConsolidationMaterialize
120
120
  };
121
- //# sourceMappingURL=chunk-SD34EK4Z.js.map
121
+ //# sourceMappingURL=chunk-FEELYTRT.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-WEHSQBFR.js";
7
7
  import {
8
8
  encryptCapsuleFile
9
- } from "./chunk-X7Y7WX73.js";
9
+ } from "./chunk-437S3G37.js";
10
10
  import {
11
11
  CAPSULE_SCHEMA_VERSION,
12
12
  EXPORT_FORMAT
@@ -261,4 +261,4 @@ export {
261
261
  exportCapsule,
262
262
  isValidCapsuleSince
263
263
  };
264
- //# sourceMappingURL=chunk-KQAFEZQX.js.map
264
+ //# sourceMappingURL=chunk-FLVL4L3L.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- validateRouteTarget
3
- } from "./chunk-U3PN77QT.js";
4
1
  import {
5
2
  log
6
3
  } from "./chunk-NU3CSQ4H.js";
4
+ import {
5
+ validateRouteTarget
6
+ } from "./chunk-U3PN77QT.js";
7
7
 
8
8
  // src/routing/store.ts
9
9
  import { lstat, mkdir, readFile, realpath, rename, rm, rmdir, stat, writeFile } from "fs/promises";
@@ -306,4 +306,4 @@ var RoutingRulesStore = class {
306
306
  export {
307
307
  RoutingRulesStore
308
308
  };
309
- //# sourceMappingURL=chunk-WIWPSQYU.js.map
309
+ //# sourceMappingURL=chunk-FXRFFYWD.js.map
@@ -5,6 +5,9 @@ import {
5
5
  import {
6
6
  launchProcessSync
7
7
  } from "./chunk-O75CRYGF.js";
8
+ import {
9
+ expandTildePath
10
+ } from "./chunk-EYIEWJNI.js";
8
11
  import {
9
12
  canReadNamespace,
10
13
  canWriteNamespace,
@@ -18,9 +21,6 @@ import {
18
21
  import {
19
22
  resolveNamespaceCapabilities
20
23
  } from "./chunk-VSF7AAGE.js";
21
- import {
22
- expandTildePath
23
- } from "./chunk-EYIEWJNI.js";
24
24
 
25
25
  // src/coding/git-context.ts
26
26
  import path from "path";
@@ -772,4 +772,4 @@ export {
772
772
  resolveNamespaceFromStorageDir,
773
773
  resolveWritableNamespaceValue
774
774
  };
775
- //# sourceMappingURL=chunk-W3M34XT4.js.map
775
+ //# sourceMappingURL=chunk-GECEETQ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  StorageManager
3
- } from "./chunk-ZBVQ4ZM4.js";
3
+ } from "./chunk-YGNQG4Q6.js";
4
4
 
5
5
  // src/semantic-rule-promotion.ts
6
6
  import { createHash, randomUUID } from "crypto";
@@ -529,4 +529,4 @@ export {
529
529
  setSemanticRulePromotionTestHooks,
530
530
  promoteSemanticRuleFromMemory
531
531
  };
532
- //# sourceMappingURL=chunk-WWSXVOGY.js.map
532
+ //# sourceMappingURL=chunk-GFGYHLON.js.map
@@ -17,6 +17,58 @@ import {
17
17
  __export
18
18
  } from "./chunk-PZ5AY32C.js";
19
19
 
20
+ // src/secure-store/keyring.ts
21
+ var keyring_exports = {};
22
+ __export(keyring_exports, {
23
+ getKey: () => getKey,
24
+ lock: () => lock,
25
+ lockAll: () => lockAll,
26
+ size: () => size,
27
+ status: () => status,
28
+ unlock: () => unlock
29
+ });
30
+ var ENTRIES = /* @__PURE__ */ new Map();
31
+ function unlock(id, key, now = () => /* @__PURE__ */ new Date()) {
32
+ if (typeof id !== "string" || id.length === 0) {
33
+ throw new Error("keyring id must be a non-empty string");
34
+ }
35
+ if (!Buffer.isBuffer(key) || key.length !== 32) {
36
+ throw new Error(`keyring key must be a 32-byte Buffer, got length=${key?.length ?? "non-buffer"}`);
37
+ }
38
+ const existing = ENTRIES.get(id);
39
+ if (existing) {
40
+ existing.key.fill(0);
41
+ }
42
+ ENTRIES.set(id, { key, unlockedAt: now().toISOString() });
43
+ }
44
+ function getKey(id) {
45
+ const entry = ENTRIES.get(id);
46
+ return entry ? entry.key : null;
47
+ }
48
+ function lock(id) {
49
+ const entry = ENTRIES.get(id);
50
+ if (!entry) return false;
51
+ entry.key.fill(0);
52
+ ENTRIES.delete(id);
53
+ return true;
54
+ }
55
+ function lockAll() {
56
+ for (const entry of ENTRIES.values()) {
57
+ entry.key.fill(0);
58
+ }
59
+ ENTRIES.clear();
60
+ }
61
+ function status(id) {
62
+ const entry = ENTRIES.get(id);
63
+ if (!entry) {
64
+ return { unlocked: false, unlockedAt: null };
65
+ }
66
+ return { unlocked: true, unlockedAt: entry.unlockedAt };
67
+ }
68
+ function size() {
69
+ return ENTRIES.size;
70
+ }
71
+
20
72
  // src/secure-store/header.ts
21
73
  import { mkdir, readFile, writeFile } from "fs/promises";
22
74
  import path from "path";
@@ -213,59 +265,12 @@ function buildHeaderFromPassphrase(options) {
213
265
  return { header, derivedKey };
214
266
  }
215
267
 
216
- // src/secure-store/keyring.ts
217
- var keyring_exports = {};
218
- __export(keyring_exports, {
219
- getKey: () => getKey,
220
- lock: () => lock,
221
- lockAll: () => lockAll,
222
- size: () => size,
223
- status: () => status,
224
- unlock: () => unlock
225
- });
226
- var ENTRIES = /* @__PURE__ */ new Map();
227
- function unlock(id, key, now = () => /* @__PURE__ */ new Date()) {
228
- if (typeof id !== "string" || id.length === 0) {
229
- throw new Error("keyring id must be a non-empty string");
230
- }
231
- if (!Buffer.isBuffer(key) || key.length !== 32) {
232
- throw new Error(`keyring key must be a 32-byte Buffer, got length=${key?.length ?? "non-buffer"}`);
233
- }
234
- const existing = ENTRIES.get(id);
235
- if (existing) {
236
- existing.key.fill(0);
237
- }
238
- ENTRIES.set(id, { key, unlockedAt: now().toISOString() });
239
- }
240
- function getKey(id) {
241
- const entry = ENTRIES.get(id);
242
- return entry ? entry.key : null;
243
- }
244
- function lock(id) {
245
- const entry = ENTRIES.get(id);
246
- if (!entry) return false;
247
- entry.key.fill(0);
248
- ENTRIES.delete(id);
249
- return true;
250
- }
251
- function lockAll() {
252
- for (const entry of ENTRIES.values()) {
253
- entry.key.fill(0);
254
- }
255
- ENTRIES.clear();
256
- }
257
- function status(id) {
258
- const entry = ENTRIES.get(id);
259
- if (!entry) {
260
- return { unlocked: false, unlockedAt: null };
261
- }
262
- return { unlocked: true, unlockedAt: entry.unlockedAt };
263
- }
264
- function size() {
265
- return ENTRIES.size;
266
- }
267
-
268
268
  export {
269
+ unlock,
270
+ getKey,
271
+ lock,
272
+ status,
273
+ keyring_exports,
269
274
  SECURE_STORE_DIR_NAME,
270
275
  HEADER_FILENAME,
271
276
  HEADER_FORMAT,
@@ -280,11 +285,6 @@ export {
280
285
  deriveKeyFromHeader,
281
286
  readHeader,
282
287
  writeHeader,
283
- buildHeaderFromPassphrase,
284
- unlock,
285
- getKey,
286
- lock,
287
- status,
288
- keyring_exports
288
+ buildHeaderFromPassphrase
289
289
  };
290
- //# sourceMappingURL=chunk-BJMBJZ2Y.js.map
290
+ //# sourceMappingURL=chunk-GWTFLF2P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/secure-store/keyring.ts","../src/secure-store/header.ts"],"sourcesContent":["/**\n * In-memory keyring for the secure-store module (issue #690 PR 2/4).\n *\n * Holds derived AES-256-GCM master keys for unlocked stores. The\n * keyring is process-local: keys are NEVER persisted to disk, never\n * logged, and never serialized. A daemon restart re-locks every\n * registered store.\n *\n * Scoping\n * -------\n * Entries are keyed by a stable string id (typically the absolute\n * path to the secure-store directory, after `~` expansion). This\n * lets multiple memory roots share a single daemon process without\n * one store's key bleeding into another (matches the per-`serviceId`\n * scoping discipline called out in CLAUDE.md gotcha #11).\n *\n * Lifecycle\n * ---------\n * - `unlock(id, key)` — register a derived key.\n * - `getKey(id)` — read a registered key (or `null`).\n * - `lock(id)` — clear a single entry, zeroing the key bytes.\n * - `lockAll()` — clear every entry, zeroing every key.\n * - `status(id)` — non-secret status snapshot for `secure-store\n * status`.\n *\n * Zeroization\n * -----------\n * `lock` and `lockAll` overwrite the key buffer with zeros before\n * dropping the reference. The JS engine may keep additional copies\n * outside our control; this is best-effort hygiene, not a defense\n * against memory-dump attacks.\n */\n\nconst ENTRIES = new Map<string, KeyringEntry>();\n\n/** A single unlocked store. The key buffer is never copied out. */\ninterface KeyringEntry {\n key: Buffer;\n unlockedAt: string;\n}\n\n/** Status snapshot — no secret material. */\nexport interface KeyringStatus {\n /** True iff a key is currently registered for this id. */\n unlocked: boolean;\n /** ISO-8601 timestamp the key was registered, or null when locked. */\n unlockedAt: string | null;\n}\n\n/**\n * Register a derived key for the given id. If an entry already\n * exists, its old key is zeroed before being replaced.\n *\n * The caller MUST pass an exclusive 32-byte buffer; the keyring\n * takes ownership and will zero it on lock.\n */\nexport function unlock(id: string, key: Buffer, now: () => Date = () => new Date()): void {\n if (typeof id !== \"string\" || id.length === 0) {\n throw new Error(\"keyring id must be a non-empty string\");\n }\n if (!Buffer.isBuffer(key) || key.length !== 32) {\n throw new Error(`keyring key must be a 32-byte Buffer, got length=${key?.length ?? \"non-buffer\"}`);\n }\n const existing = ENTRIES.get(id);\n if (existing) {\n existing.key.fill(0);\n }\n ENTRIES.set(id, { key, unlockedAt: now().toISOString() });\n}\n\n/** Read the registered key for `id`, or `null` if locked. */\nexport function getKey(id: string): Buffer | null {\n const entry = ENTRIES.get(id);\n return entry ? entry.key : null;\n}\n\n/** Clear a single entry. Zeros the underlying buffer. Returns true if cleared. */\nexport function lock(id: string): boolean {\n const entry = ENTRIES.get(id);\n if (!entry) return false;\n entry.key.fill(0);\n ENTRIES.delete(id);\n return true;\n}\n\n/** Clear every registered key. Used on shutdown or for tests. */\nexport function lockAll(): void {\n for (const entry of ENTRIES.values()) {\n entry.key.fill(0);\n }\n ENTRIES.clear();\n}\n\n/** Non-secret status snapshot. */\nexport function status(id: string): KeyringStatus {\n const entry = ENTRIES.get(id);\n if (!entry) {\n return { unlocked: false, unlockedAt: null };\n }\n return { unlocked: true, unlockedAt: entry.unlockedAt };\n}\n\n/** Test-only helper: how many entries are currently registered. */\nexport function size(): number {\n return ENTRIES.size;\n}\n","/**\n * On-disk header for an initialized secure-store (issue #690 PR 2/4).\n *\n * The header file is the persistent record that a memory directory\n * has had `remnic secure-store init` run against it. It is a JSON\n * file at `<memoryDir>/.secure-store/header.json` with two parts:\n *\n * 1. The KDF metadata from PR 1/4 (`SecureStoreMetadata`) —\n * algorithm, params, and salt. Public; safe to read/copy.\n * 2. A \"verifier\" — a tiny AES-GCM-encrypted envelope sealed under\n * the derived key at init time. Unlock re-derives the key from\n * the entered passphrase and tries to `open()` the verifier; if\n * the auth tag validates, the passphrase is correct.\n *\n * Why a verifier?\n * ---------------\n * Without one, \"wrong passphrase\" can only be detected when the\n * daemon tries to decrypt actual memory data — too late for a\n * useful CLI error. The verifier gives the unlock command a fast,\n * data-independent passphrase check.\n *\n * The verifier plaintext is a fixed magic string (no secret content).\n * Its only role is to be sealable + openable; the auth-tag check is\n * what proves the key.\n *\n * Naming\n * ------\n * Directory: `.secure-store/` (leading dot — hidden, hints at\n * sensitivity). File: `header.json`. Avoids collision with\n * `.secure-store-metadata.json` from PR 1/4 docs since the header\n * is a strict superset.\n */\n\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\n\nimport { open, seal } from \"./cipher.js\";\nimport {\n KDF_KEY_LENGTH,\n KDF_SALT_LENGTH,\n deriveKey,\n type Argon2idParams,\n type ScryptParams,\n} from \"./kdf.js\";\nimport {\n buildMetadata,\n decodeMetadataSalt,\n parseMetadata,\n serializeMetadata,\n type SecureStoreMetadata,\n} from \"./metadata.js\";\n\n/** Subdirectory under `memoryDir` that holds the header + future state. */\nexport const SECURE_STORE_DIR_NAME = \".secure-store\";\n\n/** Header filename. Stable name so operators can locate it. */\nexport const HEADER_FILENAME = \"header.json\";\n\n/** Stable identifier so the file shape is sniffable without parsing JSON. */\nexport const HEADER_FORMAT = \"remnic.secure-store.header\" as const;\n\n/** Current header format version. Bump on breaking schema changes. */\nexport const HEADER_FORMAT_VERSION = 1 as const;\n\n/**\n * Magic bytes sealed under the master key at init time. Constant\n * across stores — there's no value in randomizing it because the\n * salt + IV + auth tag already make every verifier envelope unique.\n *\n * The string never appears in plaintext on disk; it only exists\n * inside an AES-GCM-sealed envelope. Its job is purely to give the\n * cipher something to authenticate.\n */\nexport const VERIFIER_PLAINTEXT = Buffer.from(\"remnic-secure-store-v1\", \"utf8\");\n\n/** AAD bound into the verifier envelope. */\nconst VERIFIER_AAD = Buffer.from(\"remnic-secure-store/verifier\", \"utf8\");\n\nexport interface SecureStoreHeader {\n format: typeof HEADER_FORMAT;\n formatVersion: number;\n /** KDF metadata (algorithm + params + salt). */\n metadata: SecureStoreMetadata;\n /** Hex-encoded sealed envelope. */\n verifier: string;\n /** ISO-8601 timestamp recorded at init time. */\n createdAt: string;\n}\n\n/** Resolve the canonical secure-store directory for a memory root. */\nexport function secureStoreDir(memoryDir: string): string {\n return path.join(memoryDir, SECURE_STORE_DIR_NAME);\n}\n\n/** Resolve the canonical header path for a memory root. */\nexport function headerPath(memoryDir: string): string {\n return path.join(secureStoreDir(memoryDir), HEADER_FILENAME);\n}\n\n/**\n * Build a `SecureStoreHeader` in memory from an already-derived key\n * and metadata. Pure: does not touch the filesystem. The clock is\n * read once if `createdAt` is omitted.\n */\nexport function buildHeader(options: {\n metadata: SecureStoreMetadata;\n derivedKey: Buffer;\n createdAt?: string;\n}): SecureStoreHeader {\n const { metadata, derivedKey } = options;\n if (!Buffer.isBuffer(derivedKey) || derivedKey.length !== KDF_KEY_LENGTH) {\n throw new Error(\n `derivedKey must be a ${KDF_KEY_LENGTH}-byte Buffer, got length=${derivedKey?.length ?? \"non-buffer\"}`,\n );\n }\n const salt = decodeMetadataSalt(metadata);\n if (salt.length !== KDF_SALT_LENGTH) {\n throw new Error(`metadata salt is ${salt.length} bytes, expected ${KDF_SALT_LENGTH}`);\n }\n const envelope = seal(derivedKey, salt, VERIFIER_PLAINTEXT, { aad: VERIFIER_AAD });\n return {\n format: HEADER_FORMAT,\n formatVersion: HEADER_FORMAT_VERSION,\n metadata,\n verifier: envelope.toString(\"hex\"),\n createdAt: options.createdAt ?? new Date().toISOString(),\n };\n}\n\n/** Stable JSON serialization with locked top-level key order. */\nexport function serializeHeader(header: SecureStoreHeader): string {\n validateHeader(header);\n // Inline metadata as a parsed object so it shares the same\n // canonical key ordering as the standalone metadata file.\n const metadataString = serializeMetadata(header.metadata);\n const metadataObject = JSON.parse(metadataString) as Record<string, unknown>;\n const ordered = {\n format: header.format,\n formatVersion: header.formatVersion,\n metadata: metadataObject,\n verifier: header.verifier,\n createdAt: header.createdAt,\n };\n return JSON.stringify(ordered, null, 2);\n}\n\n/** Parse a header JSON string. Throws on any structural problem. */\nexport function parseHeader(json: string): SecureStoreHeader {\n if (typeof json !== \"string\") {\n throw new Error(\"header input must be a string\");\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(json);\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n throw new Error(`header is not valid JSON: ${msg}`);\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n throw new Error(\"header must be a JSON object\");\n }\n const obj = parsed as Record<string, unknown>;\n if (obj.format !== HEADER_FORMAT) {\n throw new Error(\n `unexpected header format: ${String(obj.format)} (expected ${HEADER_FORMAT})`,\n );\n }\n if (obj.formatVersion !== HEADER_FORMAT_VERSION) {\n throw new Error(\n `unsupported header formatVersion: ${String(obj.formatVersion)} (this build supports ${HEADER_FORMAT_VERSION})`,\n );\n }\n if (typeof obj.verifier !== \"string\" || obj.verifier.length === 0) {\n throw new Error(\"header.verifier must be a non-empty hex string\");\n }\n if (!/^[0-9a-fA-F]+$/.test(obj.verifier)) {\n throw new Error(\"header.verifier must be a hex-encoded string\");\n }\n // Codex P2 on PR #737: odd-length hex strings produce a malformed\n // Buffer via `Buffer.from(hex, \"hex\")` — Node silently truncates the\n // trailing nibble, yielding a buffer that is one byte shorter than\n // expected. Reject odd-length strings before they reach the cipher.\n if (obj.verifier.length % 2 !== 0) {\n throw new Error(\n \"header.verifier hex string must have even length (each byte encodes as two hex digits)\",\n );\n }\n if (typeof obj.createdAt !== \"string\" || obj.createdAt.length === 0) {\n throw new Error(\"header.createdAt must be a non-empty string\");\n }\n if (typeof obj.metadata !== \"object\" || obj.metadata === null) {\n throw new Error(\"header.metadata must be an object\");\n }\n // Reuse the metadata parser for nested validation. We re-stringify\n // the nested object and feed it through `parseMetadata` so any\n // schema drift is caught in one place.\n const metadata = parseMetadata(JSON.stringify(obj.metadata));\n const header: SecureStoreHeader = {\n format: HEADER_FORMAT,\n formatVersion: HEADER_FORMAT_VERSION,\n metadata,\n verifier: obj.verifier,\n createdAt: obj.createdAt,\n };\n validateHeader(header);\n return header;\n}\n\n/** Validate a header object's invariants. Throws on the first problem. */\nexport function validateHeader(header: SecureStoreHeader): void {\n if (header.format !== HEADER_FORMAT) {\n throw new Error(`header.format must be ${HEADER_FORMAT}`);\n }\n if (header.formatVersion !== HEADER_FORMAT_VERSION) {\n throw new Error(`header.formatVersion must be ${HEADER_FORMAT_VERSION}`);\n }\n if (typeof header.createdAt !== \"string\" || header.createdAt.length === 0) {\n throw new Error(\"header.createdAt must be a non-empty ISO-8601 string\");\n }\n if (typeof header.verifier !== \"string\" || header.verifier.length === 0) {\n throw new Error(\"header.verifier must be a non-empty hex string\");\n }\n if (!/^[0-9a-fA-F]+$/.test(header.verifier)) {\n throw new Error(\"header.verifier must be a hex-encoded string\");\n }\n // Enforce even length: odd-length hex is silently truncated by\n // `Buffer.from(hex, \"hex\")` which yields a malformed envelope.\n if (header.verifier.length % 2 !== 0) {\n throw new Error(\n \"header.verifier hex string must have even length (each byte encodes as two hex digits)\",\n );\n }\n // The nested metadata object is already validated by `parseMetadata`\n // when read from disk; on the build path, `buildHeader` constructs\n // it via `buildMetadata`. We still re-run shape validation here as\n // a belt-and-braces guard for callers that hand-construct headers.\n if (header.metadata.format !== \"remnic.secure-store.metadata\") {\n throw new Error(\"header.metadata.format must be remnic.secure-store.metadata\");\n }\n}\n\n/**\n * Verify a candidate key against the header's verifier envelope.\n *\n * Returns true iff the AES-GCM auth tag validates. Wrong passphrase,\n * tampered envelope, and tampered AAD all return false.\n */\nexport function verifyKey(header: SecureStoreHeader, candidateKey: Buffer): boolean {\n if (!Buffer.isBuffer(candidateKey) || candidateKey.length !== KDF_KEY_LENGTH) {\n return false;\n }\n const envelope = Buffer.from(header.verifier, \"hex\");\n try {\n const plaintext = open(candidateKey, envelope, { aad: VERIFIER_AAD });\n return plaintext.equals(VERIFIER_PLAINTEXT);\n } catch {\n return false;\n }\n}\n\n/**\n * Derive a key from the passphrase using the algorithm + params +\n * salt recorded in the header. Pure: no I/O.\n */\nexport function deriveKeyFromHeader(header: SecureStoreHeader, passphrase: string): Buffer {\n const salt = decodeMetadataSalt(header.metadata);\n // Cursor low on PR #737: a previous version branched on the\n // algorithm and returned `header.metadata.kdf.params` from both\n // arms — a no-op conditional. Pass the discriminated union member\n // through directly; `deriveKey` performs the algorithm dispatch.\n const params: ScryptParams | Argon2idParams = header.metadata.kdf.params;\n return deriveKey(header.metadata.kdf.algorithm, passphrase, salt, params);\n}\n\n/**\n * Read and parse the header at `<memoryDir>/.secure-store/header.json`.\n * Returns `null` if the file does not exist; throws on malformed\n * content.\n */\nexport async function readHeader(memoryDir: string): Promise<SecureStoreHeader | null> {\n const target = headerPath(memoryDir);\n let raw: string;\n try {\n raw = await readFile(target, \"utf8\");\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === \"ENOENT\") {\n return null;\n }\n throw e;\n }\n return parseHeader(raw);\n}\n\n/**\n * Write the header with atomic exclusive-create semantics.\n *\n * Uses the `wx` flag (`O_CREAT | O_EXCL`) so the OS rejects the call\n * atomically when the file already exists. Two concurrent\n * `secure-store init` invocations cannot both observe \"missing\" and\n * race to overwrite each other — the second writer reliably gets\n * `EEXIST` and surfaces \"Refusing to overwrite\".\n *\n * Codex P1 on PR #737: a previous version pre-checked existence with\n * `readFile` then `writeFile`+`rename`, which is a check-then-act\n * race. The `wx` flag closes that window at the kernel layer.\n *\n * Crash safety: if the write is interrupted mid-flight, a partial\n * `header.json` may remain on disk. `parseHeader` rejects partial\n * files cleanly and the operator can delete the stub and retry. We\n * don't use temp+rename here because (a) headers are tiny (≤ 1 KiB),\n * (b) there is no prior valid file to destroy, and (c) `wx` already\n * gives us atomic exclusivity — the rename trick (CLAUDE.md gotcha\n * #54) is for replacing an existing valid file, which is exactly the\n * scenario this function refuses.\n */\nexport async function writeHeader(memoryDir: string, header: SecureStoreHeader): Promise<string> {\n validateHeader(header);\n const dir = secureStoreDir(memoryDir);\n await mkdir(dir, { recursive: true });\n const target = headerPath(memoryDir);\n try {\n await writeFile(target, serializeHeader(header), {\n encoding: \"utf8\",\n mode: 0o600,\n flag: \"wx\",\n });\n } catch (e) {\n if ((e as NodeJS.ErrnoException).code === \"EEXIST\") {\n throw new Error(\n `secure-store header already exists at ${target}. Refusing to overwrite — initialize a fresh store or remove the existing header explicitly.`,\n );\n }\n throw e;\n }\n return target;\n}\n\n/** Convenience: build metadata + header in one call from a passphrase. */\nexport function buildHeaderFromPassphrase(options: {\n passphrase: string;\n salt: Buffer;\n /** Optional override; defaults to Argon2id with `DEFAULT_ARGON2ID_PARAMS`. */\n algorithm?: \"scrypt\" | \"argon2id\";\n params?: ScryptParams | Argon2idParams;\n createdAt?: string;\n note?: string;\n}): { header: SecureStoreHeader; derivedKey: Buffer } {\n const { passphrase, salt } = options;\n const algorithm = options.algorithm ?? \"argon2id\";\n const metadataOpts: {\n algorithm: \"scrypt\" | \"argon2id\";\n salt: Buffer;\n params?: ScryptParams | Argon2idParams;\n createdAt?: string;\n note?: string;\n } = { algorithm, salt };\n if (options.params !== undefined) metadataOpts.params = options.params;\n if (options.createdAt !== undefined) metadataOpts.createdAt = options.createdAt;\n if (options.note !== undefined) metadataOpts.note = options.note;\n const metadata = buildMetadata(metadataOpts);\n // Cursor low on PR #737: same identical-branches ternary as in\n // `deriveKeyFromHeader`. The discriminated union already carries\n // the right shape; `deriveKey` dispatches on `algorithm`.\n const params: ScryptParams | Argon2idParams = metadata.kdf.params;\n const derivedKey = deriveKey(algorithm, passphrase, salt, params);\n const headerOpts: { metadata: SecureStoreMetadata; derivedKey: Buffer; createdAt?: string } = {\n metadata,\n derivedKey,\n };\n if (options.createdAt !== undefined) headerOpts.createdAt = options.createdAt;\n const header = buildHeader(headerOpts);\n return { header, derivedKey };\n}\n"],"mappings":"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","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-SFQ6QNL7.js";
7
7
  import {
8
8
  StorageManager
9
- } from "./chunk-ZBVQ4ZM4.js";
9
+ } from "./chunk-YGNQG4Q6.js";
10
10
  import {
11
11
  buildLifecycleEventsForMemory,
12
12
  sortMemoryLifecycleEvents
@@ -74,4 +74,4 @@ export {
74
74
  backupExistingLedger,
75
75
  rebuildMemoryLifecycleLedger
76
76
  };
77
- //# sourceMappingURL=chunk-WOX2UW4K.js.map
77
+ //# sourceMappingURL=chunk-IBPEVGP5.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  scanSignals
3
3
  } from "./chunk-H3FZVNRN.js";
4
- import {
5
- resolvePresentationCapabilities
6
- } from "./chunk-VSF7AAGE.js";
7
4
  import {
8
5
  log
9
6
  } from "./chunk-NU3CSQ4H.js";
7
+ import {
8
+ resolvePresentationCapabilities
9
+ } from "./chunk-VSF7AAGE.js";
10
10
 
11
11
  // src/buffer.ts
12
12
  var MAX_BUFFER_ENTRY_COUNT = 200;
@@ -609,4 +609,4 @@ function probeWithTimeout(inflight, timeoutMs) {
609
609
  export {
610
610
  SmartBuffer
611
611
  };
612
- //# sourceMappingURL=chunk-JZ7P26GF.js.map
612
+ //# sourceMappingURL=chunk-IQWFWSCP.js.map
@@ -1,24 +1,24 @@
1
1
  import {
2
2
  SharedFeedbackEntrySchema,
3
3
  resolveSharedContextDir
4
- } from "./chunk-JRZV3767.js";
4
+ } from "./chunk-33NX5BLR.js";
5
5
  import {
6
6
  StorageManager
7
- } from "./chunk-ZBVQ4ZM4.js";
7
+ } from "./chunk-YGNQG4Q6.js";
8
8
  import {
9
9
  parseContinuityImprovementLoops
10
10
  } from "./chunk-LDXUBPMO.js";
11
- import {
12
- resolveConsolidationCapabilities,
13
- resolveConversationContextCapabilities,
14
- resolveQmdCapabilities
15
- } from "./chunk-VSF7AAGE.js";
16
11
  import {
17
12
  sanitizeMemoryContent
18
13
  } from "./chunk-5GKPFL3S.js";
19
14
  import {
20
15
  log
21
16
  } from "./chunk-NU3CSQ4H.js";
17
+ import {
18
+ resolveConsolidationCapabilities,
19
+ resolveConversationContextCapabilities,
20
+ resolveQmdCapabilities
21
+ } from "./chunk-VSF7AAGE.js";
22
22
 
23
23
  // src/compounding/engine.ts
24
24
  import { createHash } from "crypto";
@@ -1276,4 +1276,4 @@ export {
1276
1276
  defaultTierMigrationCycleBudget,
1277
1277
  CompoundingEngine
1278
1278
  };
1279
- //# sourceMappingURL=chunk-6SXNQFHB.js.map
1279
+ //# sourceMappingURL=chunk-J2JB6BHT.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-TBBDFYXW.js";
4
4
  import {
5
5
  StorageManager
6
- } from "./chunk-ZBVQ4ZM4.js";
6
+ } from "./chunk-YGNQG4Q6.js";
7
7
  import {
8
8
  assertPathInsideRoot
9
9
  } from "./chunk-5GPPACXK.js";
@@ -751,4 +751,4 @@ export {
751
751
  listMemoryGovernanceRuns,
752
752
  readMemoryGovernanceRunArtifact
753
753
  };
754
- //# sourceMappingURL=chunk-K2JM4DZZ.js.map
754
+ //# sourceMappingURL=chunk-JHZ3LEM7.js.map