@remnic/core 1.1.30 → 9.3.515

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 (1091) 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 +156 -119
  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 +47 -15
  12. package/dist/access-schema.js +8 -8
  13. package/dist/{access-service-B5hgZPCN.d.ts → access-service-qrrIrC-0.d.ts} +11 -129
  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-7OZ53EXP.js → chunk-2NLLXCJG.js} +21 -10
  68. package/dist/chunk-2NLLXCJG.js.map +1 -0
  69. package/dist/{chunk-PK7H5L6Y.js → chunk-2NM43EWN.js} +2 -2
  70. package/dist/{chunk-PYXS46O7.js → chunk-3BP57I6J.js} +2 -2
  71. package/dist/{chunk-FBYESMQ2.js → chunk-3C5RPJAX.js} +2 -2
  72. package/dist/{chunk-QKZGQIPJ.js → chunk-3Q4H3OBR.js} +171 -64
  73. package/dist/chunk-3Q4H3OBR.js.map +1 -0
  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-MG7NA5H3.js → chunk-4Q73JBSM.js} +17 -12
  91. package/dist/chunk-4Q73JBSM.js.map +1 -0
  92. package/dist/{chunk-XKLD5OK4.js → chunk-4RR6ROTB.js} +10 -11
  93. package/dist/chunk-4RR6ROTB.js.map +1 -0
  94. package/dist/{chunk-4KGVTPGD.js → chunk-6F6BXB7A.js} +9 -8
  95. package/dist/chunk-6F6BXB7A.js.map +1 -0
  96. package/dist/{chunk-NMZY542O.js → chunk-6URPAY2D.js} +41 -17
  97. package/dist/chunk-6URPAY2D.js.map +1 -0
  98. package/dist/{chunk-N53K2EXC.js → chunk-6VF75M3X.js} +2 -2
  99. package/dist/{chunk-XSZEP4SF.js → chunk-6XSPNR6L.js} +6 -5
  100. package/dist/chunk-6XSPNR6L.js.map +1 -0
  101. package/dist/{chunk-6H2TESSP.js → chunk-765K3SAT.js} +3 -3
  102. package/dist/{chunk-EDTHC6UD.js → chunk-77NAFXUD.js} +2 -2
  103. package/dist/{chunk-S7KDBTWT.js → chunk-7F7Z6MOS.js} +29 -14
  104. package/dist/chunk-7F7Z6MOS.js.map +1 -0
  105. package/dist/{chunk-MZH6EHNR.js → chunk-7H6CFEBJ.js} +41 -14
  106. package/dist/chunk-7H6CFEBJ.js.map +1 -0
  107. package/dist/{chunk-575RMLWN.js → chunk-7MV5CWTE.js} +26 -20
  108. package/dist/chunk-7MV5CWTE.js.map +1 -0
  109. package/dist/{chunk-MGKYQQYF.js → chunk-7Q3RCKAQ.js} +2 -2
  110. package/dist/chunk-7RXCMVFQ.js +27 -0
  111. package/dist/chunk-7RXCMVFQ.js.map +1 -0
  112. package/dist/{chunk-DGXUHMOV.js → chunk-A2IYSXDQ.js} +25 -6
  113. package/dist/chunk-A2IYSXDQ.js.map +1 -0
  114. package/dist/{chunk-EABGC2TL.js → chunk-A2Z6UCWT.js} +26 -4
  115. package/dist/chunk-A2Z6UCWT.js.map +1 -0
  116. package/dist/{chunk-3VAL7ZL2.js → chunk-A52AKD7C.js} +59 -24
  117. package/dist/chunk-A52AKD7C.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-XVVIG67A.js → chunk-BLZAVUD2.js} +61 -17
  131. package/dist/chunk-BLZAVUD2.js.map +1 -0
  132. package/dist/chunk-CHBI22MI.js +159 -0
  133. package/dist/chunk-CHBI22MI.js.map +1 -0
  134. package/dist/{chunk-GDFS42HT.js → chunk-CHCA44C3.js} +15 -8
  135. package/dist/chunk-CHCA44C3.js.map +1 -0
  136. package/dist/chunk-CINZGPSJ.js +22 -0
  137. package/dist/chunk-CINZGPSJ.js.map +1 -0
  138. package/dist/chunk-CMTINOFS.js +36 -0
  139. package/dist/chunk-CMTINOFS.js.map +1 -0
  140. package/dist/{chunk-34DQE4KF.js → chunk-CO7ZO4TU.js} +2 -2
  141. package/dist/{chunk-PFV5C235.js → chunk-CPPS65WS.js} +2 -1
  142. package/dist/{chunk-PFV5C235.js.map → chunk-CPPS65WS.js.map} +1 -1
  143. package/dist/{chunk-DINWEURR.js → chunk-CSKLPDN6.js} +20 -6
  144. package/dist/chunk-CSKLPDN6.js.map +1 -0
  145. package/dist/chunk-CWWMTTQE.js +566 -0
  146. package/dist/chunk-CWWMTTQE.js.map +1 -0
  147. package/dist/{chunk-IQT3XTKW.js → chunk-D24OXEPB.js} +13 -7
  148. package/dist/chunk-D24OXEPB.js.map +1 -0
  149. package/dist/{chunk-KRBK4BQH.js → chunk-D6WE5MTW.js} +272 -411
  150. package/dist/chunk-D6WE5MTW.js.map +1 -0
  151. package/dist/{chunk-WIICJPET.js → chunk-DEUNUKTD.js} +6 -4
  152. package/dist/{chunk-WIICJPET.js.map → chunk-DEUNUKTD.js.map} +1 -1
  153. package/dist/{chunk-ZYVPLJ4T.js → chunk-DHGSZ3UD.js} +9 -7
  154. package/dist/chunk-DHGSZ3UD.js.map +1 -0
  155. package/dist/{chunk-JR4ZC3G4.js → chunk-DLJ4IR6M.js} +91 -41
  156. package/dist/chunk-DLJ4IR6M.js.map +1 -0
  157. package/dist/{chunk-U4SCL7B7.js → chunk-DRD2Q7HQ.js} +82 -18
  158. package/dist/chunk-DRD2Q7HQ.js.map +1 -0
  159. package/dist/{chunk-2IWUMAES.js → chunk-E62SBGQ3.js} +28 -13
  160. package/dist/chunk-E62SBGQ3.js.map +1 -0
  161. package/dist/{chunk-C5BCH4ZS.js → chunk-EAZGEEG2.js} +21 -3
  162. package/dist/chunk-EAZGEEG2.js.map +1 -0
  163. package/dist/{chunk-TPB3I2AC.js → chunk-ECZU5BJH.js} +31 -10
  164. package/dist/chunk-ECZU5BJH.js.map +1 -0
  165. package/dist/{chunk-77H5NU3M.js → chunk-EDBEWFJO.js} +82 -18
  166. package/dist/chunk-EDBEWFJO.js.map +1 -0
  167. package/dist/chunk-EDQVAMQI.js +308 -0
  168. package/dist/chunk-EDQVAMQI.js.map +1 -0
  169. package/dist/{chunk-RRF5UOBJ.js → chunk-EI6V5UXY.js} +22 -15
  170. package/dist/chunk-EI6V5UXY.js.map +1 -0
  171. package/dist/{chunk-I5GLV3VE.js → chunk-EIPUHVKE.js} +31 -24
  172. package/dist/{chunk-I5GLV3VE.js.map → chunk-EIPUHVKE.js.map} +1 -1
  173. package/dist/{chunk-ZKSK55RC.js → chunk-ETUPBUHB.js} +2 -2
  174. package/dist/{chunk-25MQ7IHJ.js → chunk-EUML3N6B.js} +17 -6
  175. package/dist/chunk-EUML3N6B.js.map +1 -0
  176. package/dist/{chunk-5RGLBDQF.js → chunk-EVZFIAPG.js} +12 -12
  177. package/dist/chunk-EVZFIAPG.js.map +1 -0
  178. package/dist/{chunk-QRNI5JBH.js → chunk-EYIEWJNI.js} +2 -2
  179. package/dist/{chunk-3OWUCDKH.js → chunk-FER4WARO.js} +176 -42
  180. package/dist/chunk-FER4WARO.js.map +1 -0
  181. package/dist/{chunk-43PJZYGL.js → chunk-FPGE5NVO.js} +45 -10
  182. package/dist/chunk-FPGE5NVO.js.map +1 -0
  183. package/dist/{chunk-C6QPK5GG.js → chunk-FZZ2QTJI.js} +2 -2
  184. package/dist/{chunk-D46YSIYX.js → chunk-G3Z3QEF5.js} +19 -11
  185. package/dist/{chunk-D46YSIYX.js.map → chunk-G3Z3QEF5.js.map} +1 -1
  186. package/dist/{chunk-3JXBXXM2.js → chunk-G4IAEX6D.js} +2 -2
  187. package/dist/{chunk-MSWG7JI6.js → chunk-G56P5RLD.js} +8 -2
  188. package/dist/chunk-G56P5RLD.js.map +1 -0
  189. package/dist/{chunk-AGZQD76C.js → chunk-GCGJW34D.js} +48 -2
  190. package/dist/chunk-GCGJW34D.js.map +1 -0
  191. package/dist/chunk-H2NCNXMS.js +159 -0
  192. package/dist/chunk-H2NCNXMS.js.map +1 -0
  193. package/dist/{chunk-XYIK4LF6.js → chunk-H3FZVNRN.js} +8 -2
  194. package/dist/chunk-H3FZVNRN.js.map +1 -0
  195. package/dist/{chunk-TK4UEOSK.js → chunk-HDDRVXX4.js} +8 -8
  196. package/dist/chunk-HDDRVXX4.js.map +1 -0
  197. package/dist/{chunk-LLQ2LLWF.js → chunk-HENLZHIT.js} +15 -5
  198. package/dist/chunk-HENLZHIT.js.map +1 -0
  199. package/dist/{chunk-N2D6GXBM.js → chunk-HINSGUA7.js} +28 -20
  200. package/dist/chunk-HINSGUA7.js.map +1 -0
  201. package/dist/{chunk-APO3DCMU.js → chunk-HLAVGJ62.js} +30 -8
  202. package/dist/chunk-HLAVGJ62.js.map +1 -0
  203. package/dist/{chunk-TPMQ3G6Z.js → chunk-HOJZMQ4J.js} +2 -2
  204. package/dist/chunk-HOJZMQ4J.js.map +1 -0
  205. package/dist/{chunk-LUDTDZLK.js → chunk-HPWVAEET.js} +33 -7
  206. package/dist/chunk-HPWVAEET.js.map +1 -0
  207. package/dist/{chunk-NZL6GGQE.js → chunk-HQ6NIBL6.js} +92 -30
  208. package/dist/chunk-HQ6NIBL6.js.map +1 -0
  209. package/dist/{chunk-UWVJF25J.js → chunk-HWVTS5NO.js} +20 -6
  210. package/dist/chunk-HWVTS5NO.js.map +1 -0
  211. package/dist/{chunk-2WWLHTZY.js → chunk-IC4GELZE.js} +2 -2
  212. package/dist/{chunk-QA2ZAPBU.js → chunk-IPLYGWQF.js} +28 -20
  213. package/dist/chunk-IPLYGWQF.js.map +1 -0
  214. package/dist/{chunk-A6KTB5R6.js → chunk-IQ3OI2RR.js} +3 -3
  215. package/dist/chunk-IQ3OI2RR.js.map +1 -0
  216. package/dist/{chunk-6LVVDPJ4.js → chunk-J64TK33U.js} +3 -4
  217. package/dist/chunk-J64TK33U.js.map +1 -0
  218. package/dist/{chunk-6FC5EGNV.js → chunk-JBPKEARU.js} +15 -5
  219. package/dist/{chunk-6FC5EGNV.js.map → chunk-JBPKEARU.js.map} +1 -1
  220. package/dist/{chunk-RHY3HH7P.js → chunk-JFEKNTX7.js} +125 -33
  221. package/dist/chunk-JFEKNTX7.js.map +1 -0
  222. package/dist/{chunk-TZOLIGIG.js → chunk-JJEJJ7RK.js} +4 -2
  223. package/dist/chunk-JJEJJ7RK.js.map +1 -0
  224. package/dist/{chunk-PCUKNJAZ.js → chunk-JKV57BTN.js} +2 -2
  225. package/dist/{chunk-EJI5XIBB.js → chunk-JLNBQWZ2.js} +55 -7
  226. package/dist/chunk-JLNBQWZ2.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-UL2NNBUL.js → chunk-JYIKKAK3.js} +106 -44
  230. package/dist/chunk-JYIKKAK3.js.map +1 -0
  231. package/dist/{chunk-OIGNEXKZ.js → chunk-K5O2QY6T.js} +5 -1
  232. package/dist/{chunk-OIGNEXKZ.js.map → chunk-K5O2QY6T.js.map} +1 -1
  233. package/dist/{chunk-ZTFCYYEZ.js → chunk-KCYE2MZM.js} +3 -3
  234. package/dist/chunk-KCYE2MZM.js.map +1 -0
  235. package/dist/{chunk-JWPLJLDU.js → chunk-KD3QD3A5.js} +2 -2
  236. package/dist/{chunk-JWPLJLDU.js.map → chunk-KD3QD3A5.js.map} +1 -1
  237. package/dist/{chunk-YRMVARQP.js → chunk-KFY3SGN7.js} +49 -2
  238. package/dist/chunk-KFY3SGN7.js.map +1 -0
  239. package/dist/{chunk-CYFQJMUV.js → chunk-KIB7SDIJ.js} +15 -10
  240. package/dist/chunk-KIB7SDIJ.js.map +1 -0
  241. package/dist/{chunk-3KW65B36.js → chunk-KILOTVIF.js} +95 -48
  242. package/dist/chunk-KILOTVIF.js.map +1 -0
  243. package/dist/{chunk-MXFBBHJU.js → chunk-KJMYHC7K.js} +10 -5
  244. package/dist/chunk-KJMYHC7K.js.map +1 -0
  245. package/dist/{chunk-W3LR522O.js → chunk-KM2A35EO.js} +36 -34
  246. package/dist/chunk-KM2A35EO.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-W6AQJ2PY.js → chunk-L7S47WZT.js} +35 -16
  250. package/dist/chunk-L7S47WZT.js.map +1 -0
  251. package/dist/{chunk-BVF3AGJP.js → chunk-LJBOVCQG.js} +26 -11
  252. package/dist/chunk-LJBOVCQG.js.map +1 -0
  253. package/dist/{chunk-2KI4QFHU.js → chunk-LMDRGRJ2.js} +2 -2
  254. package/dist/{chunk-MY6TPVXW.js → chunk-LMPHTYJC.js} +2 -2
  255. package/dist/{chunk-EHRTFRWW.js → chunk-LQHDIS7L.js} +10 -5
  256. package/dist/chunk-LQHDIS7L.js.map +1 -0
  257. package/dist/chunk-LUDUFZTV.js +170 -0
  258. package/dist/chunk-LUDUFZTV.js.map +1 -0
  259. package/dist/{chunk-5HRY2WRF.js → chunk-LZ3VEOU5.js} +2 -2
  260. package/dist/{chunk-Q7P4WJDP.js → chunk-M5T4Q2ZU.js} +1 -1
  261. package/dist/chunk-M5T4Q2ZU.js.map +1 -0
  262. package/dist/{chunk-ICRIXAP2.js → chunk-MC4FJXPA.js} +16 -6
  263. package/dist/chunk-MC4FJXPA.js.map +1 -0
  264. package/dist/{chunk-WPGJYVUH.js → chunk-MGVIEM2O.js} +23 -6
  265. package/dist/chunk-MGVIEM2O.js.map +1 -0
  266. package/dist/{chunk-OC7KHOOX.js → chunk-O27WNHTT.js} +22 -6
  267. package/dist/chunk-O27WNHTT.js.map +1 -0
  268. package/dist/{chunk-NGAVDO7E.js → chunk-OADWQ5CR.js} +2 -2
  269. package/dist/{chunk-2NMMFZ5T.js → chunk-OD4FM2U7.js} +6 -3
  270. package/dist/chunk-OD4FM2U7.js.map +1 -0
  271. package/dist/{chunk-OZHRDTDX.js → chunk-OKTXM5H4.js} +11 -1
  272. package/dist/chunk-OKTXM5H4.js.map +1 -0
  273. package/dist/{chunk-RXDLTSWT.js → chunk-ONPLNAPX.js} +16 -7
  274. package/dist/chunk-ONPLNAPX.js.map +1 -0
  275. package/dist/{chunk-FJ43PRLT.js → chunk-ORFGK3XI.js} +20 -14
  276. package/dist/chunk-ORFGK3XI.js.map +1 -0
  277. package/dist/{chunk-DOM4GKSW.js → chunk-OZKVVUJB.js} +3 -3
  278. package/dist/{chunk-MT4HVDUZ.js → chunk-PM3QHTFT.js} +3 -3
  279. package/dist/{chunk-4DWOBS2A.js → chunk-PRQJ5ESM.js} +27 -2
  280. package/dist/{chunk-4DWOBS2A.js.map → chunk-PRQJ5ESM.js.map} +1 -1
  281. package/dist/chunk-PU44GBL4.js +52 -0
  282. package/dist/chunk-PU44GBL4.js.map +1 -0
  283. package/dist/{chunk-MJFNCJXV.js → chunk-Q4CAQGKQ.js} +47 -9
  284. package/dist/chunk-Q4CAQGKQ.js.map +1 -0
  285. package/dist/{chunk-U3WSW6PZ.js → chunk-QMYXNM4P.js} +90 -35
  286. package/dist/chunk-QMYXNM4P.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-QLLBRHAT.js → chunk-R26QUUQN.js} +181 -257
  290. package/dist/chunk-R26QUUQN.js.map +1 -0
  291. package/dist/{chunk-ZK7I7JYV.js → chunk-R3PS27B4.js} +7 -7
  292. package/dist/{chunk-TMQLARTH.js → chunk-RCTS5CKK.js} +33 -14
  293. package/dist/chunk-RCTS5CKK.js.map +1 -0
  294. package/dist/{chunk-2PRLKQAH.js → chunk-RLV3PQGH.js} +35 -19
  295. package/dist/chunk-RLV3PQGH.js.map +1 -0
  296. package/dist/{chunk-WW3QQF4H.js → chunk-ROZJACKP.js} +16 -1
  297. package/dist/chunk-ROZJACKP.js.map +1 -0
  298. package/dist/{chunk-7MNMYOFP.js → chunk-RSUYKGGZ.js} +3 -4
  299. package/dist/chunk-RSUYKGGZ.js.map +1 -0
  300. package/dist/{chunk-LT3NLYSI.js → chunk-RUZOJKNF.js} +10 -7
  301. package/dist/chunk-RUZOJKNF.js.map +1 -0
  302. package/dist/{chunk-326G7DJK.js → chunk-RW5DGAGO.js} +67 -13
  303. package/dist/chunk-RW5DGAGO.js.map +1 -0
  304. package/dist/{chunk-KOSORCJG.js → chunk-S53PKKWK.js} +63 -24
  305. package/dist/chunk-S53PKKWK.js.map +1 -0
  306. package/dist/{chunk-65PG43EQ.js → chunk-S7WU3Y3D.js} +21 -4
  307. package/dist/chunk-S7WU3Y3D.js.map +1 -0
  308. package/dist/{chunk-SKE7JYKA.js → chunk-SFXKHM7P.js} +2 -2
  309. package/dist/{chunk-HMDCOMYU.js → chunk-SKGV326D.js} +3 -3
  310. package/dist/chunk-T2PO5MUF.js +62 -0
  311. package/dist/chunk-T2PO5MUF.js.map +1 -0
  312. package/dist/{chunk-C7VW7C3F.js → chunk-TDKQGLJW.js} +3 -3
  313. package/dist/chunk-TDKQGLJW.js.map +1 -0
  314. package/dist/{chunk-3QKK7QOS.js → chunk-TERNBNJB.js} +3 -3
  315. package/dist/chunk-TERNBNJB.js.map +1 -0
  316. package/dist/{chunk-MXC3AP5I.js → chunk-TGQ2NTWH.js} +12 -7
  317. package/dist/chunk-TGQ2NTWH.js.map +1 -0
  318. package/dist/{chunk-3Y4P7RXM.js → chunk-TMSXWOBZ.js} +3 -4
  319. package/dist/chunk-TMSXWOBZ.js.map +1 -0
  320. package/dist/{chunk-3TNBOMQT.js → chunk-TVRN5QKH.js} +11 -11
  321. package/dist/{chunk-3TNBOMQT.js.map → chunk-TVRN5QKH.js.map} +1 -1
  322. package/dist/{chunk-5UM2VJ6D.js → chunk-UEY3VB6W.js} +2 -2
  323. package/dist/{chunk-I6K5FBRQ.js → chunk-UI3NYK34.js} +4 -1
  324. package/dist/{chunk-I6K5FBRQ.js.map → chunk-UI3NYK34.js.map} +1 -1
  325. package/dist/{chunk-VBJ7V5SK.js → chunk-UIPDNLXA.js} +21 -8
  326. package/dist/chunk-UIPDNLXA.js.map +1 -0
  327. package/dist/{chunk-GIF42EW3.js → chunk-UP6MOYCB.js} +3 -3
  328. package/dist/{chunk-K4FLSOR5.js → chunk-USYGGIJZ.js} +44 -15
  329. package/dist/chunk-USYGGIJZ.js.map +1 -0
  330. package/dist/{chunk-FIT6DMX6.js → chunk-UWY7GIVS.js} +152 -54
  331. package/dist/chunk-UWY7GIVS.js.map +1 -0
  332. package/dist/{chunk-MRILGULB.js → chunk-V2RCP53Q.js} +2 -2
  333. package/dist/{chunk-XKECPATV.js → chunk-VFUEZZBS.js} +113 -4
  334. package/dist/chunk-VFUEZZBS.js.map +1 -0
  335. package/dist/{chunk-FSFEQI74.js → chunk-W7L6HXUC.js} +2 -2
  336. package/dist/{chunk-3IQ2TR4N.js → chunk-WLEB7WCG.js} +2 -2
  337. package/dist/{chunk-GL6I6MEQ.js → chunk-WSGF57U2.js} +3 -3
  338. package/dist/{chunk-KNKUID7G.js → chunk-X7Y7WX73.js} +72 -6
  339. package/dist/chunk-X7Y7WX73.js.map +1 -0
  340. package/dist/{chunk-5NPGSAVB.js → chunk-XEKAG3FM.js} +23 -5
  341. package/dist/chunk-XEKAG3FM.js.map +1 -0
  342. package/dist/{chunk-3APJ5EVB.js → chunk-XKIQZXUB.js} +41 -26
  343. package/dist/chunk-XKIQZXUB.js.map +1 -0
  344. package/dist/chunk-XKXKSQU7.js +92 -0
  345. package/dist/chunk-XKXKSQU7.js.map +1 -0
  346. package/dist/{chunk-JA3AK3PT.js → chunk-XNLXAWHX.js} +4 -4
  347. package/dist/{chunk-CULXMQJH.js → chunk-XPXEJRUB.js} +3 -3
  348. package/dist/chunk-XPXEJRUB.js.map +1 -0
  349. package/dist/{chunk-PZIAX57I.js → chunk-XR6DNK4U.js} +7 -4
  350. package/dist/chunk-XR6DNK4U.js.map +1 -0
  351. package/dist/{chunk-47VWKCAF.js → chunk-XSQ4SGM5.js} +33 -4
  352. package/dist/chunk-XSQ4SGM5.js.map +1 -0
  353. package/dist/{chunk-66DHUKLO.js → chunk-XSWKORGM.js} +16 -14
  354. package/dist/chunk-XSWKORGM.js.map +1 -0
  355. package/dist/{chunk-QR3C7BKQ.js → chunk-XZ4WBBB5.js} +7 -8
  356. package/dist/chunk-XZ4WBBB5.js.map +1 -0
  357. package/dist/{chunk-WNARATI3.js → chunk-Y2SXZ5KZ.js} +59 -11
  358. package/dist/chunk-Y2SXZ5KZ.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-VLXA6PI2.js → chunk-YQMZ7IH2.js} +4 -4
  363. package/dist/{chunk-TMM4S4IJ.js → chunk-YR6GIWWY.js} +58 -8
  364. package/dist/chunk-YR6GIWWY.js.map +1 -0
  365. package/dist/{chunk-DK5LDEQM.js → chunk-YR7XMOWK.js} +39 -23
  366. package/dist/chunk-YR7XMOWK.js.map +1 -0
  367. package/dist/chunk-ZFXCQPNO.js +27 -0
  368. package/dist/chunk-ZFXCQPNO.js.map +1 -0
  369. package/dist/citations.js +1 -1
  370. package/dist/{cli-CJKI2JIe.d.ts → cli-X4NJoqSe.d.ts} +8 -31
  371. package/dist/cli.d.ts +10 -6
  372. package/dist/cli.js +122 -117
  373. package/dist/commitment-ledger.js +2 -2
  374. package/dist/compat/checks.js +1 -2
  375. package/dist/compounding/engine.d.ts +3 -2
  376. package/dist/compounding/engine.js +11 -11
  377. package/dist/compounding/preference-consolidator.d.ts +1 -0
  378. package/dist/compounding/preference-consolidator.js +8 -8
  379. package/dist/compounding/preference-consolidator.js.map +1 -1
  380. package/dist/compression-optimizer.d.ts +1 -0
  381. package/dist/compression-optimizer.js +1 -1
  382. package/dist/config.d.ts +1 -0
  383. package/dist/config.js +3 -2
  384. package/dist/connectors/codex-materialize-runner.d.ts +1 -0
  385. package/dist/connectors/codex-materialize-runner.js +12 -11
  386. package/dist/connectors/codex-materialize.d.ts +1 -0
  387. package/dist/connectors/codex-materialize.js +3 -2
  388. package/dist/connectors/index.d.ts +1 -0
  389. package/dist/connectors/index.js +14 -14
  390. package/dist/{connectors-cli-CwbyjGR7.d.ts → connectors-cli-DbTPNj2H.d.ts} +7 -1
  391. package/dist/connectors-cli.d.ts +1 -1
  392. package/dist/connectors-cli.js +3 -1
  393. package/dist/consolidation-provenance-check.d.ts +1 -0
  394. package/dist/consolidation-provenance-check.js +2 -2
  395. package/dist/consolidation-undo.d.ts +1 -0
  396. package/dist/consolidation-undo.js +1 -1
  397. package/dist/contradiction/index.d.ts +3 -1
  398. package/dist/contradiction/index.js +3 -3
  399. package/dist/{contradiction-review-ATP4S6IC.js → contradiction-review-6V2LXXK6.js} +2 -2
  400. package/dist/{contradiction-scan-5A4IDZV5.js → contradiction-scan-GIRVC4C7.js} +3 -3
  401. package/dist/conversation-index/backend.d.ts +3 -1
  402. package/dist/conversation-index/backend.js +3 -3
  403. package/dist/conversation-index/chunker.d.ts +1 -0
  404. package/dist/conversation-index/cleanup.js +1 -1
  405. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  406. package/dist/conversation-index/faiss-adapter.js +1 -1
  407. package/dist/conversation-index/indexer.d.ts +5 -2
  408. package/dist/conversation-index/indexer.js +1 -1
  409. package/dist/conversation-index/search.d.ts +2 -1
  410. package/dist/cross-namespace-budget.js +1 -1
  411. package/dist/cue-anchors.js +2 -2
  412. package/dist/dashboard-runtime.d.ts +6 -0
  413. package/dist/dashboard-runtime.js +3 -3
  414. package/dist/day-summary.d.ts +1 -0
  415. package/dist/day-summary.js +2 -2
  416. package/dist/delinearize.d.ts +1 -0
  417. package/dist/direct-answer-wiring.d.ts +1 -0
  418. package/dist/direct-answer.d.ts +1 -0
  419. package/dist/{dreams-ledger-LR2NBAZE.js → dreams-ledger-3WSCI5V4.js} +5 -4
  420. package/dist/{dreams-ledger-LR2NBAZE.js.map → dreams-ledger-3WSCI5V4.js.map} +1 -1
  421. package/dist/embedding-fallback.d.ts +3 -0
  422. package/dist/embedding-fallback.js +2 -2
  423. package/dist/enrichment/index.d.ts +1 -0
  424. package/dist/enrichment/index.js +1 -1
  425. package/dist/entity-retrieval.d.ts +2 -0
  426. package/dist/entity-retrieval.js +9 -9
  427. package/dist/entity-schema.d.ts +1 -0
  428. package/dist/evals.js +1 -1
  429. package/dist/explicit-capture.d.ts +5 -3
  430. package/dist/explicit-capture.js +2 -2
  431. package/dist/extraction-judge-telemetry.d.ts +2 -0
  432. package/dist/extraction-judge-training.d.ts +2 -0
  433. package/dist/extraction-judge.d.ts +2 -0
  434. package/dist/extraction.d.ts +2 -0
  435. package/dist/extraction.js +12 -12
  436. package/dist/{faiss-adapter-CzPghc4C.d.ts → faiss-adapter-BHecI1fF.d.ts} +4 -1
  437. package/dist/fallback-llm.d.ts +11 -1
  438. package/dist/fallback-llm.js +8 -6
  439. package/dist/{first-start-migration-4MHQEOSD.js → first-start-migration-CKTCTCQI.js} +5 -5
  440. package/dist/graph-dashboard-diff.d.ts +4 -0
  441. package/dist/graph-dashboard-diff.js +1 -1
  442. package/dist/graph-dashboard-parser.js +1 -1
  443. package/dist/{graph-edge-decay-5DI5GUNL.js → graph-edge-decay-MUP5J7CC.js} +6 -6
  444. package/dist/graph-events.js +1 -1
  445. package/dist/graph-snapshot.js +3 -3
  446. package/dist/graph.js +2 -2
  447. package/dist/harmonic-retrieval.js +4 -4
  448. package/dist/identity-continuity.d.ts +1 -0
  449. package/dist/importance.d.ts +1 -0
  450. package/dist/importers/index.d.ts +244 -0
  451. package/dist/importers/index.js +20 -0
  452. package/dist/index.d.ts +21 -351
  453. package/dist/index.js +886 -561
  454. package/dist/index.js.map +1 -1
  455. package/dist/intent.d.ts +1 -0
  456. package/dist/lcm/archive.d.ts +2 -2
  457. package/dist/lcm/archive.js +2 -2
  458. package/dist/lcm/engine.d.ts +3 -2
  459. package/dist/lcm/engine.js +6 -6
  460. package/dist/lcm/index.d.ts +1 -0
  461. package/dist/lcm/index.js +8 -8
  462. package/dist/lcm/recall.js +1 -1
  463. package/dist/lcm/summarizer.js +3 -3
  464. package/dist/lcm/tools.d.ts +1 -0
  465. package/dist/lifecycle.d.ts +1 -0
  466. package/dist/live-connectors-runner.d.ts +1 -0
  467. package/dist/live-connectors-runner.js +6 -6
  468. package/dist/local-llm.d.ts +1 -0
  469. package/dist/local-llm.js +2 -2
  470. package/dist/maintenance/archive-observations.js +1 -1
  471. package/dist/maintenance/memory-governance.d.ts +3 -1
  472. package/dist/maintenance/memory-governance.js +10 -8
  473. package/dist/maintenance/migrate-observations.js +3 -2
  474. package/dist/maintenance/observation-ledger-utils.d.ts +3 -0
  475. package/dist/maintenance/observation-ledger-utils.js +2 -1
  476. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -1
  477. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -8
  478. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -1
  479. package/dist/maintenance/rebuild-memory-projection.js +13 -10
  480. package/dist/maintenance/rebuild-observations.d.ts +1 -0
  481. package/dist/maintenance/rebuild-observations.js +3 -2
  482. package/dist/mcp-memory-inspector-app.d.ts +7 -4
  483. package/dist/mcp-memory-inspector-app.js +1 -1
  484. package/dist/memory-action-policy.d.ts +1 -0
  485. package/dist/memory-cache.d.ts +1 -0
  486. package/dist/memory-cache.js +1 -1
  487. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -0
  488. package/dist/memory-projection-store.d.ts +1 -0
  489. package/dist/memory-projection-store.js +1 -1
  490. package/dist/memory-provenance.d.ts +1 -0
  491. package/dist/memory-worth-outcomes.d.ts +1 -0
  492. package/dist/migrate/from-engram.js +2 -2
  493. package/dist/{migrate-from-identity-anchor-G27MCD6A.js → migrate-from-identity-anchor-EB4XI4Q2.js} +2 -2
  494. package/dist/model-registry.js +1 -1
  495. package/dist/models-json.d.ts +1 -0
  496. package/dist/namespaces/migrate.d.ts +3 -0
  497. package/dist/namespaces/migrate.js +24 -22
  498. package/dist/namespaces/principal.d.ts +1 -0
  499. package/dist/namespaces/principal.js +2 -1
  500. package/dist/namespaces/search.d.ts +1 -0
  501. package/dist/namespaces/search.js +15 -13
  502. package/dist/namespaces/storage.d.ts +4 -2
  503. package/dist/namespaces/storage.js +10 -9
  504. package/dist/native-knowledge.d.ts +1 -0
  505. package/dist/native-knowledge.js +1 -1
  506. package/dist/negative.js +1 -1
  507. package/dist/network/webdav.d.ts +16 -1
  508. package/dist/network/webdav.js +5 -3
  509. package/dist/objective-state-writers.js +4 -4
  510. package/dist/objective-state.js +2 -2
  511. package/dist/offline-sync.d.ts +8 -1
  512. package/dist/offline-sync.js +6 -4
  513. package/dist/operator-toolkit.d.ts +1 -0
  514. package/dist/operator-toolkit.js +35 -32
  515. package/dist/opik-exporter.js +1 -1
  516. package/dist/{orchestrator-DuWl9Hwx.d.ts → orchestrator-Co9nxRLF.d.ts} +4 -74
  517. package/dist/orchestrator.d.ts +5 -3
  518. package/dist/orchestrator.js +99 -96
  519. package/dist/page-versioning.js +1 -1
  520. package/dist/path-X2K5XCHL.js +9 -0
  521. package/dist/patterns-cli.d.ts +1 -0
  522. package/dist/peers/index.d.ts +328 -0
  523. package/dist/{peers-HCVGHMAE.js → peers/index.js} +4 -4
  524. package/dist/pipeline-D18UAKlN.d.ts +32 -0
  525. package/dist/plugin-entry-resolver.d.ts +9 -0
  526. package/dist/plugin-entry-resolver.js +8 -0
  527. package/dist/plugin-entry-resolver.js.map +1 -0
  528. package/dist/plugin-id.d.ts +2 -21
  529. package/dist/plugin-id.js +33 -4
  530. package/dist/plugin-id.js.map +1 -1
  531. package/dist/policy-runtime.d.ts +4 -0
  532. package/dist/policy-runtime.js +1 -1
  533. package/dist/profiling.js +1 -1
  534. package/dist/qmd-recall-cache.d.ts +1 -0
  535. package/dist/qmd.d.ts +1 -0
  536. package/dist/qmd.js +3 -3
  537. package/dist/recall-disclosure-escalation.d.ts +1 -0
  538. package/dist/recall-explain-renderer.d.ts +1 -0
  539. package/dist/recall-explain-renderer.js +3 -3
  540. package/dist/recall-state.d.ts +8 -1
  541. package/dist/recall-state.js +2 -1
  542. package/dist/recall-tag-filter.d.ts +1 -0
  543. package/dist/recall-xray-cli.d.ts +1 -0
  544. package/dist/recall-xray-cli.js +4 -4
  545. package/dist/recall-xray-renderer.d.ts +1 -0
  546. package/dist/recall-xray-renderer.js +3 -3
  547. package/dist/recall-xray.d.ts +1 -0
  548. package/dist/recall-xray.js +2 -2
  549. package/dist/relevance.d.ts +7 -1
  550. package/dist/relevance.js +2 -1
  551. package/dist/replay/normalizers/chatgpt.js +2 -2
  552. package/dist/replay/normalizers/claude.js +2 -2
  553. package/dist/replay/normalizers/openclaw.js +2 -2
  554. package/dist/replay/normalizers/shared.js +1 -1
  555. package/dist/replay/runner.js +1 -1
  556. package/dist/rerank.js +1 -1
  557. package/dist/{resolution-B7FNQSSP.js → resolution-ZY7VM6WS.js} +3 -3
  558. package/dist/resolution-ZY7VM6WS.js.map +1 -0
  559. package/dist/resolve-auth-token.d.ts +1 -0
  560. package/dist/resolve-auth-token.js +1 -1
  561. package/dist/resolve-provider-secret.d.ts +19 -29
  562. package/dist/resolve-provider-secret.js +2 -6
  563. package/dist/resume-bundles.js +10 -9
  564. package/dist/retrieval-agents.d.ts +2 -1
  565. package/dist/retrieval-agents.js +2 -1
  566. package/dist/retrieval-tiers.d.ts +1 -0
  567. package/dist/routing/engine.d.ts +1 -0
  568. package/dist/routing/store.d.ts +3 -0
  569. package/dist/routing/store.js +1 -1
  570. package/dist/runtime/env.js +1 -1
  571. package/dist/schemas.d.ts +213 -39
  572. package/dist/schemas.js +1 -1
  573. package/dist/sdk-compat.js +1 -1
  574. package/dist/search/document-scanner.js +1 -1
  575. package/dist/search/embed-helper.d.ts +7 -2
  576. package/dist/search/embed-helper.js +3 -1
  577. package/dist/search/factory.d.ts +2 -1
  578. package/dist/search/factory.js +13 -12
  579. package/dist/search/index.d.ts +2 -1
  580. package/dist/search/index.js +19 -18
  581. package/dist/search/lancedb-backend.d.ts +7 -6
  582. package/dist/search/lancedb-backend.js +4 -2
  583. package/dist/search/meilisearch-backend.d.ts +7 -6
  584. package/dist/search/meilisearch-backend.js +4 -2
  585. package/dist/search/noop-backend.d.ts +1 -0
  586. package/dist/search/orama-backend.d.ts +9 -7
  587. package/dist/search/orama-backend.js +8 -4
  588. package/dist/search/port.d.ts +1 -0
  589. package/dist/search/remote-backend.d.ts +1 -0
  590. package/dist/secure-store/index.d.ts +16 -3
  591. package/dist/secure-store/index.js +2 -2
  592. package/dist/{semantic-VwGI14Ok.d.ts → semantic-SLAa_prH.d.ts} +5 -3
  593. package/dist/semantic-consolidation.d.ts +1 -0
  594. package/dist/semantic-consolidation.js +14 -13
  595. package/dist/semantic-rule-promotion.js +8 -8
  596. package/dist/semantic-rule-verifier.d.ts +1 -0
  597. package/dist/semantic-rule-verifier.js +8 -8
  598. package/dist/session-integrity.d.ts +1 -0
  599. package/dist/session-integrity.js +1 -1
  600. package/dist/session-observer-bands.d.ts +1 -0
  601. package/dist/session-observer-state.d.ts +6 -1
  602. package/dist/session-observer-state.js +1 -1
  603. package/dist/shared-context/manager.d.ts +5 -0
  604. package/dist/shared-context/manager.js +3 -3
  605. package/dist/signal.d.ts +1 -0
  606. package/dist/signal.js +1 -1
  607. package/dist/source-attribution.js +1 -1
  608. package/dist/state-store-4QZISH3J.js +30 -0
  609. package/dist/state-store-4QZISH3J.js.map +1 -0
  610. package/dist/storage-C4DX8CuG.d.ts +157 -0
  611. package/dist/storage.d.ts +2 -0
  612. package/dist/storage.js +7 -7
  613. package/dist/store-contract.js +1 -1
  614. package/dist/summarizer.d.ts +1 -0
  615. package/dist/summarizer.js +7 -7
  616. package/dist/summary-snapshot.d.ts +1 -0
  617. package/dist/surfaces/dreams.js +48 -17
  618. package/dist/surfaces/dreams.js.map +1 -1
  619. package/dist/temporal-supersession.d.ts +1 -0
  620. package/dist/temporal-supersession.js +1 -1
  621. package/dist/temporal-validity.d.ts +1 -0
  622. package/dist/threading.d.ts +1 -0
  623. package/dist/tier-migration.d.ts +1 -0
  624. package/dist/tier-routing.d.ts +1 -0
  625. package/dist/{tier-stats-62ZVDFKS.js → tier-stats-SKML2OSF.js} +5 -5
  626. package/dist/tmt.js +1 -1
  627. package/dist/tokens.js +2 -2
  628. package/dist/topics.d.ts +1 -0
  629. package/dist/{trace-C5ETWBEF.js → trace-WM7V4CKI.js} +31 -1
  630. package/dist/trace-WM7V4CKI.js.map +1 -0
  631. package/dist/transcript.d.ts +1 -0
  632. package/dist/transcript.js +2 -2
  633. package/dist/transfer/autodetect.js +7 -7
  634. package/dist/transfer/backup.js +5 -5
  635. package/dist/transfer/capsule-export.js +5 -5
  636. package/dist/transfer/capsule-import.d.ts +6 -0
  637. package/dist/transfer/capsule-import.js +4 -4
  638. package/dist/transfer/export-json.js +3 -3
  639. package/dist/transfer/export-md.js +3 -3
  640. package/dist/transfer/export-sqlite.js +3 -3
  641. package/dist/transfer/fs-utils.d.ts +2 -1
  642. package/dist/transfer/fs-utils.js +5 -3
  643. package/dist/transfer/import-json.js +3 -3
  644. package/dist/transfer/import-md.js +3 -3
  645. package/dist/transfer/import-sqlite.js +3 -3
  646. package/dist/transfer/types.d.ts +12 -12
  647. package/dist/trust-zones.js +2 -2
  648. package/dist/types-B1VHaf2w.d.ts +126 -0
  649. package/dist/types-BliCnURB.d.ts +83 -0
  650. package/dist/types.d.ts +35 -0
  651. package/dist/types.js +1 -1
  652. package/dist/utility-learner.js +3 -3
  653. package/dist/utility-runtime.d.ts +1 -0
  654. package/dist/utility-runtime.js +4 -4
  655. package/dist/utility-telemetry.js +2 -2
  656. package/dist/verified-recall.js +9 -9
  657. package/dist/work/board.js +2 -2
  658. package/dist/work/boundary.js +1 -1
  659. package/dist/work/storage.d.ts +5 -0
  660. package/dist/work/storage.js +1 -1
  661. package/dist/work-product-ledger.js +2 -2
  662. package/package.json +74 -3
  663. package/scripts/ensure-better-sqlite3.mjs +8 -7
  664. package/scripts/faiss_index.py +141 -29
  665. package/src/access-cli.test.ts +87 -2
  666. package/src/access-cli.ts +59 -5
  667. package/src/access-http.test.ts +321 -0
  668. package/src/access-http.ts +201 -35
  669. package/src/access-idempotency.ts +136 -3
  670. package/src/access-mcp.test.ts +155 -0
  671. package/src/access-mcp.ts +116 -30
  672. package/src/access-schema.ts +22 -4
  673. package/src/access-service-project-tag.test.ts +37 -0
  674. package/src/access-service.ts +42 -10
  675. package/src/active-recall.test.ts +29 -1
  676. package/src/active-recall.ts +11 -7
  677. package/src/adapters/claude-code.ts +7 -8
  678. package/src/adapters/codex.ts +6 -7
  679. package/src/adapters/hermes.ts +1 -5
  680. package/src/adapters/registry.test.ts +63 -0
  681. package/src/adapters/registry.ts +10 -0
  682. package/src/adapters/replit.ts +5 -7
  683. package/src/adapters/types.ts +24 -1
  684. package/src/behavior-signals.ts +1 -1
  685. package/src/binary-lifecycle/backend.ts +16 -4
  686. package/src/binary-lifecycle/pipeline.test.ts +149 -0
  687. package/src/binary-lifecycle/pipeline.ts +49 -7
  688. package/src/binary-lifecycle/scanner.ts +19 -4
  689. package/src/boxes.ts +119 -32
  690. package/src/buffer-session.test.ts +28 -0
  691. package/src/buffer.ts +10 -14
  692. package/src/bulk-import/types.ts +10 -0
  693. package/src/calibration.test.ts +99 -0
  694. package/src/calibration.ts +57 -13
  695. package/src/causal-consolidation.test.ts +214 -0
  696. package/src/causal-consolidation.ts +131 -14
  697. package/src/causal-retrieval.ts +16 -3
  698. package/src/citations.test.ts +75 -0
  699. package/src/citations.ts +19 -6
  700. package/src/cli.ts +134 -109
  701. package/src/coding/coding-namespace.test.ts +7 -0
  702. package/src/coding/coding-namespace.ts +8 -0
  703. package/src/coding/review-context.test.ts +30 -0
  704. package/src/coding/review-context.ts +79 -9
  705. package/src/coding/wire-coding-context.test.ts +16 -0
  706. package/src/compat/checks.test.ts +33 -0
  707. package/src/compat/checks.ts +64 -4
  708. package/src/compounding/engine.ts +2 -2
  709. package/src/compounding/preference-consolidator.test.ts +47 -0
  710. package/src/compounding/preference-consolidator.ts +8 -8
  711. package/src/compression-optimizer.ts +5 -2
  712. package/src/config.test.ts +34 -2
  713. package/src/config.ts +62 -18
  714. package/src/connectors/codex-materialize-runner.ts +4 -3
  715. package/src/connectors/codex-materialize.ts +149 -34
  716. package/src/connectors/index.test.ts +144 -7
  717. package/src/connectors/index.ts +86 -15
  718. package/src/connectors/live/github.test.ts +47 -0
  719. package/src/connectors/live/github.ts +29 -1
  720. package/src/connectors/live/index.ts +2 -0
  721. package/src/connectors/live/live-connectors.test.ts +359 -73
  722. package/src/connectors/live/notion.test.ts +84 -0
  723. package/src/connectors/live/notion.ts +18 -1
  724. package/src/connectors/live/state-store.ts +419 -38
  725. package/src/connectors/weclone-installer.test.ts +16 -18
  726. package/src/connectors-cli.ts +19 -0
  727. package/src/console/trace.test.ts +28 -0
  728. package/src/console/trace.ts +42 -5
  729. package/src/contradiction/contradiction-judge.test.ts +49 -0
  730. package/src/contradiction/contradiction-judge.ts +15 -5
  731. package/src/contradiction/contradiction-review.ts +31 -7
  732. package/src/contradiction/contradiction-scan.ts +28 -18
  733. package/src/contradiction/contradiction.test.ts +237 -1
  734. package/src/contradiction/resolution.ts +43 -4
  735. package/src/conversation-index/backend.ts +13 -5
  736. package/src/conversation-index/cleanup.ts +25 -4
  737. package/src/conversation-index/faiss-adapter.ts +24 -15
  738. package/src/conversation-index/indexer.test.ts +71 -10
  739. package/src/conversation-index/indexer.ts +22 -3
  740. package/src/cross-namespace-budget.test.ts +59 -0
  741. package/src/cross-namespace-budget.ts +15 -7
  742. package/src/curation/index.ts +18 -17
  743. package/src/dashboard-runtime.test.ts +98 -0
  744. package/src/dashboard-runtime.ts +96 -6
  745. package/src/dedup/index.test.ts +133 -0
  746. package/src/dedup/index.ts +73 -10
  747. package/src/dedup/semantic.test.ts +77 -2
  748. package/src/dedup/semantic.ts +26 -6
  749. package/src/embedding-fallback.ts +47 -15
  750. package/src/enrichment/audit.ts +8 -1
  751. package/src/enrichment/pipeline.ts +21 -13
  752. package/src/enrichment/web-search-provider.ts +1 -6
  753. package/src/entity-retrieval.ts +57 -6
  754. package/src/evals.ts +22 -13
  755. package/src/explicit-capture.test.ts +40 -0
  756. package/src/explicit-capture.ts +14 -2
  757. package/src/extraction.ts +42 -30
  758. package/src/fallback-llm.ts +35 -2
  759. package/src/graph-dashboard-diff.test.ts +57 -0
  760. package/src/graph-dashboard-diff.ts +24 -2
  761. package/src/graph-dashboard-parser.test.ts +31 -0
  762. package/src/graph-dashboard-parser.ts +4 -1
  763. package/src/graph-events.ts +6 -4
  764. package/src/graph.test.ts +69 -0
  765. package/src/graph.ts +7 -4
  766. package/src/importers/base.test.ts +70 -0
  767. package/src/importers/base.ts +56 -7
  768. package/src/index.ts +6 -2
  769. package/src/lcm/archive.ts +65 -16
  770. package/src/lcm/engine.ts +27 -8
  771. package/src/lcm/recall.ts +5 -5
  772. package/src/lcm-engine.test.ts +87 -1
  773. package/src/lcm-recall.test.ts +71 -0
  774. package/src/live-connectors-runner.ts +100 -36
  775. package/src/maintenance/archive-observations.ts +24 -3
  776. package/src/maintenance/atomic-file.ts +85 -0
  777. package/src/maintenance/dreams-ledger.ts +15 -8
  778. package/src/maintenance/memory-governance.test.ts +53 -0
  779. package/src/maintenance/memory-governance.ts +15 -5
  780. package/src/maintenance/observation-ledger-utils.ts +6 -5
  781. package/src/maintenance/purge.test.ts +64 -0
  782. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +22 -9
  783. package/src/maintenance/rebuild-memory-projection.ts +22 -9
  784. package/src/maintenance/rebuild-observations.ts +7 -3
  785. package/src/mcp-memory-inspector-app.ts +26 -3
  786. package/src/memory-cache.test.ts +19 -0
  787. package/src/memory-cache.ts +1 -0
  788. package/src/memory-extension/codex-publisher.ts +25 -4
  789. package/src/memory-extension-host/host-discovery.test.ts +69 -0
  790. package/src/memory-extension-host/host-discovery.ts +63 -6
  791. package/src/memory-projection-store.ts +114 -62
  792. package/src/message-parts/index.ts +46 -31
  793. package/src/message-parts/message-parts.test.ts +77 -0
  794. package/src/migrate/from-engram.ts +68 -14
  795. package/src/model-registry.test.ts +38 -0
  796. package/src/model-registry.ts +12 -7
  797. package/src/namespaces/identity.test.ts +66 -0
  798. package/src/namespaces/identity.ts +23 -0
  799. package/src/namespaces/migrate.test.ts +62 -0
  800. package/src/namespaces/migrate.ts +82 -14
  801. package/src/namespaces/principal.test.ts +37 -1
  802. package/src/namespaces/principal.ts +18 -7
  803. package/src/namespaces/search.test.ts +76 -6
  804. package/src/namespaces/search.ts +22 -21
  805. package/src/namespaces/storage.ts +93 -11
  806. package/src/native-knowledge.ts +23 -3
  807. package/src/negative.ts +50 -5
  808. package/src/network/webdav.ts +177 -58
  809. package/src/offline-sync.ts +22 -11
  810. package/src/onboarding/index.test.ts +105 -0
  811. package/src/onboarding/index.ts +17 -5
  812. package/src/operator-toolkit.ts +39 -4
  813. package/src/orchestrator.ts +52 -17
  814. package/src/page-versioning.ts +31 -5
  815. package/src/peers/peers.test.ts +70 -0
  816. package/src/peers/storage.ts +32 -3
  817. package/src/plugin-entry-resolver.test.ts +60 -0
  818. package/src/plugin-entry-resolver.ts +48 -0
  819. package/src/plugin-id.test.ts +38 -0
  820. package/src/plugin-id.ts +31 -64
  821. package/src/policy-runtime.test.ts +75 -0
  822. package/src/policy-runtime.ts +32 -3
  823. package/src/procedural/procedure-miner.test.ts +152 -0
  824. package/src/procedural/procedure-miner.ts +124 -19
  825. package/src/profiling.test.ts +23 -0
  826. package/src/profiling.ts +10 -1
  827. package/src/projection/index.test.ts +253 -0
  828. package/src/projection/index.ts +159 -18
  829. package/src/qmd-client.test.ts +45 -0
  830. package/src/qmd.ts +8 -8
  831. package/src/recall-disclosure.test.ts +15 -1
  832. package/src/recall-state.ts +24 -5
  833. package/src/relevance.ts +24 -5
  834. package/src/replay/normalizers/chatgpt.ts +14 -4
  835. package/src/replay/normalizers/claude.ts +8 -3
  836. package/src/replay/normalizers/openclaw.ts +35 -12
  837. package/src/replay/normalizers/replay-normalizers.test.ts +65 -0
  838. package/src/replay/normalizers/shared.ts +4 -1
  839. package/src/replay/runner.ts +1 -1
  840. package/src/rerank.test.ts +41 -1
  841. package/src/rerank.ts +2 -2
  842. package/src/resolve-auth-token.test.ts +29 -0
  843. package/src/resolve-auth-token.ts +12 -7
  844. package/src/resolve-provider-secret.test.ts +78 -22
  845. package/src/resolve-provider-secret.ts +55 -223
  846. package/src/retrieval-agents.ts +51 -14
  847. package/src/review/index.test.ts +75 -1
  848. package/src/review/index.ts +88 -30
  849. package/src/routing/store.ts +36 -6
  850. package/src/runtime/env.test.ts +73 -0
  851. package/src/runtime/env.ts +7 -11
  852. package/src/schemas.ts +16 -1
  853. package/src/search/abort.ts +18 -0
  854. package/src/search/document-scanner.test.ts +80 -0
  855. package/src/search/document-scanner.ts +51 -9
  856. package/src/search/embed-helper.ts +19 -6
  857. package/src/search/factory.ts +9 -5
  858. package/src/search/lancedb-backend.ts +62 -22
  859. package/src/search/meilisearch-backend.ts +35 -12
  860. package/src/search/orama-backend.test.ts +27 -0
  861. package/src/search/orama-backend.ts +65 -15
  862. package/src/secure-store/cli-handlers.ts +70 -6
  863. package/src/secure-store/cli-renderer.ts +13 -7
  864. package/src/secure-store/secure-fs.ts +11 -5
  865. package/src/secure-store/secure-store.test.ts +70 -0
  866. package/src/semantic-consolidation.test.ts +45 -0
  867. package/src/semantic-consolidation.ts +3 -3
  868. package/src/session-integrity.test.ts +98 -0
  869. package/src/session-integrity.ts +51 -1
  870. package/src/session-observer-state.ts +108 -41
  871. package/src/shared-context/manager.ts +93 -15
  872. package/src/signal.test.ts +14 -0
  873. package/src/signal.ts +8 -1
  874. package/src/source-attribution.test.ts +8 -0
  875. package/src/source-attribution.ts +24 -2
  876. package/src/spaces/index.test.ts +93 -0
  877. package/src/spaces/index.ts +75 -9
  878. package/src/storage.ts +14 -1
  879. package/src/store-contract.test.ts +35 -0
  880. package/src/store-contract.ts +39 -5
  881. package/src/summarizer.ts +24 -18
  882. package/src/summary-snapshot.test.ts +77 -0
  883. package/src/surfaces/dreams.test.ts +73 -0
  884. package/src/surfaces/dreams.ts +53 -19
  885. package/src/sync/index.ts +42 -17
  886. package/src/taxonomy/taxonomy-loader.ts +43 -4
  887. package/src/temporal-supersession.test.ts +67 -0
  888. package/src/temporal-supersession.ts +8 -0
  889. package/src/tmt.test.ts +50 -0
  890. package/src/tmt.ts +35 -11
  891. package/src/tokens.test.ts +18 -0
  892. package/src/tokens.ts +7 -0
  893. package/src/training-export/converter.test.ts +55 -2
  894. package/src/training-export/converter.ts +36 -10
  895. package/src/training-export/registry.test.ts +17 -0
  896. package/src/training-export/registry.ts +19 -1
  897. package/src/transcript.ts +2 -2
  898. package/src/transfer/backup.ts +18 -7
  899. package/src/transfer/capsule-crypto.ts +105 -21
  900. package/src/transfer/capsule-encrypt.test.ts +106 -7
  901. package/src/transfer/capsule-export.ts +23 -14
  902. package/src/transfer/capsule-import.ts +11 -2
  903. package/src/transfer/exclusions.ts +7 -0
  904. package/src/transfer/export-sqlite.ts +14 -13
  905. package/src/transfer/fs-utils.ts +52 -1
  906. package/src/transfer/import-json.ts +12 -7
  907. package/src/transfer/import-md.ts +5 -5
  908. package/src/transfer/import-sqlite.ts +4 -5
  909. package/src/trust-zones.ts +1 -1
  910. package/src/types.ts +25 -0
  911. package/src/utility-telemetry.ts +1 -1
  912. package/src/utils/category-dir.test.ts +15 -0
  913. package/src/utils/category-dir.ts +3 -1
  914. package/src/work/boundary.ts +30 -18
  915. package/src/work/storage.ts +116 -38
  916. package/src/work-product-ledger.ts +1 -1
  917. package/dist/chunk-25MQ7IHJ.js.map +0 -1
  918. package/dist/chunk-2IWUMAES.js.map +0 -1
  919. package/dist/chunk-2NMMFZ5T.js.map +0 -1
  920. package/dist/chunk-2PRLKQAH.js.map +0 -1
  921. package/dist/chunk-326G7DJK.js.map +0 -1
  922. package/dist/chunk-3APJ5EVB.js.map +0 -1
  923. package/dist/chunk-3KW65B36.js.map +0 -1
  924. package/dist/chunk-3OWUCDKH.js.map +0 -1
  925. package/dist/chunk-3QKK7QOS.js.map +0 -1
  926. package/dist/chunk-3SLRNYNG.js.map +0 -1
  927. package/dist/chunk-3VAL7ZL2.js.map +0 -1
  928. package/dist/chunk-3Y4P7RXM.js.map +0 -1
  929. package/dist/chunk-43PJZYGL.js.map +0 -1
  930. package/dist/chunk-47VWKCAF.js.map +0 -1
  931. package/dist/chunk-4KGVTPGD.js.map +0 -1
  932. package/dist/chunk-5375UYTQ.js.map +0 -1
  933. package/dist/chunk-56K5QLHX.js.map +0 -1
  934. package/dist/chunk-575RMLWN.js.map +0 -1
  935. package/dist/chunk-5NPGSAVB.js.map +0 -1
  936. package/dist/chunk-5RGLBDQF.js.map +0 -1
  937. package/dist/chunk-65PG43EQ.js.map +0 -1
  938. package/dist/chunk-66DHUKLO.js.map +0 -1
  939. package/dist/chunk-6LVVDPJ4.js.map +0 -1
  940. package/dist/chunk-76FLAAUC.js.map +0 -1
  941. package/dist/chunk-77H5NU3M.js.map +0 -1
  942. package/dist/chunk-7MNMYOFP.js.map +0 -1
  943. package/dist/chunk-7OZ53EXP.js.map +0 -1
  944. package/dist/chunk-7SEAZFFB.js.map +0 -1
  945. package/dist/chunk-A6KTB5R6.js.map +0 -1
  946. package/dist/chunk-AGZQD76C.js.map +0 -1
  947. package/dist/chunk-APO3DCMU.js.map +0 -1
  948. package/dist/chunk-BVF3AGJP.js.map +0 -1
  949. package/dist/chunk-C5BCH4ZS.js.map +0 -1
  950. package/dist/chunk-C7VW7C3F.js.map +0 -1
  951. package/dist/chunk-CULXMQJH.js.map +0 -1
  952. package/dist/chunk-CYFQJMUV.js.map +0 -1
  953. package/dist/chunk-D654IBA6.js +0 -61
  954. package/dist/chunk-D654IBA6.js.map +0 -1
  955. package/dist/chunk-DGXUHMOV.js.map +0 -1
  956. package/dist/chunk-DINWEURR.js.map +0 -1
  957. package/dist/chunk-DK5LDEQM.js.map +0 -1
  958. package/dist/chunk-EABGC2TL.js.map +0 -1
  959. package/dist/chunk-EHRTFRWW.js.map +0 -1
  960. package/dist/chunk-EJI5XIBB.js.map +0 -1
  961. package/dist/chunk-FAAFWE4G.js.map +0 -1
  962. package/dist/chunk-FAJ7FZYM.js +0 -11
  963. package/dist/chunk-FAJ7FZYM.js.map +0 -1
  964. package/dist/chunk-FDU6HUUL.js +0 -147
  965. package/dist/chunk-FDU6HUUL.js.map +0 -1
  966. package/dist/chunk-FIT6DMX6.js.map +0 -1
  967. package/dist/chunk-FJ43PRLT.js.map +0 -1
  968. package/dist/chunk-FLTNHQK6.js +0 -262
  969. package/dist/chunk-FLTNHQK6.js.map +0 -1
  970. package/dist/chunk-GDFS42HT.js.map +0 -1
  971. package/dist/chunk-H3ME6L6D.js.map +0 -1
  972. package/dist/chunk-HXXBL2KD.js.map +0 -1
  973. package/dist/chunk-ICRIXAP2.js.map +0 -1
  974. package/dist/chunk-IQT3XTKW.js.map +0 -1
  975. package/dist/chunk-JR4ZC3G4.js.map +0 -1
  976. package/dist/chunk-K4FLSOR5.js.map +0 -1
  977. package/dist/chunk-KNKUID7G.js.map +0 -1
  978. package/dist/chunk-KOSORCJG.js.map +0 -1
  979. package/dist/chunk-KRBK4BQH.js.map +0 -1
  980. package/dist/chunk-LIRZNNUP.js.map +0 -1
  981. package/dist/chunk-LLQ2LLWF.js.map +0 -1
  982. package/dist/chunk-LPMVBPA3.js +0 -236
  983. package/dist/chunk-LPMVBPA3.js.map +0 -1
  984. package/dist/chunk-LT3NLYSI.js.map +0 -1
  985. package/dist/chunk-LUDTDZLK.js.map +0 -1
  986. package/dist/chunk-MG7NA5H3.js.map +0 -1
  987. package/dist/chunk-MJFNCJXV.js.map +0 -1
  988. package/dist/chunk-MSWG7JI6.js.map +0 -1
  989. package/dist/chunk-MXC3AP5I.js.map +0 -1
  990. package/dist/chunk-MXFBBHJU.js.map +0 -1
  991. package/dist/chunk-MZH6EHNR.js.map +0 -1
  992. package/dist/chunk-N2D6GXBM.js.map +0 -1
  993. package/dist/chunk-NBNN5GOB.js.map +0 -1
  994. package/dist/chunk-NMZY542O.js.map +0 -1
  995. package/dist/chunk-NZL6GGQE.js.map +0 -1
  996. package/dist/chunk-OC7KHOOX.js.map +0 -1
  997. package/dist/chunk-OZHRDTDX.js.map +0 -1
  998. package/dist/chunk-PZIAX57I.js.map +0 -1
  999. package/dist/chunk-Q7P4WJDP.js.map +0 -1
  1000. package/dist/chunk-QA2ZAPBU.js.map +0 -1
  1001. package/dist/chunk-QDZ2RLEC.js.map +0 -1
  1002. package/dist/chunk-QKZGQIPJ.js.map +0 -1
  1003. package/dist/chunk-QLLBRHAT.js.map +0 -1
  1004. package/dist/chunk-QR3C7BKQ.js.map +0 -1
  1005. package/dist/chunk-RHY3HH7P.js.map +0 -1
  1006. package/dist/chunk-RK2Y4XOM.js.map +0 -1
  1007. package/dist/chunk-RR2PKP3I.js +0 -63
  1008. package/dist/chunk-RR2PKP3I.js.map +0 -1
  1009. package/dist/chunk-RRF5UOBJ.js.map +0 -1
  1010. package/dist/chunk-RXDLTSWT.js.map +0 -1
  1011. package/dist/chunk-RYED3SPJ.js +0 -42
  1012. package/dist/chunk-RYED3SPJ.js.map +0 -1
  1013. package/dist/chunk-S7KDBTWT.js.map +0 -1
  1014. package/dist/chunk-TK4UEOSK.js.map +0 -1
  1015. package/dist/chunk-TMM4S4IJ.js.map +0 -1
  1016. package/dist/chunk-TMQLARTH.js.map +0 -1
  1017. package/dist/chunk-TPB3I2AC.js.map +0 -1
  1018. package/dist/chunk-TPMQ3G6Z.js.map +0 -1
  1019. package/dist/chunk-TZOLIGIG.js.map +0 -1
  1020. package/dist/chunk-U3WSW6PZ.js.map +0 -1
  1021. package/dist/chunk-U4SCL7B7.js.map +0 -1
  1022. package/dist/chunk-U66YHYC7.js +0 -31
  1023. package/dist/chunk-U66YHYC7.js.map +0 -1
  1024. package/dist/chunk-UL2NNBUL.js.map +0 -1
  1025. package/dist/chunk-UWVJF25J.js.map +0 -1
  1026. package/dist/chunk-VBJ7V5SK.js.map +0 -1
  1027. package/dist/chunk-W3LR522O.js.map +0 -1
  1028. package/dist/chunk-W4L6CZKA.js.map +0 -1
  1029. package/dist/chunk-W6AQJ2PY.js.map +0 -1
  1030. package/dist/chunk-WELDCG6C.js.map +0 -1
  1031. package/dist/chunk-WNARATI3.js.map +0 -1
  1032. package/dist/chunk-WPGJYVUH.js.map +0 -1
  1033. package/dist/chunk-WW3QQF4H.js.map +0 -1
  1034. package/dist/chunk-XIG5PDM7.js.map +0 -1
  1035. package/dist/chunk-XKECPATV.js.map +0 -1
  1036. package/dist/chunk-XKLD5OK4.js.map +0 -1
  1037. package/dist/chunk-XSZEP4SF.js.map +0 -1
  1038. package/dist/chunk-XVVIG67A.js.map +0 -1
  1039. package/dist/chunk-XYIK4LF6.js.map +0 -1
  1040. package/dist/chunk-YRMVARQP.js.map +0 -1
  1041. package/dist/chunk-ZPKBYX2F.js.map +0 -1
  1042. package/dist/chunk-ZTFCYYEZ.js.map +0 -1
  1043. package/dist/chunk-ZYVPLJ4T.js.map +0 -1
  1044. package/dist/path-MR5JPYOP.js +0 -9
  1045. package/dist/state-store-VZU2IA53.js +0 -16
  1046. package/dist/trace-C5ETWBEF.js.map +0 -1
  1047. /package/dist/{capsule-crypto-5CYAGVC5.js.map → bulk-import/index.js.map} +0 -0
  1048. /package/dist/{contradiction-review-ATP4S6IC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  1049. /package/dist/{capsule-merge-4MGKE7C5.js.map → capsule-merge-T2JRE46P.js.map} +0 -0
  1050. /package/dist/{chunk-SAZS2QZB.js.map → chunk-23UORJ4S.js.map} +0 -0
  1051. /package/dist/{chunk-PK7H5L6Y.js.map → chunk-2NM43EWN.js.map} +0 -0
  1052. /package/dist/{chunk-PYXS46O7.js.map → chunk-3BP57I6J.js.map} +0 -0
  1053. /package/dist/{chunk-FBYESMQ2.js.map → chunk-3C5RPJAX.js.map} +0 -0
  1054. /package/dist/{chunk-N53K2EXC.js.map → chunk-6VF75M3X.js.map} +0 -0
  1055. /package/dist/{chunk-6H2TESSP.js.map → chunk-765K3SAT.js.map} +0 -0
  1056. /package/dist/{chunk-EDTHC6UD.js.map → chunk-77NAFXUD.js.map} +0 -0
  1057. /package/dist/{chunk-MGKYQQYF.js.map → chunk-7Q3RCKAQ.js.map} +0 -0
  1058. /package/dist/{chunk-34DQE4KF.js.map → chunk-CO7ZO4TU.js.map} +0 -0
  1059. /package/dist/{chunk-ZKSK55RC.js.map → chunk-ETUPBUHB.js.map} +0 -0
  1060. /package/dist/{chunk-QRNI5JBH.js.map → chunk-EYIEWJNI.js.map} +0 -0
  1061. /package/dist/{chunk-C6QPK5GG.js.map → chunk-FZZ2QTJI.js.map} +0 -0
  1062. /package/dist/{chunk-3JXBXXM2.js.map → chunk-G4IAEX6D.js.map} +0 -0
  1063. /package/dist/{chunk-2WWLHTZY.js.map → chunk-IC4GELZE.js.map} +0 -0
  1064. /package/dist/{chunk-PCUKNJAZ.js.map → chunk-JKV57BTN.js.map} +0 -0
  1065. /package/dist/{chunk-2KI4QFHU.js.map → chunk-LMDRGRJ2.js.map} +0 -0
  1066. /package/dist/{chunk-MY6TPVXW.js.map → chunk-LMPHTYJC.js.map} +0 -0
  1067. /package/dist/{chunk-5HRY2WRF.js.map → chunk-LZ3VEOU5.js.map} +0 -0
  1068. /package/dist/{chunk-NGAVDO7E.js.map → chunk-OADWQ5CR.js.map} +0 -0
  1069. /package/dist/{chunk-DOM4GKSW.js.map → chunk-OZKVVUJB.js.map} +0 -0
  1070. /package/dist/{chunk-MT4HVDUZ.js.map → chunk-PM3QHTFT.js.map} +0 -0
  1071. /package/dist/{chunk-ZK7I7JYV.js.map → chunk-R3PS27B4.js.map} +0 -0
  1072. /package/dist/{chunk-SKE7JYKA.js.map → chunk-SFXKHM7P.js.map} +0 -0
  1073. /package/dist/{chunk-HMDCOMYU.js.map → chunk-SKGV326D.js.map} +0 -0
  1074. /package/dist/{chunk-5UM2VJ6D.js.map → chunk-UEY3VB6W.js.map} +0 -0
  1075. /package/dist/{chunk-GIF42EW3.js.map → chunk-UP6MOYCB.js.map} +0 -0
  1076. /package/dist/{chunk-MRILGULB.js.map → chunk-V2RCP53Q.js.map} +0 -0
  1077. /package/dist/{chunk-FSFEQI74.js.map → chunk-W7L6HXUC.js.map} +0 -0
  1078. /package/dist/{chunk-3IQ2TR4N.js.map → chunk-WLEB7WCG.js.map} +0 -0
  1079. /package/dist/{chunk-GL6I6MEQ.js.map → chunk-WSGF57U2.js.map} +0 -0
  1080. /package/dist/{chunk-JA3AK3PT.js.map → chunk-XNLXAWHX.js.map} +0 -0
  1081. /package/dist/{chunk-SIC6U3GZ.js.map → chunk-YHV3KRKS.js.map} +0 -0
  1082. /package/dist/{chunk-VLXA6PI2.js.map → chunk-YQMZ7IH2.js.map} +0 -0
  1083. /package/dist/{contradiction-scan-5A4IDZV5.js.map → contradiction-review-6V2LXXK6.js.map} +0 -0
  1084. /package/dist/{migrate-from-identity-anchor-G27MCD6A.js.map → contradiction-scan-GIRVC4C7.js.map} +0 -0
  1085. /package/dist/{first-start-migration-4MHQEOSD.js.map → first-start-migration-CKTCTCQI.js.map} +0 -0
  1086. /package/dist/{graph-edge-decay-5DI5GUNL.js.map → graph-edge-decay-MUP5J7CC.js.map} +0 -0
  1087. /package/dist/{path-MR5JPYOP.js.map → importers/index.js.map} +0 -0
  1088. /package/dist/{peers-HCVGHMAE.js.map → migrate-from-identity-anchor-EB4XI4Q2.js.map} +0 -0
  1089. /package/dist/{resolution-B7FNQSSP.js.map → path-X2K5XCHL.js.map} +0 -0
  1090. /package/dist/{state-store-VZU2IA53.js.map → peers/index.js.map} +0 -0
  1091. /package/dist/{tier-stats-62ZVDFKS.js.map → tier-stats-SKML2OSF.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tmt.ts"],"sourcesContent":["/**\n * Temporal Memory Tree (TiMem-inspired, v8.2)\n *\n * Builds a hierarchy of summarised memory nodes:\n * hour-HH.md → day.md → week-YYYY-WW.md → persona.md\n *\n * Stored under `<baseDir>/tmt/`.\n * All writes are fail-open: errors are caught and logged, never thrown.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { mkdir, readFile, writeFile, readdir } from \"node:fs/promises\";\n\nexport const TMT_DIR = \"tmt\";\n\nexport type TmtLevel = \"hour\" | \"day\" | \"week\" | \"persona\";\n\nexport interface TmtNodeFrontmatter {\n level: TmtLevel;\n periodStart: string; // ISO date-time\n periodEnd: string; // ISO date-time\n memoryCount: number;\n sourceIds: string[];\n builtAt: string; // ISO date-time\n}\n\nexport interface TmtConfig {\n temporalMemoryTreeEnabled: boolean;\n tmtHourlyMinMemories: number; // default 3\n tmtSummaryMaxTokens: number; // default 300\n}\n\nexport interface MemoryEntry {\n path: string;\n id: string;\n created: string; // ISO date-time\n content: string;\n}\n\nconst TMT_LEVEL_INPUT_LIMITS: Record<TmtLevel, { totalChars: number; itemChars: number; maxItems: number }> = {\n hour: { totalChars: 48_000, itemChars: 2_000, maxItems: 64 },\n day: { totalChars: 64_000, itemChars: 1_800, maxItems: 96 },\n week: { totalChars: 72_000, itemChars: 1_600, maxItems: 120 },\n persona: { totalChars: 80_000, itemChars: 1_600, maxItems: 120 },\n};\n\nexport function capTmtSummaryInputs(inputs: string[], level: TmtLevel): string[] {\n const { totalChars, itemChars, maxItems } = TMT_LEVEL_INPUT_LIMITS[level];\n if (inputs.length === 0) return [];\n\n const capped: string[] = [];\n let usedChars = 0;\n\n for (const raw of inputs) {\n if (capped.length >= maxItems || usedChars >= totalChars) break;\n const trimmed = raw.trim();\n if (!trimmed) continue;\n\n const next = trimmed.length > itemChars ? `${trimmed.slice(0, itemChars - 1)}…` : trimmed;\n const separator = capped.length === 0 ? 0 : 2;\n if (usedChars + separator + next.length > totalChars) break;\n capped.push(next);\n usedChars += separator + next.length;\n }\n\n if (capped.length > 0) return capped;\n const fallback = inputs[0]?.trim() ?? \"\";\n if (!fallback) return [];\n return [fallback.length > itemChars ? `${fallback.slice(0, itemChars - 1)}…` : fallback];\n}\n\n// ── Path helpers ────────────────────────────────────────────────────────────\n\nexport function tmtDir(baseDir: string): string {\n return path.join(baseDir, TMT_DIR);\n}\n\nexport function hourNodePath(baseDir: string, date: string, hour: string): string {\n return path.join(tmtDir(baseDir), date, `hour-${hour}.md`);\n}\n\nexport function dayNodePath(baseDir: string, date: string): string {\n return path.join(tmtDir(baseDir), date, \"day.md\");\n}\n\nexport function weekNodePath(baseDir: string, weekKey: string): string {\n return path.join(tmtDir(baseDir), `week-${weekKey}.md`);\n}\n\nexport function personaNodePath(baseDir: string): string {\n return path.join(tmtDir(baseDir), \"persona.md\");\n}\n\n// ── Frontmatter helpers ─────────────────────────────────────────────────────\n\nexport function serialiseTmtNode(fm: TmtNodeFrontmatter, summary: string): string {\n const yaml = [\n \"---\",\n `level: ${fm.level}`,\n `periodStart: \"${fm.periodStart}\"`,\n `periodEnd: \"${fm.periodEnd}\"`,\n `memoryCount: ${fm.memoryCount}`,\n `sourceIds: [${fm.sourceIds.map((id) => `\"${id}\"`).join(\", \")}]`,\n `builtAt: \"${fm.builtAt}\"`,\n \"---\",\n ].join(\"\\n\");\n return `${yaml}\\n\\n${summary}\\n`;\n}\n\nexport function parseIsoDate(iso: string): string {\n return parseTmtInstant(iso)?.date ?? \"\";\n}\n\nexport function parseIsoHour(iso: string): string {\n return parseTmtInstant(iso)?.hour ?? \"\";\n}\n\nfunction parseTmtInstant(iso: string): { date: string; hour: string; dateValue: Date } | null {\n if (typeof iso !== \"string\") return null;\n const value = iso.trim();\n if (\n !/^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$/.test(value)\n ) {\n return null;\n }\n const dateValue = new Date(value);\n if (!Number.isFinite(dateValue.getTime())) return null;\n const utc = dateValue.toISOString();\n return {\n date: utc.slice(0, 10),\n hour: utc.slice(11, 13),\n dateValue,\n };\n}\n\n// Returns ISO week key: YYYY-WW\nexport function isoWeekKey(date: Date): string {\n const d = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()));\n const dayNum = d.getUTCDay() || 7;\n d.setUTCDate(d.getUTCDate() + 4 - dayNum);\n const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));\n const weekNo = Math.ceil((((d.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);\n return `${d.getUTCFullYear()}-${String(weekNo).padStart(2, \"0\")}`;\n}\n\n// ── TmtBuilder ──────────────────────────────────────────────────────────────\n\nexport type SummarizeFn = (memories: string[], level: TmtLevel) => Promise<string>;\n\nexport class TmtBuilder {\n constructor(\n private readonly baseDir: string,\n private readonly cfg: TmtConfig,\n ) {}\n\n /**\n * Called after each consolidation pass.\n * Groups memories by hour, builds any missing hour nodes,\n * then rolls up to day → week → persona if needed.\n * All errors are caught and logged; never throws.\n */\n async maybeRebuildNodes(\n memories: MemoryEntry[],\n summarize: SummarizeFn,\n ): Promise<void> {\n if (!this.cfg.temporalMemoryTreeEnabled || memories.length === 0) return;\n try {\n await mkdir(tmtDir(this.baseDir), { recursive: true });\n await this.buildHourNodes(memories, summarize);\n await this.buildDayNodes(memories, summarize);\n await this.buildWeekNodes(memories, summarize);\n await this.buildPersonaNode(summarize);\n } catch (err) {\n console.warn(`[engram] tmt: rebuild failed (ignored): ${err}`);\n }\n }\n\n private async buildHourNodes(memories: MemoryEntry[], summarize: SummarizeFn): Promise<void> {\n // Group by date+hour\n const byHour = new Map<string, MemoryEntry[]>();\n for (const m of memories) {\n const instant = parseTmtInstant(m.created);\n if (!instant) continue;\n const { date, hour } = instant;\n const key = `${date}::${hour}`;\n if (!byHour.has(key)) byHour.set(key, []);\n byHour.get(key)!.push(m);\n }\n\n for (const [key, entries] of byHour) {\n if (entries.length < this.cfg.tmtHourlyMinMemories) continue;\n const [date, hour] = key.split(\"::\");\n const nodePath = hourNodePath(this.baseDir, date, hour);\n\n // Rebuild if missing or if more memories arrived for this hour\n let shouldBuild = !fs.existsSync(nodePath);\n if (!shouldBuild) {\n try {\n const existing = await readFile(nodePath, \"utf8\");\n const countMatch = existing.match(/memoryCount: (\\d+)/);\n if (!countMatch || parseInt(countMatch[1], 10) !== entries.length) {\n shouldBuild = true; // active memory set changed — rebuild\n }\n } catch { shouldBuild = true; }\n }\n if (!shouldBuild) continue;\n\n let summary: string;\n try {\n summary = await summarize(capTmtSummaryInputs(entries.map((e) => e.content), \"hour\"), \"hour\");\n } catch (err) {\n console.warn(`[engram] tmt: hour node summarize failed for ${key} (ignored): ${err}`);\n continue;\n }\n const sortedCreated = entries.map((e) => e.created).sort();\n const fm: TmtNodeFrontmatter = {\n level: \"hour\",\n periodStart: sortedCreated[0],\n periodEnd: sortedCreated[sortedCreated.length - 1],\n memoryCount: entries.length,\n sourceIds: entries.map((e) => e.id),\n builtAt: new Date().toISOString(),\n };\n await mkdir(path.dirname(nodePath), { recursive: true });\n await writeFile(nodePath, serialiseTmtNode(fm, summary), \"utf8\");\n }\n }\n\n private async buildDayNodes(memories: MemoryEntry[], summarize: SummarizeFn): Promise<void> {\n // Group by date\n const byDate = new Map<string, MemoryEntry[]>();\n for (const m of memories) {\n const instant = parseTmtInstant(m.created);\n if (!instant) continue;\n const { date } = instant;\n if (!byDate.has(date)) byDate.set(date, []);\n byDate.get(date)!.push(m);\n }\n\n for (const [date, entries] of byDate) {\n const nodePath = dayNodePath(this.baseDir, date);\n // Rebuild day node if it doesn't exist or if memory count changed\n let shouldBuild = !fs.existsSync(nodePath);\n if (!shouldBuild) {\n try {\n const existing = await readFile(nodePath, \"utf8\");\n const countMatch = existing.match(/memoryCount: (\\d+)/);\n if (!countMatch || parseInt(countMatch[1], 10) !== entries.length) {\n shouldBuild = true; // active memory set changed — rebuild\n }\n } catch { shouldBuild = true; }\n }\n if (!shouldBuild) continue;\n\n // Per-hour: use hour node summary if available, raw content otherwise\n const inputs: string[] = [];\n const hourToEntries = new Map<string, MemoryEntry[]>();\n for (const e of entries) {\n const h = parseIsoHour(e.created);\n if (!h) continue;\n if (!hourToEntries.has(h)) hourToEntries.set(h, []);\n hourToEntries.get(h)!.push(e);\n }\n for (const [h, hourEntries] of hourToEntries) {\n const hPath = hourNodePath(this.baseDir, date, h);\n if (fs.existsSync(hPath)) {\n try {\n const hContent = await readFile(hPath, \"utf8\");\n const hSummary = hContent.replace(/^---[\\s\\S]*?---\\n\\n?/, \"\").trim();\n if (hSummary) { inputs.push(hSummary); continue; }\n } catch { /* fall through to raw content */ }\n }\n inputs.push(...hourEntries.map((e) => e.content));\n }\n if (inputs.length === 0) inputs.push(...entries.map((e) => e.content));\n\n let summary: string;\n try {\n summary = await summarize(capTmtSummaryInputs(inputs, \"day\"), \"day\");\n } catch (err) {\n console.warn(`[engram] tmt: day node summarize failed for ${date} (ignored): ${err}`);\n continue;\n }\n const sortedCreated = entries.map((e) => e.created).sort();\n const fm: TmtNodeFrontmatter = {\n level: \"day\",\n periodStart: sortedCreated[0],\n periodEnd: sortedCreated[sortedCreated.length - 1],\n memoryCount: entries.length,\n sourceIds: entries.map((e) => e.id),\n builtAt: new Date().toISOString(),\n };\n await mkdir(path.dirname(nodePath), { recursive: true });\n await writeFile(nodePath, serialiseTmtNode(fm, summary), \"utf8\");\n }\n }\n\n /**\n * Build or update week-level nodes from the day nodes already on disk.\n * Groups memories by ISO week; for each week that has a day node but no\n * (or stale) week node, reads day node summaries and builds a week node.\n * Fail-open: errors per week are caught and skipped.\n */\n private async buildWeekNodes(memories: MemoryEntry[], summarize: SummarizeFn): Promise<void> {\n // Determine which ISO weeks appear in this memory batch\n const weekToEntries = new Map<string, MemoryEntry[]>();\n for (const m of memories) {\n const instant = parseTmtInstant(m.created);\n if (!instant) continue;\n const week = isoWeekKey(instant.dateValue);\n if (!weekToEntries.has(week)) weekToEntries.set(week, []);\n weekToEntries.get(week)!.push(m);\n }\n\n for (const [week, entries] of weekToEntries) {\n const nodePath = weekNodePath(this.baseDir, week);\n\n // Rebuild if missing or if memory count grew\n let shouldBuild = !fs.existsSync(nodePath);\n if (!shouldBuild) {\n try {\n const existing = await readFile(nodePath, \"utf8\");\n const countMatch = existing.match(/memoryCount: (\\d+)/);\n if (!countMatch || parseInt(countMatch[1], 10) !== entries.length) {\n shouldBuild = true;\n }\n } catch { shouldBuild = true; }\n }\n if (!shouldBuild) continue;\n\n try {\n // Collect day-node summaries for days that fall in this week\n const dir = tmtDir(this.baseDir);\n let allDirs: string[] = [];\n try { allDirs = await readdir(dir); } catch { continue; }\n const dateDirs = allDirs.filter((d) => /^\\d{4}-\\d{2}-\\d{2}$/.test(d));\n\n const daySummaries: string[] = [];\n for (const dateDir of dateDirs) {\n const w = isoWeekKey(new Date(dateDir + \"T00:00:00Z\"));\n if (w !== week) continue;\n const dayPath = dayNodePath(this.baseDir, dateDir);\n if (fs.existsSync(dayPath)) {\n try {\n const content = await readFile(dayPath, \"utf8\");\n const summary = content.replace(/^---[\\s\\S]*?---\\n\\n?/, \"\").trim();\n if (summary) daySummaries.push(summary);\n } catch { /* skip */ }\n }\n }\n\n // Fall back to raw memory content if no day summaries available\n const inputs = daySummaries.length > 0 ? daySummaries : entries.map((e) => e.content);\n const summary = await summarize(capTmtSummaryInputs(inputs, \"week\"), \"week\");\n const sortedCreated = entries.map((e) => e.created).sort();\n const fm: TmtNodeFrontmatter = {\n level: \"week\",\n periodStart: sortedCreated[0],\n periodEnd: sortedCreated[sortedCreated.length - 1],\n memoryCount: entries.length,\n sourceIds: entries.map((e) => e.id),\n builtAt: new Date().toISOString(),\n };\n await mkdir(path.dirname(nodePath), { recursive: true });\n await writeFile(nodePath, serialiseTmtNode(fm, summary), \"utf8\");\n } catch (err) {\n console.warn(`[engram] tmt: week node build failed for ${week} (ignored): ${err}`);\n }\n }\n }\n\n /**\n * Build or update the persona node from the most recent week-level summaries.\n * Reads up to 4 recent week nodes and synthesizes a persona-level narrative.\n * Fail-open: skips silently if no week nodes exist or summarize fails.\n */\n private async buildPersonaNode(summarize: SummarizeFn): Promise<void> {\n try {\n const dir = tmtDir(this.baseDir);\n let allFiles: string[] = [];\n try { allFiles = await readdir(dir); } catch { return; }\n\n const weekFiles = allFiles\n .filter((f) => /^week-\\d{4}-\\d{2}\\.md$/.test(f))\n .sort()\n .reverse()\n .slice(0, 4); // Use at most 4 recent weeks\n\n if (weekFiles.length === 0) return;\n\n const weekSummaries: string[] = [];\n let totalCount = 0;\n let earliestStart: string | undefined;\n let latestEnd: string | undefined;\n for (const f of weekFiles) {\n try {\n const content = await readFile(path.join(dir, f), \"utf8\");\n const summary = content.replace(/^---[\\s\\S]*?---\\n\\n?/, \"\").trim();\n if (summary) weekSummaries.push(summary);\n const countMatch = content.match(/memoryCount: (\\d+)/);\n if (countMatch) totalCount += parseInt(countMatch[1], 10);\n const startMatch = content.match(/periodStart: \"([^\"]+)\"/);\n const endMatch = content.match(/periodEnd: \"([^\"]+)\"/);\n if (startMatch) {\n if (!earliestStart || startMatch[1] < earliestStart) earliestStart = startMatch[1];\n }\n if (endMatch) {\n if (!latestEnd || endMatch[1] > latestEnd) latestEnd = endMatch[1];\n }\n } catch { /* skip */ }\n }\n\n if (weekSummaries.length === 0) return;\n\n const nodePath = personaNodePath(this.baseDir);\n\n // Skip rebuild if persona node already reflects current week data\n let shouldBuild = !fs.existsSync(nodePath);\n if (!shouldBuild) {\n try {\n const existing = await readFile(nodePath, \"utf8\");\n const countMatch = existing.match(/memoryCount: (\\d+)/);\n if (!countMatch || parseInt(countMatch[1], 10) !== totalCount) {\n shouldBuild = true;\n }\n } catch { shouldBuild = true; }\n }\n if (!shouldBuild) return;\n\n const summary = await summarize(capTmtSummaryInputs(weekSummaries, \"persona\"), \"persona\");\n\n const now = new Date().toISOString();\n const fm: TmtNodeFrontmatter = {\n level: \"persona\",\n periodStart: earliestStart ?? now,\n periodEnd: latestEnd ?? now,\n memoryCount: totalCount,\n sourceIds: [],\n builtAt: now,\n };\n await writeFile(nodePath, serialiseTmtNode(fm, summary), \"utf8\");\n } catch (err) {\n console.warn(`[engram] tmt: persona node build failed (ignored): ${err}`);\n }\n }\n\n /**\n * Return the summary text of the most relevant TMT node for a given prompt.\n * Preference: day node for today > most recent day node.\n * Returns null if no nodes exist or feature is disabled.\n */\n async getMostRelevantNode(): Promise<{ level: TmtLevel; summary: string } | null> {\n if (!this.cfg.temporalMemoryTreeEnabled) return null;\n try {\n const dir = tmtDir(this.baseDir);\n if (!fs.existsSync(dir)) return null;\n\n // Try today's day node first\n const today = new Date().toISOString().slice(0, 10);\n const todayDay = dayNodePath(this.baseDir, today);\n if (fs.existsSync(todayDay)) {\n const content = await readFile(todayDay, \"utf8\");\n const summary = content.replace(/^---[\\s\\S]*?---\\n\\n?/, \"\").trim();\n if (summary) return { level: \"day\", summary };\n }\n\n // Find most recent date directory\n let entries: string[] = [];\n try { entries = await readdir(dir); } catch { return null; }\n const dateDirs = entries.filter((e) => /^\\d{4}-\\d{2}-\\d{2}$/.test(e)).sort().reverse();\n\n for (const dateDir of dateDirs) {\n const dayPath = dayNodePath(this.baseDir, dateDir);\n if (fs.existsSync(dayPath)) {\n const content = await readFile(dayPath, \"utf8\");\n const summary = content.replace(/^---[\\s\\S]*?---\\n\\n?/, \"\").trim();\n if (summary) return { level: \"day\", summary };\n }\n }\n return null;\n } catch {\n return null;\n }\n }\n}\n"],"mappings":"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","names":["summary"]}
@@ -1,31 +1,29 @@
1
1
  import {
2
+ namespaceCollectionName
3
+ } from "./chunk-7MV5CWTE.js";
4
+ import {
5
+ ALL_CATEGORY_DIRS,
2
6
  NamespaceStorageRouter
3
- } from "./chunk-RR2PKP3I.js";
7
+ } from "./chunk-CHBI22MI.js";
4
8
  import {
5
- namespaceCollectionName
6
- } from "./chunk-575RMLWN.js";
9
+ namespaceIdentityFromToken,
10
+ namespaceIdentityToken
11
+ } from "./chunk-ZFXCQPNO.js";
7
12
  import {
8
13
  isSafeRouteNamespace
9
14
  } from "./chunk-U3PN77QT.js";
10
15
 
11
16
  // src/namespaces/migrate.ts
12
17
  import path from "path";
13
- import { access, mkdir, readdir, rename } from "fs/promises";
18
+ import { access, lstat, mkdir, readdir, realpath, rename, rmdir } from "fs/promises";
14
19
  var LEGACY_NAMESPACE_CHILDREN = [
15
- "facts",
16
- "corrections",
20
+ ...ALL_CATEGORY_DIRS,
17
21
  "entities",
18
- "questions",
19
22
  "artifacts",
20
23
  "identity",
21
24
  "state",
22
25
  "config",
23
26
  "summaries",
24
- "procedures",
25
- // Issue #564 PR 3: reasoning_trace memories live in their own subtree.
26
- // Must be included here so namespace migration moves existing traces
27
- // into the target namespace root alongside other memory data.
28
- "reasoning-traces",
29
27
  "profile.md"
30
28
  ];
31
29
  async function exists(p) {
@@ -48,12 +46,15 @@ async function discoverConfiguredNamespaces(config) {
48
46
  config.sharedNamespace,
49
47
  ...config.namespacePolicies.map((policy) => policy.name)
50
48
  ]);
49
+ const configuredNamespaces = new Set(discovered);
51
50
  const namespacesDir = path.join(config.memoryDir, "namespaces");
52
51
  try {
53
52
  const entries = await readdir(namespacesDir, { withFileTypes: true });
54
53
  for (const entry of entries) {
55
- if (entry.isDirectory() && isSafeRouteNamespace(entry.name)) {
56
- discovered.add(entry.name);
54
+ if (!entry.isDirectory()) continue;
55
+ const namespace = configuredNamespaces.has(entry.name) ? entry.name : namespaceIdentityFromToken(entry.name) ?? entry.name;
56
+ if (isSafeRouteNamespace(namespace)) {
57
+ discovered.add(namespace);
57
58
  }
58
59
  }
59
60
  } catch {
@@ -104,8 +105,13 @@ async function runNamespaceMigration(options) {
104
105
  if (!isSafeRouteNamespace(targetNamespace)) {
105
106
  throw new Error(`Invalid namespace: ${options.to}`);
106
107
  }
107
- const targetRoot = path.join(options.config.memoryDir, "namespaces", targetNamespace);
108
+ const targetRoot = path.join(
109
+ options.config.memoryDir,
110
+ "namespaces",
111
+ namespaceIdentityToken(targetNamespace)
112
+ );
108
113
  const moved = [];
114
+ const renamePath = options.renameFn ?? rename;
109
115
  for (const child of LEGACY_NAMESPACE_CHILDREN) {
110
116
  const from = path.join(options.config.memoryDir, child);
111
117
  if (!await exists(from)) continue;
@@ -113,12 +119,42 @@ async function runNamespaceMigration(options) {
113
119
  if (await exists(to)) {
114
120
  throw new Error(`Target already contains ${child}: ${to}`);
115
121
  }
122
+ const sourceStat = await lstat(from);
123
+ if (sourceStat.isSymbolicLink()) {
124
+ throw new Error(`Refusing to migrate symlinked legacy path: ${from}`);
125
+ }
116
126
  moved.push({ from, to });
117
127
  }
118
128
  if (!options.dryRun && moved.length > 0) {
129
+ await assertSafeNamespaceTarget(options.config.memoryDir, targetRoot);
119
130
  await mkdir(targetRoot, { recursive: true });
120
- for (const move of moved) {
121
- await rename(move.from, move.to);
131
+ await assertSafeNamespaceTarget(options.config.memoryDir, targetRoot);
132
+ const completed = [];
133
+ try {
134
+ for (const move of moved) {
135
+ await renamePath(move.from, move.to);
136
+ completed.push(move);
137
+ }
138
+ } catch (cause) {
139
+ const rollbackErrors = [];
140
+ for (const move of completed.reverse()) {
141
+ try {
142
+ if (!await exists(move.from) && await exists(move.to)) {
143
+ await rename(move.to, move.from);
144
+ }
145
+ } catch (rollbackCause) {
146
+ rollbackErrors.push(rollbackCause instanceof Error ? rollbackCause.message : String(rollbackCause));
147
+ }
148
+ }
149
+ try {
150
+ await rmdir(targetRoot);
151
+ } catch {
152
+ }
153
+ const message = cause instanceof Error ? cause.message : String(cause);
154
+ throw new Error(
155
+ `Namespace migration failed and was rolled back: ${message}` + (rollbackErrors.length > 0 ? `; rollback errors: ${rollbackErrors.join("; ")}` : ""),
156
+ { cause }
157
+ );
122
158
  }
123
159
  }
124
160
  return {
@@ -132,10 +168,38 @@ async function runNamespaceMigration(options) {
132
168
  })
133
169
  };
134
170
  }
171
+ async function assertSafeNamespaceTarget(memoryDir, targetRoot) {
172
+ const memoryReal = await realpath(memoryDir);
173
+ const namespacesDir = path.join(memoryDir, "namespaces");
174
+ if (await exists(namespacesDir)) {
175
+ const namespacesStat = await lstat(namespacesDir);
176
+ if (namespacesStat.isSymbolicLink()) {
177
+ throw new Error(`Refusing to migrate through symlinked namespaces directory: ${namespacesDir}`);
178
+ }
179
+ const namespacesReal = await realpath(namespacesDir);
180
+ if (!isPathInside(memoryReal, namespacesReal)) {
181
+ throw new Error(`Refusing to migrate through namespaces directory outside memoryDir: ${namespacesDir}`);
182
+ }
183
+ }
184
+ if (await exists(targetRoot)) {
185
+ const targetStat = await lstat(targetRoot);
186
+ if (targetStat.isSymbolicLink()) {
187
+ throw new Error(`Refusing to migrate into symlinked namespace root: ${targetRoot}`);
188
+ }
189
+ const targetReal = await realpath(targetRoot);
190
+ if (!isPathInside(memoryReal, targetReal)) {
191
+ throw new Error(`Refusing to migrate into namespace root outside memoryDir: ${targetRoot}`);
192
+ }
193
+ }
194
+ }
195
+ function isPathInside(root, child) {
196
+ const relative = path.relative(root, child);
197
+ return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
198
+ }
135
199
 
136
200
  export {
137
201
  listNamespaces,
138
202
  verifyNamespaces,
139
203
  runNamespaceMigration
140
204
  };
141
- //# sourceMappingURL=chunk-77H5NU3M.js.map
205
+ //# sourceMappingURL=chunk-EDBEWFJO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/namespaces/migrate.ts"],"sourcesContent":["import path from \"node:path\";\nimport { access, lstat, mkdir, readdir, realpath, rename, rmdir } from \"node:fs/promises\";\nimport type { PluginConfig } from \"../types.js\";\nimport { NamespaceStorageRouter } from \"./storage.js\";\nimport { namespaceCollectionName } from \"./search.js\";\nimport { isSafeRouteNamespace } from \"../routing/engine.js\";\nimport { namespaceIdentityFromToken, namespaceIdentityToken } from \"./identity.js\";\nimport { ALL_CATEGORY_DIRS } from \"../utils/category-dir.js\";\n\nconst LEGACY_NAMESPACE_CHILDREN = [\n ...ALL_CATEGORY_DIRS,\n \"entities\",\n \"artifacts\",\n \"identity\",\n \"state\",\n \"config\",\n \"summaries\",\n \"profile.md\",\n] as const;\n\nexport interface NamespaceInventoryEntry {\n namespace: string;\n rootDir: string;\n exists: boolean;\n usesLegacyRoot: boolean;\n hasMemoryData: boolean;\n collection: string;\n}\n\nexport interface NamespaceVerifyReport {\n ok: boolean;\n problems: string[];\n namespaces: NamespaceInventoryEntry[];\n}\n\nexport interface NamespaceMigrationMove {\n from: string;\n to: string;\n}\n\nexport interface NamespaceMigrationReport {\n dryRun: boolean;\n fromRoot: string;\n targetRoot: string;\n moved: NamespaceMigrationMove[];\n collection: string;\n}\n\nasync function exists(p: string): Promise<boolean> {\n try {\n await access(p);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function hasAnyLegacyData(rootDir: string): Promise<boolean> {\n for (const child of LEGACY_NAMESPACE_CHILDREN) {\n if (await exists(path.join(rootDir, child))) return true;\n }\n return false;\n}\n\nasync function discoverConfiguredNamespaces(\n config: PluginConfig,\n): Promise<string[]> {\n const discovered = new Set<string>([\n config.defaultNamespace,\n config.sharedNamespace,\n ...config.namespacePolicies.map((policy) => policy.name),\n ]);\n const configuredNamespaces = new Set(discovered);\n\n const namespacesDir = path.join(config.memoryDir, \"namespaces\");\n try {\n const entries = await readdir(namespacesDir, { withFileTypes: true });\n for (const entry of entries) {\n if (!entry.isDirectory()) continue;\n const namespace = configuredNamespaces.has(entry.name)\n ? entry.name\n : namespaceIdentityFromToken(entry.name) ?? entry.name;\n if (isSafeRouteNamespace(namespace)) {\n discovered.add(namespace);\n }\n }\n } catch {\n // No namespace directory yet.\n }\n\n return [...discovered];\n}\n\nexport async function listNamespaces(options: {\n config: PluginConfig;\n storageRouter?: NamespaceStorageRouter;\n}): Promise<NamespaceInventoryEntry[]> {\n const storageRouter = options.storageRouter ?? new NamespaceStorageRouter(options.config);\n const namespaces = await discoverConfiguredNamespaces(options.config);\n const items = await Promise.all(\n namespaces.map(async (namespace) => {\n const storage = await storageRouter.storageFor(namespace);\n const usesLegacyRoot =\n namespace === options.config.defaultNamespace &&\n storage.dir === options.config.memoryDir;\n return {\n namespace,\n rootDir: storage.dir,\n exists: await exists(storage.dir),\n usesLegacyRoot,\n hasMemoryData: await hasAnyLegacyData(storage.dir),\n collection: namespaceCollectionName(options.config.qmdCollection, namespace, {\n defaultNamespace: options.config.defaultNamespace,\n useLegacyDefaultCollection: usesLegacyRoot,\n }),\n } satisfies NamespaceInventoryEntry;\n }),\n );\n\n return items.sort((a, b) => a.namespace.localeCompare(b.namespace));\n}\n\nexport async function verifyNamespaces(options: {\n config: PluginConfig;\n storageRouter?: NamespaceStorageRouter;\n}): Promise<NamespaceVerifyReport> {\n const namespaces = await listNamespaces(options);\n const problems: string[] = [];\n\n for (const entry of namespaces) {\n if (entry.exists && !entry.hasMemoryData) {\n problems.push(`${entry.namespace}: root exists but contains no Engram data`);\n }\n }\n\n return {\n ok: problems.length === 0,\n problems,\n namespaces,\n };\n}\n\nexport async function runNamespaceMigration(options: {\n config: PluginConfig;\n to: string;\n dryRun?: boolean;\n renameFn?: typeof rename;\n}): Promise<NamespaceMigrationReport> {\n if (!options.config.namespacesEnabled) {\n throw new Error(\"Namespaces are disabled.\");\n }\n\n const targetNamespace = options.to.trim();\n if (!isSafeRouteNamespace(targetNamespace)) {\n throw new Error(`Invalid namespace: ${options.to}`);\n }\n\n const targetRoot = path.join(\n options.config.memoryDir,\n \"namespaces\",\n namespaceIdentityToken(targetNamespace),\n );\n const moved: NamespaceMigrationMove[] = [];\n const renamePath = options.renameFn ?? rename;\n\n for (const child of LEGACY_NAMESPACE_CHILDREN) {\n const from = path.join(options.config.memoryDir, child);\n if (!(await exists(from))) continue;\n const to = path.join(targetRoot, child);\n if (await exists(to)) {\n throw new Error(`Target already contains ${child}: ${to}`);\n }\n const sourceStat = await lstat(from);\n if (sourceStat.isSymbolicLink()) {\n throw new Error(`Refusing to migrate symlinked legacy path: ${from}`);\n }\n moved.push({ from, to });\n }\n\n if (!options.dryRun && moved.length > 0) {\n await assertSafeNamespaceTarget(options.config.memoryDir, targetRoot);\n await mkdir(targetRoot, { recursive: true });\n await assertSafeNamespaceTarget(options.config.memoryDir, targetRoot);\n const completed: NamespaceMigrationMove[] = [];\n try {\n for (const move of moved) {\n await renamePath(move.from, move.to);\n completed.push(move);\n }\n } catch (cause) {\n const rollbackErrors: string[] = [];\n for (const move of completed.reverse()) {\n try {\n if (!(await exists(move.from)) && (await exists(move.to))) {\n await rename(move.to, move.from);\n }\n } catch (rollbackCause) {\n rollbackErrors.push(rollbackCause instanceof Error ? rollbackCause.message : String(rollbackCause));\n }\n }\n try {\n await rmdir(targetRoot);\n } catch {\n // Target may predate migration or still contain unrelated files.\n }\n const message = cause instanceof Error ? cause.message : String(cause);\n throw new Error(\n `Namespace migration failed and was rolled back: ${message}` +\n (rollbackErrors.length > 0 ? `; rollback errors: ${rollbackErrors.join(\"; \")}` : \"\"),\n { cause },\n );\n }\n }\n\n return {\n dryRun: options.dryRun === true,\n fromRoot: options.config.memoryDir,\n targetRoot,\n moved,\n collection: namespaceCollectionName(options.config.qmdCollection, targetNamespace, {\n defaultNamespace: options.config.defaultNamespace,\n useLegacyDefaultCollection: false,\n }),\n };\n}\n\nasync function assertSafeNamespaceTarget(memoryDir: string, targetRoot: string): Promise<void> {\n const memoryReal = await realpath(memoryDir);\n const namespacesDir = path.join(memoryDir, \"namespaces\");\n if (await exists(namespacesDir)) {\n const namespacesStat = await lstat(namespacesDir);\n if (namespacesStat.isSymbolicLink()) {\n throw new Error(`Refusing to migrate through symlinked namespaces directory: ${namespacesDir}`);\n }\n const namespacesReal = await realpath(namespacesDir);\n if (!isPathInside(memoryReal, namespacesReal)) {\n throw new Error(`Refusing to migrate through namespaces directory outside memoryDir: ${namespacesDir}`);\n }\n }\n if (await exists(targetRoot)) {\n const targetStat = await lstat(targetRoot);\n if (targetStat.isSymbolicLink()) {\n throw new Error(`Refusing to migrate into symlinked namespace root: ${targetRoot}`);\n }\n const targetReal = await realpath(targetRoot);\n if (!isPathInside(memoryReal, targetReal)) {\n throw new Error(`Refusing to migrate into namespace root outside memoryDir: ${targetRoot}`);\n }\n }\n}\n\nfunction isPathInside(root: string, child: string): boolean {\n const relative = path.relative(root, child);\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative));\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,308 @@
1
+ import {
2
+ launchProcessSync
3
+ } from "./chunk-NNVTUXEB.js";
4
+ import {
5
+ expandTildePath
6
+ } from "./chunk-EYIEWJNI.js";
7
+
8
+ // src/coding/git-context.ts
9
+ import path from "path";
10
+ var DEFAULT_GIT_TIMEOUT_MS = 2e3;
11
+ function defaultGitInvoker() {
12
+ return (cwd, args) => {
13
+ const result = launchProcessSync("git", args, {
14
+ cwd,
15
+ encoding: "utf-8",
16
+ timeout: DEFAULT_GIT_TIMEOUT_MS,
17
+ shell: false
18
+ });
19
+ if (result.error) {
20
+ return { stdout: "", exitCode: 127 };
21
+ }
22
+ return {
23
+ stdout: typeof result.stdout === "string" ? result.stdout : "",
24
+ exitCode: typeof result.status === "number" ? result.status : 1
25
+ };
26
+ };
27
+ }
28
+ function stableHash(input) {
29
+ let hash = 2166136261;
30
+ for (let i = 0; i < input.length; i++) {
31
+ hash ^= input.charCodeAt(i);
32
+ hash = Math.imul(hash, 16777619) >>> 0;
33
+ }
34
+ return hash.toString(16).padStart(8, "0");
35
+ }
36
+ function normalizeOriginUrl(rawUrl) {
37
+ let url = rawUrl.trim();
38
+ if (!url) return "";
39
+ if (/\.git$/i.test(url)) url = url.slice(0, -4);
40
+ if (/^[A-Za-z]:[\\/]/.test(url)) {
41
+ return url.toLowerCase();
42
+ }
43
+ const protoMatch = /^[a-z][a-z0-9+.-]*:\/\/(?:[^@/]+@)?(\[[^\]]+\]|[^/:]*)(?::(\d+))?(\/.*)?$/i.exec(url);
44
+ if (protoMatch) {
45
+ let host = protoMatch[1] ?? "";
46
+ const wasBracketed = host.startsWith("[") && host.endsWith("]");
47
+ if (wasBracketed) host = host.slice(1, -1);
48
+ const port = protoMatch[2];
49
+ const repoPath = (protoMatch[3] ?? "").replace(/^\/+/, "");
50
+ const hostPort = port ? wasBracketed ? `[${host}]:${port}` : `${host}:${port}` : host;
51
+ const prefix = hostPort.length > 0 ? hostPort : "localhost";
52
+ return `${prefix}/${repoPath}`.toLowerCase();
53
+ }
54
+ const scpMatch = /^(?:([^@\s/]+)@)?(\[[^\]]+\]|[^:@\s/]+):(.+)$/.exec(url);
55
+ if (scpMatch) {
56
+ let host = scpMatch[2] ?? "";
57
+ if (host.startsWith("[") && host.endsWith("]")) host = host.slice(1, -1);
58
+ const repoPath = scpMatch[3] ?? "";
59
+ if (repoPath.startsWith("//")) {
60
+ return url.toLowerCase();
61
+ }
62
+ return `${host}/${repoPath.replace(/^\/+/, "")}`.toLowerCase();
63
+ }
64
+ return url.toLowerCase();
65
+ }
66
+ async function resolveGitContext(cwd, options = {}) {
67
+ try {
68
+ if (typeof cwd !== "string" || cwd.length === 0) return null;
69
+ const expanded = expandTildePath(cwd);
70
+ if (!path.isAbsolute(expanded)) return null;
71
+ const invoker = options.invoker ?? defaultGitInvoker();
72
+ const topLevel = invoker(expanded, ["rev-parse", "--show-toplevel"]);
73
+ if (topLevel.exitCode !== 0) return null;
74
+ const rootPath = topLevel.stdout.trim();
75
+ if (!rootPath) return null;
76
+ const branchResult = invoker(rootPath, ["rev-parse", "--abbrev-ref", "HEAD"]);
77
+ let branch = null;
78
+ if (branchResult.exitCode === 0) {
79
+ const raw = branchResult.stdout.trim();
80
+ branch = raw && raw !== "HEAD" ? raw : null;
81
+ } else {
82
+ const unbornRef = invoker(rootPath, ["symbolic-ref", "--quiet", "HEAD"]);
83
+ if (unbornRef.exitCode === 0) {
84
+ const raw = unbornRef.stdout.trim();
85
+ const prefix = "refs/heads/";
86
+ if (raw.startsWith(prefix)) {
87
+ const candidate = raw.slice(prefix.length);
88
+ if (candidate) branch = candidate;
89
+ }
90
+ }
91
+ }
92
+ const originResult = invoker(rootPath, ["remote", "get-url", "origin"]);
93
+ let projectId;
94
+ if (originResult.exitCode === 0) {
95
+ const normalized = normalizeOriginUrl(originResult.stdout);
96
+ projectId = normalized ? `origin:${stableHash(normalized)}` : `root:${stableHash(rootPath)}`;
97
+ } else {
98
+ projectId = `root:${stableHash(rootPath)}`;
99
+ }
100
+ const headRef = invoker(rootPath, ["symbolic-ref", "--quiet", "refs/remotes/origin/HEAD"]);
101
+ let defaultBranch = null;
102
+ if (headRef.exitCode === 0) {
103
+ const raw = headRef.stdout.trim();
104
+ const prefix = "refs/remotes/origin/";
105
+ if (raw.startsWith(prefix)) {
106
+ const candidate = raw.slice(prefix.length);
107
+ if (candidate) defaultBranch = candidate;
108
+ }
109
+ }
110
+ return {
111
+ projectId,
112
+ branch,
113
+ rootPath,
114
+ defaultBranch
115
+ };
116
+ } catch {
117
+ return null;
118
+ }
119
+ }
120
+
121
+ // src/coding/coding-namespace.ts
122
+ function sanitizeFragment(input) {
123
+ if (typeof input !== "string") return "";
124
+ const trimmed = input.trim().toLowerCase();
125
+ let out = "";
126
+ let prevIsDash = true;
127
+ for (let i = 0; i < trimmed.length; i += 1) {
128
+ const c = trimmed[i];
129
+ const cc = trimmed.charCodeAt(i);
130
+ const isSafe = cc >= 48 && cc <= 57 || cc >= 97 && cc <= 122 || cc === 46 || cc === 95;
131
+ if (isSafe) {
132
+ out += c;
133
+ prevIsDash = false;
134
+ } else if (!prevIsDash) {
135
+ out += "-";
136
+ prevIsDash = true;
137
+ }
138
+ }
139
+ if (out.endsWith("-")) out = out.slice(0, -1);
140
+ return out;
141
+ }
142
+ var MAX_NAMESPACE_LEN = 64;
143
+ var HASH_SUFFIX_LEN = 9;
144
+ function capLength(value) {
145
+ if (value.length <= MAX_NAMESPACE_LEN) return value;
146
+ const hash = stableHash(value);
147
+ let end = MAX_NAMESPACE_LEN - HASH_SUFFIX_LEN;
148
+ while (end > 0 && value.charCodeAt(end - 1) === 45) end -= 1;
149
+ return `${value.slice(0, end)}-${hash}`;
150
+ }
151
+ function projectNamespaceName(projectId) {
152
+ const frag = sanitizeFragment(projectId);
153
+ return capLength(`project-${frag || "unknown"}`);
154
+ }
155
+ function projectTagProjectId(projectTag) {
156
+ const trimmed = projectTag.trim();
157
+ const frag = sanitizeFragment(trimmed);
158
+ const disambig = trimmed.length > 0 && frag !== trimmed;
159
+ const suffix = disambig ? `-${stableHash(trimmed)}` : "";
160
+ return `tag:${frag || "unknown"}${suffix}`;
161
+ }
162
+ function sanitizeBaseFragment(input) {
163
+ if (typeof input !== "string") return "";
164
+ const trimmed = input.trim();
165
+ let out = "";
166
+ let prevIsDash = true;
167
+ for (let i = 0; i < trimmed.length; i += 1) {
168
+ const c = trimmed[i];
169
+ const cc = trimmed.charCodeAt(i);
170
+ const isSafe = cc >= 48 && cc <= 57 || cc >= 65 && cc <= 90 || cc >= 97 && cc <= 122 || cc === 46 || cc === 95;
171
+ if (isSafe) {
172
+ out += c;
173
+ prevIsDash = false;
174
+ } else if (!prevIsDash) {
175
+ out += "-";
176
+ prevIsDash = true;
177
+ }
178
+ }
179
+ if (out.endsWith("-")) out = out.slice(0, -1);
180
+ return out;
181
+ }
182
+ function combineNamespaces(base, overlay) {
183
+ const baseFrag = sanitizeBaseFragment(base);
184
+ const overlayFrag = sanitizeFragment(overlay);
185
+ if (!baseFrag) return capLength(overlayFrag || "unknown");
186
+ if (!overlayFrag) return capLength(baseFrag);
187
+ return capLength(`${baseFrag}-${overlayFrag}`);
188
+ }
189
+ function branchNamespaceName(projectId, branch) {
190
+ const projectFrag = sanitizeFragment(projectId);
191
+ const trimmedBranch = branch.trim();
192
+ const branchFrag = sanitizeFragment(trimmedBranch);
193
+ const disambig = trimmedBranch.length > 0 && branchFrag !== trimmedBranch;
194
+ const base = `project-${projectFrag || "unknown"}-branch-${branchFrag || "unknown"}`;
195
+ const suffixed = disambig ? `${base}-${stableHash(trimmedBranch)}` : base;
196
+ return capLength(suffixed);
197
+ }
198
+ function resolveCodingNamespaceOverlay(codingContext, config, defaultNamespace) {
199
+ if (!codingContext) return null;
200
+ if (!config.projectScope) return null;
201
+ const projectId = typeof codingContext.projectId === "string" ? codingContext.projectId.trim() : "";
202
+ if (!projectId) return null;
203
+ const projectNs = projectNamespaceName(projectId);
204
+ const includeRoot = config.globalFallback === true;
205
+ if (config.branchScope && typeof codingContext.branch === "string" && codingContext.branch.length > 0) {
206
+ const branchNs = branchNamespaceName(projectId, codingContext.branch);
207
+ const fallbacks = [projectNs];
208
+ if (includeRoot) fallbacks.push("");
209
+ return {
210
+ namespace: branchNs,
211
+ readFallbacks: fallbacks,
212
+ scope: "branch"
213
+ };
214
+ }
215
+ return {
216
+ namespace: projectNs,
217
+ readFallbacks: includeRoot ? [""] : [],
218
+ scope: "project"
219
+ };
220
+ }
221
+ function describeCodingScope(codingContext, config, defaultNamespace) {
222
+ const projectId = codingContext?.projectId ?? null;
223
+ const branch = codingContext?.branch ?? null;
224
+ if (!codingContext) {
225
+ return {
226
+ scope: "none",
227
+ projectId: null,
228
+ branch: null,
229
+ effectiveNamespace: null,
230
+ readFallbacks: [],
231
+ disabledReason: "no-context"
232
+ };
233
+ }
234
+ if (!config.projectScope) {
235
+ return {
236
+ scope: "none",
237
+ projectId,
238
+ branch,
239
+ effectiveNamespace: null,
240
+ readFallbacks: [],
241
+ disabledReason: "disabled"
242
+ };
243
+ }
244
+ const trimmedId = typeof projectId === "string" ? projectId.trim() : "";
245
+ if (!trimmedId) {
246
+ return {
247
+ scope: "none",
248
+ projectId,
249
+ branch,
250
+ effectiveNamespace: null,
251
+ readFallbacks: [],
252
+ disabledReason: "empty-project"
253
+ };
254
+ }
255
+ const overlay = resolveCodingNamespaceOverlay(codingContext, config, defaultNamespace);
256
+ if (!overlay) {
257
+ return {
258
+ scope: "none",
259
+ projectId,
260
+ branch,
261
+ effectiveNamespace: null,
262
+ readFallbacks: [],
263
+ disabledReason: "disabled"
264
+ };
265
+ }
266
+ return {
267
+ scope: overlay.scope,
268
+ projectId,
269
+ branch,
270
+ effectiveNamespace: overlay.namespace,
271
+ readFallbacks: overlay.readFallbacks,
272
+ disabledReason: null
273
+ };
274
+ }
275
+
276
+ // src/procedural/reinforcement-core.ts
277
+ function clusterByKey(items, keyFn) {
278
+ const clusters = /* @__PURE__ */ new Map();
279
+ for (const item of items) {
280
+ const key = keyFn(item);
281
+ if (typeof key !== "string") {
282
+ throw new TypeError(
283
+ `clusterByKey: keyFn must return a string, got ${key === null ? "null" : typeof key}`
284
+ );
285
+ }
286
+ const existing = clusters.get(key);
287
+ if (existing) {
288
+ existing.push(item);
289
+ } else {
290
+ clusters.set(key, [item]);
291
+ }
292
+ }
293
+ return clusters;
294
+ }
295
+
296
+ export {
297
+ clusterByKey,
298
+ stableHash,
299
+ normalizeOriginUrl,
300
+ resolveGitContext,
301
+ projectNamespaceName,
302
+ projectTagProjectId,
303
+ combineNamespaces,
304
+ branchNamespaceName,
305
+ resolveCodingNamespaceOverlay,
306
+ describeCodingScope
307
+ };
308
+ //# sourceMappingURL=chunk-EDQVAMQI.js.map