@remnic/core 1.1.31 → 9.3.516

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 (1102) hide show
  1. package/dist/abstraction-nodes.js +2 -2
  2. package/dist/access-cli.d.ts +1 -1
  3. package/dist/access-cli.js +158 -121
  4. package/dist/access-cli.js.map +1 -1
  5. package/dist/access-http.d.ts +9 -5
  6. package/dist/access-http.js +51 -51
  7. package/dist/access-idempotency.d.ts +2 -0
  8. package/dist/access-idempotency.js +1 -1
  9. package/dist/access-mcp.d.ts +16 -9
  10. package/dist/access-mcp.js +44 -44
  11. package/dist/access-schema.d.ts +45 -13
  12. package/dist/access-schema.js +8 -8
  13. package/dist/{access-service-CkZyb35d.d.ts → access-service-CZfksQuS.d.ts} +11 -130
  14. package/dist/access-service.d.ts +7 -4
  15. package/dist/access-service.js +40 -40
  16. package/dist/action-confidence.d.ts +1 -0
  17. package/dist/active-memory-bridge.d.ts +1 -0
  18. package/dist/active-memory-bridge.js +3 -2
  19. package/dist/active-recall.d.ts +1 -0
  20. package/dist/active-recall.js +14 -9
  21. package/dist/active-recall.js.map +1 -1
  22. package/dist/adapters/claude-code.d.ts +6 -2
  23. package/dist/adapters/claude-code.js +2 -2
  24. package/dist/adapters/codex.d.ts +5 -1
  25. package/dist/adapters/codex.js +2 -2
  26. package/dist/adapters/hermes.js +2 -2
  27. package/dist/adapters/index.js +6 -6
  28. package/dist/adapters/registry.js +6 -6
  29. package/dist/adapters/replit.d.ts +4 -2
  30. package/dist/adapters/replit.js +2 -2
  31. package/dist/adapters/types.d.ts +4 -0
  32. package/dist/adapters/types.js +1 -1
  33. package/dist/behavior-learner.d.ts +1 -0
  34. package/dist/behavior-signals.d.ts +1 -0
  35. package/dist/behavior-signals.js +1 -1
  36. package/dist/bootstrap.d.ts +5 -3
  37. package/dist/bootstrap.js +2 -2
  38. package/dist/boxes.d.ts +1 -0
  39. package/dist/boxes.js +1 -1
  40. package/dist/briefing.d.ts +1 -0
  41. package/dist/briefing.js +9 -9
  42. package/dist/buffer-surprise-report.d.ts +1 -0
  43. package/dist/buffer.d.ts +1 -0
  44. package/dist/buffer.js +2 -2
  45. package/dist/bulk-import/index.d.ts +28 -0
  46. package/dist/bulk-import/index.js +31 -0
  47. package/dist/calibration.d.ts +2 -0
  48. package/dist/calibration.js +50 -17
  49. package/dist/calibration.js.map +1 -1
  50. package/dist/{capsule-crypto-5CYAGVC5.js → capsule-crypto-7FJQINUR.js} +2 -2
  51. package/dist/{capsule-merge-4MGKE7C5.js → capsule-merge-T2JRE46P.js} +3 -3
  52. package/dist/causal-behavior.d.ts +1 -0
  53. package/dist/causal-behavior.js +4 -4
  54. package/dist/causal-chain.js +4 -4
  55. package/dist/causal-consolidation.d.ts +16 -1
  56. package/dist/causal-consolidation.js +115 -32
  57. package/dist/causal-consolidation.js.map +1 -1
  58. package/dist/causal-retrieval.js +14 -6
  59. package/dist/causal-retrieval.js.map +1 -1
  60. package/dist/causal-trajectory-graph.js +2 -2
  61. package/dist/causal-trajectory.js +2 -2
  62. package/dist/{chunk-SAZS2QZB.js → chunk-23UORJ4S.js} +3 -3
  63. package/dist/{chunk-76FLAAUC.js → chunk-2AN2L4NL.js} +17 -6
  64. package/dist/chunk-2AN2L4NL.js.map +1 -0
  65. package/dist/{chunk-W4L6CZKA.js → chunk-2DL3OFLD.js} +15 -10
  66. package/dist/chunk-2DL3OFLD.js.map +1 -0
  67. package/dist/{chunk-NJ3MJQZX.js → chunk-2I5JGH3M.js} +2 -2
  68. package/dist/{chunk-NJ3MJQZX.js.map → chunk-2I5JGH3M.js.map} +1 -1
  69. package/dist/{chunk-7OZ53EXP.js → chunk-2NLLXCJG.js} +21 -10
  70. package/dist/chunk-2NLLXCJG.js.map +1 -0
  71. package/dist/{chunk-PK7H5L6Y.js → chunk-2NM43EWN.js} +2 -2
  72. package/dist/{chunk-PYXS46O7.js → chunk-3BP57I6J.js} +2 -2
  73. package/dist/{chunk-FBYESMQ2.js → chunk-3C5RPJAX.js} +2 -2
  74. package/dist/{chunk-FKFMOY3N.js → chunk-42NQ7AVG.js} +3 -4
  75. package/dist/{chunk-FKFMOY3N.js.map → chunk-42NQ7AVG.js.map} +1 -1
  76. package/dist/chunk-4426WSWL.js +73 -0
  77. package/dist/chunk-4426WSWL.js.map +1 -0
  78. package/dist/{chunk-LIRZNNUP.js → chunk-44442YCH.js} +5 -2
  79. package/dist/chunk-44442YCH.js.map +1 -0
  80. package/dist/{chunk-H3ME6L6D.js → chunk-46GJIW5M.js} +23 -20
  81. package/dist/chunk-46GJIW5M.js.map +1 -0
  82. package/dist/{chunk-QDZ2RLEC.js → chunk-472U7RDF.js} +3 -3
  83. package/dist/chunk-472U7RDF.js.map +1 -0
  84. package/dist/{chunk-NN2DKE4T.js → chunk-4H5ZJHEN.js} +16 -3
  85. package/dist/{chunk-NN2DKE4T.js.map → chunk-4H5ZJHEN.js.map} +1 -1
  86. package/dist/{chunk-56K5QLHX.js → chunk-4HP7HIE3.js} +56 -13
  87. package/dist/chunk-4HP7HIE3.js.map +1 -0
  88. package/dist/{chunk-RK2Y4XOM.js → chunk-4JRRISLU.js} +9 -6
  89. package/dist/chunk-4JRRISLU.js.map +1 -0
  90. package/dist/{chunk-XKLD5OK4.js → chunk-4RR6ROTB.js} +10 -11
  91. package/dist/chunk-4RR6ROTB.js.map +1 -0
  92. package/dist/{chunk-YROHKYBY.js → chunk-5UHVGNZD.js} +22 -6
  93. package/dist/chunk-5UHVGNZD.js.map +1 -0
  94. package/dist/{chunk-ZAVUCJ4H.js → chunk-5V456VRV.js} +154 -69
  95. package/dist/chunk-5V456VRV.js.map +1 -0
  96. package/dist/{chunk-77H5NU3M.js → chunk-6BR7L222.js} +82 -18
  97. package/dist/chunk-6BR7L222.js.map +1 -0
  98. package/dist/{chunk-4KGVTPGD.js → chunk-6F6BXB7A.js} +9 -8
  99. package/dist/chunk-6F6BXB7A.js.map +1 -0
  100. package/dist/{chunk-NMZY542O.js → chunk-6URPAY2D.js} +41 -17
  101. package/dist/chunk-6URPAY2D.js.map +1 -0
  102. package/dist/{chunk-N53K2EXC.js → chunk-6VF75M3X.js} +2 -2
  103. package/dist/{chunk-XSZEP4SF.js → chunk-6XSPNR6L.js} +6 -5
  104. package/dist/chunk-6XSPNR6L.js.map +1 -0
  105. package/dist/{chunk-6H2TESSP.js → chunk-765K3SAT.js} +3 -3
  106. package/dist/{chunk-EDTHC6UD.js → chunk-77NAFXUD.js} +2 -2
  107. package/dist/{chunk-S7KDBTWT.js → chunk-7F7Z6MOS.js} +29 -14
  108. package/dist/chunk-7F7Z6MOS.js.map +1 -0
  109. package/dist/{chunk-MZH6EHNR.js → chunk-7H6CFEBJ.js} +41 -14
  110. package/dist/chunk-7H6CFEBJ.js.map +1 -0
  111. package/dist/{chunk-MGKYQQYF.js → chunk-7Q3RCKAQ.js} +2 -2
  112. package/dist/chunk-7RXCMVFQ.js +27 -0
  113. package/dist/chunk-7RXCMVFQ.js.map +1 -0
  114. package/dist/{chunk-DGXUHMOV.js → chunk-A2IYSXDQ.js} +25 -6
  115. package/dist/chunk-A2IYSXDQ.js.map +1 -0
  116. package/dist/{chunk-EABGC2TL.js → chunk-A2Z6UCWT.js} +26 -4
  117. package/dist/chunk-A2Z6UCWT.js.map +1 -0
  118. package/dist/{chunk-5375UYTQ.js → chunk-A6D7A2FW.js} +4 -4
  119. package/dist/chunk-A6D7A2FW.js.map +1 -0
  120. package/dist/{chunk-FAAFWE4G.js → chunk-ALEPI75L.js} +24 -6
  121. package/dist/chunk-ALEPI75L.js.map +1 -0
  122. package/dist/{chunk-3SLRNYNG.js → chunk-AUDJPF4N.js} +15 -4
  123. package/dist/chunk-AUDJPF4N.js.map +1 -0
  124. package/dist/chunk-B5XMS73R.js +145 -0
  125. package/dist/chunk-B5XMS73R.js.map +1 -0
  126. package/dist/{chunk-HXXBL2KD.js → chunk-BECQDWBA.js} +44 -4
  127. package/dist/chunk-BECQDWBA.js.map +1 -0
  128. package/dist/{chunk-7SEAZFFB.js → chunk-BEUDU7Y4.js} +24 -4
  129. package/dist/chunk-BEUDU7Y4.js.map +1 -0
  130. package/dist/chunk-CHBI22MI.js +159 -0
  131. package/dist/chunk-CHBI22MI.js.map +1 -0
  132. package/dist/{chunk-GDFS42HT.js → chunk-CHCA44C3.js} +15 -8
  133. package/dist/chunk-CHCA44C3.js.map +1 -0
  134. package/dist/chunk-CINZGPSJ.js +22 -0
  135. package/dist/chunk-CINZGPSJ.js.map +1 -0
  136. package/dist/chunk-CMTINOFS.js +36 -0
  137. package/dist/chunk-CMTINOFS.js.map +1 -0
  138. package/dist/{chunk-34DQE4KF.js → chunk-CO7ZO4TU.js} +2 -2
  139. package/dist/{chunk-PFV5C235.js → chunk-CPPS65WS.js} +2 -1
  140. package/dist/{chunk-PFV5C235.js.map → chunk-CPPS65WS.js.map} +1 -1
  141. package/dist/{chunk-DINWEURR.js → chunk-CSKLPDN6.js} +20 -6
  142. package/dist/chunk-CSKLPDN6.js.map +1 -0
  143. package/dist/chunk-CWWMTTQE.js +566 -0
  144. package/dist/chunk-CWWMTTQE.js.map +1 -0
  145. package/dist/{chunk-IQT3XTKW.js → chunk-D24OXEPB.js} +13 -7
  146. package/dist/chunk-D24OXEPB.js.map +1 -0
  147. package/dist/{chunk-WIICJPET.js → chunk-DEUNUKTD.js} +6 -4
  148. package/dist/{chunk-WIICJPET.js.map → chunk-DEUNUKTD.js.map} +1 -1
  149. package/dist/{chunk-ZYVPLJ4T.js → chunk-DHGSZ3UD.js} +9 -7
  150. package/dist/chunk-DHGSZ3UD.js.map +1 -0
  151. package/dist/{chunk-JR4ZC3G4.js → chunk-DLJ4IR6M.js} +91 -41
  152. package/dist/chunk-DLJ4IR6M.js.map +1 -0
  153. package/dist/{chunk-U4SCL7B7.js → chunk-DRD2Q7HQ.js} +82 -18
  154. package/dist/chunk-DRD2Q7HQ.js.map +1 -0
  155. package/dist/{chunk-2IWUMAES.js → chunk-E62SBGQ3.js} +28 -13
  156. package/dist/chunk-E62SBGQ3.js.map +1 -0
  157. package/dist/{chunk-C5BCH4ZS.js → chunk-EAZGEEG2.js} +21 -3
  158. package/dist/chunk-EAZGEEG2.js.map +1 -0
  159. package/dist/{chunk-TPB3I2AC.js → chunk-ECZU5BJH.js} +31 -10
  160. package/dist/chunk-ECZU5BJH.js.map +1 -0
  161. package/dist/chunk-EDQVAMQI.js +308 -0
  162. package/dist/chunk-EDQVAMQI.js.map +1 -0
  163. package/dist/{chunk-RRF5UOBJ.js → chunk-EI6V5UXY.js} +22 -15
  164. package/dist/chunk-EI6V5UXY.js.map +1 -0
  165. package/dist/{chunk-ZKSK55RC.js → chunk-ETUPBUHB.js} +2 -2
  166. package/dist/{chunk-25MQ7IHJ.js → chunk-EUML3N6B.js} +17 -6
  167. package/dist/chunk-EUML3N6B.js.map +1 -0
  168. package/dist/{chunk-5RGLBDQF.js → chunk-EVZFIAPG.js} +12 -12
  169. package/dist/chunk-EVZFIAPG.js.map +1 -0
  170. package/dist/{chunk-QRNI5JBH.js → chunk-EYIEWJNI.js} +2 -2
  171. package/dist/{chunk-TPU5L5EY.js → chunk-FCOQXV3T.js} +272 -411
  172. package/dist/chunk-FCOQXV3T.js.map +1 -0
  173. package/dist/{chunk-TMQLARTH.js → chunk-FK556DDH.js} +34 -15
  174. package/dist/chunk-FK556DDH.js.map +1 -0
  175. package/dist/{chunk-43PJZYGL.js → chunk-FPGE5NVO.js} +45 -10
  176. package/dist/chunk-FPGE5NVO.js.map +1 -0
  177. package/dist/{chunk-3VAL7ZL2.js → chunk-FUC4LZMD.js} +60 -25
  178. package/dist/chunk-FUC4LZMD.js.map +1 -0
  179. package/dist/{chunk-C6QPK5GG.js → chunk-FZZ2QTJI.js} +2 -2
  180. package/dist/{chunk-D46YSIYX.js → chunk-G3Z3QEF5.js} +19 -11
  181. package/dist/{chunk-D46YSIYX.js.map → chunk-G3Z3QEF5.js.map} +1 -1
  182. package/dist/{chunk-3JXBXXM2.js → chunk-G4IAEX6D.js} +2 -2
  183. package/dist/{chunk-MSWG7JI6.js → chunk-G56P5RLD.js} +8 -2
  184. package/dist/chunk-G56P5RLD.js.map +1 -0
  185. package/dist/{chunk-AGZQD76C.js → chunk-GCGJW34D.js} +48 -2
  186. package/dist/chunk-GCGJW34D.js.map +1 -0
  187. package/dist/chunk-H2NCNXMS.js +159 -0
  188. package/dist/chunk-H2NCNXMS.js.map +1 -0
  189. package/dist/{chunk-XYIK4LF6.js → chunk-H3FZVNRN.js} +8 -2
  190. package/dist/chunk-H3FZVNRN.js.map +1 -0
  191. package/dist/{chunk-YU5KIWYQ.js → chunk-HC6EKOID.js} +94 -43
  192. package/dist/chunk-HC6EKOID.js.map +1 -0
  193. package/dist/{chunk-TK4UEOSK.js → chunk-HDDRVXX4.js} +8 -8
  194. package/dist/chunk-HDDRVXX4.js.map +1 -0
  195. package/dist/{chunk-LLQ2LLWF.js → chunk-HENLZHIT.js} +15 -5
  196. package/dist/chunk-HENLZHIT.js.map +1 -0
  197. package/dist/{chunk-N2D6GXBM.js → chunk-HINSGUA7.js} +28 -20
  198. package/dist/chunk-HINSGUA7.js.map +1 -0
  199. package/dist/{chunk-APO3DCMU.js → chunk-HLAVGJ62.js} +30 -8
  200. package/dist/chunk-HLAVGJ62.js.map +1 -0
  201. package/dist/{chunk-TPMQ3G6Z.js → chunk-HOJZMQ4J.js} +2 -2
  202. package/dist/chunk-HOJZMQ4J.js.map +1 -0
  203. package/dist/{chunk-LUDTDZLK.js → chunk-HPWVAEET.js} +33 -7
  204. package/dist/chunk-HPWVAEET.js.map +1 -0
  205. package/dist/{chunk-NZL6GGQE.js → chunk-HQ6NIBL6.js} +92 -30
  206. package/dist/chunk-HQ6NIBL6.js.map +1 -0
  207. package/dist/{chunk-UWVJF25J.js → chunk-HWVTS5NO.js} +20 -6
  208. package/dist/chunk-HWVTS5NO.js.map +1 -0
  209. package/dist/{chunk-2WWLHTZY.js → chunk-IC4GELZE.js} +2 -2
  210. package/dist/{chunk-QA2ZAPBU.js → chunk-IPLYGWQF.js} +28 -20
  211. package/dist/chunk-IPLYGWQF.js.map +1 -0
  212. package/dist/{chunk-A6KTB5R6.js → chunk-IQ3OI2RR.js} +3 -3
  213. package/dist/chunk-IQ3OI2RR.js.map +1 -0
  214. package/dist/{chunk-6LVVDPJ4.js → chunk-J64TK33U.js} +3 -4
  215. package/dist/chunk-J64TK33U.js.map +1 -0
  216. package/dist/{chunk-6FC5EGNV.js → chunk-JBPKEARU.js} +15 -5
  217. package/dist/{chunk-6FC5EGNV.js.map → chunk-JBPKEARU.js.map} +1 -1
  218. package/dist/{chunk-RHY3HH7P.js → chunk-JFEKNTX7.js} +125 -33
  219. package/dist/chunk-JFEKNTX7.js.map +1 -0
  220. package/dist/{chunk-TZOLIGIG.js → chunk-JJEJJ7RK.js} +4 -2
  221. package/dist/chunk-JJEJJ7RK.js.map +1 -0
  222. package/dist/{chunk-PCUKNJAZ.js → chunk-JKV57BTN.js} +2 -2
  223. package/dist/{chunk-EJI5XIBB.js → chunk-JLNBQWZ2.js} +55 -7
  224. package/dist/chunk-JLNBQWZ2.js.map +1 -0
  225. package/dist/{chunk-PIRJPV5T.js → chunk-JNANKJLN.js} +2 -2
  226. package/dist/chunk-JNANKJLN.js.map +1 -0
  227. package/dist/{chunk-XIG5PDM7.js → chunk-JUC24CTX.js} +8 -12
  228. package/dist/chunk-JUC24CTX.js.map +1 -0
  229. package/dist/{chunk-OIGNEXKZ.js → chunk-K5O2QY6T.js} +5 -1
  230. package/dist/{chunk-OIGNEXKZ.js.map → chunk-K5O2QY6T.js.map} +1 -1
  231. package/dist/{chunk-ZTFCYYEZ.js → chunk-KCYE2MZM.js} +3 -3
  232. package/dist/chunk-KCYE2MZM.js.map +1 -0
  233. package/dist/{chunk-JWPLJLDU.js → chunk-KD3QD3A5.js} +2 -2
  234. package/dist/{chunk-JWPLJLDU.js.map → chunk-KD3QD3A5.js.map} +1 -1
  235. package/dist/{chunk-YRMVARQP.js → chunk-KFY3SGN7.js} +49 -2
  236. package/dist/chunk-KFY3SGN7.js.map +1 -0
  237. package/dist/{chunk-CYFQJMUV.js → chunk-KIB7SDIJ.js} +15 -10
  238. package/dist/chunk-KIB7SDIJ.js.map +1 -0
  239. package/dist/{chunk-3KW65B36.js → chunk-KILOTVIF.js} +95 -48
  240. package/dist/chunk-KILOTVIF.js.map +1 -0
  241. package/dist/{chunk-MXFBBHJU.js → chunk-KJMYHC7K.js} +10 -5
  242. package/dist/chunk-KJMYHC7K.js.map +1 -0
  243. package/dist/{chunk-W3LR522O.js → chunk-KM2A35EO.js} +36 -34
  244. package/dist/chunk-KM2A35EO.js.map +1 -0
  245. package/dist/{chunk-575RMLWN.js → chunk-KXULCVOC.js} +30 -24
  246. package/dist/chunk-KXULCVOC.js.map +1 -0
  247. package/dist/{chunk-WELDCG6C.js → chunk-L227SKTB.js} +109 -36
  248. package/dist/chunk-L227SKTB.js.map +1 -0
  249. package/dist/{chunk-BVF3AGJP.js → chunk-LJBOVCQG.js} +26 -11
  250. package/dist/chunk-LJBOVCQG.js.map +1 -0
  251. package/dist/{chunk-2KI4QFHU.js → chunk-LMDRGRJ2.js} +2 -2
  252. package/dist/{chunk-MY6TPVXW.js → chunk-LMPHTYJC.js} +2 -2
  253. package/dist/{chunk-EHRTFRWW.js → chunk-LQHDIS7L.js} +10 -5
  254. package/dist/chunk-LQHDIS7L.js.map +1 -0
  255. package/dist/chunk-LUDUFZTV.js +170 -0
  256. package/dist/chunk-LUDUFZTV.js.map +1 -0
  257. package/dist/{chunk-5HRY2WRF.js → chunk-LZ3VEOU5.js} +2 -2
  258. package/dist/{chunk-Q7P4WJDP.js → chunk-M5T4Q2ZU.js} +1 -1
  259. package/dist/chunk-M5T4Q2ZU.js.map +1 -0
  260. package/dist/{chunk-ICRIXAP2.js → chunk-MC4FJXPA.js} +16 -6
  261. package/dist/chunk-MC4FJXPA.js.map +1 -0
  262. package/dist/{chunk-WPGJYVUH.js → chunk-MGVIEM2O.js} +23 -6
  263. package/dist/chunk-MGVIEM2O.js.map +1 -0
  264. package/dist/{chunk-NGAVDO7E.js → chunk-OADWQ5CR.js} +2 -2
  265. package/dist/{chunk-2NMMFZ5T.js → chunk-OD4FM2U7.js} +6 -3
  266. package/dist/chunk-OD4FM2U7.js.map +1 -0
  267. package/dist/{chunk-OZHRDTDX.js → chunk-OKTXM5H4.js} +11 -1
  268. package/dist/chunk-OKTXM5H4.js.map +1 -0
  269. package/dist/{chunk-RXDLTSWT.js → chunk-ONPLNAPX.js} +16 -7
  270. package/dist/chunk-ONPLNAPX.js.map +1 -0
  271. package/dist/{chunk-FJ43PRLT.js → chunk-ORFGK3XI.js} +20 -14
  272. package/dist/chunk-ORFGK3XI.js.map +1 -0
  273. package/dist/{chunk-DOM4GKSW.js → chunk-OZKVVUJB.js} +3 -3
  274. package/dist/{chunk-3TNBOMQT.js → chunk-PCI747N2.js} +13 -13
  275. package/dist/{chunk-3TNBOMQT.js.map → chunk-PCI747N2.js.map} +1 -1
  276. package/dist/{chunk-MT4HVDUZ.js → chunk-PM3QHTFT.js} +3 -3
  277. package/dist/{chunk-4DWOBS2A.js → chunk-PRQJ5ESM.js} +27 -2
  278. package/dist/{chunk-4DWOBS2A.js.map → chunk-PRQJ5ESM.js.map} +1 -1
  279. package/dist/chunk-PU44GBL4.js +52 -0
  280. package/dist/chunk-PU44GBL4.js.map +1 -0
  281. package/dist/{chunk-MJFNCJXV.js → chunk-Q4CAQGKQ.js} +47 -9
  282. package/dist/chunk-Q4CAQGKQ.js.map +1 -0
  283. package/dist/{chunk-U3WSW6PZ.js → chunk-QMYXNM4P.js} +90 -35
  284. package/dist/chunk-QMYXNM4P.js.map +1 -0
  285. package/dist/{chunk-XVVIG67A.js → chunk-QVJ4NWL2.js} +62 -18
  286. package/dist/chunk-QVJ4NWL2.js.map +1 -0
  287. package/dist/{chunk-NBNN5GOB.js → chunk-QY7YA7OL.js} +11 -2
  288. package/dist/chunk-QY7YA7OL.js.map +1 -0
  289. package/dist/{chunk-ZK7I7JYV.js → chunk-R3PS27B4.js} +7 -7
  290. package/dist/{chunk-2PRLKQAH.js → chunk-RLV3PQGH.js} +35 -19
  291. package/dist/chunk-RLV3PQGH.js.map +1 -0
  292. package/dist/{chunk-WW3QQF4H.js → chunk-ROZJACKP.js} +16 -1
  293. package/dist/chunk-ROZJACKP.js.map +1 -0
  294. package/dist/{chunk-7MNMYOFP.js → chunk-RSUYKGGZ.js} +3 -4
  295. package/dist/chunk-RSUYKGGZ.js.map +1 -0
  296. package/dist/{chunk-LT3NLYSI.js → chunk-RUZOJKNF.js} +10 -7
  297. package/dist/chunk-RUZOJKNF.js.map +1 -0
  298. package/dist/{chunk-326G7DJK.js → chunk-RW5DGAGO.js} +67 -13
  299. package/dist/chunk-RW5DGAGO.js.map +1 -0
  300. package/dist/{chunk-KOSORCJG.js → chunk-S53PKKWK.js} +63 -24
  301. package/dist/chunk-S53PKKWK.js.map +1 -0
  302. package/dist/{chunk-65PG43EQ.js → chunk-S7WU3Y3D.js} +21 -4
  303. package/dist/chunk-S7WU3Y3D.js.map +1 -0
  304. package/dist/{chunk-SKE7JYKA.js → chunk-SFXKHM7P.js} +2 -2
  305. package/dist/{chunk-HMDCOMYU.js → chunk-SKGV326D.js} +3 -3
  306. package/dist/{chunk-I5GLV3VE.js → chunk-SML26KED.js} +33 -26
  307. package/dist/{chunk-I5GLV3VE.js.map → chunk-SML26KED.js.map} +1 -1
  308. package/dist/chunk-T2PO5MUF.js +62 -0
  309. package/dist/chunk-T2PO5MUF.js.map +1 -0
  310. package/dist/{chunk-C7VW7C3F.js → chunk-TDKQGLJW.js} +3 -3
  311. package/dist/chunk-TDKQGLJW.js.map +1 -0
  312. package/dist/{chunk-3QKK7QOS.js → chunk-TERNBNJB.js} +3 -3
  313. package/dist/chunk-TERNBNJB.js.map +1 -0
  314. package/dist/{chunk-MXC3AP5I.js → chunk-TGQ2NTWH.js} +12 -7
  315. package/dist/chunk-TGQ2NTWH.js.map +1 -0
  316. package/dist/{chunk-3Y4P7RXM.js → chunk-TMSXWOBZ.js} +3 -4
  317. package/dist/chunk-TMSXWOBZ.js.map +1 -0
  318. package/dist/{chunk-3ZLVGM76.js → chunk-TTGZV5R3.js} +106 -44
  319. package/dist/chunk-TTGZV5R3.js.map +1 -0
  320. package/dist/{chunk-5UM2VJ6D.js → chunk-UEY3VB6W.js} +2 -2
  321. package/dist/{chunk-I6K5FBRQ.js → chunk-UI3NYK34.js} +4 -1
  322. package/dist/{chunk-I6K5FBRQ.js.map → chunk-UI3NYK34.js.map} +1 -1
  323. package/dist/{chunk-VBJ7V5SK.js → chunk-UIPDNLXA.js} +21 -8
  324. package/dist/chunk-UIPDNLXA.js.map +1 -0
  325. package/dist/{chunk-GIF42EW3.js → chunk-UP6MOYCB.js} +3 -3
  326. package/dist/{chunk-K4FLSOR5.js → chunk-USYGGIJZ.js} +44 -15
  327. package/dist/chunk-USYGGIJZ.js.map +1 -0
  328. package/dist/{chunk-FIT6DMX6.js → chunk-UWY7GIVS.js} +152 -54
  329. package/dist/chunk-UWY7GIVS.js.map +1 -0
  330. package/dist/{chunk-MRILGULB.js → chunk-V2RCP53Q.js} +2 -2
  331. package/dist/{chunk-XKECPATV.js → chunk-VFUEZZBS.js} +113 -4
  332. package/dist/chunk-VFUEZZBS.js.map +1 -0
  333. package/dist/{chunk-FSFEQI74.js → chunk-W7L6HXUC.js} +2 -2
  334. package/dist/{chunk-3IQ2TR4N.js → chunk-WLEB7WCG.js} +2 -2
  335. package/dist/{chunk-GL6I6MEQ.js → chunk-WSGF57U2.js} +3 -3
  336. package/dist/{chunk-KNKUID7G.js → chunk-X7Y7WX73.js} +72 -6
  337. package/dist/chunk-X7Y7WX73.js.map +1 -0
  338. package/dist/{chunk-5NPGSAVB.js → chunk-XEKAG3FM.js} +23 -5
  339. package/dist/chunk-XEKAG3FM.js.map +1 -0
  340. package/dist/{chunk-3APJ5EVB.js → chunk-XKIQZXUB.js} +41 -26
  341. package/dist/chunk-XKIQZXUB.js.map +1 -0
  342. package/dist/chunk-XKXKSQU7.js +92 -0
  343. package/dist/chunk-XKXKSQU7.js.map +1 -0
  344. package/dist/{chunk-JA3AK3PT.js → chunk-XNLXAWHX.js} +4 -4
  345. package/dist/{chunk-CULXMQJH.js → chunk-XPXEJRUB.js} +3 -3
  346. package/dist/chunk-XPXEJRUB.js.map +1 -0
  347. package/dist/{chunk-PZIAX57I.js → chunk-XR6DNK4U.js} +7 -4
  348. package/dist/chunk-XR6DNK4U.js.map +1 -0
  349. package/dist/{chunk-47VWKCAF.js → chunk-XSQ4SGM5.js} +33 -4
  350. package/dist/chunk-XSQ4SGM5.js.map +1 -0
  351. package/dist/{chunk-66DHUKLO.js → chunk-XSWKORGM.js} +16 -14
  352. package/dist/chunk-XSWKORGM.js.map +1 -0
  353. package/dist/{chunk-QR3C7BKQ.js → chunk-XZ4WBBB5.js} +7 -8
  354. package/dist/chunk-XZ4WBBB5.js.map +1 -0
  355. package/dist/{chunk-WNARATI3.js → chunk-Y2SXZ5KZ.js} +59 -11
  356. package/dist/chunk-Y2SXZ5KZ.js.map +1 -0
  357. package/dist/{chunk-QLLBRHAT.js → chunk-YDMVYYD2.js} +229 -264
  358. package/dist/chunk-YDMVYYD2.js.map +1 -0
  359. package/dist/{chunk-SIC6U3GZ.js → chunk-YHV3KRKS.js} +3 -3
  360. package/dist/{chunk-ZPKBYX2F.js → chunk-YNDLCWXS.js} +85 -9
  361. package/dist/chunk-YNDLCWXS.js.map +1 -0
  362. package/dist/{chunk-W6AQJ2PY.js → chunk-YNXOKMJP.js} +35 -16
  363. package/dist/chunk-YNXOKMJP.js.map +1 -0
  364. package/dist/{chunk-VLXA6PI2.js → chunk-YQMZ7IH2.js} +4 -4
  365. package/dist/{chunk-TMM4S4IJ.js → chunk-YR6GIWWY.js} +58 -8
  366. package/dist/chunk-YR6GIWWY.js.map +1 -0
  367. package/dist/{chunk-DK5LDEQM.js → chunk-YR7XMOWK.js} +39 -23
  368. package/dist/chunk-YR7XMOWK.js.map +1 -0
  369. package/dist/{chunk-U7EJOMFC.js → chunk-ZEY4KYRQ.js} +41 -14
  370. package/dist/chunk-ZEY4KYRQ.js.map +1 -0
  371. package/dist/chunk-ZFXCQPNO.js +27 -0
  372. package/dist/chunk-ZFXCQPNO.js.map +1 -0
  373. package/dist/citations.js +1 -1
  374. package/dist/{cli-kuh9PwZ5.d.ts → cli-CPe_2KB1.d.ts} +8 -31
  375. package/dist/cli.d.ts +10 -6
  376. package/dist/cli.js +124 -119
  377. package/dist/commitment-ledger.js +2 -2
  378. package/dist/compat/checks.js +1 -2
  379. package/dist/compounding/engine.d.ts +3 -2
  380. package/dist/compounding/engine.js +11 -11
  381. package/dist/compounding/preference-consolidator.d.ts +1 -0
  382. package/dist/compounding/preference-consolidator.js +8 -8
  383. package/dist/compounding/preference-consolidator.js.map +1 -1
  384. package/dist/compression-optimizer.d.ts +1 -0
  385. package/dist/compression-optimizer.js +1 -1
  386. package/dist/config.d.ts +1 -0
  387. package/dist/config.js +3 -2
  388. package/dist/connectors/codex-materialize-runner.d.ts +1 -0
  389. package/dist/connectors/codex-materialize-runner.js +12 -11
  390. package/dist/connectors/codex-materialize.d.ts +1 -0
  391. package/dist/connectors/codex-materialize.js +3 -2
  392. package/dist/connectors/index.d.ts +1 -0
  393. package/dist/connectors/index.js +14 -14
  394. package/dist/{connectors-cli-CwbyjGR7.d.ts → connectors-cli-DbTPNj2H.d.ts} +7 -1
  395. package/dist/connectors-cli.d.ts +1 -1
  396. package/dist/connectors-cli.js +3 -1
  397. package/dist/consolidation-provenance-check.d.ts +1 -0
  398. package/dist/consolidation-provenance-check.js +2 -2
  399. package/dist/consolidation-undo.d.ts +1 -0
  400. package/dist/consolidation-undo.js +1 -1
  401. package/dist/contradiction/index.d.ts +3 -1
  402. package/dist/contradiction/index.js +3 -3
  403. package/dist/{contradiction-review-ATP4S6IC.js → contradiction-review-6V2LXXK6.js} +2 -2
  404. package/dist/{contradiction-scan-5A4IDZV5.js → contradiction-scan-GIRVC4C7.js} +3 -3
  405. package/dist/conversation-index/backend.d.ts +3 -1
  406. package/dist/conversation-index/backend.js +3 -3
  407. package/dist/conversation-index/chunker.d.ts +1 -0
  408. package/dist/conversation-index/cleanup.js +1 -1
  409. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  410. package/dist/conversation-index/faiss-adapter.js +1 -1
  411. package/dist/conversation-index/indexer.d.ts +5 -2
  412. package/dist/conversation-index/indexer.js +1 -1
  413. package/dist/conversation-index/search.d.ts +2 -1
  414. package/dist/cross-namespace-budget.js +1 -1
  415. package/dist/cue-anchors.js +2 -2
  416. package/dist/dashboard-runtime.d.ts +6 -0
  417. package/dist/dashboard-runtime.js +3 -3
  418. package/dist/day-summary.d.ts +1 -0
  419. package/dist/day-summary.js +2 -2
  420. package/dist/delinearize.d.ts +1 -0
  421. package/dist/direct-answer-wiring.d.ts +1 -0
  422. package/dist/direct-answer.d.ts +1 -0
  423. package/dist/{dreams-ledger-LR2NBAZE.js → dreams-ledger-3WSCI5V4.js} +5 -4
  424. package/dist/{dreams-ledger-LR2NBAZE.js.map → dreams-ledger-3WSCI5V4.js.map} +1 -1
  425. package/dist/embedding-fallback.d.ts +3 -0
  426. package/dist/embedding-fallback.js +2 -2
  427. package/dist/enrichment/index.d.ts +1 -0
  428. package/dist/enrichment/index.js +1 -1
  429. package/dist/entity-retrieval.d.ts +2 -0
  430. package/dist/entity-retrieval.js +9 -9
  431. package/dist/entity-schema.d.ts +1 -0
  432. package/dist/evals.js +1 -1
  433. package/dist/explicit-capture.d.ts +5 -3
  434. package/dist/explicit-capture.js +2 -2
  435. package/dist/extraction-judge-telemetry.d.ts +2 -0
  436. package/dist/extraction-judge-training.d.ts +2 -0
  437. package/dist/extraction-judge.d.ts +2 -0
  438. package/dist/extraction.d.ts +2 -0
  439. package/dist/extraction.js +12 -12
  440. package/dist/{faiss-adapter-CzPghc4C.d.ts → faiss-adapter-BHecI1fF.d.ts} +4 -1
  441. package/dist/fallback-llm.d.ts +11 -1
  442. package/dist/fallback-llm.js +8 -6
  443. package/dist/{first-start-migration-4MHQEOSD.js → first-start-migration-CKTCTCQI.js} +5 -5
  444. package/dist/graph-dashboard-diff.d.ts +4 -0
  445. package/dist/graph-dashboard-diff.js +1 -1
  446. package/dist/graph-dashboard-parser.js +1 -1
  447. package/dist/{graph-edge-decay-5DI5GUNL.js → graph-edge-decay-MUP5J7CC.js} +6 -6
  448. package/dist/graph-events.js +1 -1
  449. package/dist/graph-snapshot.js +3 -3
  450. package/dist/graph.js +2 -2
  451. package/dist/harmonic-retrieval.js +4 -4
  452. package/dist/identity-continuity.d.ts +1 -0
  453. package/dist/importance.d.ts +1 -0
  454. package/dist/importers/index.d.ts +244 -0
  455. package/dist/importers/index.js +20 -0
  456. package/dist/index.d.ts +20 -350
  457. package/dist/index.js +885 -562
  458. package/dist/index.js.map +1 -1
  459. package/dist/intent.d.ts +1 -0
  460. package/dist/lcm/archive.d.ts +2 -2
  461. package/dist/lcm/archive.js +2 -2
  462. package/dist/lcm/engine.d.ts +3 -2
  463. package/dist/lcm/engine.js +6 -6
  464. package/dist/lcm/index.d.ts +1 -0
  465. package/dist/lcm/index.js +8 -8
  466. package/dist/lcm/recall.js +1 -1
  467. package/dist/lcm/summarizer.js +3 -3
  468. package/dist/lcm/tools.d.ts +1 -0
  469. package/dist/lifecycle.d.ts +1 -0
  470. package/dist/live-connectors-runner.d.ts +1 -0
  471. package/dist/live-connectors-runner.js +6 -6
  472. package/dist/local-llm.d.ts +1 -0
  473. package/dist/local-llm.js +2 -2
  474. package/dist/maintenance/archive-observations.js +1 -1
  475. package/dist/maintenance/memory-governance.d.ts +3 -1
  476. package/dist/maintenance/memory-governance.js +10 -8
  477. package/dist/maintenance/migrate-observations.js +3 -2
  478. package/dist/maintenance/observation-ledger-utils.d.ts +3 -0
  479. package/dist/maintenance/observation-ledger-utils.js +2 -1
  480. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -1
  481. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -8
  482. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -1
  483. package/dist/maintenance/rebuild-memory-projection.js +13 -10
  484. package/dist/maintenance/rebuild-observations.d.ts +1 -0
  485. package/dist/maintenance/rebuild-observations.js +3 -2
  486. package/dist/mcp-memory-inspector-app.d.ts +7 -4
  487. package/dist/mcp-memory-inspector-app.js +1 -1
  488. package/dist/memory-action-policy.d.ts +1 -0
  489. package/dist/memory-cache.d.ts +1 -0
  490. package/dist/memory-cache.js +1 -1
  491. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -0
  492. package/dist/memory-projection-store.d.ts +1 -0
  493. package/dist/memory-projection-store.js +1 -1
  494. package/dist/memory-provenance.d.ts +1 -0
  495. package/dist/memory-worth-outcomes.d.ts +1 -0
  496. package/dist/migrate/from-engram.js +2 -2
  497. package/dist/{migrate-from-identity-anchor-G27MCD6A.js → migrate-from-identity-anchor-EB4XI4Q2.js} +2 -2
  498. package/dist/model-registry.js +1 -1
  499. package/dist/models-json.d.ts +1 -0
  500. package/dist/namespaces/migrate.d.ts +3 -0
  501. package/dist/namespaces/migrate.js +26 -24
  502. package/dist/namespaces/principal.d.ts +1 -0
  503. package/dist/namespaces/principal.js +2 -1
  504. package/dist/namespaces/search.d.ts +2 -1
  505. package/dist/namespaces/search.js +17 -15
  506. package/dist/namespaces/storage.d.ts +4 -2
  507. package/dist/namespaces/storage.js +10 -9
  508. package/dist/native-knowledge.d.ts +1 -0
  509. package/dist/native-knowledge.js +1 -1
  510. package/dist/negative.js +1 -1
  511. package/dist/network/webdav.d.ts +16 -1
  512. package/dist/network/webdav.js +5 -3
  513. package/dist/objective-state-writers.js +4 -4
  514. package/dist/objective-state.js +2 -2
  515. package/dist/offline-sync.d.ts +4 -0
  516. package/dist/offline-sync.js +4 -4
  517. package/dist/operator-toolkit.d.ts +4 -1
  518. package/dist/operator-toolkit.js +37 -34
  519. package/dist/opik-exporter.js +1 -1
  520. package/dist/{orchestrator-DuWl9Hwx.d.ts → orchestrator-Co9nxRLF.d.ts} +4 -74
  521. package/dist/orchestrator.d.ts +5 -3
  522. package/dist/orchestrator.js +101 -98
  523. package/dist/page-versioning.js +1 -1
  524. package/dist/path-X2K5XCHL.js +9 -0
  525. package/dist/patterns-cli.d.ts +1 -0
  526. package/dist/peers/index.d.ts +328 -0
  527. package/dist/{peers-HCVGHMAE.js → peers/index.js} +4 -4
  528. package/dist/pipeline-D18UAKlN.d.ts +32 -0
  529. package/dist/plugin-entry-resolver.d.ts +9 -0
  530. package/dist/plugin-entry-resolver.js +8 -0
  531. package/dist/plugin-entry-resolver.js.map +1 -0
  532. package/dist/plugin-id.d.ts +2 -21
  533. package/dist/plugin-id.js +33 -4
  534. package/dist/plugin-id.js.map +1 -1
  535. package/dist/policy-runtime.d.ts +4 -0
  536. package/dist/policy-runtime.js +1 -1
  537. package/dist/profiling.js +1 -1
  538. package/dist/qmd-recall-cache.d.ts +1 -0
  539. package/dist/qmd.d.ts +2 -1
  540. package/dist/qmd.js +3 -3
  541. package/dist/recall-disclosure-escalation.d.ts +1 -0
  542. package/dist/recall-explain-renderer.d.ts +1 -0
  543. package/dist/recall-explain-renderer.js +3 -3
  544. package/dist/recall-state.d.ts +8 -1
  545. package/dist/recall-state.js +2 -1
  546. package/dist/recall-tag-filter.d.ts +1 -0
  547. package/dist/recall-xray-cli.d.ts +1 -0
  548. package/dist/recall-xray-cli.js +4 -4
  549. package/dist/recall-xray-renderer.d.ts +1 -0
  550. package/dist/recall-xray-renderer.js +3 -3
  551. package/dist/recall-xray.d.ts +1 -0
  552. package/dist/recall-xray.js +2 -2
  553. package/dist/relevance.d.ts +7 -1
  554. package/dist/relevance.js +2 -1
  555. package/dist/replay/normalizers/chatgpt.js +2 -2
  556. package/dist/replay/normalizers/claude.js +2 -2
  557. package/dist/replay/normalizers/openclaw.js +2 -2
  558. package/dist/replay/normalizers/shared.js +1 -1
  559. package/dist/replay/runner.js +1 -1
  560. package/dist/rerank.js +1 -1
  561. package/dist/{resolution-B7FNQSSP.js → resolution-ZY7VM6WS.js} +3 -3
  562. package/dist/resolution-ZY7VM6WS.js.map +1 -0
  563. package/dist/resolve-auth-token.d.ts +1 -0
  564. package/dist/resolve-auth-token.js +1 -1
  565. package/dist/resolve-provider-secret.d.ts +19 -29
  566. package/dist/resolve-provider-secret.js +2 -6
  567. package/dist/resume-bundles.js +10 -9
  568. package/dist/retrieval-agents.d.ts +2 -1
  569. package/dist/retrieval-agents.js +2 -1
  570. package/dist/retrieval-tiers.d.ts +1 -0
  571. package/dist/routing/engine.d.ts +1 -0
  572. package/dist/routing/store.d.ts +3 -0
  573. package/dist/routing/store.js +1 -1
  574. package/dist/runtime/env.js +1 -1
  575. package/dist/schemas.d.ts +191 -17
  576. package/dist/schemas.js +1 -1
  577. package/dist/sdk-compat.js +1 -1
  578. package/dist/search/document-scanner.js +1 -1
  579. package/dist/search/embed-helper.d.ts +7 -2
  580. package/dist/search/embed-helper.js +3 -1
  581. package/dist/search/factory.d.ts +2 -1
  582. package/dist/search/factory.js +15 -14
  583. package/dist/search/index.d.ts +2 -1
  584. package/dist/search/index.js +21 -20
  585. package/dist/search/lancedb-backend.d.ts +8 -7
  586. package/dist/search/lancedb-backend.js +4 -2
  587. package/dist/search/meilisearch-backend.d.ts +8 -7
  588. package/dist/search/meilisearch-backend.js +4 -2
  589. package/dist/search/noop-backend.d.ts +2 -1
  590. package/dist/search/noop-backend.js +1 -1
  591. package/dist/search/orama-backend.d.ts +10 -8
  592. package/dist/search/orama-backend.js +8 -4
  593. package/dist/search/port.d.ts +2 -1
  594. package/dist/search/remote-backend.d.ts +2 -1
  595. package/dist/search/remote-backend.js +1 -1
  596. package/dist/secure-store/index.d.ts +16 -3
  597. package/dist/secure-store/index.js +2 -2
  598. package/dist/{semantic-VwGI14Ok.d.ts → semantic-SLAa_prH.d.ts} +5 -3
  599. package/dist/semantic-consolidation.d.ts +1 -0
  600. package/dist/semantic-consolidation.js +14 -13
  601. package/dist/semantic-rule-promotion.js +8 -8
  602. package/dist/semantic-rule-verifier.d.ts +1 -0
  603. package/dist/semantic-rule-verifier.js +8 -8
  604. package/dist/session-integrity.d.ts +1 -0
  605. package/dist/session-integrity.js +1 -1
  606. package/dist/session-observer-bands.d.ts +1 -0
  607. package/dist/session-observer-state.d.ts +6 -1
  608. package/dist/session-observer-state.js +1 -1
  609. package/dist/shared-context/manager.d.ts +5 -0
  610. package/dist/shared-context/manager.js +3 -3
  611. package/dist/signal.d.ts +1 -0
  612. package/dist/signal.js +1 -1
  613. package/dist/source-attribution.js +1 -1
  614. package/dist/state-store-4QZISH3J.js +30 -0
  615. package/dist/state-store-4QZISH3J.js.map +1 -0
  616. package/dist/storage-C4DX8CuG.d.ts +157 -0
  617. package/dist/storage.d.ts +2 -0
  618. package/dist/storage.js +7 -7
  619. package/dist/store-contract.js +1 -1
  620. package/dist/summarizer.d.ts +1 -0
  621. package/dist/summarizer.js +7 -7
  622. package/dist/summary-snapshot.d.ts +1 -0
  623. package/dist/surfaces/dreams.js +48 -17
  624. package/dist/surfaces/dreams.js.map +1 -1
  625. package/dist/temporal-supersession.d.ts +1 -0
  626. package/dist/temporal-supersession.js +1 -1
  627. package/dist/temporal-validity.d.ts +1 -0
  628. package/dist/threading.d.ts +1 -0
  629. package/dist/tier-migration.d.ts +1 -0
  630. package/dist/tier-routing.d.ts +1 -0
  631. package/dist/{tier-stats-62ZVDFKS.js → tier-stats-SKML2OSF.js} +5 -5
  632. package/dist/tmt.js +1 -1
  633. package/dist/tokens.js +2 -2
  634. package/dist/topics.d.ts +1 -0
  635. package/dist/{trace-C5ETWBEF.js → trace-WM7V4CKI.js} +31 -1
  636. package/dist/trace-WM7V4CKI.js.map +1 -0
  637. package/dist/transcript.d.ts +1 -0
  638. package/dist/transcript.js +2 -2
  639. package/dist/transfer/autodetect.js +7 -7
  640. package/dist/transfer/backup.js +5 -5
  641. package/dist/transfer/capsule-export.js +5 -5
  642. package/dist/transfer/capsule-import.d.ts +6 -0
  643. package/dist/transfer/capsule-import.js +4 -4
  644. package/dist/transfer/export-json.js +3 -3
  645. package/dist/transfer/export-md.js +3 -3
  646. package/dist/transfer/export-sqlite.js +3 -3
  647. package/dist/transfer/fs-utils.d.ts +2 -1
  648. package/dist/transfer/fs-utils.js +5 -3
  649. package/dist/transfer/import-json.js +3 -3
  650. package/dist/transfer/import-md.js +3 -3
  651. package/dist/transfer/import-sqlite.js +3 -3
  652. package/dist/trust-zones.js +2 -2
  653. package/dist/types-B1VHaf2w.d.ts +126 -0
  654. package/dist/types-BliCnURB.d.ts +83 -0
  655. package/dist/types.d.ts +35 -0
  656. package/dist/types.js +1 -1
  657. package/dist/utility-learner.js +3 -3
  658. package/dist/utility-runtime.d.ts +1 -0
  659. package/dist/utility-runtime.js +4 -4
  660. package/dist/utility-telemetry.js +2 -2
  661. package/dist/verified-recall.js +9 -9
  662. package/dist/work/board.js +2 -2
  663. package/dist/work/boundary.js +1 -1
  664. package/dist/work/storage.d.ts +5 -0
  665. package/dist/work/storage.js +1 -1
  666. package/dist/work-product-ledger.js +2 -2
  667. package/package.json +74 -3
  668. package/scripts/ensure-better-sqlite3.mjs +8 -7
  669. package/scripts/faiss_index.py +141 -29
  670. package/src/access-cli.test.ts +87 -2
  671. package/src/access-cli.ts +59 -5
  672. package/src/access-http.test.ts +150 -0
  673. package/src/access-http.ts +103 -34
  674. package/src/access-idempotency.ts +136 -3
  675. package/src/access-mcp.test.ts +155 -0
  676. package/src/access-mcp.ts +116 -30
  677. package/src/access-schema.ts +22 -4
  678. package/src/access-service-namespace.test.ts +9 -9
  679. package/src/access-service-project-tag.test.ts +37 -0
  680. package/src/access-service.ts +15 -14
  681. package/src/active-recall.test.ts +29 -1
  682. package/src/active-recall.ts +11 -7
  683. package/src/adapters/claude-code.ts +7 -8
  684. package/src/adapters/codex.ts +6 -7
  685. package/src/adapters/hermes.ts +1 -5
  686. package/src/adapters/registry.test.ts +63 -0
  687. package/src/adapters/registry.ts +10 -0
  688. package/src/adapters/replit.ts +5 -7
  689. package/src/adapters/types.ts +24 -1
  690. package/src/behavior-signals.ts +1 -1
  691. package/src/binary-lifecycle/backend.ts +16 -4
  692. package/src/binary-lifecycle/pipeline.test.ts +149 -0
  693. package/src/binary-lifecycle/pipeline.ts +49 -7
  694. package/src/binary-lifecycle/scanner.ts +19 -4
  695. package/src/boxes.ts +119 -32
  696. package/src/buffer-session.test.ts +28 -0
  697. package/src/buffer.ts +10 -14
  698. package/src/bulk-import/types.ts +10 -0
  699. package/src/calibration.test.ts +99 -0
  700. package/src/calibration.ts +57 -13
  701. package/src/causal-consolidation.test.ts +214 -0
  702. package/src/causal-consolidation.ts +131 -14
  703. package/src/causal-retrieval.ts +16 -3
  704. package/src/citations.test.ts +75 -0
  705. package/src/citations.ts +19 -6
  706. package/src/cli.ts +134 -109
  707. package/src/coding/coding-namespace.test.ts +7 -0
  708. package/src/coding/coding-namespace.ts +8 -0
  709. package/src/coding/review-context.test.ts +30 -0
  710. package/src/coding/review-context.ts +79 -9
  711. package/src/coding/wire-coding-context.test.ts +16 -0
  712. package/src/compat/checks.test.ts +33 -0
  713. package/src/compat/checks.ts +64 -4
  714. package/src/compounding/engine.ts +2 -2
  715. package/src/compounding/preference-consolidator.test.ts +47 -0
  716. package/src/compounding/preference-consolidator.ts +8 -8
  717. package/src/compression-optimizer.ts +5 -2
  718. package/src/config.test.ts +34 -2
  719. package/src/config.ts +62 -18
  720. package/src/connectors/codex-materialize-runner.ts +4 -3
  721. package/src/connectors/codex-materialize.ts +149 -34
  722. package/src/connectors/index.test.ts +144 -7
  723. package/src/connectors/index.ts +86 -15
  724. package/src/connectors/live/github.test.ts +47 -0
  725. package/src/connectors/live/github.ts +29 -1
  726. package/src/connectors/live/index.ts +2 -0
  727. package/src/connectors/live/live-connectors.test.ts +359 -73
  728. package/src/connectors/live/notion.test.ts +84 -0
  729. package/src/connectors/live/notion.ts +18 -1
  730. package/src/connectors/live/state-store.ts +419 -38
  731. package/src/connectors/weclone-installer.test.ts +16 -18
  732. package/src/connectors-cli.ts +19 -0
  733. package/src/console/trace.test.ts +28 -0
  734. package/src/console/trace.ts +42 -5
  735. package/src/contradiction/contradiction-judge.test.ts +49 -0
  736. package/src/contradiction/contradiction-judge.ts +15 -5
  737. package/src/contradiction/contradiction-review.ts +31 -7
  738. package/src/contradiction/contradiction-scan.ts +28 -18
  739. package/src/contradiction/contradiction.test.ts +237 -1
  740. package/src/contradiction/resolution.ts +43 -4
  741. package/src/conversation-index/backend.ts +13 -5
  742. package/src/conversation-index/cleanup.ts +25 -4
  743. package/src/conversation-index/faiss-adapter.ts +24 -15
  744. package/src/conversation-index/indexer.test.ts +71 -10
  745. package/src/conversation-index/indexer.ts +22 -3
  746. package/src/cross-namespace-budget.test.ts +59 -0
  747. package/src/cross-namespace-budget.ts +15 -7
  748. package/src/curation/index.ts +18 -17
  749. package/src/dashboard-runtime.test.ts +98 -0
  750. package/src/dashboard-runtime.ts +96 -6
  751. package/src/dedup/index.test.ts +133 -0
  752. package/src/dedup/index.ts +73 -10
  753. package/src/dedup/semantic.test.ts +77 -2
  754. package/src/dedup/semantic.ts +26 -6
  755. package/src/embedding-fallback.ts +47 -15
  756. package/src/enrichment/audit.ts +8 -1
  757. package/src/enrichment/pipeline.ts +21 -13
  758. package/src/enrichment/web-search-provider.ts +1 -6
  759. package/src/entity-retrieval.ts +57 -6
  760. package/src/evals.ts +22 -13
  761. package/src/explicit-capture.test.ts +40 -0
  762. package/src/explicit-capture.ts +14 -2
  763. package/src/extraction.ts +42 -30
  764. package/src/fallback-llm.ts +35 -2
  765. package/src/graph-dashboard-diff.test.ts +57 -0
  766. package/src/graph-dashboard-diff.ts +24 -2
  767. package/src/graph-dashboard-parser.test.ts +31 -0
  768. package/src/graph-dashboard-parser.ts +4 -1
  769. package/src/graph-events.ts +6 -4
  770. package/src/graph.test.ts +69 -0
  771. package/src/graph.ts +7 -4
  772. package/src/importers/base.test.ts +70 -0
  773. package/src/importers/base.ts +56 -7
  774. package/src/index.ts +5 -2
  775. package/src/lcm/archive.ts +65 -16
  776. package/src/lcm/engine.ts +27 -8
  777. package/src/lcm/recall.ts +5 -5
  778. package/src/lcm-engine.test.ts +87 -1
  779. package/src/lcm-recall.test.ts +71 -0
  780. package/src/live-connectors-runner.ts +100 -36
  781. package/src/maintenance/archive-observations.ts +24 -3
  782. package/src/maintenance/atomic-file.ts +85 -0
  783. package/src/maintenance/dreams-ledger.ts +15 -8
  784. package/src/maintenance/memory-governance.test.ts +53 -0
  785. package/src/maintenance/memory-governance.ts +15 -5
  786. package/src/maintenance/observation-ledger-utils.ts +6 -5
  787. package/src/maintenance/purge.test.ts +64 -0
  788. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +22 -9
  789. package/src/maintenance/rebuild-memory-projection.ts +22 -9
  790. package/src/maintenance/rebuild-observations.ts +7 -3
  791. package/src/mcp-memory-inspector-app.ts +26 -3
  792. package/src/memory-cache.test.ts +19 -0
  793. package/src/memory-cache.ts +1 -0
  794. package/src/memory-extension/codex-publisher.ts +25 -4
  795. package/src/memory-extension-host/host-discovery.test.ts +69 -0
  796. package/src/memory-extension-host/host-discovery.ts +63 -6
  797. package/src/memory-projection-store.ts +114 -62
  798. package/src/message-parts/index.ts +46 -31
  799. package/src/message-parts/message-parts.test.ts +77 -0
  800. package/src/migrate/from-engram.ts +68 -14
  801. package/src/model-registry.test.ts +38 -0
  802. package/src/model-registry.ts +12 -7
  803. package/src/namespaces/identity.test.ts +66 -0
  804. package/src/namespaces/identity.ts +23 -0
  805. package/src/namespaces/migrate.test.ts +62 -0
  806. package/src/namespaces/migrate.ts +82 -14
  807. package/src/namespaces/principal.test.ts +37 -1
  808. package/src/namespaces/principal.ts +18 -7
  809. package/src/namespaces/search.test.ts +96 -7
  810. package/src/namespaces/search.ts +32 -25
  811. package/src/namespaces/storage.ts +93 -11
  812. package/src/native-knowledge.ts +23 -3
  813. package/src/negative.ts +50 -5
  814. package/src/network/webdav.ts +177 -58
  815. package/src/offline-sync.test.ts +128 -18
  816. package/src/offline-sync.ts +41 -7
  817. package/src/onboarding/index.test.ts +105 -0
  818. package/src/onboarding/index.ts +17 -5
  819. package/src/operator-toolkit.ts +43 -5
  820. package/src/orchestrator.ts +120 -27
  821. package/src/page-versioning.ts +31 -5
  822. package/src/peers/peers.test.ts +70 -0
  823. package/src/peers/storage.ts +32 -3
  824. package/src/plugin-entry-resolver.test.ts +60 -0
  825. package/src/plugin-entry-resolver.ts +48 -0
  826. package/src/plugin-id.test.ts +38 -0
  827. package/src/plugin-id.ts +31 -64
  828. package/src/policy-runtime.test.ts +75 -0
  829. package/src/policy-runtime.ts +32 -3
  830. package/src/procedural/procedure-miner.test.ts +152 -0
  831. package/src/procedural/procedure-miner.ts +124 -19
  832. package/src/profiling.test.ts +23 -0
  833. package/src/profiling.ts +10 -1
  834. package/src/projection/index.test.ts +253 -0
  835. package/src/projection/index.ts +159 -18
  836. package/src/qmd-client.test.ts +45 -0
  837. package/src/qmd.ts +13 -10
  838. package/src/recall-disclosure.test.ts +15 -1
  839. package/src/recall-state.ts +24 -5
  840. package/src/relevance.ts +24 -5
  841. package/src/replay/normalizers/chatgpt.ts +14 -4
  842. package/src/replay/normalizers/claude.ts +8 -3
  843. package/src/replay/normalizers/openclaw.ts +35 -12
  844. package/src/replay/normalizers/replay-normalizers.test.ts +65 -0
  845. package/src/replay/normalizers/shared.ts +4 -1
  846. package/src/replay/runner.ts +1 -1
  847. package/src/rerank.test.ts +41 -1
  848. package/src/rerank.ts +2 -2
  849. package/src/resolve-auth-token.test.ts +29 -0
  850. package/src/resolve-auth-token.ts +12 -7
  851. package/src/resolve-provider-secret.test.ts +78 -22
  852. package/src/resolve-provider-secret.ts +55 -223
  853. package/src/retrieval-agents.ts +51 -14
  854. package/src/review/index.test.ts +75 -1
  855. package/src/review/index.ts +88 -30
  856. package/src/routing/store.ts +36 -6
  857. package/src/runtime/env.test.ts +73 -0
  858. package/src/runtime/env.ts +7 -11
  859. package/src/schemas.ts +16 -1
  860. package/src/search/abort.ts +18 -0
  861. package/src/search/document-scanner.test.ts +80 -0
  862. package/src/search/document-scanner.ts +51 -9
  863. package/src/search/embed-helper.ts +19 -6
  864. package/src/search/factory.ts +9 -5
  865. package/src/search/lancedb-backend.ts +66 -23
  866. package/src/search/meilisearch-backend.ts +39 -13
  867. package/src/search/noop-backend.ts +1 -1
  868. package/src/search/orama-backend.test.ts +27 -0
  869. package/src/search/orama-backend.ts +69 -16
  870. package/src/search/port.ts +4 -1
  871. package/src/search/remote-backend.ts +1 -1
  872. package/src/secure-store/cli-handlers.ts +70 -6
  873. package/src/secure-store/cli-renderer.ts +13 -7
  874. package/src/secure-store/secure-fs.ts +11 -5
  875. package/src/secure-store/secure-store.test.ts +70 -0
  876. package/src/semantic-consolidation.test.ts +45 -0
  877. package/src/semantic-consolidation.ts +3 -3
  878. package/src/session-integrity.test.ts +98 -0
  879. package/src/session-integrity.ts +51 -1
  880. package/src/session-observer-state.ts +108 -41
  881. package/src/shared-context/manager.ts +93 -15
  882. package/src/signal.test.ts +14 -0
  883. package/src/signal.ts +8 -1
  884. package/src/source-attribution.test.ts +8 -0
  885. package/src/source-attribution.ts +24 -2
  886. package/src/spaces/index.test.ts +93 -0
  887. package/src/spaces/index.ts +75 -9
  888. package/src/storage.ts +14 -1
  889. package/src/store-contract.test.ts +35 -0
  890. package/src/store-contract.ts +39 -5
  891. package/src/summarizer.ts +24 -18
  892. package/src/summary-snapshot.test.ts +77 -0
  893. package/src/surfaces/dreams.test.ts +73 -0
  894. package/src/surfaces/dreams.ts +53 -19
  895. package/src/sync/index.ts +42 -17
  896. package/src/taxonomy/taxonomy-loader.ts +43 -4
  897. package/src/temporal-supersession.test.ts +67 -0
  898. package/src/temporal-supersession.ts +8 -0
  899. package/src/tmt.test.ts +50 -0
  900. package/src/tmt.ts +35 -11
  901. package/src/tokens.test.ts +18 -0
  902. package/src/tokens.ts +7 -0
  903. package/src/training-export/converter.test.ts +55 -2
  904. package/src/training-export/converter.ts +36 -10
  905. package/src/training-export/registry.test.ts +17 -0
  906. package/src/training-export/registry.ts +19 -1
  907. package/src/transcript.ts +2 -2
  908. package/src/transfer/backup.ts +18 -7
  909. package/src/transfer/capsule-crypto.ts +105 -21
  910. package/src/transfer/capsule-encrypt.test.ts +106 -7
  911. package/src/transfer/capsule-export.ts +23 -14
  912. package/src/transfer/capsule-import.ts +11 -2
  913. package/src/transfer/exclusions.ts +7 -0
  914. package/src/transfer/export-sqlite.ts +14 -13
  915. package/src/transfer/fs-utils.ts +52 -1
  916. package/src/transfer/import-json.ts +12 -7
  917. package/src/transfer/import-md.ts +5 -5
  918. package/src/transfer/import-sqlite.ts +4 -5
  919. package/src/trust-zones.ts +1 -1
  920. package/src/types.ts +25 -0
  921. package/src/utility-telemetry.ts +1 -1
  922. package/src/utils/category-dir.test.ts +15 -0
  923. package/src/utils/category-dir.ts +3 -1
  924. package/src/work/boundary.ts +30 -18
  925. package/src/work/storage.ts +116 -38
  926. package/src/work-product-ledger.ts +1 -1
  927. package/dist/chunk-25MQ7IHJ.js.map +0 -1
  928. package/dist/chunk-2IWUMAES.js.map +0 -1
  929. package/dist/chunk-2NMMFZ5T.js.map +0 -1
  930. package/dist/chunk-2PRLKQAH.js.map +0 -1
  931. package/dist/chunk-326G7DJK.js.map +0 -1
  932. package/dist/chunk-3APJ5EVB.js.map +0 -1
  933. package/dist/chunk-3KW65B36.js.map +0 -1
  934. package/dist/chunk-3QKK7QOS.js.map +0 -1
  935. package/dist/chunk-3SLRNYNG.js.map +0 -1
  936. package/dist/chunk-3VAL7ZL2.js.map +0 -1
  937. package/dist/chunk-3Y4P7RXM.js.map +0 -1
  938. package/dist/chunk-3ZLVGM76.js.map +0 -1
  939. package/dist/chunk-43PJZYGL.js.map +0 -1
  940. package/dist/chunk-47VWKCAF.js.map +0 -1
  941. package/dist/chunk-4KGVTPGD.js.map +0 -1
  942. package/dist/chunk-5375UYTQ.js.map +0 -1
  943. package/dist/chunk-56K5QLHX.js.map +0 -1
  944. package/dist/chunk-575RMLWN.js.map +0 -1
  945. package/dist/chunk-5NPGSAVB.js.map +0 -1
  946. package/dist/chunk-5RGLBDQF.js.map +0 -1
  947. package/dist/chunk-65PG43EQ.js.map +0 -1
  948. package/dist/chunk-66DHUKLO.js.map +0 -1
  949. package/dist/chunk-6LVVDPJ4.js.map +0 -1
  950. package/dist/chunk-76FLAAUC.js.map +0 -1
  951. package/dist/chunk-77H5NU3M.js.map +0 -1
  952. package/dist/chunk-7MNMYOFP.js.map +0 -1
  953. package/dist/chunk-7OZ53EXP.js.map +0 -1
  954. package/dist/chunk-7SEAZFFB.js.map +0 -1
  955. package/dist/chunk-A6KTB5R6.js.map +0 -1
  956. package/dist/chunk-AGZQD76C.js.map +0 -1
  957. package/dist/chunk-APO3DCMU.js.map +0 -1
  958. package/dist/chunk-BVF3AGJP.js.map +0 -1
  959. package/dist/chunk-C5BCH4ZS.js.map +0 -1
  960. package/dist/chunk-C7VW7C3F.js.map +0 -1
  961. package/dist/chunk-CULXMQJH.js.map +0 -1
  962. package/dist/chunk-CYFQJMUV.js.map +0 -1
  963. package/dist/chunk-D654IBA6.js +0 -61
  964. package/dist/chunk-D654IBA6.js.map +0 -1
  965. package/dist/chunk-DGXUHMOV.js.map +0 -1
  966. package/dist/chunk-DINWEURR.js.map +0 -1
  967. package/dist/chunk-DK5LDEQM.js.map +0 -1
  968. package/dist/chunk-EABGC2TL.js.map +0 -1
  969. package/dist/chunk-EHRTFRWW.js.map +0 -1
  970. package/dist/chunk-EJI5XIBB.js.map +0 -1
  971. package/dist/chunk-FAAFWE4G.js.map +0 -1
  972. package/dist/chunk-FAJ7FZYM.js +0 -11
  973. package/dist/chunk-FAJ7FZYM.js.map +0 -1
  974. package/dist/chunk-FDU6HUUL.js +0 -147
  975. package/dist/chunk-FDU6HUUL.js.map +0 -1
  976. package/dist/chunk-FIT6DMX6.js.map +0 -1
  977. package/dist/chunk-FJ43PRLT.js.map +0 -1
  978. package/dist/chunk-FLTNHQK6.js +0 -262
  979. package/dist/chunk-FLTNHQK6.js.map +0 -1
  980. package/dist/chunk-GDFS42HT.js.map +0 -1
  981. package/dist/chunk-H3ME6L6D.js.map +0 -1
  982. package/dist/chunk-HXXBL2KD.js.map +0 -1
  983. package/dist/chunk-ICRIXAP2.js.map +0 -1
  984. package/dist/chunk-IQT3XTKW.js.map +0 -1
  985. package/dist/chunk-JR4ZC3G4.js.map +0 -1
  986. package/dist/chunk-K4FLSOR5.js.map +0 -1
  987. package/dist/chunk-KNKUID7G.js.map +0 -1
  988. package/dist/chunk-KOSORCJG.js.map +0 -1
  989. package/dist/chunk-LIRZNNUP.js.map +0 -1
  990. package/dist/chunk-LLQ2LLWF.js.map +0 -1
  991. package/dist/chunk-LPMVBPA3.js +0 -236
  992. package/dist/chunk-LPMVBPA3.js.map +0 -1
  993. package/dist/chunk-LT3NLYSI.js.map +0 -1
  994. package/dist/chunk-LUDTDZLK.js.map +0 -1
  995. package/dist/chunk-MJFNCJXV.js.map +0 -1
  996. package/dist/chunk-MSWG7JI6.js.map +0 -1
  997. package/dist/chunk-MXC3AP5I.js.map +0 -1
  998. package/dist/chunk-MXFBBHJU.js.map +0 -1
  999. package/dist/chunk-MZH6EHNR.js.map +0 -1
  1000. package/dist/chunk-N2D6GXBM.js.map +0 -1
  1001. package/dist/chunk-NBNN5GOB.js.map +0 -1
  1002. package/dist/chunk-NMZY542O.js.map +0 -1
  1003. package/dist/chunk-NZL6GGQE.js.map +0 -1
  1004. package/dist/chunk-OZHRDTDX.js.map +0 -1
  1005. package/dist/chunk-PIRJPV5T.js.map +0 -1
  1006. package/dist/chunk-PZIAX57I.js.map +0 -1
  1007. package/dist/chunk-Q7P4WJDP.js.map +0 -1
  1008. package/dist/chunk-QA2ZAPBU.js.map +0 -1
  1009. package/dist/chunk-QDZ2RLEC.js.map +0 -1
  1010. package/dist/chunk-QLLBRHAT.js.map +0 -1
  1011. package/dist/chunk-QR3C7BKQ.js.map +0 -1
  1012. package/dist/chunk-RHY3HH7P.js.map +0 -1
  1013. package/dist/chunk-RK2Y4XOM.js.map +0 -1
  1014. package/dist/chunk-RR2PKP3I.js +0 -63
  1015. package/dist/chunk-RR2PKP3I.js.map +0 -1
  1016. package/dist/chunk-RRF5UOBJ.js.map +0 -1
  1017. package/dist/chunk-RXDLTSWT.js.map +0 -1
  1018. package/dist/chunk-RYED3SPJ.js +0 -42
  1019. package/dist/chunk-RYED3SPJ.js.map +0 -1
  1020. package/dist/chunk-S7KDBTWT.js.map +0 -1
  1021. package/dist/chunk-TK4UEOSK.js.map +0 -1
  1022. package/dist/chunk-TMM4S4IJ.js.map +0 -1
  1023. package/dist/chunk-TMQLARTH.js.map +0 -1
  1024. package/dist/chunk-TPB3I2AC.js.map +0 -1
  1025. package/dist/chunk-TPMQ3G6Z.js.map +0 -1
  1026. package/dist/chunk-TPU5L5EY.js.map +0 -1
  1027. package/dist/chunk-TZOLIGIG.js.map +0 -1
  1028. package/dist/chunk-U3WSW6PZ.js.map +0 -1
  1029. package/dist/chunk-U4SCL7B7.js.map +0 -1
  1030. package/dist/chunk-U66YHYC7.js +0 -31
  1031. package/dist/chunk-U66YHYC7.js.map +0 -1
  1032. package/dist/chunk-U7EJOMFC.js.map +0 -1
  1033. package/dist/chunk-UWVJF25J.js.map +0 -1
  1034. package/dist/chunk-VBJ7V5SK.js.map +0 -1
  1035. package/dist/chunk-W3LR522O.js.map +0 -1
  1036. package/dist/chunk-W4L6CZKA.js.map +0 -1
  1037. package/dist/chunk-W6AQJ2PY.js.map +0 -1
  1038. package/dist/chunk-WELDCG6C.js.map +0 -1
  1039. package/dist/chunk-WNARATI3.js.map +0 -1
  1040. package/dist/chunk-WPGJYVUH.js.map +0 -1
  1041. package/dist/chunk-WW3QQF4H.js.map +0 -1
  1042. package/dist/chunk-XIG5PDM7.js.map +0 -1
  1043. package/dist/chunk-XKECPATV.js.map +0 -1
  1044. package/dist/chunk-XKLD5OK4.js.map +0 -1
  1045. package/dist/chunk-XSZEP4SF.js.map +0 -1
  1046. package/dist/chunk-XVVIG67A.js.map +0 -1
  1047. package/dist/chunk-XYIK4LF6.js.map +0 -1
  1048. package/dist/chunk-YRMVARQP.js.map +0 -1
  1049. package/dist/chunk-YROHKYBY.js.map +0 -1
  1050. package/dist/chunk-YU5KIWYQ.js.map +0 -1
  1051. package/dist/chunk-ZAVUCJ4H.js.map +0 -1
  1052. package/dist/chunk-ZPKBYX2F.js.map +0 -1
  1053. package/dist/chunk-ZTFCYYEZ.js.map +0 -1
  1054. package/dist/chunk-ZYVPLJ4T.js.map +0 -1
  1055. package/dist/path-MR5JPYOP.js +0 -9
  1056. package/dist/state-store-VZU2IA53.js +0 -16
  1057. package/dist/trace-C5ETWBEF.js.map +0 -1
  1058. /package/dist/{capsule-crypto-5CYAGVC5.js.map → bulk-import/index.js.map} +0 -0
  1059. /package/dist/{contradiction-review-ATP4S6IC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  1060. /package/dist/{capsule-merge-4MGKE7C5.js.map → capsule-merge-T2JRE46P.js.map} +0 -0
  1061. /package/dist/{chunk-SAZS2QZB.js.map → chunk-23UORJ4S.js.map} +0 -0
  1062. /package/dist/{chunk-PK7H5L6Y.js.map → chunk-2NM43EWN.js.map} +0 -0
  1063. /package/dist/{chunk-PYXS46O7.js.map → chunk-3BP57I6J.js.map} +0 -0
  1064. /package/dist/{chunk-FBYESMQ2.js.map → chunk-3C5RPJAX.js.map} +0 -0
  1065. /package/dist/{chunk-N53K2EXC.js.map → chunk-6VF75M3X.js.map} +0 -0
  1066. /package/dist/{chunk-6H2TESSP.js.map → chunk-765K3SAT.js.map} +0 -0
  1067. /package/dist/{chunk-EDTHC6UD.js.map → chunk-77NAFXUD.js.map} +0 -0
  1068. /package/dist/{chunk-MGKYQQYF.js.map → chunk-7Q3RCKAQ.js.map} +0 -0
  1069. /package/dist/{chunk-34DQE4KF.js.map → chunk-CO7ZO4TU.js.map} +0 -0
  1070. /package/dist/{chunk-ZKSK55RC.js.map → chunk-ETUPBUHB.js.map} +0 -0
  1071. /package/dist/{chunk-QRNI5JBH.js.map → chunk-EYIEWJNI.js.map} +0 -0
  1072. /package/dist/{chunk-C6QPK5GG.js.map → chunk-FZZ2QTJI.js.map} +0 -0
  1073. /package/dist/{chunk-3JXBXXM2.js.map → chunk-G4IAEX6D.js.map} +0 -0
  1074. /package/dist/{chunk-2WWLHTZY.js.map → chunk-IC4GELZE.js.map} +0 -0
  1075. /package/dist/{chunk-PCUKNJAZ.js.map → chunk-JKV57BTN.js.map} +0 -0
  1076. /package/dist/{chunk-2KI4QFHU.js.map → chunk-LMDRGRJ2.js.map} +0 -0
  1077. /package/dist/{chunk-MY6TPVXW.js.map → chunk-LMPHTYJC.js.map} +0 -0
  1078. /package/dist/{chunk-5HRY2WRF.js.map → chunk-LZ3VEOU5.js.map} +0 -0
  1079. /package/dist/{chunk-NGAVDO7E.js.map → chunk-OADWQ5CR.js.map} +0 -0
  1080. /package/dist/{chunk-DOM4GKSW.js.map → chunk-OZKVVUJB.js.map} +0 -0
  1081. /package/dist/{chunk-MT4HVDUZ.js.map → chunk-PM3QHTFT.js.map} +0 -0
  1082. /package/dist/{chunk-ZK7I7JYV.js.map → chunk-R3PS27B4.js.map} +0 -0
  1083. /package/dist/{chunk-SKE7JYKA.js.map → chunk-SFXKHM7P.js.map} +0 -0
  1084. /package/dist/{chunk-HMDCOMYU.js.map → chunk-SKGV326D.js.map} +0 -0
  1085. /package/dist/{chunk-5UM2VJ6D.js.map → chunk-UEY3VB6W.js.map} +0 -0
  1086. /package/dist/{chunk-GIF42EW3.js.map → chunk-UP6MOYCB.js.map} +0 -0
  1087. /package/dist/{chunk-MRILGULB.js.map → chunk-V2RCP53Q.js.map} +0 -0
  1088. /package/dist/{chunk-FSFEQI74.js.map → chunk-W7L6HXUC.js.map} +0 -0
  1089. /package/dist/{chunk-3IQ2TR4N.js.map → chunk-WLEB7WCG.js.map} +0 -0
  1090. /package/dist/{chunk-GL6I6MEQ.js.map → chunk-WSGF57U2.js.map} +0 -0
  1091. /package/dist/{chunk-JA3AK3PT.js.map → chunk-XNLXAWHX.js.map} +0 -0
  1092. /package/dist/{chunk-SIC6U3GZ.js.map → chunk-YHV3KRKS.js.map} +0 -0
  1093. /package/dist/{chunk-VLXA6PI2.js.map → chunk-YQMZ7IH2.js.map} +0 -0
  1094. /package/dist/{contradiction-scan-5A4IDZV5.js.map → contradiction-review-6V2LXXK6.js.map} +0 -0
  1095. /package/dist/{migrate-from-identity-anchor-G27MCD6A.js.map → contradiction-scan-GIRVC4C7.js.map} +0 -0
  1096. /package/dist/{first-start-migration-4MHQEOSD.js.map → first-start-migration-CKTCTCQI.js.map} +0 -0
  1097. /package/dist/{graph-edge-decay-5DI5GUNL.js.map → graph-edge-decay-MUP5J7CC.js.map} +0 -0
  1098. /package/dist/{path-MR5JPYOP.js.map → importers/index.js.map} +0 -0
  1099. /package/dist/{peers-HCVGHMAE.js.map → migrate-from-identity-anchor-EB4XI4Q2.js.map} +0 -0
  1100. /package/dist/{resolution-B7FNQSSP.js.map → path-X2K5XCHL.js.map} +0 -0
  1101. /package/dist/{state-store-VZU2IA53.js.map → peers/index.js.map} +0 -0
  1102. /package/dist/{tier-stats-62ZVDFKS.js.map → tier-stats-SKML2OSF.js.map} +0 -0
@@ -0,0 +1,62 @@
1
+ import {
2
+ log
3
+ } from "./chunk-2ODBA7MQ.js";
4
+
5
+ // src/conversation-index/cleanup.ts
6
+ import { lstat, readdir, realpath, rm } from "fs/promises";
7
+ import path from "path";
8
+ async function cleanupConversationChunks(rootDir, retentionDays) {
9
+ if (!Number.isFinite(retentionDays) || retentionDays <= 0) return;
10
+ const cutoffMs = Date.now() - retentionDays * 24 * 60 * 60 * 1e3;
11
+ try {
12
+ const root = await assertCleanupRoot(rootDir);
13
+ const sessions = await readdir(rootDir, { withFileTypes: true });
14
+ for (const s of sessions) {
15
+ if (!s.isDirectory()) continue;
16
+ const sessionDir = await assertCleanupChild(root, path.join(rootDir, s.name));
17
+ const dayDirs = await readdir(sessionDir, { withFileTypes: true });
18
+ for (const d of dayDirs) {
19
+ if (!d.isDirectory()) continue;
20
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(d.name)) continue;
21
+ const dayMs = (/* @__PURE__ */ new Date(d.name + "T00:00:00.000Z")).getTime();
22
+ if (!Number.isFinite(dayMs)) continue;
23
+ if (dayMs < cutoffMs) {
24
+ await rm(await assertCleanupChild(root, path.join(sessionDir, d.name)), { recursive: true, force: true });
25
+ }
26
+ }
27
+ try {
28
+ const remaining = await readdir(sessionDir);
29
+ if (remaining.length === 0) {
30
+ await rm(await assertCleanupChild(root, sessionDir), { recursive: true, force: true });
31
+ }
32
+ } catch {
33
+ }
34
+ }
35
+ } catch (err) {
36
+ log.debug(`conversation chunk cleanup failed: ${err}`);
37
+ }
38
+ }
39
+ async function assertCleanupRoot(rootDir) {
40
+ const stat = await lstat(rootDir);
41
+ if (stat.isSymbolicLink()) {
42
+ throw new Error("conversation chunk cleanup root must not be a symlink");
43
+ }
44
+ return realpath(rootDir);
45
+ }
46
+ async function assertCleanupChild(rootReal, candidate) {
47
+ const stat = await lstat(candidate);
48
+ if (stat.isSymbolicLink()) {
49
+ throw new Error("conversation chunk cleanup path must not contain symlinks");
50
+ }
51
+ const real = await realpath(candidate);
52
+ const relative = path.relative(rootReal, real);
53
+ if (relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative)) {
54
+ return real;
55
+ }
56
+ throw new Error("conversation chunk cleanup path escapes index root");
57
+ }
58
+
59
+ export {
60
+ cleanupConversationChunks
61
+ };
62
+ //# sourceMappingURL=chunk-T2PO5MUF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/conversation-index/cleanup.ts"],"sourcesContent":["import { lstat, readdir, realpath, rm } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { log } from \"../logger.js\";\n\n/**\n * Best-effort retention cleanup for conversation chunk docs.\n *\n * Layout (written by indexer.ts):\n * <root>/<safeSessionKey>/<YYYY-MM-DD>/<chunkId>.md\n *\n * We prune day directories older than retentionDays, and remove empty session dirs.\n */\nexport async function cleanupConversationChunks(\n rootDir: string,\n retentionDays: number,\n): Promise<void> {\n if (!Number.isFinite(retentionDays) || retentionDays <= 0) return;\n\n const cutoffMs = Date.now() - retentionDays * 24 * 60 * 60 * 1000;\n\n try {\n const root = await assertCleanupRoot(rootDir);\n const sessions = await readdir(rootDir, { withFileTypes: true });\n for (const s of sessions) {\n if (!s.isDirectory()) continue;\n const sessionDir = await assertCleanupChild(root, path.join(rootDir, s.name));\n const dayDirs = await readdir(sessionDir, { withFileTypes: true });\n\n for (const d of dayDirs) {\n if (!d.isDirectory()) continue;\n // Expect YYYY-MM-DD\n if (!/^\\d{4}-\\d{2}-\\d{2}$/.test(d.name)) continue;\n const dayMs = new Date(d.name + \"T00:00:00.000Z\").getTime();\n if (!Number.isFinite(dayMs)) continue;\n if (dayMs < cutoffMs) {\n await rm(await assertCleanupChild(root, path.join(sessionDir, d.name)), { recursive: true, force: true });\n }\n }\n\n // Remove empty session dirs after pruning.\n try {\n const remaining = await readdir(sessionDir);\n if (remaining.length === 0) {\n await rm(await assertCleanupChild(root, sessionDir), { recursive: true, force: true });\n }\n } catch {\n // ignore\n }\n }\n } catch (err) {\n log.debug(`conversation chunk cleanup failed: ${err}`);\n }\n}\n\nasync function assertCleanupRoot(rootDir: string): Promise<string> {\n const stat = await lstat(rootDir);\n if (stat.isSymbolicLink()) {\n throw new Error(\"conversation chunk cleanup root must not be a symlink\");\n }\n return realpath(rootDir);\n}\n\nasync function assertCleanupChild(rootReal: string, candidate: string): Promise<string> {\n const stat = await lstat(candidate);\n if (stat.isSymbolicLink()) {\n throw new Error(\"conversation chunk cleanup path must not contain symlinks\");\n }\n const real = await realpath(candidate);\n const relative = path.relative(rootReal, real);\n if (relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative))) {\n return real;\n }\n throw new Error(\"conversation chunk cleanup path escapes index root\");\n}\n"],"mappings":";;;;;AAAA,SAAS,OAAO,SAAS,UAAU,UAAU;AAC7C,OAAO,UAAU;AAWjB,eAAsB,0BACpB,SACA,eACe;AACf,MAAI,CAAC,OAAO,SAAS,aAAa,KAAK,iBAAiB,EAAG;AAE3D,QAAM,WAAW,KAAK,IAAI,IAAI,gBAAgB,KAAK,KAAK,KAAK;AAE7D,MAAI;AACF,UAAM,OAAO,MAAM,kBAAkB,OAAO;AAC5C,UAAM,WAAW,MAAM,QAAQ,SAAS,EAAE,eAAe,KAAK,CAAC;AAC/D,eAAW,KAAK,UAAU;AACxB,UAAI,CAAC,EAAE,YAAY,EAAG;AACtB,YAAM,aAAa,MAAM,mBAAmB,MAAM,KAAK,KAAK,SAAS,EAAE,IAAI,CAAC;AAC5E,YAAM,UAAU,MAAM,QAAQ,YAAY,EAAE,eAAe,KAAK,CAAC;AAEjE,iBAAW,KAAK,SAAS;AACvB,YAAI,CAAC,EAAE,YAAY,EAAG;AAEtB,YAAI,CAAC,sBAAsB,KAAK,EAAE,IAAI,EAAG;AACzC,cAAM,SAAQ,oBAAI,KAAK,EAAE,OAAO,gBAAgB,GAAE,QAAQ;AAC1D,YAAI,CAAC,OAAO,SAAS,KAAK,EAAG;AAC7B,YAAI,QAAQ,UAAU;AACpB,gBAAM,GAAG,MAAM,mBAAmB,MAAM,KAAK,KAAK,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,QAC1G;AAAA,MACF;AAGA,UAAI;AACF,cAAM,YAAY,MAAM,QAAQ,UAAU;AAC1C,YAAI,UAAU,WAAW,GAAG;AAC1B,gBAAM,GAAG,MAAM,mBAAmB,MAAM,UAAU,GAAG,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,QACvF;AAAA,MACF,QAAQ;AAAA,MAER;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AACZ,QAAI,MAAM,sCAAsC,GAAG,EAAE;AAAA,EACvD;AACF;AAEA,eAAe,kBAAkB,SAAkC;AACjE,QAAM,OAAO,MAAM,MAAM,OAAO;AAChC,MAAI,KAAK,eAAe,GAAG;AACzB,UAAM,IAAI,MAAM,uDAAuD;AAAA,EACzE;AACA,SAAO,SAAS,OAAO;AACzB;AAEA,eAAe,mBAAmB,UAAkB,WAAoC;AACtF,QAAM,OAAO,MAAM,MAAM,SAAS;AAClC,MAAI,KAAK,eAAe,GAAG;AACzB,UAAM,IAAI,MAAM,2DAA2D;AAAA,EAC7E;AACA,QAAM,OAAO,MAAM,SAAS,SAAS;AACrC,QAAM,WAAW,KAAK,SAAS,UAAU,IAAI;AAC7C,MAAI,aAAa,MAAO,CAAC,SAAS,WAAW,IAAI,KAAK,CAAC,KAAK,WAAW,QAAQ,GAAI;AACjF,WAAO;AAAA,EACT;AACA,QAAM,IAAI,MAAM,oDAAoD;AACtE;","names":[]}
@@ -8,10 +8,10 @@ var RerankCache = class {
8
8
  this.entries.delete(key);
9
9
  return null;
10
10
  }
