@remnic/core 9.3.613 → 9.3.615

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 (386) hide show
  1. package/dist/access-cli.js +59 -58
  2. package/dist/access-cli.js.map +1 -1
  3. package/dist/access-http.d.ts +4 -2
  4. package/dist/access-http.js +23 -23
  5. package/dist/access-mcp.d.ts +9 -2
  6. package/dist/access-mcp.js +20 -20
  7. package/dist/access-schema.d.ts +26 -14
  8. package/dist/access-schema.js +3 -3
  9. package/dist/{access-service-D2J9dh_9.d.ts → access-service-CBNEKjzN.d.ts} +71 -6
  10. package/dist/access-service.d.ts +2 -2
  11. package/dist/access-service.js +17 -17
  12. package/dist/active-recall.js +20 -3
  13. package/dist/active-recall.js.map +1 -1
  14. package/dist/adapters/index.js +4 -4
  15. package/dist/adapters/registry.js +2 -2
  16. package/dist/behavior-learner.js +2 -3
  17. package/dist/behavior-learner.js.map +1 -1
  18. package/dist/bootstrap.d.ts +1 -1
  19. package/dist/briefing.js +3 -3
  20. package/dist/buffer.d.ts +1 -1
  21. package/dist/buffer.js +1 -1
  22. package/dist/calibration.d.ts +5 -2
  23. package/dist/calibration.js +7 -5
  24. package/dist/calibration.js.map +1 -1
  25. package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
  26. package/dist/causal-consolidation.d.ts +8 -2
  27. package/dist/causal-consolidation.js +13 -11
  28. package/dist/causal-consolidation.js.map +1 -1
  29. package/dist/{chunk-3BP57I6J.js → chunk-2F6NP3NT.js} +2 -1
  30. package/dist/{chunk-3BP57I6J.js.map → chunk-2F6NP3NT.js.map} +1 -1
  31. package/dist/{chunk-AU7Q3LSC.js → chunk-2QSZNTDO.js} +4 -4
  32. package/dist/{chunk-HSVJGWYS.js → chunk-2ROPI5OE.js} +2 -2
  33. package/dist/{chunk-C4SQJZAF.js → chunk-2SGJY2UY.js} +6 -3
  34. package/dist/chunk-2SGJY2UY.js.map +1 -0
  35. package/dist/{chunk-ZDTVJXIP.js → chunk-3MAONBX3.js} +13 -5
  36. package/dist/chunk-3MAONBX3.js.map +1 -0
  37. package/dist/{chunk-G3Z3QEF5.js → chunk-3PY7VHV7.js} +2 -2
  38. package/dist/chunk-3PY7VHV7.js.map +1 -0
  39. package/dist/{chunk-CF3ZF2YU.js → chunk-3QSU4NFF.js} +3 -3
  40. package/dist/{chunk-AJA46VX5.js → chunk-3T74IZB3.js} +11 -2
  41. package/dist/chunk-3T74IZB3.js.map +1 -0
  42. package/dist/{chunk-KVEVLBKC.js → chunk-4HFJQCJZ.js} +13 -8
  43. package/dist/chunk-4HFJQCJZ.js.map +1 -0
  44. package/dist/{chunk-KGK2QKWL.js → chunk-4R4KTDIE.js} +1 -1
  45. package/dist/chunk-4R4KTDIE.js.map +1 -0
  46. package/dist/{chunk-OI27U2HT.js → chunk-5BTCT236.js} +2 -2
  47. package/dist/{chunk-TH67Q46T.js → chunk-5OHHEORR.js} +64 -21
  48. package/dist/chunk-5OHHEORR.js.map +1 -0
  49. package/dist/{chunk-CO7ZO4TU.js → chunk-5VDJMYTF.js} +2 -2
  50. package/dist/{chunk-BFBF3XEF.js → chunk-6BDVBBBY.js} +33 -25
  51. package/dist/{chunk-BFBF3XEF.js.map → chunk-6BDVBBBY.js.map} +1 -1
  52. package/dist/{chunk-EAZGEEG2.js → chunk-6L46YAEZ.js} +45 -9
  53. package/dist/chunk-6L46YAEZ.js.map +1 -0
  54. package/dist/{chunk-YFS5OEKO.js → chunk-7MLB4NCL.js} +2 -2
  55. package/dist/{chunk-LZ3VEOU5.js → chunk-AL4RAJL5.js} +22 -5
  56. package/dist/chunk-AL4RAJL5.js.map +1 -0
  57. package/dist/{chunk-557IAFPD.js → chunk-APRRL26Q.js} +2 -2
  58. package/dist/{chunk-QDDHYAKV.js → chunk-AZDOWD2L.js} +2 -2
  59. package/dist/{chunk-MLT75J5S.js → chunk-B6SU7YSE.js} +3 -3
  60. package/dist/{chunk-FXKPZ3H6.js → chunk-BPSGLMQ4.js} +2 -2
  61. package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
  62. package/dist/{chunk-NOMEVTUD.js → chunk-C6C7XVKG.js} +5 -4
  63. package/dist/chunk-C6C7XVKG.js.map +1 -0
  64. package/dist/{chunk-XKIQZXUB.js → chunk-CI7RKSRE.js} +7 -1
  65. package/dist/chunk-CI7RKSRE.js.map +1 -0
  66. package/dist/{chunk-IK34DVAC.js → chunk-CIOMS6DI.js} +2 -2
  67. package/dist/{chunk-2I5JGH3M.js → chunk-CYEPCZN5.js} +2 -2
  68. package/dist/{chunk-2I5JGH3M.js.map → chunk-CYEPCZN5.js.map} +1 -1
  69. package/dist/{chunk-JHMFYY7L.js → chunk-DCGT4FPP.js} +13 -5
  70. package/dist/chunk-DCGT4FPP.js.map +1 -0
  71. package/dist/{chunk-7DZRO2DC.js → chunk-DEPRLVLK.js} +2 -2
  72. package/dist/{chunk-CSKLPDN6.js → chunk-DEVUWMME.js} +52 -19
  73. package/dist/chunk-DEVUWMME.js.map +1 -0
  74. package/dist/{chunk-DHGSZ3UD.js → chunk-DGNQRNLL.js} +2 -2
  75. package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
  76. package/dist/{chunk-HJNQQICM.js → chunk-EXUAP5LH.js} +108 -51
  77. package/dist/chunk-EXUAP5LH.js.map +1 -0
  78. package/dist/chunk-FAV25DUZ.js +12 -0
  79. package/dist/chunk-FAV25DUZ.js.map +1 -0
  80. package/dist/{chunk-ETUPBUHB.js → chunk-GDASG7NC.js} +2 -2
  81. package/dist/{chunk-L227SKTB.js → chunk-GDB4J2H3.js} +17 -1
  82. package/dist/chunk-GDB4J2H3.js.map +1 -0
  83. package/dist/{chunk-IP73YCZP.js → chunk-GLPBYIXN.js} +4 -2
  84. package/dist/chunk-GLPBYIXN.js.map +1 -0
  85. package/dist/{chunk-4HP7HIE3.js → chunk-HP5FMB6L.js} +2 -2
  86. package/dist/{chunk-EVZFIAPG.js → chunk-IBTZEBUD.js} +23 -10
  87. package/dist/chunk-IBTZEBUD.js.map +1 -0
  88. package/dist/{chunk-DOX2CG6Y.js → chunk-IEUU7O4F.js} +2 -2
  89. package/dist/{chunk-EUML3N6B.js → chunk-IMA6GU4Y.js} +3 -3
  90. package/dist/chunk-IMA6GU4Y.js.map +1 -0
  91. package/dist/{chunk-JNANKJLN.js → chunk-JOASJWQR.js} +2 -2
  92. package/dist/chunk-JOASJWQR.js.map +1 -0
  93. package/dist/{chunk-WSGF57U2.js → chunk-JQDZQ4TB.js} +2 -2
  94. package/dist/{chunk-HINSGUA7.js → chunk-KBL3JJR6.js} +9 -13
  95. package/dist/chunk-KBL3JJR6.js.map +1 -0
  96. package/dist/{chunk-IOTENEVL.js → chunk-KGLPJROV.js} +57 -50
  97. package/dist/chunk-KGLPJROV.js.map +1 -0
  98. package/dist/{chunk-W7L6HXUC.js → chunk-LXOM6IQU.js} +2 -2
  99. package/dist/{chunk-G6R5UD3Q.js → chunk-MGN7VHWQ.js} +42 -1
  100. package/dist/{chunk-G6R5UD3Q.js.map → chunk-MGN7VHWQ.js.map} +1 -1
  101. package/dist/{chunk-DLJ4IR6M.js → chunk-MHQC2WU2.js} +2 -2
  102. package/dist/chunk-MHQC2WU2.js.map +1 -0
  103. package/dist/{chunk-5RPTH6AU.js → chunk-NM5NQYJE.js} +20 -19
  104. package/dist/chunk-NM5NQYJE.js.map +1 -0
  105. package/dist/{chunk-6JGNHWCI.js → chunk-OBIRVF36.js} +3 -3
  106. package/dist/{chunk-CHCA44C3.js → chunk-ODPLEWB6.js} +3 -3
  107. package/dist/chunk-ODPLEWB6.js.map +1 -0
  108. package/dist/{chunk-HENLZHIT.js → chunk-OIF36KGD.js} +7 -4
  109. package/dist/chunk-OIF36KGD.js.map +1 -0
  110. package/dist/{chunk-GUPISBV2.js → chunk-PP2JH3GP.js} +2 -2
  111. package/dist/{chunk-OXJBNGBK.js → chunk-PSUB67YB.js} +2 -2
  112. package/dist/{chunk-UWY7GIVS.js → chunk-PYIFUBRK.js} +45 -13
  113. package/dist/chunk-PYIFUBRK.js.map +1 -0
  114. package/dist/{chunk-KIB7SDIJ.js → chunk-Q6YIJGXJ.js} +2 -2
  115. package/dist/{chunk-ZT3EGNLR.js → chunk-QPD426WT.js} +2 -2
  116. package/dist/{chunk-RLV3PQGH.js → chunk-QVO4YOB7.js} +6 -6
  117. package/dist/{chunk-GMAG2HS4.js → chunk-RG3LBSGH.js} +46 -9
  118. package/dist/chunk-RG3LBSGH.js.map +1 -0
  119. package/dist/{chunk-XSWKORGM.js → chunk-S53OYO3F.js} +3 -1
  120. package/dist/chunk-S53OYO3F.js.map +1 -0
  121. package/dist/{chunk-YCN4BVDK.js → chunk-SCPFRKIT.js} +4 -2
  122. package/dist/chunk-SCPFRKIT.js.map +1 -0
  123. package/dist/{chunk-NZPF2SYV.js → chunk-T7N6KQGS.js} +138 -5
  124. package/dist/chunk-T7N6KQGS.js.map +1 -0
  125. package/dist/{chunk-VJXSUAO7.js → chunk-TNOWU6RP.js} +13 -10
  126. package/dist/chunk-TNOWU6RP.js.map +1 -0
  127. package/dist/{chunk-PCI747N2.js → chunk-TZVQQTG4.js} +48 -19
  128. package/dist/chunk-TZVQQTG4.js.map +1 -0
  129. package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
  130. package/dist/{chunk-IK7DCC5H.js → chunk-VMGLYN42.js} +2 -2
  131. package/dist/{chunk-KM2A35EO.js → chunk-WB3LYXC5.js} +11 -7
  132. package/dist/chunk-WB3LYXC5.js.map +1 -0
  133. package/dist/{chunk-PPPZY2EU.js → chunk-WD2W4234.js} +9 -3
  134. package/dist/chunk-WD2W4234.js.map +1 -0
  135. package/dist/{chunk-NSKYFGDL.js → chunk-X4QQB7O6.js} +2 -2
  136. package/dist/{chunk-HPWVAEET.js → chunk-X6IRLNOO.js} +3 -7
  137. package/dist/chunk-X6IRLNOO.js.map +1 -0
  138. package/dist/{chunk-46GJIW5M.js → chunk-XAZOWLW4.js} +5 -5
  139. package/dist/{chunk-46GJIW5M.js.map → chunk-XAZOWLW4.js.map} +1 -1
  140. package/dist/{chunk-XPSVGJYA.js → chunk-YRMKDTKF.js} +12 -9
  141. package/dist/chunk-YRMKDTKF.js.map +1 -0
  142. package/dist/{chunk-6ZZP4EJF.js → chunk-ZJR7VG5L.js} +3 -3
  143. package/dist/{chunk-6ZZP4EJF.js.map → chunk-ZJR7VG5L.js.map} +1 -1
  144. package/dist/{chunk-2QANQKSQ.js → chunk-ZK32E74R.js} +156 -45
  145. package/dist/chunk-ZK32E74R.js.map +1 -0
  146. package/dist/{cli-OrfKXNU4.d.ts → cli-Cw729yLf.d.ts} +6 -2
  147. package/dist/cli.d.ts +3 -3
  148. package/dist/cli.js +61 -60
  149. package/dist/compounding/engine.js +3 -3
  150. package/dist/compounding/preference-consolidator.js +39 -11
  151. package/dist/compounding/preference-consolidator.js.map +1 -1
  152. package/dist/config.js +1 -1
  153. package/dist/connectors/codex-materialize-runner.js +3 -3
  154. package/dist/connectors/index.js +3 -3
  155. package/dist/consolidation-provenance-check.js +1 -1
  156. package/dist/contradiction/index.js +4 -4
  157. package/dist/conversation-index/backend.js +2 -2
  158. package/dist/conversation-index/indexer.js +1 -1
  159. package/dist/cross-namespace-budget.js +1 -1
  160. package/dist/enrichment/index.js +1 -1
  161. package/dist/entity-retrieval.js +3 -3
  162. package/dist/evals.js +1 -1
  163. package/dist/explicit-capture.d.ts +11 -1
  164. package/dist/explicit-capture.js +1 -1
  165. package/dist/extraction-judge.js +8 -1
  166. package/dist/extraction.js +2 -2
  167. package/dist/fallback-llm.d.ts +23 -6
  168. package/dist/fallback-llm.js +5 -3
  169. package/dist/{first-start-migration-GYJWIH36.js → first-start-migration-FF7YFGRP.js} +6 -6
  170. package/dist/index.d.ts +3 -3
  171. package/dist/index.js +95 -94
  172. package/dist/index.js.map +1 -1
  173. package/dist/lcm/archive.js +2 -2
  174. package/dist/lcm/engine.js +5 -5
  175. package/dist/lcm/index.js +7 -7
  176. package/dist/lcm/summarizer.js +3 -3
  177. package/dist/maintenance/memory-governance-cron.d.ts +6 -4
  178. package/dist/maintenance/memory-governance-cron.js +1 -1
  179. package/dist/maintenance/memory-governance.js +3 -3
  180. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
  181. package/dist/maintenance/rebuild-memory-projection.js +4 -4
  182. package/dist/mcp-memory-inspector-app.d.ts +2 -2
  183. package/dist/mcp-memory-inspector-app.js +1 -1
  184. package/dist/migrate/from-engram.js +1 -1
  185. package/dist/namespaces/migrate.js +16 -15
  186. package/dist/namespaces/search.js +12 -11
  187. package/dist/namespaces/storage.js +3 -3
  188. package/dist/network/webdav.d.ts +2 -0
  189. package/dist/network/webdav.js +1 -1
  190. package/dist/objective-state-writers.js +2 -2
  191. package/dist/operator-toolkit.d.ts +3 -1
  192. package/dist/operator-toolkit.js +21 -20
  193. package/dist/{orchestrator-DTRQG75J.d.ts → orchestrator-CqWOjfgl.d.ts} +46 -3
  194. package/dist/orchestrator.d.ts +1 -1
  195. package/dist/orchestrator.js +48 -45
  196. package/dist/patterns-cli.js +1 -1
  197. package/dist/qmd-recall-cache.d.ts +2 -0
  198. package/dist/qmd-recall-cache.js +1 -1
  199. package/dist/qmd.d.ts +37 -2
  200. package/dist/qmd.js +4 -1
  201. package/dist/recall-explain-renderer.js +3 -3
  202. package/dist/recall-planner-llm.d.ts +57 -0
  203. package/dist/recall-planner-llm.js +167 -0
  204. package/dist/recall-planner-llm.js.map +1 -0
  205. package/dist/recall-xray-cli.js +4 -4
  206. package/dist/recall-xray-renderer.js +3 -3
  207. package/dist/recall-xray.js +2 -2
  208. package/dist/resume-bundles.js +2 -2
  209. package/dist/retrieval-agents.js +2 -2
  210. package/dist/routing/store.js +1 -1
  211. package/dist/schemas.d.ts +22 -22
  212. package/dist/search/factory.js +11 -10
  213. package/dist/search/index.js +11 -10
  214. package/dist/search/lancedb-backend.d.ts +1 -1
  215. package/dist/search/lancedb-backend.js +3 -2
  216. package/dist/search/meilisearch-backend.d.ts +1 -1
  217. package/dist/search/meilisearch-backend.js +3 -2
  218. package/dist/search/noop-backend.d.ts +1 -1
  219. package/dist/search/noop-backend.js +1 -1
  220. package/dist/search/orama-backend.d.ts +1 -1
  221. package/dist/search/orama-backend.js +3 -2
  222. package/dist/search/port.d.ts +6 -1
  223. package/dist/search/port.js +7 -0
  224. package/dist/search/remote-backend.d.ts +1 -1
  225. package/dist/search/remote-backend.js +1 -1
  226. package/dist/semantic-consolidation.js +4 -4
  227. package/dist/semantic-rule-promotion.js +3 -3
  228. package/dist/semantic-rule-verifier.js +3 -3
  229. package/dist/session-observer-state.js +1 -1
  230. package/dist/storage.js +2 -2
  231. package/dist/summarizer.js +2 -2
  232. package/dist/temporal-index.js +1 -1
  233. package/dist/{tier-stats-SKML2OSF.js → tier-stats-3LYQ3VV5.js} +3 -3
  234. package/dist/transfer/backup.js +2 -2
  235. package/dist/transfer/capsule-export.js +2 -2
  236. package/dist/transfer/capsule-import.js +2 -2
  237. package/dist/transfer/export-sqlite.js +1 -1
  238. package/dist/transfer/types.d.ts +12 -12
  239. package/dist/types.d.ts +32 -0
  240. package/dist/types.js +1 -1
  241. package/dist/utility-learner.js +1 -1
  242. package/dist/utility-runtime.js +2 -2
  243. package/dist/verified-recall.js +3 -3
  244. package/dist/work/board.js +2 -2
  245. package/dist/work/storage.d.ts +2 -0
  246. package/dist/work/storage.js +1 -1
  247. package/package.json +1 -1
  248. package/src/access-http.ts +24 -10
  249. package/src/access-mcp.test.ts +160 -0
  250. package/src/access-mcp.ts +72 -7
  251. package/src/access-schema.ts +11 -0
  252. package/src/access-service-coding-write.test.ts +478 -0
  253. package/src/access-service.ts +237 -32
  254. package/src/active-recall.test.ts +40 -0
  255. package/src/active-recall.ts +19 -2
  256. package/src/behavior-learner.ts +5 -3
  257. package/src/buffer-session.test.ts +58 -0
  258. package/src/buffer-surprise-trigger.test.ts +4 -18
  259. package/src/buffer.ts +39 -11
  260. package/src/calibration.ts +10 -4
  261. package/src/causal-consolidation.test.ts +47 -2
  262. package/src/causal-consolidation.ts +13 -9
  263. package/src/cli.ts +19 -4
  264. package/src/compounding/engine.ts +2 -0
  265. package/src/compounding/preference-consolidator.test.ts +292 -0
  266. package/src/compounding/preference-consolidator.ts +55 -19
  267. package/src/config.test.ts +213 -0
  268. package/src/config.ts +175 -4
  269. package/src/connectors/codex-materialize-runner.ts +7 -4
  270. package/src/consolidation-provenance-check.ts +24 -5
  271. package/src/conversation-index/indexer.test.ts +22 -0
  272. package/src/conversation-index/indexer.ts +7 -3
  273. package/src/cross-namespace-budget.test.ts +44 -21
  274. package/src/cross-namespace-budget.ts +2 -2
  275. package/src/enrichment/pipeline.ts +11 -16
  276. package/src/evals.ts +1 -1
  277. package/src/explicit-capture.ts +19 -2
  278. package/src/extraction-judge-chain.test.ts +55 -0
  279. package/src/extraction-judge.ts +7 -9
  280. package/src/extraction.ts +16 -5
  281. package/src/fallback-llm.test.ts +600 -1
  282. package/src/fallback-llm.ts +91 -22
  283. package/src/maintenance/memory-governance-cron.ts +39 -29
  284. package/src/mcp-memory-inspector-app.ts +54 -12
  285. package/src/message-parts/index.ts +6 -0
  286. package/src/message-parts/message-parts.test.ts +30 -0
  287. package/src/migrate/from-engram.ts +19 -5
  288. package/src/namespaces/search.test.ts +15 -2
  289. package/src/namespaces/search.ts +1 -1
  290. package/src/network/webdav.ts +61 -21
  291. package/src/operator-toolkit.ts +6 -2
  292. package/src/orchestrator.ts +173 -20
  293. package/src/qmd-client.test.ts +85 -0
  294. package/src/qmd-recall-cache.test.ts +16 -0
  295. package/src/qmd-recall-cache.ts +7 -0
  296. package/src/qmd.test.ts +54 -0
  297. package/src/qmd.ts +119 -19
  298. package/src/recall-planner-llm.test.ts +224 -0
  299. package/src/recall-planner-llm.ts +289 -0
  300. package/src/routing/store.ts +4 -8
  301. package/src/search/factory.ts +3 -0
  302. package/src/search/lancedb-backend.ts +15 -3
  303. package/src/search/meilisearch-backend.ts +70 -7
  304. package/src/search/noop-backend.ts +5 -1
  305. package/src/search/orama-backend.ts +15 -3
  306. package/src/search/port.ts +15 -0
  307. package/src/search/remote-backend.ts +5 -1
  308. package/src/session-observer-state.ts +1 -1
  309. package/src/summarizer.ts +3 -3
  310. package/src/temporal-index.test.ts +18 -0
  311. package/src/temporal-index.ts +45 -0
  312. package/src/training-export/cli-date-validation.test.ts +36 -0
  313. package/src/training-export/date-parse.ts +21 -2
  314. package/src/transfer/export-sqlite.ts +3 -0
  315. package/src/types.ts +35 -0
  316. package/src/utility-learner.ts +1 -0
  317. package/src/work/storage.ts +23 -0
  318. package/dist/chunk-2QANQKSQ.js.map +0 -1
  319. package/dist/chunk-5RPTH6AU.js.map +0 -1
  320. package/dist/chunk-AJA46VX5.js.map +0 -1
  321. package/dist/chunk-C4SQJZAF.js.map +0 -1
  322. package/dist/chunk-CHCA44C3.js.map +0 -1
  323. package/dist/chunk-CSKLPDN6.js.map +0 -1
  324. package/dist/chunk-DLJ4IR6M.js.map +0 -1
  325. package/dist/chunk-EAZGEEG2.js.map +0 -1
  326. package/dist/chunk-EUML3N6B.js.map +0 -1
  327. package/dist/chunk-EVZFIAPG.js.map +0 -1
  328. package/dist/chunk-G3Z3QEF5.js.map +0 -1
  329. package/dist/chunk-GMAG2HS4.js.map +0 -1
  330. package/dist/chunk-HENLZHIT.js.map +0 -1
  331. package/dist/chunk-HINSGUA7.js.map +0 -1
  332. package/dist/chunk-HJNQQICM.js.map +0 -1
  333. package/dist/chunk-HPWVAEET.js.map +0 -1
  334. package/dist/chunk-IOTENEVL.js.map +0 -1
  335. package/dist/chunk-IP73YCZP.js.map +0 -1
  336. package/dist/chunk-JHMFYY7L.js.map +0 -1
  337. package/dist/chunk-JNANKJLN.js.map +0 -1
  338. package/dist/chunk-KGK2QKWL.js.map +0 -1
  339. package/dist/chunk-KM2A35EO.js.map +0 -1
  340. package/dist/chunk-KVEVLBKC.js.map +0 -1
  341. package/dist/chunk-L227SKTB.js.map +0 -1
  342. package/dist/chunk-LZ3VEOU5.js.map +0 -1
  343. package/dist/chunk-NOMEVTUD.js.map +0 -1
  344. package/dist/chunk-NZPF2SYV.js.map +0 -1
  345. package/dist/chunk-PCI747N2.js.map +0 -1
  346. package/dist/chunk-PPPZY2EU.js.map +0 -1
  347. package/dist/chunk-TH67Q46T.js.map +0 -1
  348. package/dist/chunk-UWY7GIVS.js.map +0 -1
  349. package/dist/chunk-VJXSUAO7.js.map +0 -1
  350. package/dist/chunk-XKIQZXUB.js.map +0 -1
  351. package/dist/chunk-XPSVGJYA.js.map +0 -1
  352. package/dist/chunk-XSWKORGM.js.map +0 -1
  353. package/dist/chunk-YCN4BVDK.js.map +0 -1
  354. package/dist/chunk-ZDTVJXIP.js.map +0 -1
  355. /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
  356. /package/dist/{chunk-AU7Q3LSC.js.map → chunk-2QSZNTDO.js.map} +0 -0
  357. /package/dist/{chunk-HSVJGWYS.js.map → chunk-2ROPI5OE.js.map} +0 -0
  358. /package/dist/{chunk-CF3ZF2YU.js.map → chunk-3QSU4NFF.js.map} +0 -0
  359. /package/dist/{chunk-OI27U2HT.js.map → chunk-5BTCT236.js.map} +0 -0
  360. /package/dist/{chunk-CO7ZO4TU.js.map → chunk-5VDJMYTF.js.map} +0 -0
  361. /package/dist/{chunk-YFS5OEKO.js.map → chunk-7MLB4NCL.js.map} +0 -0
  362. /package/dist/{chunk-557IAFPD.js.map → chunk-APRRL26Q.js.map} +0 -0
  363. /package/dist/{chunk-QDDHYAKV.js.map → chunk-AZDOWD2L.js.map} +0 -0
  364. /package/dist/{chunk-MLT75J5S.js.map → chunk-B6SU7YSE.js.map} +0 -0
  365. /package/dist/{chunk-FXKPZ3H6.js.map → chunk-BPSGLMQ4.js.map} +0 -0
  366. /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
  367. /package/dist/{chunk-IK34DVAC.js.map → chunk-CIOMS6DI.js.map} +0 -0
  368. /package/dist/{chunk-7DZRO2DC.js.map → chunk-DEPRLVLK.js.map} +0 -0
  369. /package/dist/{chunk-DHGSZ3UD.js.map → chunk-DGNQRNLL.js.map} +0 -0
  370. /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
  371. /package/dist/{chunk-ETUPBUHB.js.map → chunk-GDASG7NC.js.map} +0 -0
  372. /package/dist/{chunk-4HP7HIE3.js.map → chunk-HP5FMB6L.js.map} +0 -0
  373. /package/dist/{chunk-DOX2CG6Y.js.map → chunk-IEUU7O4F.js.map} +0 -0
  374. /package/dist/{chunk-WSGF57U2.js.map → chunk-JQDZQ4TB.js.map} +0 -0
  375. /package/dist/{chunk-W7L6HXUC.js.map → chunk-LXOM6IQU.js.map} +0 -0
  376. /package/dist/{chunk-6JGNHWCI.js.map → chunk-OBIRVF36.js.map} +0 -0
  377. /package/dist/{chunk-GUPISBV2.js.map → chunk-PP2JH3GP.js.map} +0 -0
  378. /package/dist/{chunk-OXJBNGBK.js.map → chunk-PSUB67YB.js.map} +0 -0
  379. /package/dist/{chunk-KIB7SDIJ.js.map → chunk-Q6YIJGXJ.js.map} +0 -0
  380. /package/dist/{chunk-ZT3EGNLR.js.map → chunk-QPD426WT.js.map} +0 -0
  381. /package/dist/{chunk-RLV3PQGH.js.map → chunk-QVO4YOB7.js.map} +0 -0
  382. /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
  383. /package/dist/{chunk-IK7DCC5H.js.map → chunk-VMGLYN42.js.map} +0 -0
  384. /package/dist/{chunk-NSKYFGDL.js.map → chunk-X4QQB7O6.js.map} +0 -0
  385. /package/dist/{first-start-migration-GYJWIH36.js.map → first-start-migration-FF7YFGRP.js.map} +0 -0
  386. /package/dist/{tier-stats-SKML2OSF.js.map → tier-stats-3LYQ3VV5.js.map} +0 -0
