@remnic/core 1.1.31 → 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 (1087) 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 +8 -5
  6. package/dist/access-http.js +51 -51
  7. package/dist/access-idempotency.d.ts +2 -0
  8. package/dist/access-idempotency.js +1 -1
  9. package/dist/access-mcp.d.ts +16 -9
  10. package/dist/access-mcp.js +44 -44
  11. package/dist/access-schema.d.ts +45 -13
  12. package/dist/access-schema.js +8 -8
  13. package/dist/{access-service-CkZyb35d.d.ts → access-service-qrrIrC-0.d.ts} +5 -128
  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-ZAVUCJ4H.js → chunk-3Q4H3OBR.js} +150 -65
  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-U7EJOMFC.js → chunk-4Q73JBSM.js} +4 -4
  91. package/dist/{chunk-XKLD5OK4.js → chunk-4RR6ROTB.js} +10 -11
  92. package/dist/chunk-4RR6ROTB.js.map +1 -0
  93. package/dist/{chunk-4KGVTPGD.js → chunk-6F6BXB7A.js} +9 -8
  94. package/dist/chunk-6F6BXB7A.js.map +1 -0
  95. package/dist/{chunk-NMZY542O.js → chunk-6URPAY2D.js} +41 -17
  96. package/dist/chunk-6URPAY2D.js.map +1 -0
  97. package/dist/{chunk-N53K2EXC.js → chunk-6VF75M3X.js} +2 -2
  98. package/dist/{chunk-XSZEP4SF.js → chunk-6XSPNR6L.js} +6 -5
  99. package/dist/chunk-6XSPNR6L.js.map +1 -0
  100. package/dist/{chunk-6H2TESSP.js → chunk-765K3SAT.js} +3 -3
  101. package/dist/{chunk-EDTHC6UD.js → chunk-77NAFXUD.js} +2 -2
  102. package/dist/{chunk-S7KDBTWT.js → chunk-7F7Z6MOS.js} +29 -14
  103. package/dist/chunk-7F7Z6MOS.js.map +1 -0
  104. package/dist/{chunk-MZH6EHNR.js → chunk-7H6CFEBJ.js} +41 -14
  105. package/dist/chunk-7H6CFEBJ.js.map +1 -0
  106. package/dist/{chunk-575RMLWN.js → chunk-7MV5CWTE.js} +26 -20
  107. package/dist/chunk-7MV5CWTE.js.map +1 -0
  108. package/dist/{chunk-MGKYQQYF.js → chunk-7Q3RCKAQ.js} +2 -2
  109. package/dist/chunk-7RXCMVFQ.js +27 -0
  110. package/dist/chunk-7RXCMVFQ.js.map +1 -0
  111. package/dist/{chunk-DGXUHMOV.js → chunk-A2IYSXDQ.js} +25 -6
  112. package/dist/chunk-A2IYSXDQ.js.map +1 -0
  113. package/dist/{chunk-EABGC2TL.js → chunk-A2Z6UCWT.js} +26 -4
  114. package/dist/chunk-A2Z6UCWT.js.map +1 -0
  115. package/dist/{chunk-3VAL7ZL2.js → chunk-A52AKD7C.js} +59 -24
  116. package/dist/chunk-A52AKD7C.js.map +1 -0
  117. package/dist/{chunk-5375UYTQ.js → chunk-A6D7A2FW.js} +4 -4
  118. package/dist/chunk-A6D7A2FW.js.map +1 -0
  119. package/dist/{chunk-FAAFWE4G.js → chunk-ALEPI75L.js} +24 -6
  120. package/dist/chunk-ALEPI75L.js.map +1 -0
  121. package/dist/{chunk-3SLRNYNG.js → chunk-AUDJPF4N.js} +15 -4
  122. package/dist/chunk-AUDJPF4N.js.map +1 -0
  123. package/dist/chunk-B5XMS73R.js +145 -0
  124. package/dist/chunk-B5XMS73R.js.map +1 -0
  125. package/dist/{chunk-HXXBL2KD.js → chunk-BECQDWBA.js} +44 -4
  126. package/dist/chunk-BECQDWBA.js.map +1 -0
  127. package/dist/{chunk-7SEAZFFB.js → chunk-BEUDU7Y4.js} +24 -4
  128. package/dist/chunk-BEUDU7Y4.js.map +1 -0
  129. package/dist/{chunk-XVVIG67A.js → chunk-BLZAVUD2.js} +61 -17
  130. package/dist/chunk-BLZAVUD2.js.map +1 -0
  131. package/dist/chunk-CHBI22MI.js +159 -0
  132. package/dist/chunk-CHBI22MI.js.map +1 -0
  133. package/dist/{chunk-GDFS42HT.js → chunk-CHCA44C3.js} +15 -8
  134. package/dist/chunk-CHCA44C3.js.map +1 -0
  135. package/dist/chunk-CINZGPSJ.js +22 -0
  136. package/dist/chunk-CINZGPSJ.js.map +1 -0
  137. package/dist/chunk-CMTINOFS.js +36 -0
  138. package/dist/chunk-CMTINOFS.js.map +1 -0
  139. package/dist/{chunk-34DQE4KF.js → chunk-CO7ZO4TU.js} +2 -2
  140. package/dist/{chunk-PFV5C235.js → chunk-CPPS65WS.js} +2 -1
  141. package/dist/{chunk-PFV5C235.js.map → chunk-CPPS65WS.js.map} +1 -1
  142. package/dist/{chunk-DINWEURR.js → chunk-CSKLPDN6.js} +20 -6
  143. package/dist/chunk-CSKLPDN6.js.map +1 -0
  144. package/dist/chunk-CWWMTTQE.js +566 -0
  145. package/dist/chunk-CWWMTTQE.js.map +1 -0
  146. package/dist/{chunk-IQT3XTKW.js → chunk-D24OXEPB.js} +13 -7
  147. package/dist/chunk-D24OXEPB.js.map +1 -0
  148. package/dist/{chunk-TPU5L5EY.js → chunk-D6WE5MTW.js} +272 -411
  149. package/dist/chunk-D6WE5MTW.js.map +1 -0
  150. package/dist/{chunk-WIICJPET.js → chunk-DEUNUKTD.js} +6 -4
  151. package/dist/{chunk-WIICJPET.js.map → chunk-DEUNUKTD.js.map} +1 -1
  152. package/dist/{chunk-ZYVPLJ4T.js → chunk-DHGSZ3UD.js} +9 -7
  153. package/dist/chunk-DHGSZ3UD.js.map +1 -0
  154. package/dist/{chunk-JR4ZC3G4.js → chunk-DLJ4IR6M.js} +91 -41
  155. package/dist/chunk-DLJ4IR6M.js.map +1 -0
  156. package/dist/{chunk-U4SCL7B7.js → chunk-DRD2Q7HQ.js} +82 -18
  157. package/dist/chunk-DRD2Q7HQ.js.map +1 -0
  158. package/dist/{chunk-2IWUMAES.js → chunk-E62SBGQ3.js} +28 -13
  159. package/dist/chunk-E62SBGQ3.js.map +1 -0
  160. package/dist/{chunk-C5BCH4ZS.js → chunk-EAZGEEG2.js} +21 -3
  161. package/dist/chunk-EAZGEEG2.js.map +1 -0
  162. package/dist/{chunk-TPB3I2AC.js → chunk-ECZU5BJH.js} +31 -10
  163. package/dist/chunk-ECZU5BJH.js.map +1 -0
  164. package/dist/{chunk-77H5NU3M.js → chunk-EDBEWFJO.js} +82 -18
  165. package/dist/chunk-EDBEWFJO.js.map +1 -0
  166. package/dist/chunk-EDQVAMQI.js +308 -0
  167. package/dist/chunk-EDQVAMQI.js.map +1 -0
  168. package/dist/{chunk-RRF5UOBJ.js → chunk-EI6V5UXY.js} +22 -15
  169. package/dist/chunk-EI6V5UXY.js.map +1 -0
  170. package/dist/{chunk-I5GLV3VE.js → chunk-EIPUHVKE.js} +31 -24
  171. package/dist/{chunk-I5GLV3VE.js.map → chunk-EIPUHVKE.js.map} +1 -1
  172. package/dist/{chunk-ZKSK55RC.js → chunk-ETUPBUHB.js} +2 -2
  173. package/dist/{chunk-25MQ7IHJ.js → chunk-EUML3N6B.js} +17 -6
  174. package/dist/chunk-EUML3N6B.js.map +1 -0
  175. package/dist/{chunk-5RGLBDQF.js → chunk-EVZFIAPG.js} +12 -12
  176. package/dist/chunk-EVZFIAPG.js.map +1 -0
  177. package/dist/{chunk-QRNI5JBH.js → chunk-EYIEWJNI.js} +2 -2
  178. package/dist/{chunk-YU5KIWYQ.js → chunk-FER4WARO.js} +79 -41
  179. package/dist/chunk-FER4WARO.js.map +1 -0
  180. package/dist/{chunk-43PJZYGL.js → chunk-FPGE5NVO.js} +45 -10
  181. package/dist/chunk-FPGE5NVO.js.map +1 -0
  182. package/dist/{chunk-C6QPK5GG.js → chunk-FZZ2QTJI.js} +2 -2
  183. package/dist/{chunk-D46YSIYX.js → chunk-G3Z3QEF5.js} +19 -11
  184. package/dist/{chunk-D46YSIYX.js.map → chunk-G3Z3QEF5.js.map} +1 -1
  185. package/dist/{chunk-3JXBXXM2.js → chunk-G4IAEX6D.js} +2 -2
  186. package/dist/{chunk-MSWG7JI6.js → chunk-G56P5RLD.js} +8 -2
  187. package/dist/chunk-G56P5RLD.js.map +1 -0
  188. package/dist/{chunk-AGZQD76C.js → chunk-GCGJW34D.js} +48 -2
  189. package/dist/chunk-GCGJW34D.js.map +1 -0
  190. package/dist/chunk-H2NCNXMS.js +159 -0
  191. package/dist/chunk-H2NCNXMS.js.map +1 -0
  192. package/dist/{chunk-XYIK4LF6.js → chunk-H3FZVNRN.js} +8 -2
  193. package/dist/chunk-H3FZVNRN.js.map +1 -0
  194. package/dist/{chunk-TK4UEOSK.js → chunk-HDDRVXX4.js} +8 -8
  195. package/dist/chunk-HDDRVXX4.js.map +1 -0
  196. package/dist/{chunk-LLQ2LLWF.js → chunk-HENLZHIT.js} +15 -5
  197. package/dist/chunk-HENLZHIT.js.map +1 -0
  198. package/dist/{chunk-N2D6GXBM.js → chunk-HINSGUA7.js} +28 -20
  199. package/dist/chunk-HINSGUA7.js.map +1 -0
  200. package/dist/{chunk-APO3DCMU.js → chunk-HLAVGJ62.js} +30 -8
  201. package/dist/chunk-HLAVGJ62.js.map +1 -0
  202. package/dist/{chunk-TPMQ3G6Z.js → chunk-HOJZMQ4J.js} +2 -2
  203. package/dist/chunk-HOJZMQ4J.js.map +1 -0
  204. package/dist/{chunk-LUDTDZLK.js → chunk-HPWVAEET.js} +33 -7
  205. package/dist/chunk-HPWVAEET.js.map +1 -0
  206. package/dist/{chunk-NZL6GGQE.js → chunk-HQ6NIBL6.js} +92 -30
  207. package/dist/chunk-HQ6NIBL6.js.map +1 -0
  208. package/dist/{chunk-UWVJF25J.js → chunk-HWVTS5NO.js} +20 -6
  209. package/dist/chunk-HWVTS5NO.js.map +1 -0
  210. package/dist/{chunk-2WWLHTZY.js → chunk-IC4GELZE.js} +2 -2
  211. package/dist/{chunk-QA2ZAPBU.js → chunk-IPLYGWQF.js} +28 -20
  212. package/dist/chunk-IPLYGWQF.js.map +1 -0
  213. package/dist/{chunk-A6KTB5R6.js → chunk-IQ3OI2RR.js} +3 -3
  214. package/dist/chunk-IQ3OI2RR.js.map +1 -0
  215. package/dist/{chunk-6LVVDPJ4.js → chunk-J64TK33U.js} +3 -4
  216. package/dist/chunk-J64TK33U.js.map +1 -0
  217. package/dist/{chunk-6FC5EGNV.js → chunk-JBPKEARU.js} +15 -5
  218. package/dist/{chunk-6FC5EGNV.js.map → chunk-JBPKEARU.js.map} +1 -1
  219. package/dist/{chunk-RHY3HH7P.js → chunk-JFEKNTX7.js} +125 -33
  220. package/dist/chunk-JFEKNTX7.js.map +1 -0
  221. package/dist/{chunk-TZOLIGIG.js → chunk-JJEJJ7RK.js} +4 -2
  222. package/dist/chunk-JJEJJ7RK.js.map +1 -0
  223. package/dist/{chunk-PCUKNJAZ.js → chunk-JKV57BTN.js} +2 -2
  224. package/dist/{chunk-EJI5XIBB.js → chunk-JLNBQWZ2.js} +55 -7
  225. package/dist/chunk-JLNBQWZ2.js.map +1 -0
  226. package/dist/{chunk-XIG5PDM7.js → chunk-JUC24CTX.js} +8 -12
  227. package/dist/chunk-JUC24CTX.js.map +1 -0
  228. package/dist/{chunk-3ZLVGM76.js → chunk-JYIKKAK3.js} +106 -44
  229. package/dist/chunk-JYIKKAK3.js.map +1 -0
  230. package/dist/{chunk-OIGNEXKZ.js → chunk-K5O2QY6T.js} +5 -1
  231. package/dist/{chunk-OIGNEXKZ.js.map → chunk-K5O2QY6T.js.map} +1 -1
  232. package/dist/{chunk-ZTFCYYEZ.js → chunk-KCYE2MZM.js} +3 -3
  233. package/dist/chunk-KCYE2MZM.js.map +1 -0
  234. package/dist/{chunk-JWPLJLDU.js → chunk-KD3QD3A5.js} +2 -2
  235. package/dist/{chunk-JWPLJLDU.js.map → chunk-KD3QD3A5.js.map} +1 -1
  236. package/dist/{chunk-YRMVARQP.js → chunk-KFY3SGN7.js} +49 -2
  237. package/dist/chunk-KFY3SGN7.js.map +1 -0
  238. package/dist/{chunk-CYFQJMUV.js → chunk-KIB7SDIJ.js} +15 -10
  239. package/dist/chunk-KIB7SDIJ.js.map +1 -0
  240. package/dist/{chunk-3KW65B36.js → chunk-KILOTVIF.js} +95 -48
  241. package/dist/chunk-KILOTVIF.js.map +1 -0
  242. package/dist/{chunk-MXFBBHJU.js → chunk-KJMYHC7K.js} +10 -5
  243. package/dist/chunk-KJMYHC7K.js.map +1 -0
  244. package/dist/{chunk-W3LR522O.js → chunk-KM2A35EO.js} +36 -34
  245. package/dist/chunk-KM2A35EO.js.map +1 -0
  246. package/dist/{chunk-WELDCG6C.js → chunk-L227SKTB.js} +109 -36
  247. package/dist/chunk-L227SKTB.js.map +1 -0
  248. package/dist/{chunk-W6AQJ2PY.js → chunk-L7S47WZT.js} +35 -16
  249. package/dist/chunk-L7S47WZT.js.map +1 -0
  250. package/dist/{chunk-BVF3AGJP.js → chunk-LJBOVCQG.js} +26 -11
  251. package/dist/chunk-LJBOVCQG.js.map +1 -0
  252. package/dist/{chunk-2KI4QFHU.js → chunk-LMDRGRJ2.js} +2 -2
  253. package/dist/{chunk-MY6TPVXW.js → chunk-LMPHTYJC.js} +2 -2
  254. package/dist/{chunk-EHRTFRWW.js → chunk-LQHDIS7L.js} +10 -5
  255. package/dist/chunk-LQHDIS7L.js.map +1 -0
  256. package/dist/chunk-LUDUFZTV.js +170 -0
  257. package/dist/chunk-LUDUFZTV.js.map +1 -0
  258. package/dist/{chunk-5HRY2WRF.js → chunk-LZ3VEOU5.js} +2 -2
  259. package/dist/{chunk-Q7P4WJDP.js → chunk-M5T4Q2ZU.js} +1 -1
  260. package/dist/chunk-M5T4Q2ZU.js.map +1 -0
  261. package/dist/{chunk-ICRIXAP2.js → chunk-MC4FJXPA.js} +16 -6
  262. package/dist/chunk-MC4FJXPA.js.map +1 -0
  263. package/dist/{chunk-WPGJYVUH.js → chunk-MGVIEM2O.js} +23 -6
  264. package/dist/chunk-MGVIEM2O.js.map +1 -0
  265. package/dist/{chunk-YROHKYBY.js → chunk-O27WNHTT.js} +22 -6
  266. package/dist/chunk-O27WNHTT.js.map +1 -0
  267. package/dist/{chunk-NGAVDO7E.js → chunk-OADWQ5CR.js} +2 -2
  268. package/dist/{chunk-2NMMFZ5T.js → chunk-OD4FM2U7.js} +6 -3
  269. package/dist/chunk-OD4FM2U7.js.map +1 -0
  270. package/dist/{chunk-OZHRDTDX.js → chunk-OKTXM5H4.js} +11 -1
  271. package/dist/chunk-OKTXM5H4.js.map +1 -0
  272. package/dist/{chunk-RXDLTSWT.js → chunk-ONPLNAPX.js} +16 -7
  273. package/dist/chunk-ONPLNAPX.js.map +1 -0
  274. package/dist/{chunk-FJ43PRLT.js → chunk-ORFGK3XI.js} +20 -14
  275. package/dist/chunk-ORFGK3XI.js.map +1 -0
  276. package/dist/{chunk-DOM4GKSW.js → chunk-OZKVVUJB.js} +3 -3
  277. package/dist/{chunk-MT4HVDUZ.js → chunk-PM3QHTFT.js} +3 -3
  278. package/dist/{chunk-4DWOBS2A.js → chunk-PRQJ5ESM.js} +27 -2
  279. package/dist/{chunk-4DWOBS2A.js.map → chunk-PRQJ5ESM.js.map} +1 -1
  280. package/dist/chunk-PU44GBL4.js +52 -0
  281. package/dist/chunk-PU44GBL4.js.map +1 -0
  282. package/dist/{chunk-MJFNCJXV.js → chunk-Q4CAQGKQ.js} +47 -9
  283. package/dist/chunk-Q4CAQGKQ.js.map +1 -0
  284. package/dist/{chunk-U3WSW6PZ.js → chunk-QMYXNM4P.js} +90 -35
  285. package/dist/chunk-QMYXNM4P.js.map +1 -0
  286. package/dist/{chunk-NBNN5GOB.js → chunk-QY7YA7OL.js} +11 -2
  287. package/dist/chunk-QY7YA7OL.js.map +1 -0
  288. package/dist/{chunk-QLLBRHAT.js → chunk-R26QUUQN.js} +181 -257
  289. package/dist/chunk-R26QUUQN.js.map +1 -0
  290. package/dist/{chunk-ZK7I7JYV.js → chunk-R3PS27B4.js} +7 -7
  291. package/dist/{chunk-TMQLARTH.js → chunk-RCTS5CKK.js} +33 -14
  292. package/dist/chunk-RCTS5CKK.js.map +1 -0
  293. package/dist/{chunk-2PRLKQAH.js → chunk-RLV3PQGH.js} +35 -19
  294. package/dist/chunk-RLV3PQGH.js.map +1 -0
  295. package/dist/{chunk-WW3QQF4H.js → chunk-ROZJACKP.js} +16 -1
  296. package/dist/chunk-ROZJACKP.js.map +1 -0
  297. package/dist/{chunk-7MNMYOFP.js → chunk-RSUYKGGZ.js} +3 -4
  298. package/dist/chunk-RSUYKGGZ.js.map +1 -0
  299. package/dist/{chunk-LT3NLYSI.js → chunk-RUZOJKNF.js} +10 -7
  300. package/dist/chunk-RUZOJKNF.js.map +1 -0
  301. package/dist/{chunk-326G7DJK.js → chunk-RW5DGAGO.js} +67 -13
  302. package/dist/chunk-RW5DGAGO.js.map +1 -0
  303. package/dist/{chunk-KOSORCJG.js → chunk-S53PKKWK.js} +63 -24
  304. package/dist/chunk-S53PKKWK.js.map +1 -0
  305. package/dist/{chunk-65PG43EQ.js → chunk-S7WU3Y3D.js} +21 -4
  306. package/dist/chunk-S7WU3Y3D.js.map +1 -0
  307. package/dist/{chunk-SKE7JYKA.js → chunk-SFXKHM7P.js} +2 -2
  308. package/dist/{chunk-HMDCOMYU.js → chunk-SKGV326D.js} +3 -3
  309. package/dist/chunk-T2PO5MUF.js +62 -0
  310. package/dist/chunk-T2PO5MUF.js.map +1 -0
  311. package/dist/{chunk-C7VW7C3F.js → chunk-TDKQGLJW.js} +3 -3
  312. package/dist/chunk-TDKQGLJW.js.map +1 -0
  313. package/dist/{chunk-3QKK7QOS.js → chunk-TERNBNJB.js} +3 -3
  314. package/dist/chunk-TERNBNJB.js.map +1 -0
  315. package/dist/{chunk-MXC3AP5I.js → chunk-TGQ2NTWH.js} +12 -7
  316. package/dist/chunk-TGQ2NTWH.js.map +1 -0
  317. package/dist/{chunk-3Y4P7RXM.js → chunk-TMSXWOBZ.js} +3 -4
  318. package/dist/chunk-TMSXWOBZ.js.map +1 -0
  319. package/dist/{chunk-3TNBOMQT.js → chunk-TVRN5QKH.js} +11 -11
  320. package/dist/{chunk-3TNBOMQT.js.map → chunk-TVRN5QKH.js.map} +1 -1
  321. package/dist/{chunk-5UM2VJ6D.js → chunk-UEY3VB6W.js} +2 -2
  322. package/dist/{chunk-I6K5FBRQ.js → chunk-UI3NYK34.js} +4 -1
  323. package/dist/{chunk-I6K5FBRQ.js.map → chunk-UI3NYK34.js.map} +1 -1
  324. package/dist/{chunk-VBJ7V5SK.js → chunk-UIPDNLXA.js} +21 -8
  325. package/dist/chunk-UIPDNLXA.js.map +1 -0
  326. package/dist/{chunk-GIF42EW3.js → chunk-UP6MOYCB.js} +3 -3
  327. package/dist/{chunk-K4FLSOR5.js → chunk-USYGGIJZ.js} +44 -15
  328. package/dist/chunk-USYGGIJZ.js.map +1 -0
  329. package/dist/{chunk-FIT6DMX6.js → chunk-UWY7GIVS.js} +152 -54
  330. package/dist/chunk-UWY7GIVS.js.map +1 -0
  331. package/dist/{chunk-MRILGULB.js → chunk-V2RCP53Q.js} +2 -2
  332. package/dist/{chunk-XKECPATV.js → chunk-VFUEZZBS.js} +113 -4
  333. package/dist/chunk-VFUEZZBS.js.map +1 -0
  334. package/dist/{chunk-FSFEQI74.js → chunk-W7L6HXUC.js} +2 -2
  335. package/dist/{chunk-3IQ2TR4N.js → chunk-WLEB7WCG.js} +2 -2
  336. package/dist/{chunk-GL6I6MEQ.js → chunk-WSGF57U2.js} +3 -3
  337. package/dist/{chunk-KNKUID7G.js → chunk-X7Y7WX73.js} +72 -6
  338. package/dist/chunk-X7Y7WX73.js.map +1 -0
  339. package/dist/{chunk-5NPGSAVB.js → chunk-XEKAG3FM.js} +23 -5
  340. package/dist/chunk-XEKAG3FM.js.map +1 -0
  341. package/dist/{chunk-3APJ5EVB.js → chunk-XKIQZXUB.js} +41 -26
  342. package/dist/chunk-XKIQZXUB.js.map +1 -0
  343. package/dist/chunk-XKXKSQU7.js +92 -0
  344. package/dist/chunk-XKXKSQU7.js.map +1 -0
  345. package/dist/{chunk-JA3AK3PT.js → chunk-XNLXAWHX.js} +4 -4
  346. package/dist/{chunk-CULXMQJH.js → chunk-XPXEJRUB.js} +3 -3
  347. package/dist/chunk-XPXEJRUB.js.map +1 -0
  348. package/dist/{chunk-PZIAX57I.js → chunk-XR6DNK4U.js} +7 -4
  349. package/dist/chunk-XR6DNK4U.js.map +1 -0
  350. package/dist/{chunk-47VWKCAF.js → chunk-XSQ4SGM5.js} +33 -4
  351. package/dist/chunk-XSQ4SGM5.js.map +1 -0
  352. package/dist/{chunk-66DHUKLO.js → chunk-XSWKORGM.js} +16 -14
  353. package/dist/chunk-XSWKORGM.js.map +1 -0
  354. package/dist/{chunk-QR3C7BKQ.js → chunk-XZ4WBBB5.js} +7 -8
  355. package/dist/chunk-XZ4WBBB5.js.map +1 -0
  356. package/dist/{chunk-WNARATI3.js → chunk-Y2SXZ5KZ.js} +59 -11
  357. package/dist/chunk-Y2SXZ5KZ.js.map +1 -0
  358. package/dist/{chunk-SIC6U3GZ.js → chunk-YHV3KRKS.js} +3 -3
  359. package/dist/{chunk-ZPKBYX2F.js → chunk-YNDLCWXS.js} +85 -9
  360. package/dist/chunk-YNDLCWXS.js.map +1 -0
  361. package/dist/{chunk-VLXA6PI2.js → chunk-YQMZ7IH2.js} +4 -4
  362. package/dist/{chunk-TMM4S4IJ.js → chunk-YR6GIWWY.js} +58 -8
  363. package/dist/chunk-YR6GIWWY.js.map +1 -0
  364. package/dist/{chunk-DK5LDEQM.js → chunk-YR7XMOWK.js} +39 -23
  365. package/dist/chunk-YR7XMOWK.js.map +1 -0
  366. package/dist/chunk-ZFXCQPNO.js +27 -0
  367. package/dist/chunk-ZFXCQPNO.js.map +1 -0
  368. package/dist/citations.js +1 -1
  369. package/dist/{cli-kuh9PwZ5.d.ts → cli-X4NJoqSe.d.ts} +8 -31
  370. package/dist/cli.d.ts +10 -6
  371. package/dist/cli.js +122 -117
  372. package/dist/commitment-ledger.js +2 -2
  373. package/dist/compat/checks.js +1 -2
  374. package/dist/compounding/engine.d.ts +3 -2
  375. package/dist/compounding/engine.js +11 -11
  376. package/dist/compounding/preference-consolidator.d.ts +1 -0
  377. package/dist/compounding/preference-consolidator.js +8 -8
  378. package/dist/compounding/preference-consolidator.js.map +1 -1
  379. package/dist/compression-optimizer.d.ts +1 -0
  380. package/dist/compression-optimizer.js +1 -1
  381. package/dist/config.d.ts +1 -0
  382. package/dist/config.js +3 -2
  383. package/dist/connectors/codex-materialize-runner.d.ts +1 -0
  384. package/dist/connectors/codex-materialize-runner.js +12 -11
  385. package/dist/connectors/codex-materialize.d.ts +1 -0
  386. package/dist/connectors/codex-materialize.js +3 -2
  387. package/dist/connectors/index.d.ts +1 -0
  388. package/dist/connectors/index.js +14 -14
  389. package/dist/{connectors-cli-CwbyjGR7.d.ts → connectors-cli-DbTPNj2H.d.ts} +7 -1
  390. package/dist/connectors-cli.d.ts +1 -1
  391. package/dist/connectors-cli.js +3 -1
  392. package/dist/consolidation-provenance-check.d.ts +1 -0
  393. package/dist/consolidation-provenance-check.js +2 -2
  394. package/dist/consolidation-undo.d.ts +1 -0
  395. package/dist/consolidation-undo.js +1 -1
  396. package/dist/contradiction/index.d.ts +3 -1
  397. package/dist/contradiction/index.js +3 -3
  398. package/dist/{contradiction-review-ATP4S6IC.js → contradiction-review-6V2LXXK6.js} +2 -2
  399. package/dist/{contradiction-scan-5A4IDZV5.js → contradiction-scan-GIRVC4C7.js} +3 -3
  400. package/dist/conversation-index/backend.d.ts +3 -1
  401. package/dist/conversation-index/backend.js +3 -3
  402. package/dist/conversation-index/chunker.d.ts +1 -0
  403. package/dist/conversation-index/cleanup.js +1 -1
  404. package/dist/conversation-index/faiss-adapter.d.ts +2 -1
  405. package/dist/conversation-index/faiss-adapter.js +1 -1
  406. package/dist/conversation-index/indexer.d.ts +5 -2
  407. package/dist/conversation-index/indexer.js +1 -1
  408. package/dist/conversation-index/search.d.ts +2 -1
  409. package/dist/cross-namespace-budget.js +1 -1
  410. package/dist/cue-anchors.js +2 -2
  411. package/dist/dashboard-runtime.d.ts +6 -0
  412. package/dist/dashboard-runtime.js +3 -3
  413. package/dist/day-summary.d.ts +1 -0
  414. package/dist/day-summary.js +2 -2
  415. package/dist/delinearize.d.ts +1 -0
  416. package/dist/direct-answer-wiring.d.ts +1 -0
  417. package/dist/direct-answer.d.ts +1 -0
  418. package/dist/{dreams-ledger-LR2NBAZE.js → dreams-ledger-3WSCI5V4.js} +5 -4
  419. package/dist/{dreams-ledger-LR2NBAZE.js.map → dreams-ledger-3WSCI5V4.js.map} +1 -1
  420. package/dist/embedding-fallback.d.ts +3 -0
  421. package/dist/embedding-fallback.js +2 -2
  422. package/dist/enrichment/index.d.ts +1 -0
  423. package/dist/enrichment/index.js +1 -1
  424. package/dist/entity-retrieval.d.ts +2 -0
  425. package/dist/entity-retrieval.js +9 -9
  426. package/dist/entity-schema.d.ts +1 -0
  427. package/dist/evals.js +1 -1
  428. package/dist/explicit-capture.d.ts +5 -3
  429. package/dist/explicit-capture.js +2 -2
  430. package/dist/extraction-judge-telemetry.d.ts +2 -0
  431. package/dist/extraction-judge-training.d.ts +2 -0
  432. package/dist/extraction-judge.d.ts +2 -0
  433. package/dist/extraction.d.ts +2 -0
  434. package/dist/extraction.js +12 -12
  435. package/dist/{faiss-adapter-CzPghc4C.d.ts → faiss-adapter-BHecI1fF.d.ts} +4 -1
  436. package/dist/fallback-llm.d.ts +11 -1
  437. package/dist/fallback-llm.js +8 -6
  438. package/dist/{first-start-migration-4MHQEOSD.js → first-start-migration-CKTCTCQI.js} +5 -5
  439. package/dist/graph-dashboard-diff.d.ts +4 -0
  440. package/dist/graph-dashboard-diff.js +1 -1
  441. package/dist/graph-dashboard-parser.js +1 -1
  442. package/dist/{graph-edge-decay-5DI5GUNL.js → graph-edge-decay-MUP5J7CC.js} +6 -6
  443. package/dist/graph-events.js +1 -1
  444. package/dist/graph-snapshot.js +3 -3
  445. package/dist/graph.js +2 -2
  446. package/dist/harmonic-retrieval.js +4 -4
  447. package/dist/identity-continuity.d.ts +1 -0
  448. package/dist/importance.d.ts +1 -0
  449. package/dist/importers/index.d.ts +244 -0
  450. package/dist/importers/index.js +20 -0
  451. package/dist/index.d.ts +20 -350
  452. package/dist/index.js +884 -561
  453. package/dist/index.js.map +1 -1
  454. package/dist/intent.d.ts +1 -0
  455. package/dist/lcm/archive.d.ts +2 -2
  456. package/dist/lcm/archive.js +2 -2
  457. package/dist/lcm/engine.d.ts +3 -2
  458. package/dist/lcm/engine.js +6 -6
  459. package/dist/lcm/index.d.ts +1 -0
  460. package/dist/lcm/index.js +8 -8
  461. package/dist/lcm/recall.js +1 -1
  462. package/dist/lcm/summarizer.js +3 -3
  463. package/dist/lcm/tools.d.ts +1 -0
  464. package/dist/lifecycle.d.ts +1 -0
  465. package/dist/live-connectors-runner.d.ts +1 -0
  466. package/dist/live-connectors-runner.js +6 -6
  467. package/dist/local-llm.d.ts +1 -0
  468. package/dist/local-llm.js +2 -2
  469. package/dist/maintenance/archive-observations.js +1 -1
  470. package/dist/maintenance/memory-governance.d.ts +3 -1
  471. package/dist/maintenance/memory-governance.js +10 -8
  472. package/dist/maintenance/migrate-observations.js +3 -2
  473. package/dist/maintenance/observation-ledger-utils.d.ts +3 -0
  474. package/dist/maintenance/observation-ledger-utils.js +2 -1
  475. package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -1
  476. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -8
  477. package/dist/maintenance/rebuild-memory-projection.d.ts +2 -1
  478. package/dist/maintenance/rebuild-memory-projection.js +13 -10
  479. package/dist/maintenance/rebuild-observations.d.ts +1 -0
  480. package/dist/maintenance/rebuild-observations.js +3 -2
  481. package/dist/mcp-memory-inspector-app.d.ts +7 -4
  482. package/dist/mcp-memory-inspector-app.js +1 -1
  483. package/dist/memory-action-policy.d.ts +1 -0
  484. package/dist/memory-cache.d.ts +1 -0
  485. package/dist/memory-cache.js +1 -1
  486. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -0
  487. package/dist/memory-projection-store.d.ts +1 -0
  488. package/dist/memory-projection-store.js +1 -1
  489. package/dist/memory-provenance.d.ts +1 -0
  490. package/dist/memory-worth-outcomes.d.ts +1 -0
  491. package/dist/migrate/from-engram.js +2 -2
  492. package/dist/{migrate-from-identity-anchor-G27MCD6A.js → migrate-from-identity-anchor-EB4XI4Q2.js} +2 -2
  493. package/dist/model-registry.js +1 -1
  494. package/dist/models-json.d.ts +1 -0
  495. package/dist/namespaces/migrate.d.ts +3 -0
  496. package/dist/namespaces/migrate.js +24 -22
  497. package/dist/namespaces/principal.d.ts +1 -0
  498. package/dist/namespaces/principal.js +2 -1
  499. package/dist/namespaces/search.d.ts +1 -0
  500. package/dist/namespaces/search.js +15 -13
  501. package/dist/namespaces/storage.d.ts +4 -2
  502. package/dist/namespaces/storage.js +10 -9
  503. package/dist/native-knowledge.d.ts +1 -0
  504. package/dist/native-knowledge.js +1 -1
  505. package/dist/negative.js +1 -1
  506. package/dist/network/webdav.d.ts +16 -1
  507. package/dist/network/webdav.js +5 -3
  508. package/dist/objective-state-writers.js +4 -4
  509. package/dist/objective-state.js +2 -2
  510. package/dist/offline-sync.js +4 -4
  511. package/dist/operator-toolkit.d.ts +1 -0
  512. package/dist/operator-toolkit.js +35 -32
  513. package/dist/opik-exporter.js +1 -1
  514. package/dist/{orchestrator-DuWl9Hwx.d.ts → orchestrator-Co9nxRLF.d.ts} +4 -74
  515. package/dist/orchestrator.d.ts +5 -3
  516. package/dist/orchestrator.js +99 -96
  517. package/dist/page-versioning.js +1 -1
  518. package/dist/path-X2K5XCHL.js +9 -0
  519. package/dist/patterns-cli.d.ts +1 -0
  520. package/dist/peers/index.d.ts +328 -0
  521. package/dist/{peers-HCVGHMAE.js → peers/index.js} +4 -4
  522. package/dist/pipeline-D18UAKlN.d.ts +32 -0
  523. package/dist/plugin-entry-resolver.d.ts +9 -0
  524. package/dist/plugin-entry-resolver.js +8 -0
  525. package/dist/plugin-entry-resolver.js.map +1 -0
  526. package/dist/plugin-id.d.ts +2 -21
  527. package/dist/plugin-id.js +33 -4
  528. package/dist/plugin-id.js.map +1 -1
  529. package/dist/policy-runtime.d.ts +4 -0
  530. package/dist/policy-runtime.js +1 -1
  531. package/dist/profiling.js +1 -1
  532. package/dist/qmd-recall-cache.d.ts +1 -0
  533. package/dist/qmd.d.ts +1 -0
  534. package/dist/qmd.js +3 -3
  535. package/dist/recall-disclosure-escalation.d.ts +1 -0
  536. package/dist/recall-explain-renderer.d.ts +1 -0
  537. package/dist/recall-explain-renderer.js +3 -3
  538. package/dist/recall-state.d.ts +8 -1
  539. package/dist/recall-state.js +2 -1
  540. package/dist/recall-tag-filter.d.ts +1 -0
  541. package/dist/recall-xray-cli.d.ts +1 -0
  542. package/dist/recall-xray-cli.js +4 -4
  543. package/dist/recall-xray-renderer.d.ts +1 -0
  544. package/dist/recall-xray-renderer.js +3 -3
  545. package/dist/recall-xray.d.ts +1 -0
  546. package/dist/recall-xray.js +2 -2
  547. package/dist/relevance.d.ts +7 -1
  548. package/dist/relevance.js +2 -1
  549. package/dist/replay/normalizers/chatgpt.js +2 -2
  550. package/dist/replay/normalizers/claude.js +2 -2
  551. package/dist/replay/normalizers/openclaw.js +2 -2
  552. package/dist/replay/normalizers/shared.js +1 -1
  553. package/dist/replay/runner.js +1 -1
  554. package/dist/rerank.js +1 -1
  555. package/dist/{resolution-B7FNQSSP.js → resolution-ZY7VM6WS.js} +3 -3
  556. package/dist/resolution-ZY7VM6WS.js.map +1 -0
  557. package/dist/resolve-auth-token.d.ts +1 -0
  558. package/dist/resolve-auth-token.js +1 -1
  559. package/dist/resolve-provider-secret.d.ts +19 -29
  560. package/dist/resolve-provider-secret.js +2 -6
  561. package/dist/resume-bundles.js +10 -9
  562. package/dist/retrieval-agents.d.ts +2 -1
  563. package/dist/retrieval-agents.js +2 -1
  564. package/dist/retrieval-tiers.d.ts +1 -0
  565. package/dist/routing/engine.d.ts +1 -0
  566. package/dist/routing/store.d.ts +3 -0
  567. package/dist/routing/store.js +1 -1
  568. package/dist/runtime/env.js +1 -1
  569. package/dist/schemas.d.ts +191 -17
  570. package/dist/schemas.js +1 -1
  571. package/dist/sdk-compat.js +1 -1
  572. package/dist/search/document-scanner.js +1 -1
  573. package/dist/search/embed-helper.d.ts +7 -2
  574. package/dist/search/embed-helper.js +3 -1
  575. package/dist/search/factory.d.ts +2 -1
  576. package/dist/search/factory.js +13 -12
  577. package/dist/search/index.d.ts +2 -1
  578. package/dist/search/index.js +19 -18
  579. package/dist/search/lancedb-backend.d.ts +7 -6
  580. package/dist/search/lancedb-backend.js +4 -2
  581. package/dist/search/meilisearch-backend.d.ts +7 -6
  582. package/dist/search/meilisearch-backend.js +4 -2
  583. package/dist/search/noop-backend.d.ts +1 -0
  584. package/dist/search/orama-backend.d.ts +9 -7
  585. package/dist/search/orama-backend.js +8 -4
  586. package/dist/search/port.d.ts +1 -0
  587. package/dist/search/remote-backend.d.ts +1 -0
  588. package/dist/secure-store/index.d.ts +16 -3
  589. package/dist/secure-store/index.js +2 -2
  590. package/dist/{semantic-VwGI14Ok.d.ts → semantic-SLAa_prH.d.ts} +5 -3
  591. package/dist/semantic-consolidation.d.ts +1 -0
  592. package/dist/semantic-consolidation.js +14 -13
  593. package/dist/semantic-rule-promotion.js +8 -8
  594. package/dist/semantic-rule-verifier.d.ts +1 -0
  595. package/dist/semantic-rule-verifier.js +8 -8
  596. package/dist/session-integrity.d.ts +1 -0
  597. package/dist/session-integrity.js +1 -1
  598. package/dist/session-observer-bands.d.ts +1 -0
  599. package/dist/session-observer-state.d.ts +6 -1
  600. package/dist/session-observer-state.js +1 -1
  601. package/dist/shared-context/manager.d.ts +5 -0
  602. package/dist/shared-context/manager.js +3 -3
  603. package/dist/signal.d.ts +1 -0
  604. package/dist/signal.js +1 -1
  605. package/dist/source-attribution.js +1 -1
  606. package/dist/state-store-4QZISH3J.js +30 -0
  607. package/dist/state-store-4QZISH3J.js.map +1 -0
  608. package/dist/storage-C4DX8CuG.d.ts +157 -0
  609. package/dist/storage.d.ts +2 -0
  610. package/dist/storage.js +7 -7
  611. package/dist/store-contract.js +1 -1
  612. package/dist/summarizer.d.ts +1 -0
  613. package/dist/summarizer.js +7 -7
  614. package/dist/summary-snapshot.d.ts +1 -0
  615. package/dist/surfaces/dreams.js +48 -17
  616. package/dist/surfaces/dreams.js.map +1 -1
  617. package/dist/temporal-supersession.d.ts +1 -0
  618. package/dist/temporal-supersession.js +1 -1
  619. package/dist/temporal-validity.d.ts +1 -0
  620. package/dist/threading.d.ts +1 -0
  621. package/dist/tier-migration.d.ts +1 -0
  622. package/dist/tier-routing.d.ts +1 -0
  623. package/dist/{tier-stats-62ZVDFKS.js → tier-stats-SKML2OSF.js} +5 -5
  624. package/dist/tmt.js +1 -1
  625. package/dist/tokens.js +2 -2
  626. package/dist/topics.d.ts +1 -0
  627. package/dist/{trace-C5ETWBEF.js → trace-WM7V4CKI.js} +31 -1
  628. package/dist/trace-WM7V4CKI.js.map +1 -0
  629. package/dist/transcript.d.ts +1 -0
  630. package/dist/transcript.js +2 -2
  631. package/dist/transfer/autodetect.js +7 -7
  632. package/dist/transfer/backup.js +5 -5
  633. package/dist/transfer/capsule-export.js +5 -5
  634. package/dist/transfer/capsule-import.d.ts +6 -0
  635. package/dist/transfer/capsule-import.js +4 -4
  636. package/dist/transfer/export-json.js +3 -3
  637. package/dist/transfer/export-md.js +3 -3
  638. package/dist/transfer/export-sqlite.js +3 -3
  639. package/dist/transfer/fs-utils.d.ts +2 -1
  640. package/dist/transfer/fs-utils.js +5 -3
  641. package/dist/transfer/import-json.js +3 -3
  642. package/dist/transfer/import-md.js +3 -3
  643. package/dist/transfer/import-sqlite.js +3 -3
  644. package/dist/trust-zones.js +2 -2
  645. package/dist/types-B1VHaf2w.d.ts +126 -0
  646. package/dist/types-BliCnURB.d.ts +83 -0
  647. package/dist/types.d.ts +35 -0
  648. package/dist/types.js +1 -1
  649. package/dist/utility-learner.js +3 -3
  650. package/dist/utility-runtime.d.ts +1 -0
  651. package/dist/utility-runtime.js +4 -4
  652. package/dist/utility-telemetry.js +2 -2
  653. package/dist/verified-recall.js +9 -9
  654. package/dist/work/board.js +2 -2
  655. package/dist/work/boundary.js +1 -1
  656. package/dist/work/storage.d.ts +5 -0
  657. package/dist/work/storage.js +1 -1
  658. package/dist/work-product-ledger.js +2 -2
  659. package/package.json +74 -3
  660. package/scripts/ensure-better-sqlite3.mjs +8 -7
  661. package/scripts/faiss_index.py +141 -29
  662. package/src/access-cli.test.ts +87 -2
  663. package/src/access-cli.ts +59 -5
  664. package/src/access-http.test.ts +150 -0
  665. package/src/access-http.ts +89 -34
  666. package/src/access-idempotency.ts +136 -3
  667. package/src/access-mcp.test.ts +155 -0
  668. package/src/access-mcp.ts +116 -30
  669. package/src/access-schema.ts +22 -4
  670. package/src/access-service-project-tag.test.ts +37 -0
  671. package/src/access-service.ts +11 -10
  672. package/src/active-recall.test.ts +29 -1
  673. package/src/active-recall.ts +11 -7
  674. package/src/adapters/claude-code.ts +7 -8
  675. package/src/adapters/codex.ts +6 -7
  676. package/src/adapters/hermes.ts +1 -5
  677. package/src/adapters/registry.test.ts +63 -0
  678. package/src/adapters/registry.ts +10 -0
  679. package/src/adapters/replit.ts +5 -7
  680. package/src/adapters/types.ts +24 -1
  681. package/src/behavior-signals.ts +1 -1
  682. package/src/binary-lifecycle/backend.ts +16 -4
  683. package/src/binary-lifecycle/pipeline.test.ts +149 -0
  684. package/src/binary-lifecycle/pipeline.ts +49 -7
  685. package/src/binary-lifecycle/scanner.ts +19 -4
  686. package/src/boxes.ts +119 -32
  687. package/src/buffer-session.test.ts +28 -0
  688. package/src/buffer.ts +10 -14
  689. package/src/bulk-import/types.ts +10 -0
  690. package/src/calibration.test.ts +99 -0
  691. package/src/calibration.ts +57 -13
  692. package/src/causal-consolidation.test.ts +214 -0
  693. package/src/causal-consolidation.ts +131 -14
  694. package/src/causal-retrieval.ts +16 -3
  695. package/src/citations.test.ts +75 -0
  696. package/src/citations.ts +19 -6
  697. package/src/cli.ts +134 -109
  698. package/src/coding/coding-namespace.test.ts +7 -0
  699. package/src/coding/coding-namespace.ts +8 -0
  700. package/src/coding/review-context.test.ts +30 -0
  701. package/src/coding/review-context.ts +79 -9
  702. package/src/coding/wire-coding-context.test.ts +16 -0
  703. package/src/compat/checks.test.ts +33 -0
  704. package/src/compat/checks.ts +64 -4
  705. package/src/compounding/engine.ts +2 -2
  706. package/src/compounding/preference-consolidator.test.ts +47 -0
  707. package/src/compounding/preference-consolidator.ts +8 -8
  708. package/src/compression-optimizer.ts +5 -2
  709. package/src/config.test.ts +34 -2
  710. package/src/config.ts +62 -18
  711. package/src/connectors/codex-materialize-runner.ts +4 -3
  712. package/src/connectors/codex-materialize.ts +149 -34
  713. package/src/connectors/index.test.ts +144 -7
  714. package/src/connectors/index.ts +86 -15
  715. package/src/connectors/live/github.test.ts +47 -0
  716. package/src/connectors/live/github.ts +29 -1
  717. package/src/connectors/live/index.ts +2 -0
  718. package/src/connectors/live/live-connectors.test.ts +359 -73
  719. package/src/connectors/live/notion.test.ts +84 -0
  720. package/src/connectors/live/notion.ts +18 -1
  721. package/src/connectors/live/state-store.ts +419 -38
  722. package/src/connectors/weclone-installer.test.ts +16 -18
  723. package/src/connectors-cli.ts +19 -0
  724. package/src/console/trace.test.ts +28 -0
  725. package/src/console/trace.ts +42 -5
  726. package/src/contradiction/contradiction-judge.test.ts +49 -0
  727. package/src/contradiction/contradiction-judge.ts +15 -5
  728. package/src/contradiction/contradiction-review.ts +31 -7
  729. package/src/contradiction/contradiction-scan.ts +28 -18
  730. package/src/contradiction/contradiction.test.ts +237 -1
  731. package/src/contradiction/resolution.ts +43 -4
  732. package/src/conversation-index/backend.ts +13 -5
  733. package/src/conversation-index/cleanup.ts +25 -4
  734. package/src/conversation-index/faiss-adapter.ts +24 -15
  735. package/src/conversation-index/indexer.test.ts +71 -10
  736. package/src/conversation-index/indexer.ts +22 -3
  737. package/src/cross-namespace-budget.test.ts +59 -0
  738. package/src/cross-namespace-budget.ts +15 -7
  739. package/src/curation/index.ts +18 -17
  740. package/src/dashboard-runtime.test.ts +98 -0
  741. package/src/dashboard-runtime.ts +96 -6
  742. package/src/dedup/index.test.ts +133 -0
  743. package/src/dedup/index.ts +73 -10
  744. package/src/dedup/semantic.test.ts +77 -2
  745. package/src/dedup/semantic.ts +26 -6
  746. package/src/embedding-fallback.ts +47 -15
  747. package/src/enrichment/audit.ts +8 -1
  748. package/src/enrichment/pipeline.ts +21 -13
  749. package/src/enrichment/web-search-provider.ts +1 -6
  750. package/src/entity-retrieval.ts +57 -6
  751. package/src/evals.ts +22 -13
  752. package/src/explicit-capture.test.ts +40 -0
  753. package/src/explicit-capture.ts +14 -2
  754. package/src/extraction.ts +42 -30
  755. package/src/fallback-llm.ts +35 -2
  756. package/src/graph-dashboard-diff.test.ts +57 -0
  757. package/src/graph-dashboard-diff.ts +24 -2
  758. package/src/graph-dashboard-parser.test.ts +31 -0
  759. package/src/graph-dashboard-parser.ts +4 -1
  760. package/src/graph-events.ts +6 -4
  761. package/src/graph.test.ts +69 -0
  762. package/src/graph.ts +7 -4
  763. package/src/importers/base.test.ts +70 -0
  764. package/src/importers/base.ts +56 -7
  765. package/src/index.ts +5 -2
  766. package/src/lcm/archive.ts +65 -16
  767. package/src/lcm/engine.ts +27 -8
  768. package/src/lcm/recall.ts +5 -5
  769. package/src/lcm-engine.test.ts +87 -1
  770. package/src/lcm-recall.test.ts +71 -0
  771. package/src/live-connectors-runner.ts +100 -36
  772. package/src/maintenance/archive-observations.ts +24 -3
  773. package/src/maintenance/atomic-file.ts +85 -0
  774. package/src/maintenance/dreams-ledger.ts +15 -8
  775. package/src/maintenance/memory-governance.test.ts +53 -0
  776. package/src/maintenance/memory-governance.ts +15 -5
  777. package/src/maintenance/observation-ledger-utils.ts +6 -5
  778. package/src/maintenance/purge.test.ts +64 -0
  779. package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +22 -9
  780. package/src/maintenance/rebuild-memory-projection.ts +22 -9
  781. package/src/maintenance/rebuild-observations.ts +7 -3
  782. package/src/mcp-memory-inspector-app.ts +26 -3
  783. package/src/memory-cache.test.ts +19 -0
  784. package/src/memory-cache.ts +1 -0
  785. package/src/memory-extension/codex-publisher.ts +25 -4
  786. package/src/memory-extension-host/host-discovery.test.ts +69 -0
  787. package/src/memory-extension-host/host-discovery.ts +63 -6
  788. package/src/memory-projection-store.ts +114 -62
  789. package/src/message-parts/index.ts +46 -31
  790. package/src/message-parts/message-parts.test.ts +77 -0
  791. package/src/migrate/from-engram.ts +68 -14
  792. package/src/model-registry.test.ts +38 -0
  793. package/src/model-registry.ts +12 -7
  794. package/src/namespaces/identity.test.ts +66 -0
  795. package/src/namespaces/identity.ts +23 -0
  796. package/src/namespaces/migrate.test.ts +62 -0
  797. package/src/namespaces/migrate.ts +82 -14
  798. package/src/namespaces/principal.test.ts +37 -1
  799. package/src/namespaces/principal.ts +18 -7
  800. package/src/namespaces/search.test.ts +76 -6
  801. package/src/namespaces/search.ts +22 -21
  802. package/src/namespaces/storage.ts +93 -11
  803. package/src/native-knowledge.ts +23 -3
  804. package/src/negative.ts +50 -5
  805. package/src/network/webdav.ts +177 -58
  806. package/src/onboarding/index.test.ts +105 -0
  807. package/src/onboarding/index.ts +17 -5
  808. package/src/operator-toolkit.ts +39 -4
  809. package/src/orchestrator.ts +52 -17
  810. package/src/page-versioning.ts +31 -5
  811. package/src/peers/peers.test.ts +70 -0
  812. package/src/peers/storage.ts +32 -3
  813. package/src/plugin-entry-resolver.test.ts +60 -0
  814. package/src/plugin-entry-resolver.ts +48 -0
  815. package/src/plugin-id.test.ts +38 -0
  816. package/src/plugin-id.ts +31 -64
  817. package/src/policy-runtime.test.ts +75 -0
  818. package/src/policy-runtime.ts +32 -3
  819. package/src/procedural/procedure-miner.test.ts +152 -0
  820. package/src/procedural/procedure-miner.ts +124 -19
  821. package/src/profiling.test.ts +23 -0
  822. package/src/profiling.ts +10 -1
  823. package/src/projection/index.test.ts +253 -0
  824. package/src/projection/index.ts +159 -18
  825. package/src/qmd-client.test.ts +45 -0
  826. package/src/qmd.ts +8 -8
  827. package/src/recall-disclosure.test.ts +15 -1
  828. package/src/recall-state.ts +24 -5
  829. package/src/relevance.ts +24 -5
  830. package/src/replay/normalizers/chatgpt.ts +14 -4
  831. package/src/replay/normalizers/claude.ts +8 -3
  832. package/src/replay/normalizers/openclaw.ts +35 -12
  833. package/src/replay/normalizers/replay-normalizers.test.ts +65 -0
  834. package/src/replay/normalizers/shared.ts +4 -1
  835. package/src/replay/runner.ts +1 -1
  836. package/src/rerank.test.ts +41 -1
  837. package/src/rerank.ts +2 -2
  838. package/src/resolve-auth-token.test.ts +29 -0
  839. package/src/resolve-auth-token.ts +12 -7
  840. package/src/resolve-provider-secret.test.ts +78 -22
  841. package/src/resolve-provider-secret.ts +55 -223
  842. package/src/retrieval-agents.ts +51 -14
  843. package/src/review/index.test.ts +75 -1
  844. package/src/review/index.ts +88 -30
  845. package/src/routing/store.ts +36 -6
  846. package/src/runtime/env.test.ts +73 -0
  847. package/src/runtime/env.ts +7 -11
  848. package/src/schemas.ts +16 -1
  849. package/src/search/abort.ts +18 -0
  850. package/src/search/document-scanner.test.ts +80 -0
  851. package/src/search/document-scanner.ts +51 -9
  852. package/src/search/embed-helper.ts +19 -6
  853. package/src/search/factory.ts +9 -5
  854. package/src/search/lancedb-backend.ts +62 -22
  855. package/src/search/meilisearch-backend.ts +35 -12
  856. package/src/search/orama-backend.test.ts +27 -0
  857. package/src/search/orama-backend.ts +65 -15
  858. package/src/secure-store/cli-handlers.ts +70 -6
  859. package/src/secure-store/cli-renderer.ts +13 -7
  860. package/src/secure-store/secure-fs.ts +11 -5
  861. package/src/secure-store/secure-store.test.ts +70 -0
  862. package/src/semantic-consolidation.test.ts +45 -0
  863. package/src/semantic-consolidation.ts +3 -3
  864. package/src/session-integrity.test.ts +98 -0
  865. package/src/session-integrity.ts +51 -1
  866. package/src/session-observer-state.ts +108 -41
  867. package/src/shared-context/manager.ts +93 -15
  868. package/src/signal.test.ts +14 -0
  869. package/src/signal.ts +8 -1
  870. package/src/source-attribution.test.ts +8 -0
  871. package/src/source-attribution.ts +24 -2
  872. package/src/spaces/index.test.ts +93 -0
  873. package/src/spaces/index.ts +75 -9
  874. package/src/storage.ts +14 -1
  875. package/src/store-contract.test.ts +35 -0
  876. package/src/store-contract.ts +39 -5
  877. package/src/summarizer.ts +24 -18
  878. package/src/summary-snapshot.test.ts +77 -0
  879. package/src/surfaces/dreams.test.ts +73 -0
  880. package/src/surfaces/dreams.ts +53 -19
  881. package/src/sync/index.ts +42 -17
  882. package/src/taxonomy/taxonomy-loader.ts +43 -4
  883. package/src/temporal-supersession.test.ts +67 -0
  884. package/src/temporal-supersession.ts +8 -0
  885. package/src/tmt.test.ts +50 -0
  886. package/src/tmt.ts +35 -11
  887. package/src/tokens.test.ts +18 -0
  888. package/src/tokens.ts +7 -0
  889. package/src/training-export/converter.test.ts +55 -2
  890. package/src/training-export/converter.ts +36 -10
  891. package/src/training-export/registry.test.ts +17 -0
  892. package/src/training-export/registry.ts +19 -1
  893. package/src/transcript.ts +2 -2
  894. package/src/transfer/backup.ts +18 -7
  895. package/src/transfer/capsule-crypto.ts +105 -21
  896. package/src/transfer/capsule-encrypt.test.ts +106 -7
  897. package/src/transfer/capsule-export.ts +23 -14
  898. package/src/transfer/capsule-import.ts +11 -2
  899. package/src/transfer/exclusions.ts +7 -0
  900. package/src/transfer/export-sqlite.ts +14 -13
  901. package/src/transfer/fs-utils.ts +52 -1
  902. package/src/transfer/import-json.ts +12 -7
  903. package/src/transfer/import-md.ts +5 -5
  904. package/src/transfer/import-sqlite.ts +4 -5
  905. package/src/trust-zones.ts +1 -1
  906. package/src/types.ts +25 -0
  907. package/src/utility-telemetry.ts +1 -1
  908. package/src/utils/category-dir.test.ts +15 -0
  909. package/src/utils/category-dir.ts +3 -1
  910. package/src/work/boundary.ts +30 -18
  911. package/src/work/storage.ts +116 -38
  912. package/src/work-product-ledger.ts +1 -1
  913. package/dist/chunk-25MQ7IHJ.js.map +0 -1
  914. package/dist/chunk-2IWUMAES.js.map +0 -1
  915. package/dist/chunk-2NMMFZ5T.js.map +0 -1
  916. package/dist/chunk-2PRLKQAH.js.map +0 -1
  917. package/dist/chunk-326G7DJK.js.map +0 -1
  918. package/dist/chunk-3APJ5EVB.js.map +0 -1
  919. package/dist/chunk-3KW65B36.js.map +0 -1
  920. package/dist/chunk-3QKK7QOS.js.map +0 -1
  921. package/dist/chunk-3SLRNYNG.js.map +0 -1
  922. package/dist/chunk-3VAL7ZL2.js.map +0 -1
  923. package/dist/chunk-3Y4P7RXM.js.map +0 -1
  924. package/dist/chunk-3ZLVGM76.js.map +0 -1
  925. package/dist/chunk-43PJZYGL.js.map +0 -1
  926. package/dist/chunk-47VWKCAF.js.map +0 -1
  927. package/dist/chunk-4KGVTPGD.js.map +0 -1
  928. package/dist/chunk-5375UYTQ.js.map +0 -1
  929. package/dist/chunk-56K5QLHX.js.map +0 -1
  930. package/dist/chunk-575RMLWN.js.map +0 -1
  931. package/dist/chunk-5NPGSAVB.js.map +0 -1
  932. package/dist/chunk-5RGLBDQF.js.map +0 -1
  933. package/dist/chunk-65PG43EQ.js.map +0 -1
  934. package/dist/chunk-66DHUKLO.js.map +0 -1
  935. package/dist/chunk-6LVVDPJ4.js.map +0 -1
  936. package/dist/chunk-76FLAAUC.js.map +0 -1
  937. package/dist/chunk-77H5NU3M.js.map +0 -1
  938. package/dist/chunk-7MNMYOFP.js.map +0 -1
  939. package/dist/chunk-7OZ53EXP.js.map +0 -1
  940. package/dist/chunk-7SEAZFFB.js.map +0 -1
  941. package/dist/chunk-A6KTB5R6.js.map +0 -1
  942. package/dist/chunk-AGZQD76C.js.map +0 -1
  943. package/dist/chunk-APO3DCMU.js.map +0 -1
  944. package/dist/chunk-BVF3AGJP.js.map +0 -1
  945. package/dist/chunk-C5BCH4ZS.js.map +0 -1
  946. package/dist/chunk-C7VW7C3F.js.map +0 -1
  947. package/dist/chunk-CULXMQJH.js.map +0 -1
  948. package/dist/chunk-CYFQJMUV.js.map +0 -1
  949. package/dist/chunk-D654IBA6.js +0 -61
  950. package/dist/chunk-D654IBA6.js.map +0 -1
  951. package/dist/chunk-DGXUHMOV.js.map +0 -1
  952. package/dist/chunk-DINWEURR.js.map +0 -1
  953. package/dist/chunk-DK5LDEQM.js.map +0 -1
  954. package/dist/chunk-EABGC2TL.js.map +0 -1
  955. package/dist/chunk-EHRTFRWW.js.map +0 -1
  956. package/dist/chunk-EJI5XIBB.js.map +0 -1
  957. package/dist/chunk-FAAFWE4G.js.map +0 -1
  958. package/dist/chunk-FAJ7FZYM.js +0 -11
  959. package/dist/chunk-FAJ7FZYM.js.map +0 -1
  960. package/dist/chunk-FDU6HUUL.js +0 -147
  961. package/dist/chunk-FDU6HUUL.js.map +0 -1
  962. package/dist/chunk-FIT6DMX6.js.map +0 -1
  963. package/dist/chunk-FJ43PRLT.js.map +0 -1
  964. package/dist/chunk-FLTNHQK6.js +0 -262
  965. package/dist/chunk-FLTNHQK6.js.map +0 -1
  966. package/dist/chunk-GDFS42HT.js.map +0 -1
  967. package/dist/chunk-H3ME6L6D.js.map +0 -1
  968. package/dist/chunk-HXXBL2KD.js.map +0 -1
  969. package/dist/chunk-ICRIXAP2.js.map +0 -1
  970. package/dist/chunk-IQT3XTKW.js.map +0 -1
  971. package/dist/chunk-JR4ZC3G4.js.map +0 -1
  972. package/dist/chunk-K4FLSOR5.js.map +0 -1
  973. package/dist/chunk-KNKUID7G.js.map +0 -1
  974. package/dist/chunk-KOSORCJG.js.map +0 -1
  975. package/dist/chunk-LIRZNNUP.js.map +0 -1
  976. package/dist/chunk-LLQ2LLWF.js.map +0 -1
  977. package/dist/chunk-LPMVBPA3.js +0 -236
  978. package/dist/chunk-LPMVBPA3.js.map +0 -1
  979. package/dist/chunk-LT3NLYSI.js.map +0 -1
  980. package/dist/chunk-LUDTDZLK.js.map +0 -1
  981. package/dist/chunk-MJFNCJXV.js.map +0 -1
  982. package/dist/chunk-MSWG7JI6.js.map +0 -1
  983. package/dist/chunk-MXC3AP5I.js.map +0 -1
  984. package/dist/chunk-MXFBBHJU.js.map +0 -1
  985. package/dist/chunk-MZH6EHNR.js.map +0 -1
  986. package/dist/chunk-N2D6GXBM.js.map +0 -1
  987. package/dist/chunk-NBNN5GOB.js.map +0 -1
  988. package/dist/chunk-NMZY542O.js.map +0 -1
  989. package/dist/chunk-NZL6GGQE.js.map +0 -1
  990. package/dist/chunk-OZHRDTDX.js.map +0 -1
  991. package/dist/chunk-PZIAX57I.js.map +0 -1
  992. package/dist/chunk-Q7P4WJDP.js.map +0 -1
  993. package/dist/chunk-QA2ZAPBU.js.map +0 -1
  994. package/dist/chunk-QDZ2RLEC.js.map +0 -1
  995. package/dist/chunk-QLLBRHAT.js.map +0 -1
  996. package/dist/chunk-QR3C7BKQ.js.map +0 -1
  997. package/dist/chunk-RHY3HH7P.js.map +0 -1
  998. package/dist/chunk-RK2Y4XOM.js.map +0 -1
  999. package/dist/chunk-RR2PKP3I.js +0 -63
  1000. package/dist/chunk-RR2PKP3I.js.map +0 -1
  1001. package/dist/chunk-RRF5UOBJ.js.map +0 -1
  1002. package/dist/chunk-RXDLTSWT.js.map +0 -1
  1003. package/dist/chunk-RYED3SPJ.js +0 -42
  1004. package/dist/chunk-RYED3SPJ.js.map +0 -1
  1005. package/dist/chunk-S7KDBTWT.js.map +0 -1
  1006. package/dist/chunk-TK4UEOSK.js.map +0 -1
  1007. package/dist/chunk-TMM4S4IJ.js.map +0 -1
  1008. package/dist/chunk-TMQLARTH.js.map +0 -1
  1009. package/dist/chunk-TPB3I2AC.js.map +0 -1
  1010. package/dist/chunk-TPMQ3G6Z.js.map +0 -1
  1011. package/dist/chunk-TPU5L5EY.js.map +0 -1
  1012. package/dist/chunk-TZOLIGIG.js.map +0 -1
  1013. package/dist/chunk-U3WSW6PZ.js.map +0 -1
  1014. package/dist/chunk-U4SCL7B7.js.map +0 -1
  1015. package/dist/chunk-U66YHYC7.js +0 -31
  1016. package/dist/chunk-U66YHYC7.js.map +0 -1
  1017. package/dist/chunk-UWVJF25J.js.map +0 -1
  1018. package/dist/chunk-VBJ7V5SK.js.map +0 -1
  1019. package/dist/chunk-W3LR522O.js.map +0 -1
  1020. package/dist/chunk-W4L6CZKA.js.map +0 -1
  1021. package/dist/chunk-W6AQJ2PY.js.map +0 -1
  1022. package/dist/chunk-WELDCG6C.js.map +0 -1
  1023. package/dist/chunk-WNARATI3.js.map +0 -1
  1024. package/dist/chunk-WPGJYVUH.js.map +0 -1
  1025. package/dist/chunk-WW3QQF4H.js.map +0 -1
  1026. package/dist/chunk-XIG5PDM7.js.map +0 -1
  1027. package/dist/chunk-XKECPATV.js.map +0 -1
  1028. package/dist/chunk-XKLD5OK4.js.map +0 -1
  1029. package/dist/chunk-XSZEP4SF.js.map +0 -1
  1030. package/dist/chunk-XVVIG67A.js.map +0 -1
  1031. package/dist/chunk-XYIK4LF6.js.map +0 -1
  1032. package/dist/chunk-YRMVARQP.js.map +0 -1
  1033. package/dist/chunk-YROHKYBY.js.map +0 -1
  1034. package/dist/chunk-YU5KIWYQ.js.map +0 -1
  1035. package/dist/chunk-ZAVUCJ4H.js.map +0 -1
  1036. package/dist/chunk-ZPKBYX2F.js.map +0 -1
  1037. package/dist/chunk-ZTFCYYEZ.js.map +0 -1
  1038. package/dist/chunk-ZYVPLJ4T.js.map +0 -1
  1039. package/dist/path-MR5JPYOP.js +0 -9
  1040. package/dist/state-store-VZU2IA53.js +0 -16
  1041. package/dist/trace-C5ETWBEF.js.map +0 -1
  1042. /package/dist/{capsule-crypto-5CYAGVC5.js.map → bulk-import/index.js.map} +0 -0
  1043. /package/dist/{contradiction-review-ATP4S6IC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  1044. /package/dist/{capsule-merge-4MGKE7C5.js.map → capsule-merge-T2JRE46P.js.map} +0 -0
  1045. /package/dist/{chunk-SAZS2QZB.js.map → chunk-23UORJ4S.js.map} +0 -0
  1046. /package/dist/{chunk-PK7H5L6Y.js.map → chunk-2NM43EWN.js.map} +0 -0
  1047. /package/dist/{chunk-PYXS46O7.js.map → chunk-3BP57I6J.js.map} +0 -0
  1048. /package/dist/{chunk-FBYESMQ2.js.map → chunk-3C5RPJAX.js.map} +0 -0
  1049. /package/dist/{chunk-U7EJOMFC.js.map → chunk-4Q73JBSM.js.map} +0 -0
  1050. /package/dist/{chunk-N53K2EXC.js.map → chunk-6VF75M3X.js.map} +0 -0
  1051. /package/dist/{chunk-6H2TESSP.js.map → chunk-765K3SAT.js.map} +0 -0
  1052. /package/dist/{chunk-EDTHC6UD.js.map → chunk-77NAFXUD.js.map} +0 -0
  1053. /package/dist/{chunk-MGKYQQYF.js.map → chunk-7Q3RCKAQ.js.map} +0 -0
  1054. /package/dist/{chunk-34DQE4KF.js.map → chunk-CO7ZO4TU.js.map} +0 -0
  1055. /package/dist/{chunk-ZKSK55RC.js.map → chunk-ETUPBUHB.js.map} +0 -0
  1056. /package/dist/{chunk-QRNI5JBH.js.map → chunk-EYIEWJNI.js.map} +0 -0
  1057. /package/dist/{chunk-C6QPK5GG.js.map → chunk-FZZ2QTJI.js.map} +0 -0
  1058. /package/dist/{chunk-3JXBXXM2.js.map → chunk-G4IAEX6D.js.map} +0 -0
  1059. /package/dist/{chunk-2WWLHTZY.js.map → chunk-IC4GELZE.js.map} +0 -0
  1060. /package/dist/{chunk-PCUKNJAZ.js.map → chunk-JKV57BTN.js.map} +0 -0
  1061. /package/dist/{chunk-2KI4QFHU.js.map → chunk-LMDRGRJ2.js.map} +0 -0
  1062. /package/dist/{chunk-MY6TPVXW.js.map → chunk-LMPHTYJC.js.map} +0 -0
  1063. /package/dist/{chunk-5HRY2WRF.js.map → chunk-LZ3VEOU5.js.map} +0 -0
  1064. /package/dist/{chunk-NGAVDO7E.js.map → chunk-OADWQ5CR.js.map} +0 -0
  1065. /package/dist/{chunk-DOM4GKSW.js.map → chunk-OZKVVUJB.js.map} +0 -0
  1066. /package/dist/{chunk-MT4HVDUZ.js.map → chunk-PM3QHTFT.js.map} +0 -0
  1067. /package/dist/{chunk-ZK7I7JYV.js.map → chunk-R3PS27B4.js.map} +0 -0
  1068. /package/dist/{chunk-SKE7JYKA.js.map → chunk-SFXKHM7P.js.map} +0 -0
  1069. /package/dist/{chunk-HMDCOMYU.js.map → chunk-SKGV326D.js.map} +0 -0
  1070. /package/dist/{chunk-5UM2VJ6D.js.map → chunk-UEY3VB6W.js.map} +0 -0
  1071. /package/dist/{chunk-GIF42EW3.js.map → chunk-UP6MOYCB.js.map} +0 -0
  1072. /package/dist/{chunk-MRILGULB.js.map → chunk-V2RCP53Q.js.map} +0 -0
  1073. /package/dist/{chunk-FSFEQI74.js.map → chunk-W7L6HXUC.js.map} +0 -0
  1074. /package/dist/{chunk-3IQ2TR4N.js.map → chunk-WLEB7WCG.js.map} +0 -0
  1075. /package/dist/{chunk-GL6I6MEQ.js.map → chunk-WSGF57U2.js.map} +0 -0
  1076. /package/dist/{chunk-JA3AK3PT.js.map → chunk-XNLXAWHX.js.map} +0 -0
  1077. /package/dist/{chunk-SIC6U3GZ.js.map → chunk-YHV3KRKS.js.map} +0 -0
  1078. /package/dist/{chunk-VLXA6PI2.js.map → chunk-YQMZ7IH2.js.map} +0 -0
  1079. /package/dist/{contradiction-scan-5A4IDZV5.js.map → contradiction-review-6V2LXXK6.js.map} +0 -0
  1080. /package/dist/{migrate-from-identity-anchor-G27MCD6A.js.map → contradiction-scan-GIRVC4C7.js.map} +0 -0
  1081. /package/dist/{first-start-migration-4MHQEOSD.js.map → first-start-migration-CKTCTCQI.js.map} +0 -0
  1082. /package/dist/{graph-edge-decay-5DI5GUNL.js.map → graph-edge-decay-MUP5J7CC.js.map} +0 -0
  1083. /package/dist/{path-MR5JPYOP.js.map → importers/index.js.map} +0 -0
  1084. /package/dist/{peers-HCVGHMAE.js.map → migrate-from-identity-anchor-EB4XI4Q2.js.map} +0 -0
  1085. /package/dist/{resolution-B7FNQSSP.js.map → path-X2K5XCHL.js.map} +0 -0
  1086. /package/dist/{state-store-VZU2IA53.js.map → peers/index.js.map} +0 -0
  1087. /package/dist/{tier-stats-62ZVDFKS.js.map → tier-stats-SKML2OSF.js.map} +0 -0
@@ -1,5 +1,7 @@
1
1
  import { log } from "../logger.js";
2
2
  import type { PluginConfig } from "../types.js";
3
+ import { isAbortError } from "../abort-error.js";
4
+ import { withTimeoutSignal } from "./abort.js";
3
5
 
4
6
  type ProviderConfig = {
5
7
  type: "openai" | "local";
@@ -38,23 +40,29 @@ export class EmbedHelper {
38
40
  /**
39
41
  * Embed a single text string. Returns null if no provider is available.
40
42
  */
41
- async embed(text: string): Promise<number[] | null> {
43
+ async embed(text: string, options: { signal?: AbortSignal } = {}): Promise<number[] | null> {
42
44
  const provider = this.getProvider();
43
45
  if (!provider) return null;
44
- return this.callEmbed(text, provider);
46
+ return this.callEmbed(text, provider, options.signal);
45
47
  }
46
48
 
47
49
  /**
48
50
  * Embed a batch of texts. Returns an array parallel to input; entries are null on failure.
49
51
  */
50
- async embedBatch(texts: string[], batchSize = 32): Promise<(number[] | null)[]> {
52
+ async embedBatch(
53
+ texts: string[],
54
+ batchSize = 32,
55
+ options: { signal?: AbortSignal } = {},
56
+ ): Promise<(number[] | null)[]> {
51
57
  const provider = this.getProvider();
52
58
  if (!provider) return texts.map(() => null);
53
59
 
54
60
  const results: (number[] | null)[] = new Array(texts.length).fill(null);
55
61
  for (let i = 0; i < texts.length; i += batchSize) {
56
62
  const batch = texts.slice(i, i + batchSize);
57
- const batchResults = await Promise.all(batch.map((t) => this.callEmbed(t, provider)));
63
+ const batchResults = await Promise.all(
64
+ batch.map((t) => this.callEmbed(t, provider, options.signal)),
65
+ );
58
66
  for (let j = 0; j < batchResults.length; j++) {
59
67
  results[i + j] = batchResults[j];
60
68
  }
@@ -114,7 +122,11 @@ export class EmbedHelper {
114
122
  return null;
115
123
  }
116
124
 
117
- private async callEmbed(input: string, provider: ProviderConfig): Promise<number[] | null> {
125
+ private async callEmbed(
126
+ input: string,
127
+ provider: ProviderConfig,
128
+ signal?: AbortSignal,
129
+ ): Promise<number[] | null> {
118
130
  try {
119
131
  const res = await fetch(provider.endpoint, {
120
132
  method: "POST",
@@ -124,7 +136,7 @@ export class EmbedHelper {
124
136
  input: input.slice(0, 8000),
125
137
  encoding_format: "float",
126
138
  }),
127
- signal: AbortSignal.timeout(30_000),
139
+ signal: withTimeoutSignal(signal, 30_000),
128
140
  });
129
141
  if (!res.ok) {
130
142
  log.debug(`EmbedHelper request failed: ${provider.type} ${res.status}`);
@@ -135,6 +147,7 @@ export class EmbedHelper {
135
147
  if (!Array.isArray(vector)) return null;
136
148
  return vector.map((n: unknown) => { const v = Number(n); return Number.isFinite(v) ? v : 0; });
137
149
  } catch (err) {
150
+ if (isAbortError(err)) throw err;
138
151
  log.debug(`EmbedHelper error: ${err}`);
139
152
  return null;
140
153
  }
@@ -161,9 +161,10 @@ export function createConversationIndexRuntime(
161
161
  },
162
162
  ): ConversationIndexRuntime {
163
163
  const qmd = createConversationSearchBackend(config) as ConversationQmdRuntime | undefined;
164
- const faiss =
165
- config.conversationIndexEnabled && config.conversationIndexBackend === "faiss"
166
- ? new FaissConversationIndexAdapter({
164
+ let faiss: FaissConversationIndexAdapter | undefined;
165
+ if (config.conversationIndexEnabled && config.conversationIndexBackend === "faiss") {
166
+ try {
167
+ faiss = new FaissConversationIndexAdapter({
167
168
  memoryDir: config.memoryDir,
168
169
  scriptPath: config.conversationIndexFaissScriptPath,
169
170
  pythonBin: config.conversationIndexFaissPythonBin,
@@ -174,8 +175,11 @@ export function createConversationIndexRuntime(
174
175
  healthTimeoutMs: config.conversationIndexFaissHealthTimeoutMs,
175
176
  maxBatchSize: config.conversationIndexFaissMaxBatchSize,
176
177
  maxSearchK: config.conversationIndexFaissMaxSearchK,
177
- })
178
- : undefined;
178
+ });
179
+ } catch (err) {
180
+ log.warn(`Conversation index FAISS adapter disabled: ${err instanceof Error ? err.message : String(err)}`);
181
+ }
182
+ }
179
183
 
180
184
  const backend = createConversationIndexBackend({
181
185
  enabled: config.conversationIndexEnabled,
@@ -2,6 +2,7 @@ import { log } from "../logger.js";
2
2
  import type { SearchBackend, SearchExecutionOptions, SearchQueryOptions, SearchResult } from "./port.js";
3
3
  import type { EmbedHelper } from "./embed-helper.js";
4
4
  import { scanMemoryDir } from "./document-scanner.js";
5
+ import { isSearchAborted, throwIfSearchAborted } from "./abort.js";
5
6
 
6
7
  export interface LanceDbBackendOptions {
7
8
  dbPath: string;
@@ -60,24 +61,26 @@ export class LanceDbBackend implements SearchBackend {
60
61
  _collection?: string,
61
62
  maxResults?: number,
62
63
  _options?: SearchQueryOptions,
63
- _execution?: SearchExecutionOptions,
64
+ execution?: SearchExecutionOptions,
64
65
  ): Promise<SearchResult[]> {
65
- return this.hybridSearch(query, _collection, maxResults);
66
+ return this.hybridSearch(query, _collection, maxResults, execution);
66
67
  }
67
68
 
68
- async searchGlobal(query: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
69
+ async searchGlobal(query: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
69
70
  const limit = maxResults ?? 10;
70
71
  if (!this.available) return [];
71
72
 
72
73
  try {
74
+ throwIfSearchAborted(execution, "LanceDbBackend global search aborted");
73
75
  const db = await this.ensureDb();
74
76
  const tableNames = await db.tableNames();
75
77
  const allResults: SearchResult[] = [];
76
78
 
77
79
  for (const name of tableNames) {
80
+ throwIfSearchAborted(execution, "LanceDbBackend global search aborted");
78
81
  try {
79
82
  const table = await db.openTable(name);
80
- const results = await this.searchTable(table, query, "hybrid", limit);
83
+ const results = await this.searchTable(table, query, "hybrid", limit, execution);
81
84
  allResults.push(...results);
82
85
  } catch {
83
86
  // Skip tables that fail
@@ -92,33 +95,42 @@ export class LanceDbBackend implements SearchBackend {
92
95
  }
93
96
  }
94
97
 
95
- async bm25Search(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
98
+ async bm25Search(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
99
+ if (isSearchAborted(execution)) return [];
96
100
  const table = await this.ensureTableForCollection(collection ?? this.collection);
101
+ if (isSearchAborted(execution)) return [];
97
102
  if (!table) return [];
98
- return this.searchTable(table, query, "fts", maxResults ?? 10);
103
+ return this.searchTable(table, query, "fts", maxResults ?? 10, execution);
99
104
  }
100
105
 
101
- async vectorSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
106
+ async vectorSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
107
+ if (isSearchAborted(execution)) return [];
102
108
  const table = await this.ensureTableForCollection(collection ?? this.collection);
109
+ if (isSearchAborted(execution)) return [];
103
110
  if (!table) return [];
104
- return this.searchTable(table, query, "vector", maxResults ?? 10);
111
+ return this.searchTable(table, query, "vector", maxResults ?? 10, execution);
105
112
  }
106
113
 
107
- async hybridSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
114
+ async hybridSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
115
+ if (isSearchAborted(execution)) return [];
108
116
  const table = await this.ensureTableForCollection(collection ?? this.collection);
117
+ if (isSearchAborted(execution)) return [];
109
118
  if (!table) return [];
110
- return this.searchTable(table, query, "hybrid", maxResults ?? 10);
119
+ return this.searchTable(table, query, "hybrid", maxResults ?? 10, execution);
111
120
  }
112
121
 
113
122
  async update(execution?: SearchExecutionOptions): Promise<void> {
114
123
  await this.updateCollection(this.collection, execution);
115
124
  }
116
125
 
117
- async updateCollection(collection: string, _execution?: SearchExecutionOptions): Promise<void> {
126
+ async updateCollection(collection: string, execution?: SearchExecutionOptions): Promise<void> {
127
+ if (isSearchAborted(execution)) return;
118
128
  const table = await this.ensureTableForCollection(collection);
129
+ if (isSearchAborted(execution)) return;
119
130
  if (!table) return;
120
131
 
121
132
  const docs = await scanMemoryDir(this.memoryDir);
133
+ if (isSearchAborted(execution)) return;
122
134
  if (docs.length === 0) {
123
135
  // Clear stale data when no docs remain
124
136
  try {
@@ -131,27 +143,40 @@ export class LanceDbBackend implements SearchBackend {
131
143
  return;
132
144
  }
133
145
 
146
+ const existingVectors = new Map<string, number[]>();
147
+ try {
148
+ const existingRows = await table.query().select(["docid", "vector"]).toArray();
149
+ for (const row of existingRows ?? []) {
150
+ if (isSearchAborted(execution)) return;
151
+ const docid = row.docid;
152
+ if (typeof docid !== "string") continue;
153
+ const vector = row.vector;
154
+ if (!vector || typeof vector !== "object") continue;
155
+ existingVectors.set(docid, Array.from(vector as ArrayLike<number>));
156
+ }
157
+ } catch {
158
+ // Vector preservation is best-effort; refresh can proceed without it.
159
+ }
160
+
134
161
  const rows = docs.map((d) => ({
135
162
  docid: d.docid,
136
163
  path: d.path,
137
164
  content: d.content,
138
165
  snippet: d.snippet,
139
- vector: new Array(this.embeddingDimension).fill(0),
166
+ vector: existingVectors.get(d.docid) ?? new Array(this.embeddingDimension).fill(0),
140
167
  }));
141
168
 
142
169
  try {
143
- // Overwrite with fresh data
144
- const db = await this.ensureDb();
145
- await db.dropTable(collection).catch(() => {});
146
- if (collection === this.collection) this.table = null;
147
- const newTable = await db.createTable(collection, rows);
170
+ if (isSearchAborted(execution)) return;
171
+ await table.add(rows, { mode: "overwrite" });
172
+ if (isSearchAborted(execution)) return;
148
173
  // Create FTS index on content column
149
174
  try {
150
- await newTable.createIndex("content", { config: this.lanceIndex.fts() });
175
+ await table.createIndex("content", { config: this.lanceIndex.fts() });
151
176
  } catch {
152
177
  // FTS index creation may fail on some platforms — degrade gracefully
153
178
  }
154
- if (collection === this.collection) this.table = newTable;
179
+ if (collection === this.collection) this.table = table;
155
180
  } catch (err) {
156
181
  log.debug(`LanceDbBackend update failed: ${err}`);
157
182
  }
@@ -286,28 +311,41 @@ export class LanceDbBackend implements SearchBackend {
286
311
  return this.table;
287
312
  }
288
313
 
289
- private async searchTable(table: any, query: string, mode: "fts" | "vector" | "hybrid", limit: number): Promise<SearchResult[]> {
314
+ private async searchTable(
315
+ table: any,
316
+ query: string,
317
+ mode: "fts" | "vector" | "hybrid",
318
+ limit: number,
319
+ execution?: SearchExecutionOptions,
320
+ ): Promise<SearchResult[]> {
290
321
  try {
322
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
291
323
  if (mode === "fts") {
292
324
  const results = await table.search(query, "fts").limit(limit).toArray();
325
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
293
326
  return this.mapRows(results);
294
327
  }
295
328
 
296
329
  if (mode === "vector") {
297
- const vec = await this.embedHelper.embed(query);
330
+ const vec = await this.embedHelper.embed(query, { signal: execution?.signal });
331
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
298
332
  if (!vec) {
299
333
  // Fall back to FTS
300
334
  const results = await table.search(query, "fts").limit(limit).toArray();
335
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
301
336
  return this.mapRows(results);
302
337
  }
303
338
  const results = await table.search(vec).limit(limit).toArray();
339
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
304
340
  return this.mapRows(results);
305
341
  }
306
342
 
307
343
  // hybrid — try FTS+vector with RRF reranking
308
- const vec = await this.embedHelper.embed(query);
344
+ const vec = await this.embedHelper.embed(query, { signal: execution?.signal });
345
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
309
346
  if (!vec) {
310
347
  const results = await table.search(query, "fts").limit(limit).toArray();
348
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
311
349
  return this.mapRows(results);
312
350
  }
313
351
 
@@ -317,10 +355,12 @@ export class LanceDbBackend implements SearchBackend {
317
355
  .vector(vec)
318
356
  .limit(limit)
319
357
  .toArray();
358
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
320
359
  return this.mapRows(results);
321
360
  } catch {
322
361
  // Hybrid may not be supported in all LanceDB versions — fall back to vector
323
362
  const results = await table.search(vec).limit(limit).toArray();
363
+ throwIfSearchAborted(execution, `LanceDbBackend ${mode} search aborted`);
324
364
  return this.mapRows(results);
325
365
  }
326
366
  } catch (err) {
@@ -1,6 +1,7 @@
1
1
  import { log } from "../logger.js";
2
2
  import type { SearchBackend, SearchExecutionOptions, SearchQueryOptions, SearchResult } from "./port.js";
3
3
  import { scanMemoryDir } from "./document-scanner.js";
4
+ import { isSearchAborted, throwIfSearchAborted } from "./abort.js";
4
5
 
5
6
  export interface MeilisearchBackendOptions {
6
7
  host: string;
@@ -63,23 +64,27 @@ export class MeilisearchBackend implements SearchBackend {
63
64
  collection?: string,
64
65
  maxResults?: number,
65
66
  _options?: SearchQueryOptions,
66
- _execution?: SearchExecutionOptions,
67
+ execution?: SearchExecutionOptions,
67
68
  ): Promise<SearchResult[]> {
69
+ if (isSearchAborted(execution)) return [];
68
70
  // Try hybrid first; fall back to plain FTS only if hybrid throws (e.g. no embedder configured)
69
71
  try {
70
- return await this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 0.5, embedder: "default" } }, collection, true);
72
+ return await this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 0.5, embedder: "default" } }, collection, true, execution);
71
73
  } catch {
72
- return this.bm25Search(query, collection, maxResults);
74
+ if (isSearchAborted(execution)) return [];
75
+ return this.bm25Search(query, collection, maxResults, execution);
73
76
  }
74
77
  }
75
78
 
76
- async searchGlobal(query: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
79
+ async searchGlobal(query: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
77
80
  const limit = maxResults ?? 10;
78
81
  if (!this.available) return [];
79
82
 
80
83
  try {
84
+ throwIfSearchAborted(execution, "MeilisearchBackend global search aborted");
81
85
  const client = await this.ensureClient();
82
86
  const indexes = await client.getIndexes();
87
+ throwIfSearchAborted(execution, "MeilisearchBackend global search aborted");
83
88
  const queries = (indexes.results ?? []).map((idx: any) => ({
84
89
  indexUid: idx.uid,
85
90
  q: query,
@@ -89,6 +94,7 @@ export class MeilisearchBackend implements SearchBackend {
89
94
  if (queries.length === 0) return [];
90
95
 
91
96
  const multiResult = await client.multiSearch({ queries });
97
+ throwIfSearchAborted(execution, "MeilisearchBackend global search aborted");
92
98
  const allResults: SearchResult[] = [];
93
99
  for (const result of multiResult.results ?? []) {
94
100
  allResults.push(...this.mapHits(result.hits ?? []));
@@ -101,29 +107,32 @@ export class MeilisearchBackend implements SearchBackend {
101
107
  }
102
108
  }
103
109
 
104
- async bm25Search(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
105
- return this.doSearch(query, maxResults ?? 10, undefined, collection);
110
+ async bm25Search(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
111
+ return this.doSearch(query, maxResults ?? 10, undefined, collection, false, execution);
106
112
  }
107
113
 
108
- async vectorSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
109
- return this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 1.0, embedder: "default" } }, collection);
114
+ async vectorSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
115
+ return this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 1.0, embedder: "default" } }, collection, false, execution);
110
116
  }
111
117
 
112
- async hybridSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
113
- return this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 0.5, embedder: "default" } }, collection);
118
+ async hybridSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
119
+ return this.doSearch(query, maxResults ?? 10, { hybrid: { semanticRatio: 0.5, embedder: "default" } }, collection, false, execution);
114
120
  }
115
121
 
116
122
  async update(execution?: SearchExecutionOptions): Promise<void> {
117
123
  await this.updateCollection(this.collection, execution);
118
124
  }
119
125
 
120
- async updateCollection(collection: string, _execution?: SearchExecutionOptions): Promise<void> {
126
+ async updateCollection(collection: string, execution?: SearchExecutionOptions): Promise<void> {
121
127
  if (!this.autoIndex || !this.memoryDir) return;
122
128
  if (!this.available) return;
129
+ if (isSearchAborted(execution)) return;
123
130
 
124
131
  try {
125
132
  const client = await this.ensureClient();
133
+ if (isSearchAborted(execution)) return;
126
134
  const docs = await scanMemoryDir(this.memoryDir);
135
+ if (isSearchAborted(execution)) return;
127
136
  const index = client.index(collection);
128
137
 
129
138
  const meilDocs = docs.map((d) => ({
@@ -134,8 +143,10 @@ export class MeilisearchBackend implements SearchBackend {
134
143
  }));
135
144
 
136
145
  // Upsert current docs and wait for the task to complete
146
+ if (isSearchAborted(execution)) return;
137
147
  const addTask = await index.addDocuments(meilDocs, { primaryKey: "id" });
138
148
  await client.waitForTask(addTask.taskUid, { timeOutMs: this.timeoutMs });
149
+ if (isSearchAborted(execution)) return;
139
150
 
140
151
  // Remove docs that no longer exist on disk (paginated to handle large indexes)
141
152
  const currentIds = new Set(docs.map((d) => d.docid));
@@ -145,6 +156,7 @@ export class MeilisearchBackend implements SearchBackend {
145
156
  let staleIds: string[] = [];
146
157
  let hasMore = true;
147
158
  while (hasMore) {
159
+ if (isSearchAborted(execution)) return;
148
160
  const page = await index.getDocuments({ limit: PAGE_SIZE, offset, fields: ["id"] });
149
161
  const results = page.results ?? [];
150
162
  for (const doc of results) {
@@ -155,6 +167,7 @@ export class MeilisearchBackend implements SearchBackend {
155
167
  hasMore = results.length === PAGE_SIZE;
156
168
  }
157
169
  if (staleIds.length > 0) {
170
+ if (isSearchAborted(execution)) return;
158
171
  const delTask = await index.deleteDocuments(staleIds);
159
172
  await client.waitForTask(delTask.taskUid, { timeOutMs: this.timeoutMs });
160
173
  }
@@ -207,12 +220,22 @@ export class MeilisearchBackend implements SearchBackend {
207
220
  return this.client;
208
221
  }
209
222
 
210
- private async doSearch(query: string, limit: number, extra?: Record<string, unknown>, collection?: string, rethrow = false): Promise<SearchResult[]> {
223
+ private async doSearch(
224
+ query: string,
225
+ limit: number,
226
+ extra?: Record<string, unknown>,
227
+ collection?: string,
228
+ rethrow = false,
229
+ execution?: SearchExecutionOptions,
230
+ ): Promise<SearchResult[]> {
211
231
  if (!this.available) return [];
232
+ if (isSearchAborted(execution)) return [];
212
233
  try {
213
234
  const client = await this.ensureClient();
235
+ throwIfSearchAborted(execution, "MeilisearchBackend search aborted");
214
236
  const index = client.index(collection ?? this.collection);
215
237
  const result = await index.search(query, { limit, showRankingScore: true, ...extra });
238
+ throwIfSearchAborted(execution, "MeilisearchBackend search aborted");
216
239
  return this.mapHits(result.hits ?? []);
217
240
  } catch (err) {
218
241
  log.debug(`MeilisearchBackend search failed: ${err}`);
@@ -0,0 +1,27 @@
1
+ import assert from "node:assert/strict";
2
+ import path from "node:path";
3
+ import test from "node:test";
4
+
5
+ import { resolveOramaCollectionDbFilePath } from "./orama-backend.js";
6
+
7
+ test("Orama collection filenames cannot escape dbPath", () => {
8
+ const dbPath = path.join("/tmp", "remnic-orama-db");
9
+
10
+ assert.equal(
11
+ resolveOramaCollectionDbFilePath(dbPath, "openclaw-engram"),
12
+ path.join(dbPath, "openclaw-engram.msp"),
13
+ );
14
+ for (const collection of [
15
+ "../outside",
16
+ "nested/name",
17
+ "",
18
+ ".hidden",
19
+ "collection name",
20
+ ]) {
21
+ assert.throws(
22
+ () => resolveOramaCollectionDbFilePath(dbPath, collection),
23
+ /Invalid Orama collection/,
24
+ collection,
25
+ );
26
+ }
27
+ });
@@ -4,6 +4,7 @@ import { log } from "../logger.js";
4
4
  import type { SearchBackend, SearchExecutionOptions, SearchQueryOptions, SearchResult } from "./port.js";
5
5
  import type { EmbedHelper } from "./embed-helper.js";
6
6
  import { scanMemoryDir } from "./document-scanner.js";
7
+ import { isSearchAborted, throwIfSearchAborted } from "./abort.js";
7
8
 
8
9
  export interface OramaBackendOptions {
9
10
  dbPath: string;
@@ -13,6 +14,30 @@ export interface OramaBackendOptions {
13
14
  embeddingDimension: number;
14
15
  }
15
16
 
17
+ const ORAMA_COLLECTION_FILENAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
18
+
19
+ function pathIsInside(parent: string, child: string): boolean {
20
+ const relative = path.relative(parent, child);
21
+ return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
22
+ }
23
+
24
+ export function resolveOramaCollectionDbFilePath(dbPath: string, collection: string): string {
25
+ if (!ORAMA_COLLECTION_FILENAME_PATTERN.test(collection)) {
26
+ throw new Error(
27
+ `Invalid Orama collection name ${JSON.stringify(collection)}. ` +
28
+ "Collection names must match [A-Za-z0-9][A-Za-z0-9._-]*.",
29
+ );
30
+ }
31
+ const resolvedDbPath = path.resolve(dbPath);
32
+ const filePath = path.resolve(resolvedDbPath, `${collection}.msp`);
33
+ if (!pathIsInside(resolvedDbPath, filePath)) {
34
+ throw new Error(
35
+ `Invalid Orama collection path for ${JSON.stringify(collection)}: resolved outside dbPath.`,
36
+ );
37
+ }
38
+ return filePath;
39
+ }
40
+
16
41
  /**
17
42
  * Orama search backend — embedded hybrid FTS+vector, pure JS.
18
43
  *
@@ -64,21 +89,23 @@ export class OramaBackend implements SearchBackend {
64
89
  _collection?: string,
65
90
  maxResults?: number,
66
91
  _options?: SearchQueryOptions,
67
- _execution?: SearchExecutionOptions,
92
+ execution?: SearchExecutionOptions,
68
93
  ): Promise<SearchResult[]> {
69
- return this.hybridSearch(query, _collection, maxResults);
94
+ return this.hybridSearch(query, _collection, maxResults, execution);
70
95
  }
71
96
 
72
- async searchGlobal(query: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
97
+ async searchGlobal(query: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
73
98
  const limit = maxResults ?? 10;
74
99
  if (!this.available) return [];
75
100
  try {
101
+ throwIfSearchAborted(execution, "OramaBackend global search aborted");
76
102
  const files = await this.listDbFiles();
77
103
  const allResults: SearchResult[] = [];
78
104
  for (const file of files) {
105
+ throwIfSearchAborted(execution, "OramaBackend global search aborted");
79
106
  const db = await this.loadDbFromFile(file);
80
107
  if (!db) continue;
81
- const results = await this.searchDb(db, query, "hybrid", limit);
108
+ const results = await this.searchDb(db, query, "hybrid", limit, execution);
82
109
  allResults.push(...results);
83
110
  }
84
111
  allResults.sort((a, b) => b.score - a.score);
@@ -89,34 +116,43 @@ export class OramaBackend implements SearchBackend {
89
116
  }
90
117
  }
91
118
 
92
- async bm25Search(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
119
+ async bm25Search(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
120
+ if (isSearchAborted(execution)) return [];
93
121
  const db = await this.ensureDbForCollection(collection ?? this.collection);
122
+ if (isSearchAborted(execution)) return [];
94
123
  if (!db) return [];
95
- return this.searchDb(db, query, "fulltext", maxResults ?? 10);
124
+ return this.searchDb(db, query, "fulltext", maxResults ?? 10, execution);
96
125
  }
97
126
 
98
- async vectorSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
127
+ async vectorSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
128
+ if (isSearchAborted(execution)) return [];
99
129
  const db = await this.ensureDbForCollection(collection ?? this.collection);
130
+ if (isSearchAborted(execution)) return [];
100
131
  if (!db) return [];
101
- return this.searchDb(db, query, "vector", maxResults ?? 10);
132
+ return this.searchDb(db, query, "vector", maxResults ?? 10, execution);
102
133
  }
103
134
 
104
- async hybridSearch(query: string, collection?: string, maxResults?: number, _execution?: SearchExecutionOptions): Promise<SearchResult[]> {
135
+ async hybridSearch(query: string, collection?: string, maxResults?: number, execution?: SearchExecutionOptions): Promise<SearchResult[]> {
136
+ if (isSearchAborted(execution)) return [];
105
137
  const db = await this.ensureDbForCollection(collection ?? this.collection);
138
+ if (isSearchAborted(execution)) return [];
106
139
  if (!db) return [];
107
- return this.searchDb(db, query, "hybrid", maxResults ?? 10);
140
+ return this.searchDb(db, query, "hybrid", maxResults ?? 10, execution);
108
141
  }
109
142
 
110
143
  async update(execution?: SearchExecutionOptions): Promise<void> {
111
144
  await this.updateCollection(this.collection, execution);
112
145
  }
113
146
 
114
- async updateCollection(collection: string, _execution?: SearchExecutionOptions): Promise<void> {
147
+ async updateCollection(collection: string, execution?: SearchExecutionOptions): Promise<void> {
148
+ if (isSearchAborted(execution)) return;
115
149
  const db = await this.ensureDbForCollection(collection);
150
+ if (isSearchAborted(execution)) return;
116
151
  if (!db) return;
117
152
  const { search: oramaSearch, insert, remove, count } = this.oramaModule;
118
153
 
119
154
  const docs = await scanMemoryDir(this.memoryDir);
155
+ if (isSearchAborted(execution)) return;
120
156
  const docMap = new Map(docs.map((d) => [d.docid, d]));
121
157
  const { update: oramaUpdate } = this.oramaModule;
122
158
 
@@ -126,6 +162,7 @@ export class OramaBackend implements SearchBackend {
126
162
  if (existingCount > 0) {
127
163
  const allHits = await oramaSearch(db, { term: "", limit: existingCount + 100 });
128
164
  for (const hit of allHits.hits) {
165
+ if (isSearchAborted(execution)) return;
129
166
  if (!docMap.has(hit.document.id)) {
130
167
  await remove(db, hit.id);
131
168
  } else {
@@ -139,6 +176,7 @@ export class OramaBackend implements SearchBackend {
139
176
 
140
177
  // Insert new docs, update existing ones (preserving vectors since update is remove+insert)
141
178
  for (const doc of docs) {
179
+ if (isSearchAborted(execution)) return;
142
180
  const existing = existingDocs.get(doc.docid);
143
181
  if (existing) {
144
182
  const payload: Record<string, unknown> = {
@@ -169,6 +207,7 @@ export class OramaBackend implements SearchBackend {
169
207
  }
170
208
  }
171
209
 
210
+ if (isSearchAborted(execution)) return;
172
211
  await this.persistDbForCollection(db, collection);
173
212
  }
174
213
 
@@ -293,7 +332,7 @@ export class OramaBackend implements SearchBackend {
293
332
  }
294
333
 
295
334
  private dbFilePath(collection: string): string {
296
- return path.join(this.dbPath, `${collection}.msp`);
335
+ return resolveOramaCollectionDbFilePath(this.dbPath, collection);
297
336
  }
298
337
 
299
338
  private async listDbFiles(): Promise<string[]> {
@@ -317,16 +356,24 @@ export class OramaBackend implements SearchBackend {
317
356
  }
318
357
  }
319
358
 
320
- private async searchDb(db: any, query: string, mode: "fulltext" | "vector" | "hybrid", limit: number): Promise<SearchResult[]> {
359
+ private async searchDb(
360
+ db: any,
361
+ query: string,
362
+ mode: "fulltext" | "vector" | "hybrid",
363
+ limit: number,
364
+ execution?: SearchExecutionOptions,
365
+ ): Promise<SearchResult[]> {
321
366
  const { search: oramaSearch } = this.oramaModule;
322
367
 
323
368
  try {
369
+ throwIfSearchAborted(execution, `OramaBackend ${mode} search aborted`);
324
370
  let searchParams: any;
325
371
 
326
372
  if (mode === "fulltext") {
327
373
  searchParams = { term: query, limit };
328
374
  } else if (mode === "vector") {
329
- const vec = await this.embedHelper.embed(query);
375
+ const vec = await this.embedHelper.embed(query, { signal: execution?.signal });
376
+ throwIfSearchAborted(execution, `OramaBackend ${mode} search aborted`);
330
377
  if (!vec) {
331
378
  // Fall back to fulltext if no embeddings available
332
379
  searchParams = { term: query, limit };
@@ -335,7 +382,8 @@ export class OramaBackend implements SearchBackend {
335
382
  }
336
383
  } else {
337
384
  // hybrid
338
- const vec = await this.embedHelper.embed(query);
385
+ const vec = await this.embedHelper.embed(query, { signal: execution?.signal });
386
+ throwIfSearchAborted(execution, `OramaBackend ${mode} search aborted`);
339
387
  if (!vec) {
340
388
  searchParams = { term: query, limit };
341
389
  } else {
@@ -343,7 +391,9 @@ export class OramaBackend implements SearchBackend {
343
391
  }
344
392
  }
345
393
 
394
+ throwIfSearchAborted(execution, `OramaBackend ${mode} search aborted`);
346
395
  const result = await oramaSearch(db, searchParams);
396
+ throwIfSearchAborted(execution, `OramaBackend ${mode} search aborted`);
347
397
  return (result.hits ?? []).map((hit: any) => ({
348
398
  docid: hit.document?.id ?? "",
349
399
  path: hit.document?.path ?? "",