11
- return e.rankedIds;
11
+ return e.rankedIds.slice();
12
12
  }
13
13
  set(key, rankedIds, ttlMs) {
14
- this.entries.set(key, { rankedIds, expiresAtMs: Date.now() + ttlMs });
14
+ this.entries.set(key, { rankedIds: rankedIds.slice(), expiresAtMs: Date.now() + ttlMs });
15
15
  }
16
16
  };
17
17
  function parseRerankResponse(raw, candidates) {
@@ -114,4 +114,4 @@ export {
114
114
  parseRerankResponse,
115
115
  rerankLocalOrNoop
116
116
  };
117
- //# sourceMappingURL=chunk-C7VW7C3F.js.map
117
+ //# sourceMappingURL=chunk-TDKQGLJW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rerank.ts"],"sourcesContent":["export interface RerankCandidate {\n id: string;\n originalIndex: number;\n}\n\nexport interface RerankScore {\n id: string;\n score: number;\n}\n\nexport interface RerankCacheEntry {\n expiresAtMs: number;\n rankedIds: string[];\n}\n\nexport class RerankCache {\n private entries = new Map<string, RerankCacheEntry>();\n\n get(key: string): string[] | null {\n const e = this.entries.get(key);\n if (!e) return null;\n if (Date.now() > e.expiresAtMs) {\n this.entries.delete(key);\n return null;\n }\n return e.rankedIds.slice();\n }\n\n set(key: string, rankedIds: string[], ttlMs: number): void {\n this.entries.set(key, { rankedIds: rankedIds.slice(), expiresAtMs: Date.now() + ttlMs });\n }\n}\n\n/**\n * Parse a rerank response (JSON) and return candidates sorted by score.\n *\n * Rules:\n * - Unknown IDs in the response are ignored.\n * - Candidates missing from the response keep relative order after scored ones.\n * - Stable tie-breaker: originalIndex ascending.\n */\nexport function parseRerankResponse(\n raw: string,\n candidates: RerankCandidate[],\n): Array<RerankCandidate & { score?: number }> {\n const byId = new Map<string, RerankCandidate>();\n for (const c of candidates) byId.set(c.id, c);\n\n const scores = new Map<string, number>();\n try {\n const parsed = JSON.parse(raw) as { scores?: Array<Partial<RerankScore>> };\n if (Array.isArray(parsed.scores)) {\n for (const s of parsed.scores) {\n if (!s || typeof s.id !== \"string\") continue;\n if (!byId.has(s.id)) continue;\n if (typeof s.score !== \"number\" || !Number.isFinite(s.score)) continue;\n scores.set(s.id, s.score);\n }\n }\n } catch {\n // Ignore parse errors and fall back to original order.\n }\n\n const withScore = candidates.map((c) => ({\n ...c,\n score: scores.get(c.id),\n }));\n\n return withScore.sort((a, b) => {\n const as = a.score;\n const bs = b.score;\n if (typeof as === \"number\" && typeof bs === \"number\") {\n if (bs !== as) return bs - as;\n return a.originalIndex - b.originalIndex;\n }\n if (typeof as === \"number\") return -1;\n if (typeof bs === \"number\") return 1;\n return a.originalIndex - b.originalIndex;\n });\n}\n\nfunction stableKey(query: string, ids: string[]): string {\n // Keep it simple and deterministic; this is not a security boundary.\n return `${query.trim().toLowerCase()}|${ids.join(\",\")}`;\n}\n\nfunction clampSnippet(snippet: string, maxChars: number): string {\n const s = snippet.replace(/\\s+/g, \" \").trim();\n return s.length > maxChars ? s.slice(0, maxChars) : s;\n}\n\nexport async function rerankLocalOrNoop(opts: {\n query: string;\n candidates: Array<{ id: string; snippet: string }>;\n local: {\n chatCompletion: (\n messages: Array<{ role: string; content: string }>,\n options?: {\n maxTokens?: number;\n temperature?: number;\n timeoutMs?: number;\n operation?: string;\n priority?: \"recall-critical\" | \"background\";\n },\n ) => Promise<{ content: string } | null>;\n };\n enabled: boolean;\n timeoutMs: number;\n maxCandidates: number;\n cache?: RerankCache;\n cacheEnabled: boolean;\n cacheTtlMs: number;\n}): Promise<string[] | null> {\n if (!opts.enabled) return null;\n\n const ids = opts.candidates.slice(0, opts.maxCandidates).map((c) => c.id);\n if (ids.length <= 1) return ids;\n\n const key = stableKey(opts.query, ids);\n if (opts.cache && opts.cacheEnabled) {\n const cached = opts.cache.get(key);\n if (cached) return cached;\n }\n\n const payload = opts.candidates.slice(0, opts.maxCandidates).map((c) => ({\n id: c.id,\n snippet: clampSnippet(c.snippet, 400),\n }));\n\n const system =\n \"You are a ranking system. Return JSON only. No markdown, no commentary.\";\n const user = JSON.stringify(\n {\n task: \"rerank\",\n query: opts.query,\n candidates: payload,\n output: {\n scores: [{ id: \"string\", score: \"number 0-100\" }],\n },\n rules: [\n \"Assign higher score to more relevant candidates.\",\n \"Prefer durability and direct relevance to the query.\",\n \"If unsure, keep scores close together.\",\n ],\n },\n null,\n 0,\n );\n\n const res = await opts.local.chatCompletion(\n [\n { role: \"system\", content: system },\n { role: \"user\", content: user },\n ],\n {\n maxTokens: 800,\n temperature: 0.0,\n timeoutMs: opts.timeoutMs,\n operation: \"rerank\",\n priority: \"recall-critical\",\n },\n );\n if (!res?.content) return null;\n\n const parsed = parseRerankResponse(\n res.content,\n ids.map((id, i) => ({ id, originalIndex: i })),\n );\n const rankedIds = parsed.map((p) => p.id);\n\n if (opts.cache && opts.cacheEnabled) {\n opts.cache.set(key, rankedIds, opts.cacheTtlMs);\n }\n\n return rankedIds;\n}\n"],"mappings":"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","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  optionalStringArray,
7
7
  recordStoreDay,
8
8
  validateStringRecord
9
- } from "./chunk-DGXUHMOV.js";
9
+ } from "./chunk-A2IYSXDQ.js";
10
10
  import {
11
11
  listJsonFiles,
12
12
  readJsonFile
@@ -73,7 +73,7 @@ async function recordUtilityTelemetryEvent(options) {
73
73
  const eventsDir = path.join(rootDir, "events", day);
74
74
  const filePath = path.join(eventsDir, `${validated.eventId}.json`);
75
75
  await mkdir(eventsDir, { recursive: true });
76
- await writeFile(filePath, JSON.stringify(validated, null, 2), "utf8");
76
+ await writeFile(filePath, JSON.stringify(validated, null, 2), { encoding: "utf8", flag: "wx" });
77
77
  return filePath;
78
78
  }
79
79
  async function readUtilityTelemetryEvents(options) {
@@ -151,4 +151,4 @@ export {
151
151
  readUtilityTelemetryEvents,
152
152
  getUtilityTelemetryStatus
153
153
  };
154
- //# sourceMappingURL=chunk-3QKK7QOS.js.map
154
+ //# sourceMappingURL=chunk-TERNBNJB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utility-telemetry.ts"],"sourcesContent":["import path from \"node:path\";\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport { listJsonFiles, readJsonFile } from \"./json-store.js\";\nimport {\n assertIsoRecordedAt,\n assertSafePathSegment,\n assertString,\n isRecord,\n optionalStringArray,\n recordStoreDay,\n validateStringRecord,\n} from \"./store-contract.js\";\n\nexport type UtilityTelemetrySource = \"cli\" | \"system\" | \"benchmark\" | \"tool_result\";\nexport type UtilityTelemetryTarget = \"promotion\" | \"ranking\";\nexport type UtilityTelemetryDecision = \"promote\" | \"demote\" | \"hold\" | \"boost\" | \"suppress\";\nexport type UtilityTelemetryOutcome = \"helpful\" | \"neutral\" | \"harmful\";\n\nexport interface UtilityTelemetryEvent {\n schemaVersion: 1;\n eventId: string;\n recordedAt: string;\n sessionKey: string;\n source: UtilityTelemetrySource;\n target: UtilityTelemetryTarget;\n decision: UtilityTelemetryDecision;\n outcome: UtilityTelemetryOutcome;\n utilityScore: number;\n summary: string;\n memoryIds?: string[];\n entityRefs?: string[];\n tags?: string[];\n metadata?: Record<string, string>;\n}\n\nexport interface UtilityTelemetryStatus {\n enabled: boolean;\n promotionByOutcomeEnabled: boolean;\n rootDir: string;\n eventsDir: string;\n events: {\n total: number;\n valid: number;\n invalid: number;\n byTarget: Partial<Record<UtilityTelemetryTarget, number>>;\n byDecision: Partial<Record<UtilityTelemetryDecision, number>>;\n byOutcome: Partial<Record<UtilityTelemetryOutcome, number>>;\n latestEventId?: string;\n latestRecordedAt?: string;\n latestSessionKey?: string;\n };\n latestEvent?: UtilityTelemetryEvent;\n invalidEvents: Array<{\n path: string;\n error: string;\n }>;\n}\n\nexport function resolveUtilityTelemetryDir(memoryDir: string, overrideDir?: string): string {\n if (typeof overrideDir === \"string\" && overrideDir.trim().length > 0) {\n return overrideDir.trim();\n }\n return path.join(memoryDir, \"state\", \"utility-telemetry\");\n}\n\nfunction assertUtilityScore(value: unknown): number {\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n throw new Error(\"utilityScore must be a finite number\");\n }\n if (value < -1 || value > 1) {\n throw new Error(\"utilityScore must be between -1 and 1\");\n }\n return value;\n}\n\nexport function validateUtilityTelemetryEvent(raw: unknown): UtilityTelemetryEvent {\n if (!isRecord(raw)) throw new Error(\"utility telemetry event must be an object\");\n if (raw.schemaVersion !== 1) throw new Error(\"schemaVersion must be 1\");\n\n const source = assertString(raw.source, \"source\");\n if (![\"cli\", \"system\", \"benchmark\", \"tool_result\"].includes(source)) {\n throw new Error(\"source must be one of cli|system|benchmark|tool_result\");\n }\n\n const target = assertString(raw.target, \"target\");\n if (![\"promotion\", \"ranking\"].includes(target)) {\n throw new Error(\"target must be one of promotion|ranking\");\n }\n\n const decision = assertString(raw.decision, \"decision\");\n if (![\"promote\", \"demote\", \"hold\", \"boost\", \"suppress\"].includes(decision)) {\n throw new Error(\"decision must be one of promote|demote|hold|boost|suppress\");\n }\n\n const outcome = assertString(raw.outcome, \"outcome\");\n if (![\"helpful\", \"neutral\", \"harmful\"].includes(outcome)) {\n throw new Error(\"outcome must be one of helpful|neutral|harmful\");\n }\n\n return {\n schemaVersion: 1,\n eventId: assertSafePathSegment(assertString(raw.eventId, \"eventId\"), \"eventId\"),\n recordedAt: assertIsoRecordedAt(assertString(raw.recordedAt, \"recordedAt\")),\n sessionKey: assertString(raw.sessionKey, \"sessionKey\"),\n source: source as UtilityTelemetrySource,\n target: target as UtilityTelemetryTarget,\n decision: decision as UtilityTelemetryDecision,\n outcome: outcome as UtilityTelemetryOutcome,\n utilityScore: assertUtilityScore(raw.utilityScore),\n summary: assertString(raw.summary, \"summary\"),\n memoryIds: optionalStringArray(raw.memoryIds, \"memoryIds\"),\n entityRefs: optionalStringArray(raw.entityRefs, \"entityRefs\"),\n tags: optionalStringArray(raw.tags, \"tags\"),\n metadata: validateStringRecord(raw.metadata, \"metadata\"),\n };\n}\n\nexport async function recordUtilityTelemetryEvent(options: {\n memoryDir: string;\n utilityTelemetryDir?: string;\n event: UtilityTelemetryEvent;\n}): Promise<string> {\n const rootDir = resolveUtilityTelemetryDir(options.memoryDir, options.utilityTelemetryDir);\n const validated = validateUtilityTelemetryEvent(options.event);\n const day = recordStoreDay(validated.recordedAt);\n const eventsDir = path.join(rootDir, \"events\", day);\n const filePath = path.join(eventsDir, `${validated.eventId}.json`);\n await mkdir(eventsDir, { recursive: true });\n await writeFile(filePath, JSON.stringify(validated, null, 2), { encoding: \"utf8\", flag: \"wx\" });\n return filePath;\n}\n\nexport async function readUtilityTelemetryEvents(options: {\n memoryDir: string;\n utilityTelemetryDir?: string;\n}): Promise<{\n files: string[];\n events: UtilityTelemetryEvent[];\n invalidEvents: Array<{ path: string; error: string }>;\n}> {\n const rootDir = resolveUtilityTelemetryDir(options.memoryDir, options.utilityTelemetryDir);\n const files = await listJsonFiles(path.join(rootDir, \"events\"));\n const events: UtilityTelemetryEvent[] = [];\n const invalidEvents: Array<{ path: string; error: string }> = [];\n for (const filePath of files) {\n try {\n events.push(validateUtilityTelemetryEvent(await readJsonFile(filePath)));\n } catch (error) {\n invalidEvents.push({\n path: filePath,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return { files, events, invalidEvents };\n}\n\nexport async function getUtilityTelemetryStatus(options: {\n memoryDir: string;\n utilityTelemetryDir?: string;\n enabled: boolean;\n promotionByOutcomeEnabled?: boolean;\n}): Promise<UtilityTelemetryStatus> {\n const rootDir = resolveUtilityTelemetryDir(options.memoryDir, options.utilityTelemetryDir);\n const eventsDir = path.join(rootDir, \"events\");\n if (!options.enabled) {\n return {\n enabled: false,\n promotionByOutcomeEnabled: options.promotionByOutcomeEnabled === true,\n rootDir,\n eventsDir,\n events: {\n total: 0,\n valid: 0,\n invalid: 0,\n byTarget: {},\n byDecision: {},\n byOutcome: {},\n },\n invalidEvents: [],\n };\n }\n\n const { files, events, invalidEvents } = await readUtilityTelemetryEvents(options);\n events.sort((a, b) => b.recordedAt.localeCompare(a.recordedAt));\n\n const byTarget: Partial<Record<UtilityTelemetryTarget, number>> = {};\n const byDecision: Partial<Record<UtilityTelemetryDecision, number>> = {};\n const byOutcome: Partial<Record<UtilityTelemetryOutcome, number>> = {};\n for (const event of events) {\n byTarget[event.target] = (byTarget[event.target] ?? 0) + 1;\n byDecision[event.decision] = (byDecision[event.decision] ?? 0) + 1;\n byOutcome[event.outcome] = (byOutcome[event.outcome] ?? 0) + 1;\n }\n\n return {\n enabled: true,\n promotionByOutcomeEnabled: options.promotionByOutcomeEnabled === true,\n rootDir,\n eventsDir,\n events: {\n total: files.length,\n valid: events.length,\n invalid: invalidEvents.length,\n byTarget,\n byDecision,\n byOutcome,\n latestEventId: events[0]?.eventId,\n latestRecordedAt: events[0]?.recordedAt,\n latestSessionKey: events[0]?.sessionKey,\n },\n latestEvent: events[0],\n invalidEvents,\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,5 +1,5 @@
1
1
  // src/resolve-auth-token.ts
2
- var resolvedCache = /* @__PURE__ */ new Map();
2
+ var resolvedCache = /* @__PURE__ */ new WeakMap();
3
3
  function cacheKeyForSecretRef(ref) {
4
4
  const sortedKeys = Object.keys(ref).sort();
5
5
  const stable = {};
@@ -28,15 +28,20 @@ async function resolveAgentAccessAuthToken(value, options = {}) {
28
28
  "unsupported SecretRef shape for agentAccessHttp.authToken \u2014 missing required `source` field (see https://github.com/joshuaswarren/remnic/issues/757)"
29
29
  );
30
30
  }
31
- const cacheKey = cacheKeyForSecretRef(ref);
32
- const cached = resolvedCache.get(cacheKey);
33
- if (cached !== void 0) return cached;
34
31
  const resolver = options.resolveSecretRef ?? null;
35
32
  if (!resolver) {
36
33
  throw new Error(
37
34
  `cannot resolve agentAccessHttp.authToken SecretRef (source="${ref.source}") \u2014 a SecretRef resolver was not provided. Use a literal string or \${ENV_VAR} expansion in standalone Remnic, or have the host adapter resolve SecretRef objects through its native secret resolver (see https://github.com/joshuaswarren/remnic/issues/757).`
38
35
  );
39
36
  }
37
+ const cacheKey = cacheKeyForSecretRef(ref);
38
+ let resolverCache = resolvedCache.get(resolver);
39
+ if (!resolverCache) {
40
+ resolverCache = /* @__PURE__ */ new Map();
41
+ resolvedCache.set(resolver, resolverCache);
42
+ }
43
+ const cached = resolverCache.get(cacheKey);
44
+ if (cached !== void 0) return cached;
40
45
  let resolved;
41
46
  try {
42
47
  const out = await resolver(ref);
@@ -54,7 +59,7 @@ async function resolveAgentAccessAuthToken(value, options = {}) {
54
59
  `agentAccessHttp.authToken SecretRef resolved to empty value (source="${ref.source}", provider="${ref.provider ?? ""}") \u2014 refusing to start the HTTP bridge with an empty bearer token.`
55
60
  );
56
61
  }
57
- resolvedCache.set(cacheKey, resolved);
62
+ resolverCache.set(cacheKey, resolved);
58
63
  return resolved;
59
64
  }
60
65
  function isAgentAccessSecretRef(value) {
@@ -63,7 +68,7 @@ function isAgentAccessSecretRef(value) {
63
68
  return typeof ref.source === "string" && ref.source.trim().length > 0;
64
69
  }
65
70
  function clearAuthTokenSecretCache() {
66
- resolvedCache.clear();
71
+ resolvedCache = /* @__PURE__ */ new WeakMap();
67
72
  }
68
73
 
69
74
  export {
@@ -71,4 +76,4 @@ export {
71
76
  isAgentAccessSecretRef,
72
77
  clearAuthTokenSecretCache
73
78
  };
74
- //# sourceMappingURL=chunk-MXC3AP5I.js.map
79
+ //# sourceMappingURL=chunk-TGQ2NTWH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resolve-auth-token.ts"],"sourcesContent":["import type { AgentAccessAuthToken, SecretRef } from \"./types.js\";\n\n/**\n * Resolve `agentAccessHttp.authToken` (issue #757).\n *\n * Two shapes are accepted:\n *\n * 1. Plain string — returned unchanged. This is the only shape supported\n * in standalone Remnic; it preserves backward compatibility with every\n * pre-#757 config.\n *\n * 2. SecretRef-like object (`{source, provider?, id?, command?, ...}`) —\n * resolved only through a resolver supplied by the host adapter. Core\n * stays host-agnostic and never scans OpenClaw, Hermes, or any other\n * runtime directly.\n *\n * Resolution flow for SecretRef objects:\n *\n * - Plain strings short-circuit before any host work.\n * - Host adapters pass their native SecretRef resolver in `options`.\n * - If no resolver is provided, throw a clear, actionable error rather\n * than silently leaving the bridge open or starting with no auth.\n *\n * Lessons baked in from PRs #316–#319:\n *\n * - Successful resolutions are cached for the process lifetime; failures\n * are not cached so transient issues (Keychain unlocked late, agent\n * restarts) recover automatically.\n */\n\nexport type ResolveSecretRefFn = (\n ref: SecretRef,\n context?: unknown,\n) => Promise<string | undefined> | string | undefined;\n\ntype ResolveAgentAccessAuthTokenOptions = {\n resolveSecretRef?: ResolveSecretRefFn | null;\n};\n\nlet resolvedCache = new WeakMap<ResolveSecretRefFn, Map<string, string>>();\n\n/**\n * SecretRef objects are stable per (source, provider, id, command) tuple.\n * Sort keys before serializing so semantically-identical refs hit the same\n * cache slot regardless of authoring order (Lesson 38 in CLAUDE.md).\n */\nfunction cacheKeyForSecretRef(ref: SecretRef): string {\n const sortedKeys = Object.keys(ref).sort();\n const stable: Record<string, unknown> = {};\n for (const key of sortedKeys) {\n stable[key] = ref[key];\n }\n return JSON.stringify(stable);\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\n/**\n * Resolve an `agentAccessHttp.authToken` value to a literal bearer string.\n *\n * @returns the resolved string, or `undefined` if input was undefined/empty.\n * @throws if the input is a SecretRef and no resolver is provided, if the\n * resolver returns no value, or if the input shape is malformed.\n */\nexport async function resolveAgentAccessAuthToken(\n value: AgentAccessAuthToken | undefined,\n options: ResolveAgentAccessAuthTokenOptions = {},\n): Promise<string | undefined> {\n if (value === undefined || value === null) return undefined;\n\n if (typeof value === \"string\") {\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n }\n\n if (!isPlainObject(value)) {\n throw new Error(\n \"unsupported SecretRef shape for agentAccessHttp.authToken — \" +\n \"expected a string or an object with a `source` field \" +\n \"(see https://github.com/joshuaswarren/remnic/issues/757)\",\n );\n }\n\n const ref = value as SecretRef;\n if (typeof ref.source !== \"string\" || ref.source.trim().length === 0) {\n throw new Error(\n \"unsupported SecretRef shape for agentAccessHttp.authToken — \" +\n \"missing required `source` field \" +\n \"(see https://github.com/joshuaswarren/remnic/issues/757)\",\n );\n }\n\n const resolver = options.resolveSecretRef ?? null;\n if (!resolver) {\n throw new Error(\n `cannot resolve agentAccessHttp.authToken SecretRef (source=\"${ref.source}\") — ` +\n \"a SecretRef resolver was not provided. Use a literal string or \" +\n \"${ENV_VAR} expansion in standalone Remnic, or have the host adapter \" +\n \"resolve SecretRef objects through its native secret resolver \" +\n \"(see https://github.com/joshuaswarren/remnic/issues/757).\",\n );\n }\n\n const cacheKey = cacheKeyForSecretRef(ref);\n let resolverCache = resolvedCache.get(resolver);\n if (!resolverCache) {\n resolverCache = new Map<string, string>();\n resolvedCache.set(resolver, resolverCache);\n }\n const cached = resolverCache.get(cacheKey);\n if (cached !== undefined) return cached;\n\n let resolved: string | undefined;\n try {\n const out = await resolver(ref);\n if (typeof out === \"string\") {\n const trimmed = out.trim();\n if (trimmed.length > 0) resolved = trimmed;\n }\n } catch (err) {\n throw new Error(\n `failed to resolve agentAccessHttp.authToken SecretRef (source=\"${ref.source}\"): ${\n err instanceof Error ? err.message : String(err)\n }`,\n );\n }\n\n if (!resolved) {\n throw new Error(\n `agentAccessHttp.authToken SecretRef resolved to empty value (source=\"${ref.source}\", provider=\"${\n ref.provider ?? \"\"\n }\") — refusing to start the HTTP bridge with an empty bearer token.`,\n );\n }\n\n resolverCache.set(cacheKey, resolved);\n return resolved;\n}\n\n/**\n * Returns true if the value is a SecretRef object (issue #757). Useful for\n * surfaces (CLI flags, doctor checks) that want to render a redacted\n * placeholder instead of leaking the unresolved object shape.\n */\nexport function isAgentAccessSecretRef(value: unknown): value is SecretRef {\n if (!isPlainObject(value)) return false;\n const ref = value as Record<string, unknown>;\n return typeof ref.source === \"string\" && ref.source.trim().length > 0;\n}\n\n/** Test/operations hook: drop the cache and force resolver rediscovery. */\nexport function clearAuthTokenSecretCache(): void {\n resolvedCache = new WeakMap<ResolveSecretRefFn, Map<string, string>>();\n}\n"],"mappings":";AAuCA,IAAI,gBAAgB,oBAAI,QAAiD;AAOzE,SAAS,qBAAqB,KAAwB;AACpD,QAAM,aAAa,OAAO,KAAK,GAAG,EAAE,KAAK;AACzC,QAAM,SAAkC,CAAC;AACzC,aAAW,OAAO,YAAY;AAC5B,WAAO,GAAG,IAAI,IAAI,GAAG;AAAA,EACvB;AACA,SAAO,KAAK,UAAU,MAAM;AAC9B;AAEA,SAAS,cAAc,OAAkD;AACvE,SAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AASA,eAAsB,4BACpB,OACA,UAA8C,CAAC,GAClB;AAC7B,MAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAElD,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,UAAU,MAAM,KAAK;AAC3B,WAAO,QAAQ,SAAS,IAAI,UAAU;AAAA,EACxC;AAEA,MAAI,CAAC,cAAc,KAAK,GAAG;AACzB,UAAM,IAAI;AAAA,MACR;AAAA,IAGF;AAAA,EACF;AAEA,QAAM,MAAM;AACZ,MAAI,OAAO,IAAI,WAAW,YAAY,IAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AACpE,UAAM,IAAI;AAAA,MACR;AAAA,IAGF;AAAA,EACF;AAEA,QAAM,WAAW,QAAQ,oBAAoB;AAC7C,MAAI,CAAC,UAAU;AACb,UAAM,IAAI;AAAA,MACR,+DAA+D,IAAI,MAAM;AAAA,IAK3E;AAAA,EACF;AAEA,QAAM,WAAW,qBAAqB,GAAG;AACzC,MAAI,gBAAgB,cAAc,IAAI,QAAQ;AAC9C,MAAI,CAAC,eAAe;AAClB,oBAAgB,oBAAI,IAAoB;AACxC,kBAAc,IAAI,UAAU,aAAa;AAAA,EAC3C;AACA,QAAM,SAAS,cAAc,IAAI,QAAQ;AACzC,MAAI,WAAW,OAAW,QAAO;AAEjC,MAAI;AACJ,MAAI;AACF,UAAM,MAAM,MAAM,SAAS,GAAG;AAC9B,QAAI,OAAO,QAAQ,UAAU;AAC3B,YAAM,UAAU,IAAI,KAAK;AACzB,UAAI,QAAQ,SAAS,EAAG,YAAW;AAAA,IACrC;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,IAAI;AAAA,MACR,kEAAkE,IAAI,MAAM,OAC1E,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CACjD;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,UAAU;AACb,UAAM,IAAI;AAAA,MACR,wEAAwE,IAAI,MAAM,gBAChF,IAAI,YAAY,EAClB;AAAA,IACF;AAAA,EACF;AAEA,gBAAc,IAAI,UAAU,QAAQ;AACpC,SAAO;AACT;AAOO,SAAS,uBAAuB,OAAoC;AACzE,MAAI,CAAC,cAAc,KAAK,EAAG,QAAO;AAClC,QAAM,MAAM;AACZ,SAAO,OAAO,IAAI,WAAW,YAAY,IAAI,OAAO,KAAK,EAAE,SAAS;AACtE;AAGO,SAAS,4BAAkC;AAChD,kBAAgB,oBAAI,QAAiD;AACvE;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  headerValue
3
- } from "./chunk-FAJ7FZYM.js";
3
+ } from "./chunk-7RXCMVFQ.js";
4
4
 
5
5
  // src/adapters/replit.ts
6
6
  var ReplitAdapter = class {
@@ -14,11 +14,10 @@ var ReplitAdapter = class {
14
14
  }
15
15
  resolveIdentity(context) {
16
16
  const mcpSessionId = headerValue(context.headers, "mcp-session-id");
17
- const principal = headerValue(context.headers, "x-engram-principal") || "replit-agent";
18
17
  const namespace = headerValue(context.headers, "x-engram-namespace") || "replit";
19
18
  return {
20
19
  namespace,
21
- principal,
20
+ principal: "replit-agent",
22
21
  sessionKey: mcpSessionId ?? context.sessionKey,
23
22
  adapterId: this.id
24
23
  };
@@ -28,4 +27,4 @@ var ReplitAdapter = class {
28
27
  export {
29
28
  ReplitAdapter
30
29
  };
31
- //# sourceMappingURL=chunk-3Y4P7RXM.js.map
30
+ //# sourceMappingURL=chunk-TMSXWOBZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/adapters/replit.ts"],"sourcesContent":["import { headerValue, type AdapterContext, type EngramAdapter, type ResolvedIdentity } from \"./types.js\";\n\n/**\n * Replit Agent adapter.\n *\n * Detection: Replit Agent supports MCP natively (HTTP-only, configured\n * via the Integrations pane). It does NOT send identifying headers\n * automatically — detection relies on user-configured custom headers\n * in Replit's MCP Integrations UI.\n *\n * Replit provides env vars to running code (REPL_ID, REPL_OWNER,\n * REPL_SLUG) but these are NOT sent as HTTP headers to MCP servers.\n *\n * To identify Replit connections, users should configure a custom header\n * in the Replit Integrations pane when adding the Engram MCP server:\n * Header Name: X-Engram-Client-Id\n * Header Value: replit\n *\n * Optionally also set X-Engram-Namespace for project scoping. Principal\n * overrides are intentionally handled only by the HTTP server's\n * trustPrincipalHeader gate. Adapters must not independently trust\n * X-Engram-Principal.\n */\nexport class ReplitAdapter implements EngramAdapter {\n readonly id = \"replit\";\n\n matches(context: AdapterContext): boolean {\n // Primary: user-configured client identifier header\n const clientId = headerValue(context.headers, \"x-engram-client-id\");\n if (clientId?.toLowerCase() === \"replit\") return true;\n\n // MCP clientInfo (Replit's MCP client name is not publicly documented,\n // but check for it in case it becomes available)\n const clientName = context.clientInfo?.name?.toLowerCase() ?? \"\";\n if (clientName.includes(\"replit\")) return true;\n\n return false;\n }\n\n resolveIdentity(context: AdapterContext): ResolvedIdentity {\n const mcpSessionId = headerValue(context.headers, \"mcp-session-id\");\n\n const namespace = headerValue(context.headers, \"x-engram-namespace\")\n || \"replit\";\n\n return {\n namespace,\n principal: \"replit-agent\",\n sessionKey: mcpSessionId ?? context.sessionKey,\n adapterId: this.id,\n };\n }\n}\n"],"mappings":";;;;;AAuBO,IAAM,gBAAN,MAA6C;AAAA,EACzC,KAAK;AAAA,EAEd,QAAQ,SAAkC;AAExC,UAAM,WAAW,YAAY,QAAQ,SAAS,oBAAoB;AAClE,QAAI,UAAU,YAAY,MAAM,SAAU,QAAO;AAIjD,UAAM,aAAa,QAAQ,YAAY,MAAM,YAAY,KAAK;AAC9D,QAAI,WAAW,SAAS,QAAQ,EAAG,QAAO;AAE1C,WAAO;AAAA,EACT;AAAA,EAEA,gBAAgB,SAA2C;AACzD,UAAM,eAAe,YAAY,QAAQ,SAAS,gBAAgB;AAElE,UAAM,YAAY,YAAY,QAAQ,SAAS,oBAAoB,KAC9D;AAEL,WAAO;AAAA,MACL;AAAA,MACA,WAAW;AAAA,MACX,YAAY,gBAAgB,QAAQ;AAAA,MACpC,WAAW,KAAK;AAAA,IAClB;AAAA,EACF;AACF;","names":[]}
@@ -5,25 +5,28 @@ import {
5
5
  REMNIC_CHATGPT_MEMORY_INSPECTOR_WIDGET_URI,
6
6
  buildChatGptMemoryInspectorActionRequest,
7
7
  buildChatGptMemoryInspectorResult
8
- } from "./chunk-C5BCH4ZS.js";
8
+ } from "./chunk-EAZGEEG2.js";
9
9
  import {
10
10
  buildCitationGuidance
11
- } from "./chunk-IQT3XTKW.js";
11
+ } from "./chunk-D24OXEPB.js";
12
12
  import {
13
13
  EngramAccessInputError
14
- } from "./chunk-ZAVUCJ4H.js";
14
+ } from "./chunk-5V456VRV.js";
15
+ import {
16
+ projectTagProjectId
17
+ } from "./chunk-EDQVAMQI.js";
15
18
  import {
16
19
  validateBriefingFormat
17
- } from "./chunk-SIC6U3GZ.js";
20
+ } from "./chunk-YHV3KRKS.js";
18
21
  import {
19
22
  expandTildePath
20
- } from "./chunk-QRNI5JBH.js";
23
+ } from "./chunk-EYIEWJNI.js";
21
24
  import {
22
25
  readEnvVar
23
- } from "./chunk-XIG5PDM7.js";
26
+ } from "./chunk-JUC24CTX.js";
24
27
  import {
25
28
  validateRequest
26
- } from "./chunk-YROHKYBY.js";
29
+ } from "./chunk-5UHVGNZD.js";
27
30
 