@@ -2,21 +2,21 @@ import {
2
2
  exportWorkBoardMarkdown,
3
3
  exportWorkBoardSnapshot,
4
4
  importWorkBoardSnapshot
5
- } from "./chunk-ETUPBUHB.js";
5
+ } from "./chunk-GDASG7NC.js";
6
6
  import {
7
7
  WorkStorage
8
- } from "./chunk-L227SKTB.js";
8
+ } from "./chunk-GDB4J2H3.js";
9
9
  import {
10
10
  importCapsule
11
- } from "./chunk-DHGSZ3UD.js";
11
+ } from "./chunk-DGNQRNLL.js";
12
+ import {
13
+ toRecallExplainJson
14
+ } from "./chunk-PSUB67YB.js";
12
15
  import {
13
16
  applyTagFilter,
14
17
  normalizeTags,
15
18
  parseTagMatch
16
19
  } from "./chunk-BT7NVCML.js";
17
- import {
18
- toRecallExplainJson
19
- } from "./chunk-OXJBNGBK.js";
20
20
  import {
21
21
  decideDisclosureEscalation
22
22
  } from "./chunk-H7XKCNR6.js";
@@ -27,10 +27,12 @@ import {
27
27
  listMemoryGovernanceRuns,
28
28
  readMemoryGovernanceRunArtifact,
29
29
  runMemoryGovernance
30
- } from "./chunk-OI27U2HT.js";
30
+ } from "./chunk-5BTCT236.js";
31
31
  import {
32
32
  clusterByKey,
33
+ combineNamespaces,
33
34
  projectTagProjectId,
35
+ resolveCodingNamespaceOverlay,
34
36
  resolveGitContext
35
37
  } from "./chunk-EDQVAMQI.js";