28
31
  // src/access-mcp.ts
29
32
  import { readFile } from "fs/promises";
@@ -49,6 +52,34 @@ function resolveChatGptInspectorRecallSessionKey(explicitSessionKey, authenticat
49
52
  return `remnic:chatgpt-memory-inspector:${randomUUID()}`;
50
53
  }
51
54
  var STRICT_MCP_SCHEMA_KEYS = {
55
+ memoryStore: [
56
+ "schemaVersion",
57
+ "idempotencyKey",
58
+ "dryRun",
59
+ "sessionKey",
60
+ "content",
61
+ "category",
62
+ "confidence",
63
+ "namespace",
64
+ "tags",
65
+ "entityRef",
66
+ "ttl",
67
+ "sourceReason"
68
+ ],
69
+ suggestionSubmit: [
70
+ "schemaVersion",
71
+ "idempotencyKey",
72
+ "dryRun",
73
+ "sessionKey",
74
+ "content",
75
+ "category",
76
+ "confidence",
77
+ "namespace",
78
+ "tags",
79
+ "entityRef",
80
+ "ttl",
81
+ "sourceReason"
82
+ ],
52
83
  capsuleExport: [
53
84
  "name",
54
85
  "namespace",
@@ -58,7 +89,7 @@ var STRICT_MCP_SCHEMA_KEYS = {
58
89
  "includeTranscripts",
59
90
  "encrypt"
60
91
  ],
61
- capsuleImport: ["archivePath", "namespace", "mode"],
92
+ capsuleImport: ["archivePath", "namespace", "mode", "passphrase"],
62
93
  capsuleList: ["namespace"]
63
94
  };
64
95
  function parseMcpRequest(schemaName, args) {
@@ -79,6 +110,9 @@ function parseMcpRequest(schemaName, args) {
79
110
  details.length > 0 ? `${validation.error.error}: ${details}` : validation.error.error
80
111
  );
81
112
  }
113
+ function getObjectProperties(value) {
114
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
115
+ }
82
116
  async function getMcpServerVersion() {
83
117
  const envVersion = readEnvVar("OPENCLAW_ENGRAM_VERSION")?.trim() || readEnvVar("npm_package_version")?.trim();
84
118
  if (envVersion) return envVersion;
@@ -476,6 +510,10 @@ var EngramMcpServer = class {
476
510
  type: "string",
477
511
  enum: ["skip", "overwrite", "fork"],
478
512
  description: "Conflict handling mode. Defaults to skip."
513
+ },
514
+ passphrase: {
515
+ type: "string",
516
+ description: "Passphrase for encrypted capsule archives."
479
517
  }
480
518
  },
481
519
  required: ["archivePath"],
@@ -721,6 +759,7 @@ var EngramMcpServer = class {
721
759
  properties: {
722
760
  query: { type: "string", description: "Search query" },
723
761
  sessionKey: { type: "string", description: "Optional session filter" },
762
+ sessionPrefix: { type: "string", description: "Optional session prefix filter" },
724
763
  namespace: { type: "string" },
725
764
  limit: { type: "number", description: "Max results to return" }
726
765
  },
@@ -1692,6 +1731,13 @@ var EngramMcpServer = class {
1692
1731
  }
1693
1732
  argumentsObject = params.arguments;
1694
1733
  }
1734
+ if (!("namespace" in argumentsObject) && options?.namespaceOverride && this.toolAcceptsArgument(name, "namespace")) {
1735
+ argumentsObject = { ...argumentsObject, namespace: options.namespaceOverride };
1736
+ }
1737
+ const skipSessionKeyOverride = toLegacyToolName(name) === "engram.lcm_search" && typeof argumentsObject.sessionPrefix === "string" && argumentsObject.sessionPrefix.length > 0;
1738
+ if (!("sessionKey" in argumentsObject) && !skipSessionKeyOverride && options?.sessionKeyOverride && this.toolAcceptsArgument(name, "sessionKey")) {
1739
+ argumentsObject = { ...argumentsObject, sessionKey: options.sessionKeyOverride };
1740
+ }
1695
1741
  const effectivePrincipal = options?.principalOverride ?? this.authenticatedPrincipal;
1696
1742
  const result = await this.callTool(name, argumentsObject, effectivePrincipal, options?.sessionId);
1697
1743
  return {
@@ -1806,6 +1852,15 @@ var EngramMcpServer = class {
1806
1852
  ${body}`;
1807
1853
  output.write(message);
1808
1854
  }
1855
+ toolAcceptsArgument(name, key) {
1856
+ const tool = this.tools.find((entry) => entry.name === name);
1857
+ const inputSchema = getObjectProperties(tool?.inputSchema);
1858
+ const properties = getObjectProperties(inputSchema?.properties);
1859
+ if (properties && Object.prototype.hasOwnProperty.call(properties, key)) {
1860
+ return true;
1861
+ }
1862
+ return inputSchema?.additionalProperties === true;
1863
+ }
1809
1864
  /**
1810
1865
  * Determine whether oai-mem-citation guidance should be appended to recall.
1811
1866
  * Returns true when explicitly enabled via config OR when auto-detect is
@@ -1924,12 +1979,13 @@ ${body}`;
1924
1979
  const hasCodingContext = "codingContext" in args;
1925
1980
  if (!hasCodingContext && hasProjectTag) {
1926
1981
  const tag = args.projectTag.trim();
1982
+ const projectId = projectTagProjectId(tag);
1927
1983
  this.service.setCodingContext({
1928
1984
  sessionKey,
1929
1985
  codingContext: {
1930
- projectId: `tag:${tag}`,
1986
+ projectId,
1931
1987
  branch: null,
1932
- rootPath: `tag:${tag}`,
1988
+ rootPath: projectId,
1933
1989
  defaultBranch: null
1934
1990
  }
1935
1991
  });
@@ -2106,7 +2162,8 @@ ${body}`;
2106
2162
  archivePath: expandTildePath(body.archivePath),
2107
2163
  namespace: body.namespace,
2108
2164
  principal: effectivePrincipal,
2109
- mode: body.mode
2165
+ mode: body.mode,
2166
+ passphrase: body.passphrase
2110
2167
  });
2111
2168
  }
2112
2169
  case "engram.capsule_list": {
@@ -2165,38 +2222,42 @@ ${body}`;
2165
2222
  effectivePrincipal
2166
2223
  );
2167
2224
  }
2168
- case "engram.memory_store":
2225
+ case "engram.memory_store": {
2226
+ const body = parseMcpRequest("memoryStore", args);
2169
2227
  return this.service.memoryStore({
2170
- schemaVersion: typeof args.schemaVersion === "number" ? args.schemaVersion : void 0,
2171
- idempotencyKey: typeof args.idempotencyKey === "string" ? args.idempotencyKey : void 0,
2172
- dryRun: args.dryRun === true,
2173
- sessionKey: typeof args.sessionKey === "string" ? args.sessionKey : void 0,
2228
+ schemaVersion: body.schemaVersion,
2229
+ idempotencyKey: body.idempotencyKey,
2230
+ dryRun: body.dryRun,
2231
+ sessionKey: body.sessionKey,
2174
2232
  authenticatedPrincipal: effectivePrincipal,
2175
- content: typeof args.content === "string" ? args.content : "",
2176
- category: typeof args.category === "string" ? args.category : void 0,
2177
- confidence: typeof args.confidence === "number" ? args.confidence : void 0,
2178
- namespace: typeof args.namespace === "string" ? args.namespace : void 0,
2179
- tags: Array.isArray(args.tags) ? args.tags.filter((tag) => typeof tag === "string") : void 0,
2180
- entityRef: typeof args.entityRef === "string" ? args.entityRef : void 0,
2181
- ttl: typeof args.ttl === "string" ? args.ttl : void 0,
2182
- sourceReason: typeof args.sourceReason === "string" ? args.sourceReason : void 0
2233
+ content: body.content,
2234
+ category: body.category,
2235
+ confidence: body.confidence,
2236
+ namespace: body.namespace,
2237
+ tags: body.tags,
2238
+ entityRef: body.entityRef,
2239
+ ttl: body.ttl,
2240
+ sourceReason: body.sourceReason
2183
2241
  });
2184
- case "engram.suggestion_submit":
2242
+ }
2243
+ case "engram.suggestion_submit": {
2244
+ const body = parseMcpRequest("suggestionSubmit", args);
2185
2245
  return this.service.suggestionSubmit({
2186
- schemaVersion: typeof args.schemaVersion === "number" ? args.schemaVersion : void 0,
2187
- idempotencyKey: typeof args.idempotencyKey === "string" ? args.idempotencyKey : void 0,
2188
- dryRun: args.dryRun === true,
2189
- sessionKey: typeof args.sessionKey === "string" ? args.sessionKey : void 0,
2246
+ schemaVersion: body.schemaVersion,
2247
+ idempotencyKey: body.idempotencyKey,
2248
+ dryRun: body.dryRun,
2249
+ sessionKey: body.sessionKey,
2190
2250
  authenticatedPrincipal: effectivePrincipal,
2191
- content: typeof args.content === "string" ? args.content : "",
2192
- category: typeof args.category === "string" ? args.category : void 0,
2193
- confidence: typeof args.confidence === "number" ? args.confidence : void 0,
2194
- namespace: typeof args.namespace === "string" ? args.namespace : void 0,
2195
- tags: Array.isArray(args.tags) ? args.tags.filter((tag) => typeof tag === "string") : void 0,
2196
- entityRef: typeof args.entityRef === "string" ? args.entityRef : void 0,
2197
- ttl: typeof args.ttl === "string" ? args.ttl : void 0,
2198
- sourceReason: typeof args.sourceReason === "string" ? args.sourceReason : void 0
2251
+ content: body.content,
2252
+ category: body.category,
2253
+ confidence: body.confidence,
2254
+ namespace: body.namespace,
2255
+ tags: body.tags,
2256
+ entityRef: body.entityRef,
2257
+ ttl: body.ttl,
2258
+ sourceReason: body.sourceReason
2199
2259
  });
2260
+ }
2200
2261
  case "engram.entity_get":
2201
2262
  return this.service.entityGet(
2202
2263
  typeof args.name === "string" ? args.name : "",
@@ -2230,6 +2291,7 @@ ${body}`;
2230
2291
  return this.service.lcmSearch({
2231
2292
  query: typeof args.query === "string" ? args.query : "",
2232
2293
  sessionKey: typeof args.sessionKey === "string" ? args.sessionKey : void 0,
2294
+ sessionPrefix: typeof args.sessionPrefix === "string" ? args.sessionPrefix : void 0,
2233
2295
  namespace: typeof args.namespace === "string" ? args.namespace : void 0,
2234
2296
  limit: typeof args.limit === "number" && Number.isFinite(args.limit) ? args.limit : void 0,
2235
2297
  authenticatedPrincipal: effectivePrincipal
@@ -2565,7 +2627,7 @@ ${body}`;
2565
2627
  const {
2566
2628
  isDefaultReviewNamespace,
2567
2629
  listPairs
2568
- } = await import("./contradiction-review-ATP4S6IC.js");
2630
+ } = await import("./contradiction-review-6V2LXXK6.js");
2569
2631
  const VALID_REVIEW_FILTERS = /* @__PURE__ */ new Set(["all", "unresolved", "contradicts", "independent", "duplicates", "needs-user"]);
2570
2632
  const rawFilter = typeof args.filter === "string" ? args.filter : "unresolved";
2571
2633
  if (!VALID_REVIEW_FILTERS.has(rawFilter)) {
@@ -2592,9 +2654,9 @@ ${body}`;
2592
2654
  const verb = typeof args.verb === "string" ? args.verb : "";
2593
2655
  if (!pairId) throw new Error("pairId is required");
2594
2656
  if (!verb) throw new Error("verb is required");
2595
- const { isValidResolutionVerb } = await import("./resolution-B7FNQSSP.js");
2657
+ const { isValidResolutionVerb } = await import("./resolution-ZY7VM6WS.js");
2596
2658
  if (!isValidResolutionVerb(verb)) throw new Error(`Invalid verb: ${verb}. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context`);
2597
- const { executeResolution } = await import("./resolution-B7FNQSSP.js");
2659
+ const { executeResolution } = await import("./resolution-ZY7VM6WS.js");
2598
2660
  return executeResolution(this.service.memoryDir, this.service.storageRef, pairId, verb, {
2599
2661
  mergedMemoryId: typeof args.mergedMemoryId === "string" ? args.mergedMemoryId : void 0,
2600
2662
  mergedContent: typeof args.mergedContent === "string" ? args.mergedContent : void 0,
@@ -2606,7 +2668,7 @@ ${body}`;
2606
2668
  }
2607
2669
  case "engram.contradiction_scan_run":
2608
2670
  case "remnic.contradiction_scan_run": {
2609
- const { runContradictionScan } = await import("./contradiction-scan-5A4IDZV5.js");
2671
+ const { runContradictionScan } = await import("./contradiction-scan-GIRVC4C7.js");
2610
2672
  return runContradictionScan({
2611
2673
  storage: this.service.storageRef,
2612
2674
  config: this.service.configRef,
@@ -2656,7 +2718,7 @@ ${body}`;
2656
2718
  reason: "graphEdgeDecayEnabled is false"
2657
2719
  };
2658
2720
  }
2659
- const { runGraphEdgeDecayMaintenanceAcrossNamespaces } = await import("./graph-edge-decay-5DI5GUNL.js");
2721
+ const { runGraphEdgeDecayMaintenanceAcrossNamespaces } = await import("./graph-edge-decay-MUP5J7CC.js");
2660
2722
  const dryRun = args.dryRun === true;
2661
2723
  const results = await runGraphEdgeDecayMaintenanceAcrossNamespaces(
2662
2724
  this.service.memoryDir,
@@ -2745,7 +2807,7 @@ ${body}`;
2745
2807
  // ── Dreams telemetry (issue #678 PR 3+4) ──────────────────────────────
2746
2808
  case "engram.dreams_status":
2747
2809
  case "remnic.dreams_status": {
2748
- const { normalizeDreamsStatusWindowHours } = await import("./dreams-ledger-LR2NBAZE.js");
2810
+ const { normalizeDreamsStatusWindowHours } = await import("./dreams-ledger-3WSCI5V4.js");
2749
2811
  let windowHours = 24;
2750
2812
  try {
2751
2813
  windowHours = normalizeDreamsStatusWindowHours(args.windowHours);
@@ -2797,4 +2859,4 @@ ${body}`;
2797
2859
  export {
2798
2860
  EngramMcpServer
2799
2861
  };
2800
- //# sourceMappingURL=chunk-3ZLVGM76.js.map
2862
+ //# sourceMappingURL=chunk-TTGZV5R3.js.map