36
38
  import {
@@ -44,10 +46,10 @@ import {
44
46
  } from "./chunk-JGSKJHF7.js";
45
47
  import {
46
48
  estimateRecallTokens
47
- } from "./chunk-FXKPZ3H6.js";
49
+ } from "./chunk-BPSGLMQ4.js";
48
50
  import {
49
51
  recordObjectiveStateSnapshotsFromObservedMessages
50
- } from "./chunk-WSGF57U2.js";
52
+ } from "./chunk-JQDZQ4TB.js";
51
53
  import {
52
54
  objectiveStateStoreOverrideForNamespace
53
55
  } from "./chunk-UEY3VB6W.js";
@@ -71,23 +73,23 @@ import {
71
73
  persistExplicitCapture,
72
74
  queueExplicitCaptureForReview,
73
75
  validateExplicitCaptureInput
74
- } from "./chunk-EUML3N6B.js";
76
+ } from "./chunk-IMA6GU4Y.js";
75
77
  import {
76
78
  CrossNamespaceBudget
77
- } from "./chunk-CHCA44C3.js";
79
+ } from "./chunk-ODPLEWB6.js";
78
80
  import {
79
81
  FileCalendarSource,
80
82
  buildBriefing,
81
83
  parseBriefingFocus,
82
84
  parseBriefingWindow
83
- } from "./chunk-QDDHYAKV.js";
85
+ } from "./chunk-AZDOWD2L.js";
84
86
  import {
85
87
  parseEntityFile
86
- } from "./chunk-YFS5OEKO.js";
88
+ } from "./chunk-7MLB4NCL.js";
87
89
  import {
88
90
  DEFAULT_RECALL_DISCLOSURE,
89
91
  isRecallDisclosure
90
- } from "./chunk-KGK2QKWL.js";
92
+ } from "./chunk-4R4KTDIE.js";
91
93
  import {
92
94
  inferMemoryStatus,
93
95
  toMemoryPathRel
@@ -125,7 +127,7 @@ import {
125
127
  } from "./chunk-VFUEZZBS.js";
126
128
  import {
127
129
  exportCapsule
128
- } from "./chunk-KQAFEZQX.js";
130
+ } from "./chunk-VDX2J7OX.js";
129
131
  import {
130
132
  OFFLINE_SYNC_SNAPSHOT_FORMAT,
131
133
  applyOfflineSyncChangeset,
@@ -664,6 +666,99 @@ var EngramAccessService = class {
664
666
  }
665
667
  return resolved;
666
668
  }
669
+ /**
670
+ * Resolve a coding context from `cwd`/`projectTag` WITHOUT persisting it to
671
+ * any session — the read-only half of `maybeAttachCodingContext`. Returns
672
+ * null when project scoping is off or nothing resolves. `projectTag` takes
673
+ * priority over `cwd` (matching `maybeAttachCodingContext`).
674
+ */
675
+ async resolveCodingContextFromOptions(options) {
676
+ if (!this.orchestrator.config.codingMode?.projectScope) return null;
677
+ if (typeof options.projectTag === "string" && options.projectTag.trim().length > 0) {
678
+ const projectId = projectTagProjectId(options.projectTag);
679
+ return { projectId, branch: null, rootPath: projectId, defaultBranch: null };
680
+ }
681
+ if (typeof options.cwd === "string" && options.cwd.trim().length > 0) {
682
+ try {
683
+ const gitCtx = await resolveGitContext(options.cwd);
684
+ if (gitCtx) {
685
+ return {
686
+ projectId: gitCtx.projectId,
687
+ branch: gitCtx.branch,
688
+ rootPath: gitCtx.rootPath,
689
+ defaultBranch: gitCtx.defaultBranch
690
+ };
691
+ }
692
+ } catch {
693
+ }
694
+ }
695
+ return null;
696
+ }
697
+ /**
698
+ * Resolve the write namespace for explicit-write tools (memory_store /
699
+ * suggestion_submit), project-scoping the write the same way recall does so a
700
+ * memory stored with a client-injected `cwd`/`projectTag` is discoverable by
701
+ * project-scoped recall (#1434, rule 42).
702
+ *
703
+ * Precedence:
704
+ * - An explicit `namespace` always wins and is authorized strictly via
705
+ * `resolveWritableNamespace` → `canWriteNamespace`. A coding-overlay
706
+ * namespace string (`<base>-project-*`) is NOT a writable target via the
707
+ * explicit field — project scoping is requested with `cwd`/`projectTag`,
708
+ * never by naming the derived namespace — so there is no way to bypass the
709
+ * policy allow-list by guessing/forging an overlay name (Codex review).
710
+ * - With NO coding overlay, the write stays on `config.defaultNamespace` —
711
+ * exactly the pre-#1434 behavior, so an unqualified write is NOT silently
712
+ * moved to a principal self namespace (Codex review).
713
+ * - WITH a coding overlay, the base is the principal self namespace
714
+ * (`defaultNamespaceForPrincipal`, write-checked) — the SAME base recall,
715
+ * observe, and the orchestrator buffer-flush write path overlay onto
716
+ * (rule 42 / Cursor) — so a project-scoped store lands exactly where
717
+ * project-scoped recall searches. The overlay namespace is always REBUILT
718
+ * from the authenticated principal's base, never accepted as a caller
719
+ * string, so a caller can never reach another principal's subtree.
720
+ *
721
+ * Read-only: this NEVER mutates session coding context, so the idempotency
722
+ * peeks and dryRun preflights that call it stay side-effect free (Codex
723
+ * review). It prefers the per-call `cwd`/`projectTag` (the project explicitly
724
+ * identified for this write), else the session's existing context. The HTTP
725
+ * surface lets the peek and the write each resolve independently; the peek's
726
+ * namespace only gates rate-limiting (memory_store/suggestion_submit run their
727
+ * own idempotency check), so a benign session-context change between the two
728
+ * never fails a write — there is no namespace to "pin".
729
+ */
730
+ async resolveCodingScopedWriteNamespace(request) {
731
+ const hasExplicitNamespace = typeof request.namespace === "string" && request.namespace.trim().length > 0;
732
+ if (hasExplicitNamespace) {
733
+ return this.resolveWritableNamespace(
734
+ request.namespace,
735
+ request.sessionKey,
736
+ request.authenticatedPrincipal
737
+ );
738
+ }
739
+ const hasSession = typeof request.sessionKey === "string" && request.sessionKey.length > 0;
740
+ const overlay = hasSession && this.orchestrator.config.namespacesEnabled && this.orchestrator.config.codingMode?.projectScope ? resolveCodingNamespaceOverlay(
741
+ this.orchestrator.getCodingContextForSession(request.sessionKey) ?? await this.resolveCodingContextFromOptions(request),
742
+ this.orchestrator.config.codingMode,
743
+ this.orchestrator.config.defaultNamespace
744
+ ) : null;
745
+ if (!overlay) {
746
+ return this.resolveWritableNamespace(
747
+ void 0,
748
+ request.sessionKey,
749
+ request.authenticatedPrincipal
750
+ );
751
+ }
752
+ const principal = this.resolveRequestPrincipal(
753
+ request.sessionKey,
754
+ request.authenticatedPrincipal
755
+ );
756
+ const base = defaultNamespaceForPrincipal(principal, this.orchestrator.config);
757
+ if (!canWriteNamespace(principal, base, this.orchestrator.config)) {
758
+ throw new EngramAccessInputError(`namespace is not writable: ${base}`);
759
+ }
760
+ return combineNamespaces(base, overlay.namespace);
761
+ }
667
762
  async objectiveStateStoreLocationForNamespace(namespace) {
668
763
  if (!this.orchestrator.config.namespacesEnabled) {
669
764
  return {
@@ -858,6 +953,7 @@ var EngramAccessService = class {
858
953
  }
859
954
  const key = options.idempotencyKey?.trim();
860
955
  if (!key) {
956
+ if (options.beforeExecute) await options.beforeExecute();
861
957
  return options.execute();
862
958
  }
863
959
  return this.withIdempotencyLock(key, async () => {
@@ -876,6 +972,7 @@ var EngramAccessService = class {
876
972
  idempotencyReplay: true
877
973
  };
878
974
  }
975
+ if (options.beforeExecute) await options.beforeExecute();
879
976
  const response = await options.execute();
880
977
  await this.idempotency.put(key, requestHash, response);
881
978
  return response;
@@ -1148,6 +1245,24 @@ var EngramAccessService = class {
1148
1245
  }
1149
1246
  }
1150
1247
  }
1248
+ /**
1249
+ * Seed the session's coding binding AFTER a committed, project-scoped explicit
1250
+ * write (memory_store / suggestion_submit), mirroring the recall path's
1251
+ * `maybeAttachCodingContext` so a later bare recall/write on the same session
1252
+ * is scoped to the same project. Called only from the post-persist path, so it
1253
+ * never fires on dryRun, replay/conflict, or quota-rejected requests. Skips
1254
+ * when an explicit `namespace` was supplied — that write bypassed the coding
1255
+ * overlay, so binding the session to a project it never wrote to would make
1256
+ * later bare recalls miss (Codex review).
1257
+ */
1258
+ async attachCodingContextAfterScopedWrite(request) {
1259
+ const hasExplicitNamespace = typeof request.namespace === "string" && request.namespace.trim().length > 0;
1260
+ if (hasExplicitNamespace) return;
1261
+ await this.maybeAttachCodingContext(request.sessionKey, {
1262
+ cwd: request.cwd,
1263
+ projectTag: request.projectTag
1264
+ });
1265
+ }
1151
1266
  async recall(request) {
1152
1267
  const query = request.query.trim();
1153
1268
  if (query.length === 0) {
@@ -1696,12 +1811,8 @@ var EngramAccessService = class {
1696
1811
  // shares it, and so separate services in the same process (e.g.
1697
1812
  // per-tenant) do not block each other.
1698
1813
  xrayQueue = Promise.resolve();
1699
- async memoryStore(request) {
1700
- const namespace = this.resolveWritableNamespace(
1701
- request.namespace,
1702
- request.sessionKey,
1703
- request.authenticatedPrincipal
1704
- );
1814
+ async memoryStore(request, hooks) {
1815
+ const namespace = await this.resolveCodingScopedWriteNamespace(request);
1705
1816
  const schemaVersion = request.schemaVersion ?? ENGRAM_ACCESS_WRITE_SCHEMA_VERSION;
1706
1817
  if (schemaVersion !== ENGRAM_ACCESS_WRITE_SCHEMA_VERSION) {
1707
1818
  throw new EngramAccessInputError(`unsupported schemaVersion: ${schemaVersion}`);
@@ -1721,6 +1832,7 @@ var EngramAccessService = class {
1721
1832
  };
1722
1833
  }
1723
1834
  const result = await persistExplicitCapture(this.orchestrator, candidate, "memory_store");
1835
+ await this.attachCodingContextAfterScopedWrite(request);
1724
1836
  const response = {
1725
1837
  schemaVersion: ENGRAM_ACCESS_WRITE_SCHEMA_VERSION,
1726
1838
  operation: "memory_store",
@@ -1753,15 +1865,12 @@ var EngramAccessService = class {
1753
1865
  sourceReason: request.sourceReason
1754
1866
  },
1755
1867
  skip: request.dryRun === true,
1868
+ beforeExecute: hooks?.enforceWriteQuota,
1756
1869
  execute
1757
1870
  });
1758
1871
  }
1759
1872
  async peekMemoryStoreIdempotency(request) {
1760
- const namespace = this.resolveWritableNamespace(
1761
- request.namespace,
1762
- request.sessionKey,
1763
- request.authenticatedPrincipal
1764
- );
1873
+ const namespace = await this.resolveCodingScopedWriteNamespace(request);
1765
1874
  const schemaVersion = request.schemaVersion ?? ENGRAM_ACCESS_WRITE_SCHEMA_VERSION;
1766
1875
  if (schemaVersion !== ENGRAM_ACCESS_WRITE_SCHEMA_VERSION) {
1767
1876
  throw new EngramAccessInputError(`unsupported schemaVersion: ${schemaVersion}`);
@@ -1783,12 +1892,8 @@ var EngramAccessService = class {
1783
1892
  skip: request.dryRun === true
1784
1893
  });
1785
1894
  }
1786
- async suggestionSubmit(request) {
1787
- const namespace = this.resolveWritableNamespace(
1788
- request.namespace,
1789
- request.sessionKey,
1790
- request.authenticatedPrincipal
1791
- );
1895
+ async suggestionSubmit(request, hooks) {
1896
+ const namespace = await this.resolveCodingScopedWriteNamespace(request);
1792
1897
  const schemaVersion = request.schemaVersion ?? ENGRAM_ACCESS_WRITE_SCHEMA_VERSION;
1793
1898
  if (schemaVersion !== ENGRAM_ACCESS_WRITE_SCHEMA_VERSION) {
1794
1899
  throw new EngramAccessInputError(`unsupported schemaVersion: ${schemaVersion}`);
@@ -1813,6 +1918,7 @@ var EngramAccessService = class {
1813
1918
  "suggestion_submit",
1814
1919
  new Error(request.sourceReason?.trim() || "submitted via engram suggestion_submit")
1815
1920
  );
1921
+ await this.attachCodingContextAfterScopedWrite(request);
1816
1922
  const response = {
1817
1923
  schemaVersion: ENGRAM_ACCESS_WRITE_SCHEMA_VERSION,
1818
1924
  operation: "suggestion_submit",
@@ -1845,15 +1951,12 @@ var EngramAccessService = class {
1845
1951
  sourceReason: request.sourceReason
1846
1952
  },
1847
1953
  skip: request.dryRun === true,
1954
+ beforeExecute: hooks?.enforceWriteQuota,
1848
1955
  execute
1849
1956
  });
1850
1957
  }
1851
1958
  async peekSuggestionSubmitIdempotency(request) {
1852
- const namespace = this.resolveWritableNamespace(
1853
- request.namespace,
1854
- request.sessionKey,
1855
- request.authenticatedPrincipal
1856
- );
1959
+ const namespace = await this.resolveCodingScopedWriteNamespace(request);
1857
1960
  const schemaVersion = request.schemaVersion ?? ENGRAM_ACCESS_WRITE_SCHEMA_VERSION;
1858
1961
  if (schemaVersion !== ENGRAM_ACCESS_WRITE_SCHEMA_VERSION) {
1859
1962
  throw new EngramAccessInputError(`unsupported schemaVersion: ${schemaVersion}`);
@@ -1877,13 +1980,21 @@ var EngramAccessService = class {
1877
1980
  }
1878
1981
  validateWriteCandidate(request, namespace) {
1879
1982
  try {
1880
- return validateExplicitCaptureInput(
1881
- {
1882
- ...request,
1883
- namespace
1884
- },
1885
- "legacy_tool"
1886
- );
1983
+ return {
1984
+ ...validateExplicitCaptureInput(
1985
+ {
1986
+ ...request,
1987
+ namespace
1988
+ },
1989
+ "legacy_tool"
1990
+ ),
1991
+ // The namespace was resolved AND authorized by
1992
+ // resolveCodingScopedWriteNamespace (explicit namespaces via
1993
+ // resolveWritableNamespace; otherwise an auth-checked base + a
1994
+ // session-owned project overlay), so the persist/queue layer must not
1995
+ // re-reject a legitimately-derived dynamic project namespace (#1434).
1996
+ namespacePreResolved: true
1997
+ };
1887
1998
  } catch (error) {
1888
1999
  const message = error instanceof Error ? error.message : String(error);
1889
2000
  throw new EngramAccessInputError(message);
@@ -4238,4 +4349,4 @@ export {
4238
4349
  shapeMemorySummary,
4239
4350
  EngramAccessService
4240
4351
  };
4241
- //# sourceMappingURL=chunk-2QANQKSQ.js.map
4352
+ //# sourceMappingURL=chunk-ZK32E74R.js.map