@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.
- package/dist/abstraction-nodes.js +2 -2
- package/dist/access-cli.d.ts +1 -1
- package/dist/access-cli.js +156 -119
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +9 -5
- package/dist/access-http.js +51 -51
- package/dist/access-idempotency.d.ts +2 -0
- package/dist/access-idempotency.js +1 -1
- package/dist/access-mcp.d.ts +16 -9
- package/dist/access-mcp.js +44 -44
- package/dist/access-schema.d.ts +47 -15
- package/dist/access-schema.js +8 -8
- package/dist/{access-service-B5hgZPCN.d.ts → access-service-qrrIrC-0.d.ts} +11 -129
- package/dist/access-service.d.ts +7 -4
- package/dist/access-service.js +40 -40
- package/dist/action-confidence.d.ts +1 -0
- package/dist/active-memory-bridge.d.ts +1 -0
- package/dist/active-memory-bridge.js +3 -2
- package/dist/active-recall.d.ts +1 -0
- package/dist/active-recall.js +14 -9
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/claude-code.d.ts +6 -2
- package/dist/adapters/claude-code.js +2 -2
- package/dist/adapters/codex.d.ts +5 -1
- package/dist/adapters/codex.js +2 -2
- package/dist/adapters/hermes.js +2 -2
- package/dist/adapters/index.js +6 -6
- package/dist/adapters/registry.js +6 -6
- package/dist/adapters/replit.d.ts +4 -2
- package/dist/adapters/replit.js +2 -2
- package/dist/adapters/types.d.ts +4 -0
- package/dist/adapters/types.js +1 -1
- package/dist/behavior-learner.d.ts +1 -0
- package/dist/behavior-signals.d.ts +1 -0
- package/dist/behavior-signals.js +1 -1
- package/dist/bootstrap.d.ts +5 -3
- package/dist/bootstrap.js +2 -2
- package/dist/boxes.d.ts +1 -0
- package/dist/boxes.js +1 -1
- package/dist/briefing.d.ts +1 -0
- package/dist/briefing.js +9 -9
- package/dist/buffer-surprise-report.d.ts +1 -0
- package/dist/buffer.d.ts +1 -0
- package/dist/buffer.js +2 -2
- package/dist/bulk-import/index.d.ts +28 -0
- package/dist/bulk-import/index.js +31 -0
- package/dist/calibration.d.ts +2 -0
- package/dist/calibration.js +50 -17
- package/dist/calibration.js.map +1 -1
- package/dist/{capsule-crypto-5CYAGVC5.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/{capsule-merge-4MGKE7C5.js → capsule-merge-T2JRE46P.js} +3 -3
- package/dist/causal-behavior.d.ts +1 -0
- package/dist/causal-behavior.js +4 -4
- package/dist/causal-chain.js +4 -4
- package/dist/causal-consolidation.d.ts +16 -1
- package/dist/causal-consolidation.js +115 -32
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +14 -6
- package/dist/causal-retrieval.js.map +1 -1
- package/dist/causal-trajectory-graph.js +2 -2
- package/dist/causal-trajectory.js +2 -2
- package/dist/{chunk-SAZS2QZB.js → chunk-23UORJ4S.js} +3 -3
- package/dist/{chunk-76FLAAUC.js → chunk-2AN2L4NL.js} +17 -6
- package/dist/chunk-2AN2L4NL.js.map +1 -0
- package/dist/{chunk-W4L6CZKA.js → chunk-2DL3OFLD.js} +15 -10
- package/dist/chunk-2DL3OFLD.js.map +1 -0
- package/dist/{chunk-7OZ53EXP.js → chunk-2NLLXCJG.js} +21 -10
- package/dist/chunk-2NLLXCJG.js.map +1 -0
- package/dist/{chunk-PK7H5L6Y.js → chunk-2NM43EWN.js} +2 -2
- package/dist/{chunk-PYXS46O7.js → chunk-3BP57I6J.js} +2 -2
- package/dist/{chunk-FBYESMQ2.js → chunk-3C5RPJAX.js} +2 -2
- package/dist/{chunk-QKZGQIPJ.js → chunk-3Q4H3OBR.js} +171 -64
- package/dist/chunk-3Q4H3OBR.js.map +1 -0
- package/dist/{chunk-FKFMOY3N.js → chunk-42NQ7AVG.js} +3 -4
- package/dist/{chunk-FKFMOY3N.js.map → chunk-42NQ7AVG.js.map} +1 -1
- package/dist/chunk-4426WSWL.js +73 -0
- package/dist/chunk-4426WSWL.js.map +1 -0
- package/dist/{chunk-LIRZNNUP.js → chunk-44442YCH.js} +5 -2
- package/dist/chunk-44442YCH.js.map +1 -0
- package/dist/{chunk-H3ME6L6D.js → chunk-46GJIW5M.js} +23 -20
- package/dist/chunk-46GJIW5M.js.map +1 -0
- package/dist/{chunk-QDZ2RLEC.js → chunk-472U7RDF.js} +3 -3
- package/dist/chunk-472U7RDF.js.map +1 -0
- package/dist/{chunk-NN2DKE4T.js → chunk-4H5ZJHEN.js} +16 -3
- package/dist/{chunk-NN2DKE4T.js.map → chunk-4H5ZJHEN.js.map} +1 -1
- package/dist/{chunk-56K5QLHX.js → chunk-4HP7HIE3.js} +56 -13
- package/dist/chunk-4HP7HIE3.js.map +1 -0
- package/dist/{chunk-RK2Y4XOM.js → chunk-4JRRISLU.js} +9 -6
- package/dist/chunk-4JRRISLU.js.map +1 -0
- package/dist/{chunk-MG7NA5H3.js → chunk-4Q73JBSM.js} +17 -12
- package/dist/chunk-4Q73JBSM.js.map +1 -0
- package/dist/{chunk-XKLD5OK4.js → chunk-4RR6ROTB.js} +10 -11
- package/dist/chunk-4RR6ROTB.js.map +1 -0
- package/dist/{chunk-4KGVTPGD.js → chunk-6F6BXB7A.js} +9 -8
- package/dist/chunk-6F6BXB7A.js.map +1 -0
- package/dist/{chunk-NMZY542O.js → chunk-6URPAY2D.js} +41 -17
- package/dist/chunk-6URPAY2D.js.map +1 -0
- package/dist/{chunk-N53K2EXC.js → chunk-6VF75M3X.js} +2 -2
- package/dist/{chunk-XSZEP4SF.js → chunk-6XSPNR6L.js} +6 -5
- package/dist/chunk-6XSPNR6L.js.map +1 -0
- package/dist/{chunk-6H2TESSP.js → chunk-765K3SAT.js} +3 -3
- package/dist/{chunk-EDTHC6UD.js → chunk-77NAFXUD.js} +2 -2
- package/dist/{chunk-S7KDBTWT.js → chunk-7F7Z6MOS.js} +29 -14
- package/dist/chunk-7F7Z6MOS.js.map +1 -0
- package/dist/{chunk-MZH6EHNR.js → chunk-7H6CFEBJ.js} +41 -14
- package/dist/chunk-7H6CFEBJ.js.map +1 -0
- package/dist/{chunk-575RMLWN.js → chunk-7MV5CWTE.js} +26 -20
- package/dist/chunk-7MV5CWTE.js.map +1 -0
- package/dist/{chunk-MGKYQQYF.js → chunk-7Q3RCKAQ.js} +2 -2
- package/dist/chunk-7RXCMVFQ.js +27 -0
- package/dist/chunk-7RXCMVFQ.js.map +1 -0
- package/dist/{chunk-DGXUHMOV.js → chunk-A2IYSXDQ.js} +25 -6
- package/dist/chunk-A2IYSXDQ.js.map +1 -0
- package/dist/{chunk-EABGC2TL.js → chunk-A2Z6UCWT.js} +26 -4
- package/dist/chunk-A2Z6UCWT.js.map +1 -0
- package/dist/{chunk-3VAL7ZL2.js → chunk-A52AKD7C.js} +59 -24
- package/dist/chunk-A52AKD7C.js.map +1 -0
- package/dist/{chunk-5375UYTQ.js → chunk-A6D7A2FW.js} +4 -4
- package/dist/chunk-A6D7A2FW.js.map +1 -0
- package/dist/{chunk-FAAFWE4G.js → chunk-ALEPI75L.js} +24 -6
- package/dist/chunk-ALEPI75L.js.map +1 -0
- package/dist/{chunk-3SLRNYNG.js → chunk-AUDJPF4N.js} +15 -4
- package/dist/chunk-AUDJPF4N.js.map +1 -0
- package/dist/chunk-B5XMS73R.js +145 -0
- package/dist/chunk-B5XMS73R.js.map +1 -0
- package/dist/{chunk-HXXBL2KD.js → chunk-BECQDWBA.js} +44 -4
- package/dist/chunk-BECQDWBA.js.map +1 -0
- package/dist/{chunk-7SEAZFFB.js → chunk-BEUDU7Y4.js} +24 -4
- package/dist/chunk-BEUDU7Y4.js.map +1 -0
- package/dist/{chunk-XVVIG67A.js → chunk-BLZAVUD2.js} +61 -17
- package/dist/chunk-BLZAVUD2.js.map +1 -0
- package/dist/chunk-CHBI22MI.js +159 -0
- package/dist/chunk-CHBI22MI.js.map +1 -0
- package/dist/{chunk-GDFS42HT.js → chunk-CHCA44C3.js} +15 -8
- package/dist/chunk-CHCA44C3.js.map +1 -0
- package/dist/chunk-CINZGPSJ.js +22 -0
- package/dist/chunk-CINZGPSJ.js.map +1 -0
- package/dist/chunk-CMTINOFS.js +36 -0
- package/dist/chunk-CMTINOFS.js.map +1 -0
- package/dist/{chunk-34DQE4KF.js → chunk-CO7ZO4TU.js} +2 -2
- package/dist/{chunk-PFV5C235.js → chunk-CPPS65WS.js} +2 -1
- package/dist/{chunk-PFV5C235.js.map → chunk-CPPS65WS.js.map} +1 -1
- package/dist/{chunk-DINWEURR.js → chunk-CSKLPDN6.js} +20 -6
- package/dist/chunk-CSKLPDN6.js.map +1 -0
- package/dist/chunk-CWWMTTQE.js +566 -0
- package/dist/chunk-CWWMTTQE.js.map +1 -0
- package/dist/{chunk-IQT3XTKW.js → chunk-D24OXEPB.js} +13 -7
- package/dist/chunk-D24OXEPB.js.map +1 -0
- package/dist/{chunk-KRBK4BQH.js → chunk-D6WE5MTW.js} +272 -411
- package/dist/chunk-D6WE5MTW.js.map +1 -0
- package/dist/{chunk-WIICJPET.js → chunk-DEUNUKTD.js} +6 -4
- package/dist/{chunk-WIICJPET.js.map → chunk-DEUNUKTD.js.map} +1 -1
- package/dist/{chunk-ZYVPLJ4T.js → chunk-DHGSZ3UD.js} +9 -7
- package/dist/chunk-DHGSZ3UD.js.map +1 -0
- package/dist/{chunk-JR4ZC3G4.js → chunk-DLJ4IR6M.js} +91 -41
- package/dist/chunk-DLJ4IR6M.js.map +1 -0
- package/dist/{chunk-U4SCL7B7.js → chunk-DRD2Q7HQ.js} +82 -18
- package/dist/chunk-DRD2Q7HQ.js.map +1 -0
- package/dist/{chunk-2IWUMAES.js → chunk-E62SBGQ3.js} +28 -13
- package/dist/chunk-E62SBGQ3.js.map +1 -0
- package/dist/{chunk-C5BCH4ZS.js → chunk-EAZGEEG2.js} +21 -3
- package/dist/chunk-EAZGEEG2.js.map +1 -0
- package/dist/{chunk-TPB3I2AC.js → chunk-ECZU5BJH.js} +31 -10
- package/dist/chunk-ECZU5BJH.js.map +1 -0
- package/dist/{chunk-77H5NU3M.js → chunk-EDBEWFJO.js} +82 -18
- package/dist/chunk-EDBEWFJO.js.map +1 -0
- package/dist/chunk-EDQVAMQI.js +308 -0
- package/dist/chunk-EDQVAMQI.js.map +1 -0
- package/dist/{chunk-RRF5UOBJ.js → chunk-EI6V5UXY.js} +22 -15
- package/dist/chunk-EI6V5UXY.js.map +1 -0
- package/dist/{chunk-I5GLV3VE.js → chunk-EIPUHVKE.js} +31 -24
- package/dist/{chunk-I5GLV3VE.js.map → chunk-EIPUHVKE.js.map} +1 -1
- package/dist/{chunk-ZKSK55RC.js → chunk-ETUPBUHB.js} +2 -2
- package/dist/{chunk-25MQ7IHJ.js → chunk-EUML3N6B.js} +17 -6
- package/dist/chunk-EUML3N6B.js.map +1 -0
- package/dist/{chunk-5RGLBDQF.js → chunk-EVZFIAPG.js} +12 -12
- package/dist/chunk-EVZFIAPG.js.map +1 -0
- package/dist/{chunk-QRNI5JBH.js → chunk-EYIEWJNI.js} +2 -2
- package/dist/{chunk-3OWUCDKH.js → chunk-FER4WARO.js} +176 -42
- package/dist/chunk-FER4WARO.js.map +1 -0
- package/dist/{chunk-43PJZYGL.js → chunk-FPGE5NVO.js} +45 -10
- package/dist/chunk-FPGE5NVO.js.map +1 -0
- package/dist/{chunk-C6QPK5GG.js → chunk-FZZ2QTJI.js} +2 -2
- package/dist/{chunk-D46YSIYX.js → chunk-G3Z3QEF5.js} +19 -11
- package/dist/{chunk-D46YSIYX.js.map → chunk-G3Z3QEF5.js.map} +1 -1
- package/dist/{chunk-3JXBXXM2.js → chunk-G4IAEX6D.js} +2 -2
- package/dist/{chunk-MSWG7JI6.js → chunk-G56P5RLD.js} +8 -2
- package/dist/chunk-G56P5RLD.js.map +1 -0
- package/dist/{chunk-AGZQD76C.js → chunk-GCGJW34D.js} +48 -2
- package/dist/chunk-GCGJW34D.js.map +1 -0
- package/dist/chunk-H2NCNXMS.js +159 -0
- package/dist/chunk-H2NCNXMS.js.map +1 -0
- package/dist/{chunk-XYIK4LF6.js → chunk-H3FZVNRN.js} +8 -2
- package/dist/chunk-H3FZVNRN.js.map +1 -0
- package/dist/{chunk-TK4UEOSK.js → chunk-HDDRVXX4.js} +8 -8
- package/dist/chunk-HDDRVXX4.js.map +1 -0
- package/dist/{chunk-LLQ2LLWF.js → chunk-HENLZHIT.js} +15 -5
- package/dist/chunk-HENLZHIT.js.map +1 -0
- package/dist/{chunk-N2D6GXBM.js → chunk-HINSGUA7.js} +28 -20
- package/dist/chunk-HINSGUA7.js.map +1 -0
- package/dist/{chunk-APO3DCMU.js → chunk-HLAVGJ62.js} +30 -8
- package/dist/chunk-HLAVGJ62.js.map +1 -0
- package/dist/{chunk-TPMQ3G6Z.js → chunk-HOJZMQ4J.js} +2 -2
- package/dist/chunk-HOJZMQ4J.js.map +1 -0
- package/dist/{chunk-LUDTDZLK.js → chunk-HPWVAEET.js} +33 -7
- package/dist/chunk-HPWVAEET.js.map +1 -0
- package/dist/{chunk-NZL6GGQE.js → chunk-HQ6NIBL6.js} +92 -30
- package/dist/chunk-HQ6NIBL6.js.map +1 -0
- package/dist/{chunk-UWVJF25J.js → chunk-HWVTS5NO.js} +20 -6
- package/dist/chunk-HWVTS5NO.js.map +1 -0
- package/dist/{chunk-2WWLHTZY.js → chunk-IC4GELZE.js} +2 -2
- package/dist/{chunk-QA2ZAPBU.js → chunk-IPLYGWQF.js} +28 -20
- package/dist/chunk-IPLYGWQF.js.map +1 -0
- package/dist/{chunk-A6KTB5R6.js → chunk-IQ3OI2RR.js} +3 -3
- package/dist/chunk-IQ3OI2RR.js.map +1 -0
- package/dist/{chunk-6LVVDPJ4.js → chunk-J64TK33U.js} +3 -4
- package/dist/chunk-J64TK33U.js.map +1 -0
- package/dist/{chunk-6FC5EGNV.js → chunk-JBPKEARU.js} +15 -5
- package/dist/{chunk-6FC5EGNV.js.map → chunk-JBPKEARU.js.map} +1 -1
- package/dist/{chunk-RHY3HH7P.js → chunk-JFEKNTX7.js} +125 -33
- package/dist/chunk-JFEKNTX7.js.map +1 -0
- package/dist/{chunk-TZOLIGIG.js → chunk-JJEJJ7RK.js} +4 -2
- package/dist/chunk-JJEJJ7RK.js.map +1 -0
- package/dist/{chunk-PCUKNJAZ.js → chunk-JKV57BTN.js} +2 -2
- package/dist/{chunk-EJI5XIBB.js → chunk-JLNBQWZ2.js} +55 -7
- package/dist/chunk-JLNBQWZ2.js.map +1 -0
- package/dist/{chunk-XIG5PDM7.js → chunk-JUC24CTX.js} +8 -12
- package/dist/chunk-JUC24CTX.js.map +1 -0
- package/dist/{chunk-UL2NNBUL.js → chunk-JYIKKAK3.js} +106 -44
- package/dist/chunk-JYIKKAK3.js.map +1 -0
- package/dist/{chunk-OIGNEXKZ.js → chunk-K5O2QY6T.js} +5 -1
- package/dist/{chunk-OIGNEXKZ.js.map → chunk-K5O2QY6T.js.map} +1 -1
- package/dist/{chunk-ZTFCYYEZ.js → chunk-KCYE2MZM.js} +3 -3
- package/dist/chunk-KCYE2MZM.js.map +1 -0
- package/dist/{chunk-JWPLJLDU.js → chunk-KD3QD3A5.js} +2 -2
- package/dist/{chunk-JWPLJLDU.js.map → chunk-KD3QD3A5.js.map} +1 -1
- package/dist/{chunk-YRMVARQP.js → chunk-KFY3SGN7.js} +49 -2
- package/dist/chunk-KFY3SGN7.js.map +1 -0
- package/dist/{chunk-CYFQJMUV.js → chunk-KIB7SDIJ.js} +15 -10
- package/dist/chunk-KIB7SDIJ.js.map +1 -0
- package/dist/{chunk-3KW65B36.js → chunk-KILOTVIF.js} +95 -48
- package/dist/chunk-KILOTVIF.js.map +1 -0
- package/dist/{chunk-MXFBBHJU.js → chunk-KJMYHC7K.js} +10 -5
- package/dist/chunk-KJMYHC7K.js.map +1 -0
- package/dist/{chunk-W3LR522O.js → chunk-KM2A35EO.js} +36 -34
- package/dist/chunk-KM2A35EO.js.map +1 -0
- package/dist/{chunk-WELDCG6C.js → chunk-L227SKTB.js} +109 -36
- package/dist/chunk-L227SKTB.js.map +1 -0
- package/dist/{chunk-W6AQJ2PY.js → chunk-L7S47WZT.js} +35 -16
- package/dist/chunk-L7S47WZT.js.map +1 -0
- package/dist/{chunk-BVF3AGJP.js → chunk-LJBOVCQG.js} +26 -11
- package/dist/chunk-LJBOVCQG.js.map +1 -0
- package/dist/{chunk-2KI4QFHU.js → chunk-LMDRGRJ2.js} +2 -2
- package/dist/{chunk-MY6TPVXW.js → chunk-LMPHTYJC.js} +2 -2
- package/dist/{chunk-EHRTFRWW.js → chunk-LQHDIS7L.js} +10 -5
- package/dist/chunk-LQHDIS7L.js.map +1 -0
- package/dist/chunk-LUDUFZTV.js +170 -0
- package/dist/chunk-LUDUFZTV.js.map +1 -0
- package/dist/{chunk-5HRY2WRF.js → chunk-LZ3VEOU5.js} +2 -2
- package/dist/{chunk-Q7P4WJDP.js → chunk-M5T4Q2ZU.js} +1 -1
- package/dist/chunk-M5T4Q2ZU.js.map +1 -0
- package/dist/{chunk-ICRIXAP2.js → chunk-MC4FJXPA.js} +16 -6
- package/dist/chunk-MC4FJXPA.js.map +1 -0
- package/dist/{chunk-WPGJYVUH.js → chunk-MGVIEM2O.js} +23 -6
- package/dist/chunk-MGVIEM2O.js.map +1 -0
- package/dist/{chunk-OC7KHOOX.js → chunk-O27WNHTT.js} +22 -6
- package/dist/chunk-O27WNHTT.js.map +1 -0
- package/dist/{chunk-NGAVDO7E.js → chunk-OADWQ5CR.js} +2 -2
- package/dist/{chunk-2NMMFZ5T.js → chunk-OD4FM2U7.js} +6 -3
- package/dist/chunk-OD4FM2U7.js.map +1 -0
- package/dist/{chunk-OZHRDTDX.js → chunk-OKTXM5H4.js} +11 -1
- package/dist/chunk-OKTXM5H4.js.map +1 -0
- package/dist/{chunk-RXDLTSWT.js → chunk-ONPLNAPX.js} +16 -7
- package/dist/chunk-ONPLNAPX.js.map +1 -0
- package/dist/{chunk-FJ43PRLT.js → chunk-ORFGK3XI.js} +20 -14
- package/dist/chunk-ORFGK3XI.js.map +1 -0
- package/dist/{chunk-DOM4GKSW.js → chunk-OZKVVUJB.js} +3 -3
- package/dist/{chunk-MT4HVDUZ.js → chunk-PM3QHTFT.js} +3 -3
- package/dist/{chunk-4DWOBS2A.js → chunk-PRQJ5ESM.js} +27 -2
- package/dist/{chunk-4DWOBS2A.js.map → chunk-PRQJ5ESM.js.map} +1 -1
- package/dist/chunk-PU44GBL4.js +52 -0
- package/dist/chunk-PU44GBL4.js.map +1 -0
- package/dist/{chunk-MJFNCJXV.js → chunk-Q4CAQGKQ.js} +47 -9
- package/dist/chunk-Q4CAQGKQ.js.map +1 -0
- package/dist/{chunk-U3WSW6PZ.js → chunk-QMYXNM4P.js} +90 -35
- package/dist/chunk-QMYXNM4P.js.map +1 -0
- package/dist/{chunk-NBNN5GOB.js → chunk-QY7YA7OL.js} +11 -2
- package/dist/chunk-QY7YA7OL.js.map +1 -0
- package/dist/{chunk-QLLBRHAT.js → chunk-R26QUUQN.js} +181 -257
- package/dist/chunk-R26QUUQN.js.map +1 -0
- package/dist/{chunk-ZK7I7JYV.js → chunk-R3PS27B4.js} +7 -7
- package/dist/{chunk-TMQLARTH.js → chunk-RCTS5CKK.js} +33 -14
- package/dist/chunk-RCTS5CKK.js.map +1 -0
- package/dist/{chunk-2PRLKQAH.js → chunk-RLV3PQGH.js} +35 -19
- package/dist/chunk-RLV3PQGH.js.map +1 -0
- package/dist/{chunk-WW3QQF4H.js → chunk-ROZJACKP.js} +16 -1
- package/dist/chunk-ROZJACKP.js.map +1 -0
- package/dist/{chunk-7MNMYOFP.js → chunk-RSUYKGGZ.js} +3 -4
- package/dist/chunk-RSUYKGGZ.js.map +1 -0
- package/dist/{chunk-LT3NLYSI.js → chunk-RUZOJKNF.js} +10 -7
- package/dist/chunk-RUZOJKNF.js.map +1 -0
- package/dist/{chunk-326G7DJK.js → chunk-RW5DGAGO.js} +67 -13
- package/dist/chunk-RW5DGAGO.js.map +1 -0
- package/dist/{chunk-KOSORCJG.js → chunk-S53PKKWK.js} +63 -24
- package/dist/chunk-S53PKKWK.js.map +1 -0
- package/dist/{chunk-65PG43EQ.js → chunk-S7WU3Y3D.js} +21 -4
- package/dist/chunk-S7WU3Y3D.js.map +1 -0
- package/dist/{chunk-SKE7JYKA.js → chunk-SFXKHM7P.js} +2 -2
- package/dist/{chunk-HMDCOMYU.js → chunk-SKGV326D.js} +3 -3
- package/dist/chunk-T2PO5MUF.js +62 -0
- package/dist/chunk-T2PO5MUF.js.map +1 -0
- package/dist/{chunk-C7VW7C3F.js → chunk-TDKQGLJW.js} +3 -3
- package/dist/chunk-TDKQGLJW.js.map +1 -0
- package/dist/{chunk-3QKK7QOS.js → chunk-TERNBNJB.js} +3 -3
- package/dist/chunk-TERNBNJB.js.map +1 -0
- package/dist/{chunk-MXC3AP5I.js → chunk-TGQ2NTWH.js} +12 -7
- package/dist/chunk-TGQ2NTWH.js.map +1 -0
- package/dist/{chunk-3Y4P7RXM.js → chunk-TMSXWOBZ.js} +3 -4
- package/dist/chunk-TMSXWOBZ.js.map +1 -0
- package/dist/{chunk-3TNBOMQT.js → chunk-TVRN5QKH.js} +11 -11
- package/dist/{chunk-3TNBOMQT.js.map → chunk-TVRN5QKH.js.map} +1 -1
- package/dist/{chunk-5UM2VJ6D.js → chunk-UEY3VB6W.js} +2 -2
- package/dist/{chunk-I6K5FBRQ.js → chunk-UI3NYK34.js} +4 -1
- package/dist/{chunk-I6K5FBRQ.js.map → chunk-UI3NYK34.js.map} +1 -1
- package/dist/{chunk-VBJ7V5SK.js → chunk-UIPDNLXA.js} +21 -8
- package/dist/chunk-UIPDNLXA.js.map +1 -0
- package/dist/{chunk-GIF42EW3.js → chunk-UP6MOYCB.js} +3 -3
- package/dist/{chunk-K4FLSOR5.js → chunk-USYGGIJZ.js} +44 -15
- package/dist/chunk-USYGGIJZ.js.map +1 -0
- package/dist/{chunk-FIT6DMX6.js → chunk-UWY7GIVS.js} +152 -54
- package/dist/chunk-UWY7GIVS.js.map +1 -0
- package/dist/{chunk-MRILGULB.js → chunk-V2RCP53Q.js} +2 -2
- package/dist/{chunk-XKECPATV.js → chunk-VFUEZZBS.js} +113 -4
- package/dist/chunk-VFUEZZBS.js.map +1 -0
- package/dist/{chunk-FSFEQI74.js → chunk-W7L6HXUC.js} +2 -2
- package/dist/{chunk-3IQ2TR4N.js → chunk-WLEB7WCG.js} +2 -2
- package/dist/{chunk-GL6I6MEQ.js → chunk-WSGF57U2.js} +3 -3
- package/dist/{chunk-KNKUID7G.js → chunk-X7Y7WX73.js} +72 -6
- package/dist/chunk-X7Y7WX73.js.map +1 -0
- package/dist/{chunk-5NPGSAVB.js → chunk-XEKAG3FM.js} +23 -5
- package/dist/chunk-XEKAG3FM.js.map +1 -0
- package/dist/{chunk-3APJ5EVB.js → chunk-XKIQZXUB.js} +41 -26
- package/dist/chunk-XKIQZXUB.js.map +1 -0
- package/dist/chunk-XKXKSQU7.js +92 -0
- package/dist/chunk-XKXKSQU7.js.map +1 -0
- package/dist/{chunk-JA3AK3PT.js → chunk-XNLXAWHX.js} +4 -4
- package/dist/{chunk-CULXMQJH.js → chunk-XPXEJRUB.js} +3 -3
- package/dist/chunk-XPXEJRUB.js.map +1 -0
- package/dist/{chunk-PZIAX57I.js → chunk-XR6DNK4U.js} +7 -4
- package/dist/chunk-XR6DNK4U.js.map +1 -0
- package/dist/{chunk-47VWKCAF.js → chunk-XSQ4SGM5.js} +33 -4
- package/dist/chunk-XSQ4SGM5.js.map +1 -0
- package/dist/{chunk-66DHUKLO.js → chunk-XSWKORGM.js} +16 -14
- package/dist/chunk-XSWKORGM.js.map +1 -0
- package/dist/{chunk-QR3C7BKQ.js → chunk-XZ4WBBB5.js} +7 -8
- package/dist/chunk-XZ4WBBB5.js.map +1 -0
- package/dist/{chunk-WNARATI3.js → chunk-Y2SXZ5KZ.js} +59 -11
- package/dist/chunk-Y2SXZ5KZ.js.map +1 -0
- package/dist/{chunk-SIC6U3GZ.js → chunk-YHV3KRKS.js} +3 -3
- package/dist/{chunk-ZPKBYX2F.js → chunk-YNDLCWXS.js} +85 -9
- package/dist/chunk-YNDLCWXS.js.map +1 -0
- package/dist/{chunk-VLXA6PI2.js → chunk-YQMZ7IH2.js} +4 -4
- package/dist/{chunk-TMM4S4IJ.js → chunk-YR6GIWWY.js} +58 -8
- package/dist/chunk-YR6GIWWY.js.map +1 -0
- package/dist/{chunk-DK5LDEQM.js → chunk-YR7XMOWK.js} +39 -23
- package/dist/chunk-YR7XMOWK.js.map +1 -0
- package/dist/chunk-ZFXCQPNO.js +27 -0
- package/dist/chunk-ZFXCQPNO.js.map +1 -0
- package/dist/citations.js +1 -1
- package/dist/{cli-CJKI2JIe.d.ts → cli-X4NJoqSe.d.ts} +8 -31
- package/dist/cli.d.ts +10 -6
- package/dist/cli.js +122 -117
- package/dist/commitment-ledger.js +2 -2
- package/dist/compat/checks.js +1 -2
- package/dist/compounding/engine.d.ts +3 -2
- package/dist/compounding/engine.js +11 -11
- package/dist/compounding/preference-consolidator.d.ts +1 -0
- package/dist/compounding/preference-consolidator.js +8 -8
- package/dist/compounding/preference-consolidator.js.map +1 -1
- package/dist/compression-optimizer.d.ts +1 -0
- package/dist/compression-optimizer.js +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +3 -2
- package/dist/connectors/codex-materialize-runner.d.ts +1 -0
- package/dist/connectors/codex-materialize-runner.js +12 -11
- package/dist/connectors/codex-materialize.d.ts +1 -0
- package/dist/connectors/codex-materialize.js +3 -2
- package/dist/connectors/index.d.ts +1 -0
- package/dist/connectors/index.js +14 -14
- package/dist/{connectors-cli-CwbyjGR7.d.ts → connectors-cli-DbTPNj2H.d.ts} +7 -1
- package/dist/connectors-cli.d.ts +1 -1
- package/dist/connectors-cli.js +3 -1
- package/dist/consolidation-provenance-check.d.ts +1 -0
- package/dist/consolidation-provenance-check.js +2 -2
- package/dist/consolidation-undo.d.ts +1 -0
- package/dist/consolidation-undo.js +1 -1
- package/dist/contradiction/index.d.ts +3 -1
- package/dist/contradiction/index.js +3 -3
- package/dist/{contradiction-review-ATP4S6IC.js → contradiction-review-6V2LXXK6.js} +2 -2
- package/dist/{contradiction-scan-5A4IDZV5.js → contradiction-scan-GIRVC4C7.js} +3 -3
- package/dist/conversation-index/backend.d.ts +3 -1
- package/dist/conversation-index/backend.js +3 -3
- package/dist/conversation-index/chunker.d.ts +1 -0
- package/dist/conversation-index/cleanup.js +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +2 -1
- package/dist/conversation-index/faiss-adapter.js +1 -1
- package/dist/conversation-index/indexer.d.ts +5 -2
- package/dist/conversation-index/indexer.js +1 -1
- package/dist/conversation-index/search.d.ts +2 -1
- package/dist/cross-namespace-budget.js +1 -1
- package/dist/cue-anchors.js +2 -2
- package/dist/dashboard-runtime.d.ts +6 -0
- package/dist/dashboard-runtime.js +3 -3
- package/dist/day-summary.d.ts +1 -0
- package/dist/day-summary.js +2 -2
- package/dist/delinearize.d.ts +1 -0
- package/dist/direct-answer-wiring.d.ts +1 -0
- package/dist/direct-answer.d.ts +1 -0
- package/dist/{dreams-ledger-LR2NBAZE.js → dreams-ledger-3WSCI5V4.js} +5 -4
- package/dist/{dreams-ledger-LR2NBAZE.js.map → dreams-ledger-3WSCI5V4.js.map} +1 -1
- package/dist/embedding-fallback.d.ts +3 -0
- package/dist/embedding-fallback.js +2 -2
- package/dist/enrichment/index.d.ts +1 -0
- package/dist/enrichment/index.js +1 -1
- package/dist/entity-retrieval.d.ts +2 -0
- package/dist/entity-retrieval.js +9 -9
- package/dist/entity-schema.d.ts +1 -0
- package/dist/evals.js +1 -1
- package/dist/explicit-capture.d.ts +5 -3
- package/dist/explicit-capture.js +2 -2
- package/dist/extraction-judge-telemetry.d.ts +2 -0
- package/dist/extraction-judge-training.d.ts +2 -0
- package/dist/extraction-judge.d.ts +2 -0
- package/dist/extraction.d.ts +2 -0
- package/dist/extraction.js +12 -12
- package/dist/{faiss-adapter-CzPghc4C.d.ts → faiss-adapter-BHecI1fF.d.ts} +4 -1
- package/dist/fallback-llm.d.ts +11 -1
- package/dist/fallback-llm.js +8 -6
- package/dist/{first-start-migration-4MHQEOSD.js → first-start-migration-CKTCTCQI.js} +5 -5
- package/dist/graph-dashboard-diff.d.ts +4 -0
- package/dist/graph-dashboard-diff.js +1 -1
- package/dist/graph-dashboard-parser.js +1 -1
- package/dist/{graph-edge-decay-5DI5GUNL.js → graph-edge-decay-MUP5J7CC.js} +6 -6
- package/dist/graph-events.js +1 -1
- package/dist/graph-snapshot.js +3 -3
- package/dist/graph.js +2 -2
- package/dist/harmonic-retrieval.js +4 -4
- package/dist/identity-continuity.d.ts +1 -0
- package/dist/importance.d.ts +1 -0
- package/dist/importers/index.d.ts +244 -0
- package/dist/importers/index.js +20 -0
- package/dist/index.d.ts +21 -351
- package/dist/index.js +886 -561
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +1 -0
- package/dist/lcm/archive.d.ts +2 -2
- package/dist/lcm/archive.js +2 -2
- package/dist/lcm/engine.d.ts +3 -2
- package/dist/lcm/engine.js +6 -6
- package/dist/lcm/index.d.ts +1 -0
- package/dist/lcm/index.js +8 -8
- package/dist/lcm/recall.js +1 -1
- package/dist/lcm/summarizer.js +3 -3
- package/dist/lcm/tools.d.ts +1 -0
- package/dist/lifecycle.d.ts +1 -0
- package/dist/live-connectors-runner.d.ts +1 -0
- package/dist/live-connectors-runner.js +6 -6
- package/dist/local-llm.d.ts +1 -0
- package/dist/local-llm.js +2 -2
- package/dist/maintenance/archive-observations.js +1 -1
- package/dist/maintenance/memory-governance.d.ts +3 -1
- package/dist/maintenance/memory-governance.js +10 -8
- package/dist/maintenance/migrate-observations.js +3 -2
- package/dist/maintenance/observation-ledger-utils.d.ts +3 -0
- package/dist/maintenance/observation-ledger-utils.js +2 -1
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -1
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +11 -8
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -1
- package/dist/maintenance/rebuild-memory-projection.js +13 -10
- package/dist/maintenance/rebuild-observations.d.ts +1 -0
- package/dist/maintenance/rebuild-observations.js +3 -2
- package/dist/mcp-memory-inspector-app.d.ts +7 -4
- package/dist/mcp-memory-inspector-app.js +1 -1
- package/dist/memory-action-policy.d.ts +1 -0
- package/dist/memory-cache.d.ts +1 -0
- package/dist/memory-cache.js +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -0
- package/dist/memory-projection-store.d.ts +1 -0
- package/dist/memory-projection-store.js +1 -1
- package/dist/memory-provenance.d.ts +1 -0
- package/dist/memory-worth-outcomes.d.ts +1 -0
- package/dist/migrate/from-engram.js +2 -2
- package/dist/{migrate-from-identity-anchor-G27MCD6A.js → migrate-from-identity-anchor-EB4XI4Q2.js} +2 -2
- package/dist/model-registry.js +1 -1
- package/dist/models-json.d.ts +1 -0
- package/dist/namespaces/migrate.d.ts +3 -0
- package/dist/namespaces/migrate.js +24 -22
- package/dist/namespaces/principal.d.ts +1 -0
- package/dist/namespaces/principal.js +2 -1
- package/dist/namespaces/search.d.ts +1 -0
- package/dist/namespaces/search.js +15 -13
- package/dist/namespaces/storage.d.ts +4 -2
- package/dist/namespaces/storage.js +10 -9
- package/dist/native-knowledge.d.ts +1 -0
- package/dist/native-knowledge.js +1 -1
- package/dist/negative.js +1 -1
- package/dist/network/webdav.d.ts +16 -1
- package/dist/network/webdav.js +5 -3
- package/dist/objective-state-writers.js +4 -4
- package/dist/objective-state.js +2 -2
- package/dist/offline-sync.d.ts +8 -1
- package/dist/offline-sync.js +6 -4
- package/dist/operator-toolkit.d.ts +1 -0
- package/dist/operator-toolkit.js +35 -32
- package/dist/opik-exporter.js +1 -1
- package/dist/{orchestrator-DuWl9Hwx.d.ts → orchestrator-Co9nxRLF.d.ts} +4 -74
- package/dist/orchestrator.d.ts +5 -3
- package/dist/orchestrator.js +99 -96
- package/dist/page-versioning.js +1 -1
- package/dist/path-X2K5XCHL.js +9 -0
- package/dist/patterns-cli.d.ts +1 -0
- package/dist/peers/index.d.ts +328 -0
- package/dist/{peers-HCVGHMAE.js → peers/index.js} +4 -4
- package/dist/pipeline-D18UAKlN.d.ts +32 -0
- package/dist/plugin-entry-resolver.d.ts +9 -0
- package/dist/plugin-entry-resolver.js +8 -0
- package/dist/plugin-entry-resolver.js.map +1 -0
- package/dist/plugin-id.d.ts +2 -21
- package/dist/plugin-id.js +33 -4
- package/dist/plugin-id.js.map +1 -1
- package/dist/policy-runtime.d.ts +4 -0
- package/dist/policy-runtime.js +1 -1
- package/dist/profiling.js +1 -1
- package/dist/qmd-recall-cache.d.ts +1 -0
- package/dist/qmd.d.ts +1 -0
- package/dist/qmd.js +3 -3
- package/dist/recall-disclosure-escalation.d.ts +1 -0
- package/dist/recall-explain-renderer.d.ts +1 -0
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-state.d.ts +8 -1
- package/dist/recall-state.js +2 -1
- package/dist/recall-tag-filter.d.ts +1 -0
- package/dist/recall-xray-cli.d.ts +1 -0
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -0
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -0
- package/dist/recall-xray.js +2 -2
- package/dist/relevance.d.ts +7 -1
- package/dist/relevance.js +2 -1
- package/dist/replay/normalizers/chatgpt.js +2 -2
- package/dist/replay/normalizers/claude.js +2 -2
- package/dist/replay/normalizers/openclaw.js +2 -2
- package/dist/replay/normalizers/shared.js +1 -1
- package/dist/replay/runner.js +1 -1
- package/dist/rerank.js +1 -1
- package/dist/{resolution-B7FNQSSP.js → resolution-ZY7VM6WS.js} +3 -3
- package/dist/resolution-ZY7VM6WS.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +1 -0
- package/dist/resolve-auth-token.js +1 -1
- package/dist/resolve-provider-secret.d.ts +19 -29
- package/dist/resolve-provider-secret.js +2 -6
- package/dist/resume-bundles.js +10 -9
- package/dist/retrieval-agents.d.ts +2 -1
- package/dist/retrieval-agents.js +2 -1
- package/dist/retrieval-tiers.d.ts +1 -0
- package/dist/routing/engine.d.ts +1 -0
- package/dist/routing/store.d.ts +3 -0
- package/dist/routing/store.js +1 -1
- package/dist/runtime/env.js +1 -1
- package/dist/schemas.d.ts +213 -39
- package/dist/schemas.js +1 -1
- package/dist/sdk-compat.js +1 -1
- package/dist/search/document-scanner.js +1 -1
- package/dist/search/embed-helper.d.ts +7 -2
- package/dist/search/embed-helper.js +3 -1
- package/dist/search/factory.d.ts +2 -1
- package/dist/search/factory.js +13 -12
- package/dist/search/index.d.ts +2 -1
- package/dist/search/index.js +19 -18
- package/dist/search/lancedb-backend.d.ts +7 -6
- package/dist/search/lancedb-backend.js +4 -2
- package/dist/search/meilisearch-backend.d.ts +7 -6
- package/dist/search/meilisearch-backend.js +4 -2
- package/dist/search/noop-backend.d.ts +1 -0
- package/dist/search/orama-backend.d.ts +9 -7
- package/dist/search/orama-backend.js +8 -4
- package/dist/search/port.d.ts +1 -0
- package/dist/search/remote-backend.d.ts +1 -0
- package/dist/secure-store/index.d.ts +16 -3
- package/dist/secure-store/index.js +2 -2
- package/dist/{semantic-VwGI14Ok.d.ts → semantic-SLAa_prH.d.ts} +5 -3
- package/dist/semantic-consolidation.d.ts +1 -0
- package/dist/semantic-consolidation.js +14 -13
- package/dist/semantic-rule-promotion.js +8 -8
- package/dist/semantic-rule-verifier.d.ts +1 -0
- package/dist/semantic-rule-verifier.js +8 -8
- package/dist/session-integrity.d.ts +1 -0
- package/dist/session-integrity.js +1 -1
- package/dist/session-observer-bands.d.ts +1 -0
- package/dist/session-observer-state.d.ts +6 -1
- package/dist/session-observer-state.js +1 -1
- package/dist/shared-context/manager.d.ts +5 -0
- package/dist/shared-context/manager.js +3 -3
- package/dist/signal.d.ts +1 -0
- package/dist/signal.js +1 -1
- package/dist/source-attribution.js +1 -1
- package/dist/state-store-4QZISH3J.js +30 -0
- package/dist/state-store-4QZISH3J.js.map +1 -0
- package/dist/storage-C4DX8CuG.d.ts +157 -0
- package/dist/storage.d.ts +2 -0
- package/dist/storage.js +7 -7
- package/dist/store-contract.js +1 -1
- package/dist/summarizer.d.ts +1 -0
- package/dist/summarizer.js +7 -7
- package/dist/summary-snapshot.d.ts +1 -0
- package/dist/surfaces/dreams.js +48 -17
- package/dist/surfaces/dreams.js.map +1 -1
- package/dist/temporal-supersession.d.ts +1 -0
- package/dist/temporal-supersession.js +1 -1
- package/dist/temporal-validity.d.ts +1 -0
- package/dist/threading.d.ts +1 -0
- package/dist/tier-migration.d.ts +1 -0
- package/dist/tier-routing.d.ts +1 -0
- package/dist/{tier-stats-62ZVDFKS.js → tier-stats-SKML2OSF.js} +5 -5
- package/dist/tmt.js +1 -1
- package/dist/tokens.js +2 -2
- package/dist/topics.d.ts +1 -0
- package/dist/{trace-C5ETWBEF.js → trace-WM7V4CKI.js} +31 -1
- package/dist/trace-WM7V4CKI.js.map +1 -0
- package/dist/transcript.d.ts +1 -0
- package/dist/transcript.js +2 -2
- package/dist/transfer/autodetect.js +7 -7
- package/dist/transfer/backup.js +5 -5
- package/dist/transfer/capsule-export.js +5 -5
- package/dist/transfer/capsule-import.d.ts +6 -0
- package/dist/transfer/capsule-import.js +4 -4
- package/dist/transfer/export-json.js +3 -3
- package/dist/transfer/export-md.js +3 -3
- package/dist/transfer/export-sqlite.js +3 -3
- package/dist/transfer/fs-utils.d.ts +2 -1
- package/dist/transfer/fs-utils.js +5 -3
- package/dist/transfer/import-json.js +3 -3
- package/dist/transfer/import-md.js +3 -3
- package/dist/transfer/import-sqlite.js +3 -3
- package/dist/transfer/types.d.ts +12 -12
- package/dist/trust-zones.js +2 -2
- package/dist/types-B1VHaf2w.d.ts +126 -0
- package/dist/types-BliCnURB.d.ts +83 -0
- package/dist/types.d.ts +35 -0
- package/dist/types.js +1 -1
- package/dist/utility-learner.js +3 -3
- package/dist/utility-runtime.d.ts +1 -0
- package/dist/utility-runtime.js +4 -4
- package/dist/utility-telemetry.js +2 -2
- package/dist/verified-recall.js +9 -9
- package/dist/work/board.js +2 -2
- package/dist/work/boundary.js +1 -1
- package/dist/work/storage.d.ts +5 -0
- package/dist/work/storage.js +1 -1
- package/dist/work-product-ledger.js +2 -2
- package/package.json +74 -3
- package/scripts/ensure-better-sqlite3.mjs +8 -7
- package/scripts/faiss_index.py +141 -29
- package/src/access-cli.test.ts +87 -2
- package/src/access-cli.ts +59 -5
- package/src/access-http.test.ts +321 -0
- package/src/access-http.ts +201 -35
- package/src/access-idempotency.ts +136 -3
- package/src/access-mcp.test.ts +155 -0
- package/src/access-mcp.ts +116 -30
- package/src/access-schema.ts +22 -4
- package/src/access-service-project-tag.test.ts +37 -0
- package/src/access-service.ts +42 -10
- package/src/active-recall.test.ts +29 -1
- package/src/active-recall.ts +11 -7
- package/src/adapters/claude-code.ts +7 -8
- package/src/adapters/codex.ts +6 -7
- package/src/adapters/hermes.ts +1 -5
- package/src/adapters/registry.test.ts +63 -0
- package/src/adapters/registry.ts +10 -0
- package/src/adapters/replit.ts +5 -7
- package/src/adapters/types.ts +24 -1
- package/src/behavior-signals.ts +1 -1
- package/src/binary-lifecycle/backend.ts +16 -4
- package/src/binary-lifecycle/pipeline.test.ts +149 -0
- package/src/binary-lifecycle/pipeline.ts +49 -7
- package/src/binary-lifecycle/scanner.ts +19 -4
- package/src/boxes.ts +119 -32
- package/src/buffer-session.test.ts +28 -0
- package/src/buffer.ts +10 -14
- package/src/bulk-import/types.ts +10 -0
- package/src/calibration.test.ts +99 -0
- package/src/calibration.ts +57 -13
- package/src/causal-consolidation.test.ts +214 -0
- package/src/causal-consolidation.ts +131 -14
- package/src/causal-retrieval.ts +16 -3
- package/src/citations.test.ts +75 -0
- package/src/citations.ts +19 -6
- package/src/cli.ts +134 -109
- package/src/coding/coding-namespace.test.ts +7 -0
- package/src/coding/coding-namespace.ts +8 -0
- package/src/coding/review-context.test.ts +30 -0
- package/src/coding/review-context.ts +79 -9
- package/src/coding/wire-coding-context.test.ts +16 -0
- package/src/compat/checks.test.ts +33 -0
- package/src/compat/checks.ts +64 -4
- package/src/compounding/engine.ts +2 -2
- package/src/compounding/preference-consolidator.test.ts +47 -0
- package/src/compounding/preference-consolidator.ts +8 -8
- package/src/compression-optimizer.ts +5 -2
- package/src/config.test.ts +34 -2
- package/src/config.ts +62 -18
- package/src/connectors/codex-materialize-runner.ts +4 -3
- package/src/connectors/codex-materialize.ts +149 -34
- package/src/connectors/index.test.ts +144 -7
- package/src/connectors/index.ts +86 -15
- package/src/connectors/live/github.test.ts +47 -0
- package/src/connectors/live/github.ts +29 -1
- package/src/connectors/live/index.ts +2 -0
- package/src/connectors/live/live-connectors.test.ts +359 -73
- package/src/connectors/live/notion.test.ts +84 -0
- package/src/connectors/live/notion.ts +18 -1
- package/src/connectors/live/state-store.ts +419 -38
- package/src/connectors/weclone-installer.test.ts +16 -18
- package/src/connectors-cli.ts +19 -0
- package/src/console/trace.test.ts +28 -0
- package/src/console/trace.ts +42 -5
- package/src/contradiction/contradiction-judge.test.ts +49 -0
- package/src/contradiction/contradiction-judge.ts +15 -5
- package/src/contradiction/contradiction-review.ts +31 -7
- package/src/contradiction/contradiction-scan.ts +28 -18
- package/src/contradiction/contradiction.test.ts +237 -1
- package/src/contradiction/resolution.ts +43 -4
- package/src/conversation-index/backend.ts +13 -5
- package/src/conversation-index/cleanup.ts +25 -4
- package/src/conversation-index/faiss-adapter.ts +24 -15
- package/src/conversation-index/indexer.test.ts +71 -10
- package/src/conversation-index/indexer.ts +22 -3
- package/src/cross-namespace-budget.test.ts +59 -0
- package/src/cross-namespace-budget.ts +15 -7
- package/src/curation/index.ts +18 -17
- package/src/dashboard-runtime.test.ts +98 -0
- package/src/dashboard-runtime.ts +96 -6
- package/src/dedup/index.test.ts +133 -0
- package/src/dedup/index.ts +73 -10
- package/src/dedup/semantic.test.ts +77 -2
- package/src/dedup/semantic.ts +26 -6
- package/src/embedding-fallback.ts +47 -15
- package/src/enrichment/audit.ts +8 -1
- package/src/enrichment/pipeline.ts +21 -13
- package/src/enrichment/web-search-provider.ts +1 -6
- package/src/entity-retrieval.ts +57 -6
- package/src/evals.ts +22 -13
- package/src/explicit-capture.test.ts +40 -0
- package/src/explicit-capture.ts +14 -2
- package/src/extraction.ts +42 -30
- package/src/fallback-llm.ts +35 -2
- package/src/graph-dashboard-diff.test.ts +57 -0
- package/src/graph-dashboard-diff.ts +24 -2
- package/src/graph-dashboard-parser.test.ts +31 -0
- package/src/graph-dashboard-parser.ts +4 -1
- package/src/graph-events.ts +6 -4
- package/src/graph.test.ts +69 -0
- package/src/graph.ts +7 -4
- package/src/importers/base.test.ts +70 -0
- package/src/importers/base.ts +56 -7
- package/src/index.ts +6 -2
- package/src/lcm/archive.ts +65 -16
- package/src/lcm/engine.ts +27 -8
- package/src/lcm/recall.ts +5 -5
- package/src/lcm-engine.test.ts +87 -1
- package/src/lcm-recall.test.ts +71 -0
- package/src/live-connectors-runner.ts +100 -36
- package/src/maintenance/archive-observations.ts +24 -3
- package/src/maintenance/atomic-file.ts +85 -0
- package/src/maintenance/dreams-ledger.ts +15 -8
- package/src/maintenance/memory-governance.test.ts +53 -0
- package/src/maintenance/memory-governance.ts +15 -5
- package/src/maintenance/observation-ledger-utils.ts +6 -5
- package/src/maintenance/purge.test.ts +64 -0
- package/src/maintenance/rebuild-memory-lifecycle-ledger.ts +22 -9
- package/src/maintenance/rebuild-memory-projection.ts +22 -9
- package/src/maintenance/rebuild-observations.ts +7 -3
- package/src/mcp-memory-inspector-app.ts +26 -3
- package/src/memory-cache.test.ts +19 -0
- package/src/memory-cache.ts +1 -0
- package/src/memory-extension/codex-publisher.ts +25 -4
- package/src/memory-extension-host/host-discovery.test.ts +69 -0
- package/src/memory-extension-host/host-discovery.ts +63 -6
- package/src/memory-projection-store.ts +114 -62
- package/src/message-parts/index.ts +46 -31
- package/src/message-parts/message-parts.test.ts +77 -0
- package/src/migrate/from-engram.ts +68 -14
- package/src/model-registry.test.ts +38 -0
- package/src/model-registry.ts +12 -7
- package/src/namespaces/identity.test.ts +66 -0
- package/src/namespaces/identity.ts +23 -0
- package/src/namespaces/migrate.test.ts +62 -0
- package/src/namespaces/migrate.ts +82 -14
- package/src/namespaces/principal.test.ts +37 -1
- package/src/namespaces/principal.ts +18 -7
- package/src/namespaces/search.test.ts +76 -6
- package/src/namespaces/search.ts +22 -21
- package/src/namespaces/storage.ts +93 -11
- package/src/native-knowledge.ts +23 -3
- package/src/negative.ts +50 -5
- package/src/network/webdav.ts +177 -58
- package/src/offline-sync.ts +22 -11
- package/src/onboarding/index.test.ts +105 -0
- package/src/onboarding/index.ts +17 -5
- package/src/operator-toolkit.ts +39 -4
- package/src/orchestrator.ts +52 -17
- package/src/page-versioning.ts +31 -5
- package/src/peers/peers.test.ts +70 -0
- package/src/peers/storage.ts +32 -3
- package/src/plugin-entry-resolver.test.ts +60 -0
- package/src/plugin-entry-resolver.ts +48 -0
- package/src/plugin-id.test.ts +38 -0
- package/src/plugin-id.ts +31 -64
- package/src/policy-runtime.test.ts +75 -0
- package/src/policy-runtime.ts +32 -3
- package/src/procedural/procedure-miner.test.ts +152 -0
- package/src/procedural/procedure-miner.ts +124 -19
- package/src/profiling.test.ts +23 -0
- package/src/profiling.ts +10 -1
- package/src/projection/index.test.ts +253 -0
- package/src/projection/index.ts +159 -18
- package/src/qmd-client.test.ts +45 -0
- package/src/qmd.ts +8 -8
- package/src/recall-disclosure.test.ts +15 -1
- package/src/recall-state.ts +24 -5
- package/src/relevance.ts +24 -5
- package/src/replay/normalizers/chatgpt.ts +14 -4
- package/src/replay/normalizers/claude.ts +8 -3
- package/src/replay/normalizers/openclaw.ts +35 -12
- package/src/replay/normalizers/replay-normalizers.test.ts +65 -0
- package/src/replay/normalizers/shared.ts +4 -1
- package/src/replay/runner.ts +1 -1
- package/src/rerank.test.ts +41 -1
- package/src/rerank.ts +2 -2
- package/src/resolve-auth-token.test.ts +29 -0
- package/src/resolve-auth-token.ts +12 -7
- package/src/resolve-provider-secret.test.ts +78 -22
- package/src/resolve-provider-secret.ts +55 -223
- package/src/retrieval-agents.ts +51 -14
- package/src/review/index.test.ts +75 -1
- package/src/review/index.ts +88 -30
- package/src/routing/store.ts +36 -6
- package/src/runtime/env.test.ts +73 -0
- package/src/runtime/env.ts +7 -11
- package/src/schemas.ts +16 -1
- package/src/search/abort.ts +18 -0
- package/src/search/document-scanner.test.ts +80 -0
- package/src/search/document-scanner.ts +51 -9
- package/src/search/embed-helper.ts +19 -6
- package/src/search/factory.ts +9 -5
- package/src/search/lancedb-backend.ts +62 -22
- package/src/search/meilisearch-backend.ts +35 -12
- package/src/search/orama-backend.test.ts +27 -0
- package/src/search/orama-backend.ts +65 -15
- package/src/secure-store/cli-handlers.ts +70 -6
- package/src/secure-store/cli-renderer.ts +13 -7
- package/src/secure-store/secure-fs.ts +11 -5
- package/src/secure-store/secure-store.test.ts +70 -0
- package/src/semantic-consolidation.test.ts +45 -0
- package/src/semantic-consolidation.ts +3 -3
- package/src/session-integrity.test.ts +98 -0
- package/src/session-integrity.ts +51 -1
- package/src/session-observer-state.ts +108 -41
- package/src/shared-context/manager.ts +93 -15
- package/src/signal.test.ts +14 -0
- package/src/signal.ts +8 -1
- package/src/source-attribution.test.ts +8 -0
- package/src/source-attribution.ts +24 -2
- package/src/spaces/index.test.ts +93 -0
- package/src/spaces/index.ts +75 -9
- package/src/storage.ts +14 -1
- package/src/store-contract.test.ts +35 -0
- package/src/store-contract.ts +39 -5
- package/src/summarizer.ts +24 -18
- package/src/summary-snapshot.test.ts +77 -0
- package/src/surfaces/dreams.test.ts +73 -0
- package/src/surfaces/dreams.ts +53 -19
- package/src/sync/index.ts +42 -17
- package/src/taxonomy/taxonomy-loader.ts +43 -4
- package/src/temporal-supersession.test.ts +67 -0
- package/src/temporal-supersession.ts +8 -0
- package/src/tmt.test.ts +50 -0
- package/src/tmt.ts +35 -11
- package/src/tokens.test.ts +18 -0
- package/src/tokens.ts +7 -0
- package/src/training-export/converter.test.ts +55 -2
- package/src/training-export/converter.ts +36 -10
- package/src/training-export/registry.test.ts +17 -0
- package/src/training-export/registry.ts +19 -1
- package/src/transcript.ts +2 -2
- package/src/transfer/backup.ts +18 -7
- package/src/transfer/capsule-crypto.ts +105 -21
- package/src/transfer/capsule-encrypt.test.ts +106 -7
- package/src/transfer/capsule-export.ts +23 -14
- package/src/transfer/capsule-import.ts +11 -2
- package/src/transfer/exclusions.ts +7 -0
- package/src/transfer/export-sqlite.ts +14 -13
- package/src/transfer/fs-utils.ts +52 -1
- package/src/transfer/import-json.ts +12 -7
- package/src/transfer/import-md.ts +5 -5
- package/src/transfer/import-sqlite.ts +4 -5
- package/src/trust-zones.ts +1 -1
- package/src/types.ts +25 -0
- package/src/utility-telemetry.ts +1 -1
- package/src/utils/category-dir.test.ts +15 -0
- package/src/utils/category-dir.ts +3 -1
- package/src/work/boundary.ts +30 -18
- package/src/work/storage.ts +116 -38
- package/src/work-product-ledger.ts +1 -1
- package/dist/chunk-25MQ7IHJ.js.map +0 -1
- package/dist/chunk-2IWUMAES.js.map +0 -1
- package/dist/chunk-2NMMFZ5T.js.map +0 -1
- package/dist/chunk-2PRLKQAH.js.map +0 -1
- package/dist/chunk-326G7DJK.js.map +0 -1
- package/dist/chunk-3APJ5EVB.js.map +0 -1
- package/dist/chunk-3KW65B36.js.map +0 -1
- package/dist/chunk-3OWUCDKH.js.map +0 -1
- package/dist/chunk-3QKK7QOS.js.map +0 -1
- package/dist/chunk-3SLRNYNG.js.map +0 -1
- package/dist/chunk-3VAL7ZL2.js.map +0 -1
- package/dist/chunk-3Y4P7RXM.js.map +0 -1
- package/dist/chunk-43PJZYGL.js.map +0 -1
- package/dist/chunk-47VWKCAF.js.map +0 -1
- package/dist/chunk-4KGVTPGD.js.map +0 -1
- package/dist/chunk-5375UYTQ.js.map +0 -1
- package/dist/chunk-56K5QLHX.js.map +0 -1
- package/dist/chunk-575RMLWN.js.map +0 -1
- package/dist/chunk-5NPGSAVB.js.map +0 -1
- package/dist/chunk-5RGLBDQF.js.map +0 -1
- package/dist/chunk-65PG43EQ.js.map +0 -1
- package/dist/chunk-66DHUKLO.js.map +0 -1
- package/dist/chunk-6LVVDPJ4.js.map +0 -1
- package/dist/chunk-76FLAAUC.js.map +0 -1
- package/dist/chunk-77H5NU3M.js.map +0 -1
- package/dist/chunk-7MNMYOFP.js.map +0 -1
- package/dist/chunk-7OZ53EXP.js.map +0 -1
- package/dist/chunk-7SEAZFFB.js.map +0 -1
- package/dist/chunk-A6KTB5R6.js.map +0 -1
- package/dist/chunk-AGZQD76C.js.map +0 -1
- package/dist/chunk-APO3DCMU.js.map +0 -1
- package/dist/chunk-BVF3AGJP.js.map +0 -1
- package/dist/chunk-C5BCH4ZS.js.map +0 -1
- package/dist/chunk-C7VW7C3F.js.map +0 -1
- package/dist/chunk-CULXMQJH.js.map +0 -1
- package/dist/chunk-CYFQJMUV.js.map +0 -1
- package/dist/chunk-D654IBA6.js +0 -61
- package/dist/chunk-D654IBA6.js.map +0 -1
- package/dist/chunk-DGXUHMOV.js.map +0 -1
- package/dist/chunk-DINWEURR.js.map +0 -1
- package/dist/chunk-DK5LDEQM.js.map +0 -1
- package/dist/chunk-EABGC2TL.js.map +0 -1
- package/dist/chunk-EHRTFRWW.js.map +0 -1
- package/dist/chunk-EJI5XIBB.js.map +0 -1
- package/dist/chunk-FAAFWE4G.js.map +0 -1
- package/dist/chunk-FAJ7FZYM.js +0 -11
- package/dist/chunk-FAJ7FZYM.js.map +0 -1
- package/dist/chunk-FDU6HUUL.js +0 -147
- package/dist/chunk-FDU6HUUL.js.map +0 -1
- package/dist/chunk-FIT6DMX6.js.map +0 -1
- package/dist/chunk-FJ43PRLT.js.map +0 -1
- package/dist/chunk-FLTNHQK6.js +0 -262
- package/dist/chunk-FLTNHQK6.js.map +0 -1
- package/dist/chunk-GDFS42HT.js.map +0 -1
- package/dist/chunk-H3ME6L6D.js.map +0 -1
- package/dist/chunk-HXXBL2KD.js.map +0 -1
- package/dist/chunk-ICRIXAP2.js.map +0 -1
- package/dist/chunk-IQT3XTKW.js.map +0 -1
- package/dist/chunk-JR4ZC3G4.js.map +0 -1
- package/dist/chunk-K4FLSOR5.js.map +0 -1
- package/dist/chunk-KNKUID7G.js.map +0 -1
- package/dist/chunk-KOSORCJG.js.map +0 -1
- package/dist/chunk-KRBK4BQH.js.map +0 -1
- package/dist/chunk-LIRZNNUP.js.map +0 -1
- package/dist/chunk-LLQ2LLWF.js.map +0 -1
- package/dist/chunk-LPMVBPA3.js +0 -236
- package/dist/chunk-LPMVBPA3.js.map +0 -1
- package/dist/chunk-LT3NLYSI.js.map +0 -1
- package/dist/chunk-LUDTDZLK.js.map +0 -1
- package/dist/chunk-MG7NA5H3.js.map +0 -1
- package/dist/chunk-MJFNCJXV.js.map +0 -1
- package/dist/chunk-MSWG7JI6.js.map +0 -1
- package/dist/chunk-MXC3AP5I.js.map +0 -1
- package/dist/chunk-MXFBBHJU.js.map +0 -1
- package/dist/chunk-MZH6EHNR.js.map +0 -1
- package/dist/chunk-N2D6GXBM.js.map +0 -1
- package/dist/chunk-NBNN5GOB.js.map +0 -1
- package/dist/chunk-NMZY542O.js.map +0 -1
- package/dist/chunk-NZL6GGQE.js.map +0 -1
- package/dist/chunk-OC7KHOOX.js.map +0 -1
- package/dist/chunk-OZHRDTDX.js.map +0 -1
- package/dist/chunk-PZIAX57I.js.map +0 -1
- package/dist/chunk-Q7P4WJDP.js.map +0 -1
- package/dist/chunk-QA2ZAPBU.js.map +0 -1
- package/dist/chunk-QDZ2RLEC.js.map +0 -1
- package/dist/chunk-QKZGQIPJ.js.map +0 -1
- package/dist/chunk-QLLBRHAT.js.map +0 -1
- package/dist/chunk-QR3C7BKQ.js.map +0 -1
- package/dist/chunk-RHY3HH7P.js.map +0 -1
- package/dist/chunk-RK2Y4XOM.js.map +0 -1
- package/dist/chunk-RR2PKP3I.js +0 -63
- package/dist/chunk-RR2PKP3I.js.map +0 -1
- package/dist/chunk-RRF5UOBJ.js.map +0 -1
- package/dist/chunk-RXDLTSWT.js.map +0 -1
- package/dist/chunk-RYED3SPJ.js +0 -42
- package/dist/chunk-RYED3SPJ.js.map +0 -1
- package/dist/chunk-S7KDBTWT.js.map +0 -1
- package/dist/chunk-TK4UEOSK.js.map +0 -1
- package/dist/chunk-TMM4S4IJ.js.map +0 -1
- package/dist/chunk-TMQLARTH.js.map +0 -1
- package/dist/chunk-TPB3I2AC.js.map +0 -1
- package/dist/chunk-TPMQ3G6Z.js.map +0 -1
- package/dist/chunk-TZOLIGIG.js.map +0 -1
- package/dist/chunk-U3WSW6PZ.js.map +0 -1
- package/dist/chunk-U4SCL7B7.js.map +0 -1
- package/dist/chunk-U66YHYC7.js +0 -31
- package/dist/chunk-U66YHYC7.js.map +0 -1
- package/dist/chunk-UL2NNBUL.js.map +0 -1
- package/dist/chunk-UWVJF25J.js.map +0 -1
- package/dist/chunk-VBJ7V5SK.js.map +0 -1
- package/dist/chunk-W3LR522O.js.map +0 -1
- package/dist/chunk-W4L6CZKA.js.map +0 -1
- package/dist/chunk-W6AQJ2PY.js.map +0 -1
- package/dist/chunk-WELDCG6C.js.map +0 -1
- package/dist/chunk-WNARATI3.js.map +0 -1
- package/dist/chunk-WPGJYVUH.js.map +0 -1
- package/dist/chunk-WW3QQF4H.js.map +0 -1
- package/dist/chunk-XIG5PDM7.js.map +0 -1
- package/dist/chunk-XKECPATV.js.map +0 -1
- package/dist/chunk-XKLD5OK4.js.map +0 -1
- package/dist/chunk-XSZEP4SF.js.map +0 -1
- package/dist/chunk-XVVIG67A.js.map +0 -1
- package/dist/chunk-XYIK4LF6.js.map +0 -1
- package/dist/chunk-YRMVARQP.js.map +0 -1
- package/dist/chunk-ZPKBYX2F.js.map +0 -1
- package/dist/chunk-ZTFCYYEZ.js.map +0 -1
- package/dist/chunk-ZYVPLJ4T.js.map +0 -1
- package/dist/path-MR5JPYOP.js +0 -9
- package/dist/state-store-VZU2IA53.js +0 -16
- package/dist/trace-C5ETWBEF.js.map +0 -1
- /package/dist/{capsule-crypto-5CYAGVC5.js.map → bulk-import/index.js.map} +0 -0
- /package/dist/{contradiction-review-ATP4S6IC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
- /package/dist/{capsule-merge-4MGKE7C5.js.map → capsule-merge-T2JRE46P.js.map} +0 -0
- /package/dist/{chunk-SAZS2QZB.js.map → chunk-23UORJ4S.js.map} +0 -0
- /package/dist/{chunk-PK7H5L6Y.js.map → chunk-2NM43EWN.js.map} +0 -0
- /package/dist/{chunk-PYXS46O7.js.map → chunk-3BP57I6J.js.map} +0 -0
- /package/dist/{chunk-FBYESMQ2.js.map → chunk-3C5RPJAX.js.map} +0 -0
- /package/dist/{chunk-N53K2EXC.js.map → chunk-6VF75M3X.js.map} +0 -0
- /package/dist/{chunk-6H2TESSP.js.map → chunk-765K3SAT.js.map} +0 -0
- /package/dist/{chunk-EDTHC6UD.js.map → chunk-77NAFXUD.js.map} +0 -0
- /package/dist/{chunk-MGKYQQYF.js.map → chunk-7Q3RCKAQ.js.map} +0 -0
- /package/dist/{chunk-34DQE4KF.js.map → chunk-CO7ZO4TU.js.map} +0 -0
- /package/dist/{chunk-ZKSK55RC.js.map → chunk-ETUPBUHB.js.map} +0 -0
- /package/dist/{chunk-QRNI5JBH.js.map → chunk-EYIEWJNI.js.map} +0 -0
- /package/dist/{chunk-C6QPK5GG.js.map → chunk-FZZ2QTJI.js.map} +0 -0
- /package/dist/{chunk-3JXBXXM2.js.map → chunk-G4IAEX6D.js.map} +0 -0
- /package/dist/{chunk-2WWLHTZY.js.map → chunk-IC4GELZE.js.map} +0 -0
- /package/dist/{chunk-PCUKNJAZ.js.map → chunk-JKV57BTN.js.map} +0 -0
- /package/dist/{chunk-2KI4QFHU.js.map → chunk-LMDRGRJ2.js.map} +0 -0
- /package/dist/{chunk-MY6TPVXW.js.map → chunk-LMPHTYJC.js.map} +0 -0
- /package/dist/{chunk-5HRY2WRF.js.map → chunk-LZ3VEOU5.js.map} +0 -0
- /package/dist/{chunk-NGAVDO7E.js.map → chunk-OADWQ5CR.js.map} +0 -0
- /package/dist/{chunk-DOM4GKSW.js.map → chunk-OZKVVUJB.js.map} +0 -0
- /package/dist/{chunk-MT4HVDUZ.js.map → chunk-PM3QHTFT.js.map} +0 -0
- /package/dist/{chunk-ZK7I7JYV.js.map → chunk-R3PS27B4.js.map} +0 -0
- /package/dist/{chunk-SKE7JYKA.js.map → chunk-SFXKHM7P.js.map} +0 -0
- /package/dist/{chunk-HMDCOMYU.js.map → chunk-SKGV326D.js.map} +0 -0
- /package/dist/{chunk-5UM2VJ6D.js.map → chunk-UEY3VB6W.js.map} +0 -0
- /package/dist/{chunk-GIF42EW3.js.map → chunk-UP6MOYCB.js.map} +0 -0
- /package/dist/{chunk-MRILGULB.js.map → chunk-V2RCP53Q.js.map} +0 -0
- /package/dist/{chunk-FSFEQI74.js.map → chunk-W7L6HXUC.js.map} +0 -0
- /package/dist/{chunk-3IQ2TR4N.js.map → chunk-WLEB7WCG.js.map} +0 -0
- /package/dist/{chunk-GL6I6MEQ.js.map → chunk-WSGF57U2.js.map} +0 -0
- /package/dist/{chunk-JA3AK3PT.js.map → chunk-XNLXAWHX.js.map} +0 -0
- /package/dist/{chunk-SIC6U3GZ.js.map → chunk-YHV3KRKS.js.map} +0 -0
- /package/dist/{chunk-VLXA6PI2.js.map → chunk-YQMZ7IH2.js.map} +0 -0
- /package/dist/{contradiction-scan-5A4IDZV5.js.map → contradiction-review-6V2LXXK6.js.map} +0 -0
- /package/dist/{migrate-from-identity-anchor-G27MCD6A.js.map → contradiction-scan-GIRVC4C7.js.map} +0 -0
- /package/dist/{first-start-migration-4MHQEOSD.js.map → first-start-migration-CKTCTCQI.js.map} +0 -0
- /package/dist/{graph-edge-decay-5DI5GUNL.js.map → graph-edge-decay-MUP5J7CC.js.map} +0 -0
- /package/dist/{path-MR5JPYOP.js.map → importers/index.js.map} +0 -0
- /package/dist/{peers-HCVGHMAE.js.map → migrate-from-identity-anchor-EB4XI4Q2.js.map} +0 -0
- /package/dist/{resolution-B7FNQSSP.js.map → path-X2K5XCHL.js.map} +0 -0
- /package/dist/{state-store-VZU2IA53.js.map → peers/index.js.map} +0 -0
- /package/dist/{tier-stats-62ZVDFKS.js.map → tier-stats-SKML2OSF.js.map} +0 -0
package/src/cli.ts
CHANGED
|
@@ -227,6 +227,7 @@ import {
|
|
|
227
227
|
parseConnectorsListOptions,
|
|
228
228
|
parseConnectorsRunName,
|
|
229
229
|
parseConnectorsStatusOptions,
|
|
230
|
+
buildConnectorRowsFromDefinitions,
|
|
230
231
|
renderConnectorsList,
|
|
231
232
|
renderConnectorsRunResult,
|
|
232
233
|
runConnectorPollOnce,
|
|
@@ -238,10 +239,21 @@ import {
|
|
|
238
239
|
listConnectorStates,
|
|
239
240
|
GOOGLE_DRIVE_CONNECTOR_ID,
|
|
240
241
|
NOTION_CONNECTOR_ID,
|
|
242
|
+
GMAIL_CONNECTOR_ID,
|
|
243
|
+
GITHUB_CONNECTOR_ID,
|
|
241
244
|
createGoogleDriveConnector,
|
|
242
245
|
validateGoogleDriveConfig,
|
|
243
246
|
createNotionConnector,
|
|
244
247
|
validateNotionConfig,
|
|
248
|
+
createGmailConnector,
|
|
249
|
+
validateGmailConfig,
|
|
250
|
+
createGitHubConnector,
|
|
251
|
+
validateGitHubConfig,
|
|
252
|
+
type ConnectorConfig,
|
|
253
|
+
type ConnectorCursor,
|
|
254
|
+
type ConnectorDocument,
|
|
255
|
+
type ConnectorSyncStatus,
|
|
256
|
+
type LiveConnector,
|
|
245
257
|
} from "./connectors/live/index.js";
|
|
246
258
|
|
|
247
259
|
interface CliApi {
|
|
@@ -759,11 +771,13 @@ export interface DashboardStartCliCommandOptions {
|
|
|
759
771
|
host?: string;
|
|
760
772
|
port?: number;
|
|
761
773
|
publicDir?: string;
|
|
774
|
+
authToken?: string;
|
|
762
775
|
createServer?: (options: {
|
|
763
776
|
memoryDir: string;
|
|
764
777
|
host?: string;
|
|
765
778
|
port?: number;
|
|
766
779
|
publicDir?: string;
|
|
780
|
+
authToken?: string;
|
|
767
781
|
}) => DashboardServerLike;
|
|
768
782
|
}
|
|
769
783
|
|
|
@@ -822,6 +836,17 @@ let dashboardOperationChain: Promise<void> = Promise.resolve();
|
|
|
822
836
|
let activeAccessHttpServer: AccessHttpServerLike | null = null;
|
|
823
837
|
let accessHttpOperationChain: Promise<void> = Promise.resolve();
|
|
824
838
|
|
|
839
|
+
function parseDashboardPort(value: unknown, fallback = 4319): number {
|
|
840
|
+
if (value === undefined || value === null || String(value).trim().length === 0) {
|
|
841
|
+
return fallback;
|
|
842
|
+
}
|
|
843
|
+
const port = Number(String(value).trim());
|
|
844
|
+
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
845
|
+
throw new Error("dashboard port must be an integer from 0 to 65535");
|
|
846
|
+
}
|
|
847
|
+
return port;
|
|
848
|
+
}
|
|
849
|
+
|
|
825
850
|
async function withWebDavLock<T>(operation: () => Promise<T>): Promise<T> {
|
|
826
851
|
const run = webDavOperationChain.then(operation, operation);
|
|
827
852
|
webDavOperationChain = run.then(
|
|
@@ -2637,6 +2662,7 @@ export async function runDashboardStartCliCommand(
|
|
|
2637
2662
|
options: DashboardStartCliCommandOptions,
|
|
2638
2663
|
): Promise<DashboardStatus> {
|
|
2639
2664
|
return withDashboardLock(async () => {
|
|
2665
|
+
const port = parseDashboardPort(options.port, 4319);
|
|
2640
2666
|
if (activeDashboardServer) {
|
|
2641
2667
|
const status = activeDashboardServer.status();
|
|
2642
2668
|
if (status.running) return status;
|
|
@@ -2646,11 +2672,12 @@ export async function runDashboardStartCliCommand(
|
|
|
2646
2672
|
new GraphDashboardServer({
|
|
2647
2673
|
memoryDir: opts.memoryDir,
|
|
2648
2674
|
host: opts.host,
|
|
2649
|
-
port
|
|
2675
|
+
port,
|
|
2650
2676
|
publicDir: opts.publicDir,
|
|
2677
|
+
authToken: opts.authToken,
|
|
2651
2678
|
}));
|
|
2652
2679
|
|
|
2653
|
-
const server = createServer(options);
|
|
2680
|
+
const server = createServer({ ...options, port });
|
|
2654
2681
|
activeDashboardServer = server;
|
|
2655
2682
|
try {
|
|
2656
2683
|
return await server.start();
|
|
@@ -4329,13 +4356,14 @@ export function registerCli(
|
|
|
4329
4356
|
capsuleCmd
|
|
4330
4357
|
.command("import")
|
|
4331
4358
|
.description(
|
|
4332
|
-
|
|
4359
|
+
"Import a capsule archive into the memory directory. " +
|
|
4333
4360
|
"Auto-detects encrypted archives (REMNIC-ENC header); " +
|
|
4334
|
-
"requires
|
|
4361
|
+
"requires the original passphrase or an unlocked secure-store.",
|
|
4335
4362
|
)
|
|
4336
4363
|
.argument("<archive>", "Path to the .capsule.json.gz (or .enc) archive")
|
|
4337
4364
|
.option("--mode <mode>", "Conflict mode: skip (default), overwrite, fork", "skip")
|
|
4338
4365
|
.option("--namespace <ns>", "Target namespace (v3.0+, default: config defaultNamespace)", "")
|
|
4366
|
+
.option("--passphrase <passphrase>", "Original secure-store passphrase for encrypted format-v2 archive restore")
|
|
4339
4367
|
.action(async (...args: unknown[]) => {
|
|
4340
4368
|
const archivePath = args[0] ? String(args[0]) : "";
|
|
4341
4369
|
const options = (args[1] ?? {}) as Record<string, unknown>;
|
|
@@ -4351,6 +4379,7 @@ export function registerCli(
|
|
|
4351
4379
|
return;
|
|
4352
4380
|
}
|
|
4353
4381
|
const namespace = options.namespace ? String(options.namespace) : "";
|
|
4382
|
+
const passphrase = typeof options.passphrase === "string" ? options.passphrase : undefined;
|
|
4354
4383
|
const memoryDir = await resolveMemoryDirForNamespace(orchestrator, namespace, {
|
|
4355
4384
|
rejectUnsupportedOverride: true,
|
|
4356
4385
|
});
|
|
@@ -4361,6 +4390,7 @@ export function registerCli(
|
|
|
4361
4390
|
root: memoryDir,
|
|
4362
4391
|
mode: mode as "skip" | "overwrite" | "fork",
|
|
4363
4392
|
memoryDir,
|
|
4393
|
+
passphrase,
|
|
4364
4394
|
});
|
|
4365
4395
|
console.log(`Imported: ${result.imported.length} record(s)`);
|
|
4366
4396
|
if (result.skipped.length > 0) {
|
|
@@ -5439,6 +5469,52 @@ export function registerCli(
|
|
|
5439
5469
|
// orchestrator (CLAUDE.md rules 14 + 51). Connector state is read from
|
|
5440
5470
|
// `<memoryDir>/state/connectors/<id>.json` via `listConnectorStates`.
|
|
5441
5471
|
{
|
|
5472
|
+
function builtInConnectorDefinitions() {
|
|
5473
|
+
const cfg = orchestrator.config.connectors;
|
|
5474
|
+
return [
|
|
5475
|
+
{
|
|
5476
|
+
id: GOOGLE_DRIVE_CONNECTOR_ID,
|
|
5477
|
+
displayName: "Google Drive",
|
|
5478
|
+
enabled: cfg.googleDrive.enabled,
|
|
5479
|
+
rawConfig: cfg.googleDrive,
|
|
5480
|
+
enabledConfigPath: "connectors.googleDrive.enabled",
|
|
5481
|
+
createConnector: () => createGoogleDriveConnector() as LiveConnector,
|
|
5482
|
+
validateConfig: (raw: unknown) =>
|
|
5483
|
+
validateGoogleDriveConfig(raw) as unknown as ConnectorConfig,
|
|
5484
|
+
},
|
|
5485
|
+
{
|
|
5486
|
+
id: NOTION_CONNECTOR_ID,
|
|
5487
|
+
displayName: "Notion",
|
|
5488
|
+
enabled: cfg.notion.enabled,
|
|
5489
|
+
rawConfig: cfg.notion,
|
|
5490
|
+
enabledConfigPath: "connectors.notion.enabled",
|
|
5491
|
+
createConnector: () => createNotionConnector() as LiveConnector,
|
|
5492
|
+
validateConfig: (raw: unknown) =>
|
|
5493
|
+
validateNotionConfig(raw) as unknown as ConnectorConfig,
|
|
5494
|
+
},
|
|
5495
|
+
{
|
|
5496
|
+
id: GMAIL_CONNECTOR_ID,
|
|
5497
|
+
displayName: "Gmail",
|
|
5498
|
+
enabled: cfg.gmail.enabled,
|
|
5499
|
+
rawConfig: cfg.gmail,
|
|
5500
|
+
enabledConfigPath: "connectors.gmail.enabled",
|
|
5501
|
+
createConnector: () => createGmailConnector() as LiveConnector,
|
|
5502
|
+
validateConfig: (raw: unknown) =>
|
|
5503
|
+
validateGmailConfig(raw) as unknown as ConnectorConfig,
|
|
5504
|
+
},
|
|
5505
|
+
{
|
|
5506
|
+
id: GITHUB_CONNECTOR_ID,
|
|
5507
|
+
displayName: "GitHub",
|
|
5508
|
+
enabled: cfg.github.enabled,
|
|
5509
|
+
rawConfig: cfg.github,
|
|
5510
|
+
enabledConfigPath: "connectors.github.enabled",
|
|
5511
|
+
createConnector: () => createGitHubConnector() as LiveConnector,
|
|
5512
|
+
validateConfig: (raw: unknown) =>
|
|
5513
|
+
validateGitHubConfig(raw) as unknown as ConnectorConfig,
|
|
5514
|
+
},
|
|
5515
|
+
];
|
|
5516
|
+
}
|
|
5517
|
+
|
|
5442
5518
|
/**
|
|
5443
5519
|
* Build the list of known connector rows from parsed config +
|
|
5444
5520
|
* persisted state. Adding a new built-in connector here is a
|
|
@@ -5449,29 +5525,10 @@ export function registerCli(
|
|
|
5449
5525
|
const states = await listConnectorStates(
|
|
5450
5526
|
orchestrator.config.memoryDir,
|
|
5451
5527
|
);
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
enabled: boolean;
|
|
5457
|
-
}> = [
|
|
5458
|
-
{
|
|
5459
|
-
id: GOOGLE_DRIVE_CONNECTOR_ID,
|
|
5460
|
-
displayName: "Google Drive",
|
|
5461
|
-
enabled: orchestrator.config.connectors.googleDrive.enabled,
|
|
5462
|
-
},
|
|
5463
|
-
{
|
|
5464
|
-
id: NOTION_CONNECTOR_ID,
|
|
5465
|
-
displayName: "Notion",
|
|
5466
|
-
enabled: orchestrator.config.connectors.notion.enabled,
|
|
5467
|
-
},
|
|
5468
|
-
];
|
|
5469
|
-
return builtIn.map((c) => ({
|
|
5470
|
-
id: c.id,
|
|
5471
|
-
displayName: c.displayName,
|
|
5472
|
-
enabled: c.enabled,
|
|
5473
|
-
state: stateMap.get(c.id) ?? null,
|
|
5474
|
-
}));
|
|
5528
|
+
return buildConnectorRowsFromDefinitions(
|
|
5529
|
+
builtInConnectorDefinitions(),
|
|
5530
|
+
states,
|
|
5531
|
+
);
|
|
5475
5532
|
}
|
|
5476
5533
|
|
|
5477
5534
|
const connectorsCmd = cmd
|
|
@@ -5573,9 +5630,7 @@ export function registerCli(
|
|
|
5573
5630
|
// + config validator) differs. Extract both as local closures so
|
|
5574
5631
|
// adding a new connector is a one-liner (Cursor thread
|
|
5575
5632
|
// PRRT_kwDORJXyws59slAJ — DRY the per-connector scaffolding).
|
|
5576
|
-
const
|
|
5577
|
-
|
|
5578
|
-
const { readConnectorState, writeConnectorState } = await import(
|
|
5633
|
+
const { readConnectorState, withConnectorStateLock, writeConnectorState } = await import(
|
|
5579
5634
|
"./connectors/live/state-store.js"
|
|
5580
5635
|
);
|
|
5581
5636
|
|
|
@@ -5585,7 +5640,7 @@ export function registerCli(
|
|
|
5585
5640
|
* distil it into memories. The title (when present) is prepended
|
|
5586
5641
|
* as a Markdown heading to give the extractor extra context.
|
|
5587
5642
|
*/
|
|
5588
|
-
const sharedIngestFn = async (docs:
|
|
5643
|
+
const sharedIngestFn = async (docs: ConnectorDocument[]) => {
|
|
5589
5644
|
const fetchedAt = new Date().toISOString();
|
|
5590
5645
|
const turns = docs.map((doc) => ({
|
|
5591
5646
|
role: "assistant" as const,
|
|
@@ -5611,8 +5666,8 @@ export function registerCli(
|
|
|
5611
5666
|
lastSyncError,
|
|
5612
5667
|
totalDocsImported,
|
|
5613
5668
|
}: {
|
|
5614
|
-
cursor:
|
|
5615
|
-
lastSyncStatus:
|
|
5669
|
+
cursor: ConnectorCursor | null;
|
|
5670
|
+
lastSyncStatus: ConnectorSyncStatus;
|
|
5616
5671
|
lastSyncError?: string;
|
|
5617
5672
|
totalDocsImported: number;
|
|
5618
5673
|
}) => {
|
|
@@ -5631,58 +5686,22 @@ export function registerCli(
|
|
|
5631
5686
|
};
|
|
5632
5687
|
|
|
5633
5688
|
let runResult: ConnectorRunResult;
|
|
5634
|
-
|
|
5635
|
-
|
|
5689
|
+
const connectorDefinition = builtInConnectorDefinitions().find(
|
|
5690
|
+
(definition) => definition.id === name,
|
|
5691
|
+
);
|
|
5692
|
+
if (connectorDefinition) {
|
|
5693
|
+
if (!connectorDefinition.enabled) {
|
|
5636
5694
|
process.stderr.write(
|
|
5637
|
-
`connectors run: connector "${name}" is disabled. Set
|
|
5695
|
+
`connectors run: connector "${name}" is disabled. Set ${connectorDefinition.enabledConfigPath}=true in config.\n`,
|
|
5638
5696
|
);
|
|
5639
5697
|
process.exitCode = 1;
|
|
5640
5698
|
return;
|
|
5641
5699
|
}
|
|
5642
5700
|
let validatedCfg;
|
|
5643
5701
|
try {
|
|
5644
|
-
validatedCfg =
|
|
5645
|
-
|
|
5646
|
-
process.stderr.write(
|
|
5647
|
-
`connectors run: invalid config for "${name}": ${err instanceof Error ? err.message : String(err)}\n`,
|
|
5702
|
+
validatedCfg = connectorDefinition.validateConfig(
|
|
5703
|
+
connectorDefinition.rawConfig,
|
|
5648
5704
|
);
|
|
5649
|
-
process.exitCode = 1;
|
|
5650
|
-
return;
|
|
5651
|
-
}
|
|
5652
|
-
const connector = createGoogleDriveConnector();
|
|
5653
|
-
const state = await readConnectorState(
|
|
5654
|
-
orchestrator.config.memoryDir,
|
|
5655
|
-
name,
|
|
5656
|
-
);
|
|
5657
|
-
// runConnectorPollOnce enforces: ingest docs BEFORE advancing the
|
|
5658
|
-
// cursor (CLAUDE.md gotcha #25 + #43). If ingestFn throws, the
|
|
5659
|
-
// catch branch in runConnectorPollOnce writes the OLD cursor so
|
|
5660
|
-
// the next poll re-fetches the same document window.
|
|
5661
|
-
runResult = await runConnectorPollOnce({
|
|
5662
|
-
connectorId: name,
|
|
5663
|
-
priorState: state,
|
|
5664
|
-
syncFn: (cursor) =>
|
|
5665
|
-
connector.syncIncremental({
|
|
5666
|
-
cursor,
|
|
5667
|
-
// GoogleDriveConnectorConfig is narrower than ConnectorConfig
|
|
5668
|
-
// (no index signature) but is structurally compatible at
|
|
5669
|
-
// runtime. Double-cast via unknown to satisfy the interface.
|
|
5670
|
-
config: validatedCfg as unknown as Record<string, unknown>,
|
|
5671
|
-
}),
|
|
5672
|
-
ingestFn: sharedIngestFn,
|
|
5673
|
-
writeCursorFn: makeWriteCursorFn(name),
|
|
5674
|
-
});
|
|
5675
|
-
} else if (name === NOTION_CONNECTOR_ID) {
|
|
5676
|
-
if (!cfg.notion.enabled) {
|
|
5677
|
-
process.stderr.write(
|
|
5678
|
-
`connectors run: connector "${name}" is disabled. Set connectors.notion.enabled=true in config.\n`,
|
|
5679
|
-
);
|
|
5680
|
-
process.exitCode = 1;
|
|
5681
|
-
return;
|
|
5682
|
-
}
|
|
5683
|
-
let validatedCfg;
|
|
5684
|
-
try {
|
|
5685
|
-
validatedCfg = validateNotionConfig(cfg.notion);
|
|
5686
5705
|
} catch (err) {
|
|
5687
5706
|
process.stderr.write(
|
|
5688
5707
|
`connectors run: invalid config for "${name}": ${err instanceof Error ? err.message : String(err)}\n`,
|
|
@@ -5690,31 +5709,30 @@ export function registerCli(
|
|
|
5690
5709
|
process.exitCode = 1;
|
|
5691
5710
|
return;
|
|
5692
5711
|
}
|
|
5693
|
-
const connector =
|
|
5694
|
-
|
|
5695
|
-
|
|
5696
|
-
|
|
5697
|
-
|
|
5698
|
-
|
|
5699
|
-
|
|
5700
|
-
|
|
5701
|
-
|
|
5702
|
-
|
|
5703
|
-
|
|
5704
|
-
|
|
5705
|
-
|
|
5706
|
-
|
|
5707
|
-
|
|
5708
|
-
|
|
5709
|
-
|
|
5710
|
-
config: validatedCfg as unknown as Record<string, unknown>,
|
|
5711
|
-
}),
|
|
5712
|
-
ingestFn: sharedIngestFn,
|
|
5713
|
-
writeCursorFn: makeWriteCursorFn(name),
|
|
5712
|
+
const connector = connectorDefinition.createConnector();
|
|
5713
|
+
runResult = await withConnectorStateLock(orchestrator.config.memoryDir, name, async () => {
|
|
5714
|
+
const state = await readConnectorState(
|
|
5715
|
+
orchestrator.config.memoryDir,
|
|
5716
|
+
name,
|
|
5717
|
+
);
|
|
5718
|
+
return runConnectorPollOnce({
|
|
5719
|
+
connectorId: name,
|
|
5720
|
+
priorState: state,
|
|
5721
|
+
syncFn: (cursor) =>
|
|
5722
|
+
connector.syncIncremental({
|
|
5723
|
+
cursor,
|
|
5724
|
+
config: validatedCfg,
|
|
5725
|
+
}),
|
|
5726
|
+
ingestFn: sharedIngestFn,
|
|
5727
|
+
writeCursorFn: makeWriteCursorFn(name),
|
|
5728
|
+
});
|
|
5714
5729
|
});
|
|
5715
5730
|
} else {
|
|
5731
|
+
const known = builtInConnectorDefinitions()
|
|
5732
|
+
.map((definition) => definition.id)
|
|
5733
|
+
.join(", ");
|
|
5716
5734
|
process.stderr.write(
|
|
5717
|
-
`connectors run: unknown connector "${name}". Known connectors: ${
|
|
5735
|
+
`connectors run: unknown connector "${name}". Known connectors: ${known}.\n`,
|
|
5718
5736
|
);
|
|
5719
5737
|
process.exitCode = 1;
|
|
5720
5738
|
return;
|
|
@@ -6838,14 +6856,15 @@ export function registerCli(
|
|
|
6838
6856
|
.option("--host <host>", "Bind host", "127.0.0.1")
|
|
6839
6857
|
.option("--port <n>", "Bind port", "4319")
|
|
6840
6858
|
.option("--public-dir <path>", "Override static dashboard assets path")
|
|
6859
|
+
.option("--token <token>", "Bearer token required for non-loopback dashboard API access")
|
|
6841
6860
|
.action(async (...args: unknown[]) => {
|
|
6842
6861
|
const options = (args[0] ?? {}) as Record<string, unknown>;
|
|
6843
|
-
const portRaw = parseInt(String(options.port ?? "4319"), 10);
|
|
6844
6862
|
const status = await runDashboardStartCliCommand({
|
|
6845
6863
|
memoryDir: orchestrator.config.memoryDir,
|
|
6846
6864
|
host: typeof options.host === "string" ? options.host : "127.0.0.1",
|
|
6847
|
-
port:
|
|
6865
|
+
port: parseDashboardPort(options.port, 4319),
|
|
6848
6866
|
publicDir: typeof options.publicDir === "string" ? options.publicDir : undefined,
|
|
6867
|
+
authToken: typeof options.token === "string" ? options.token : undefined,
|
|
6849
6868
|
});
|
|
6850
6869
|
console.log(JSON.stringify(status, null, 2));
|
|
6851
6870
|
console.log("OK");
|
|
@@ -8770,7 +8789,7 @@ export function registerCli(
|
|
|
8770
8789
|
const secureStoreCmd = cmd
|
|
8771
8790
|
.command("secure-store")
|
|
8772
8791
|
.description(
|
|
8773
|
-
"At-rest encryption keyring (issue #690). Manage the secure-store header and the in-memory master key
|
|
8792
|
+
"At-rest encryption keyring (issue #690). Manage the secure-store header and the process-local in-memory master key.",
|
|
8774
8793
|
);
|
|
8775
8794
|
|
|
8776
8795
|
secureStoreCmd
|
|
@@ -8811,7 +8830,7 @@ export function registerCli(
|
|
|
8811
8830
|
secureStoreCmd
|
|
8812
8831
|
.command("unlock")
|
|
8813
8832
|
.description(
|
|
8814
|
-
"Unlock the secure-store. Prompts for the passphrase, validates it against the header verifier, and registers the master key in
|
|
8833
|
+
"Unlock the secure-store for this Remnic process. Prompts for the passphrase, validates it against the header verifier, and registers the master key in this process-local keyring. The key is cleared on `lock`, process restart, or process exit.",
|
|
8815
8834
|
)
|
|
8816
8835
|
.option("--json", "Emit machine-readable JSON only")
|
|
8817
8836
|
.action(async (...args: unknown[]) => {
|
|
@@ -8839,7 +8858,7 @@ export function registerCli(
|
|
|
8839
8858
|
secureStoreCmd
|
|
8840
8859
|
.command("lock")
|
|
8841
8860
|
.description(
|
|
8842
|
-
"Lock the secure-store. Clears the master key from the
|
|
8861
|
+
"Lock the secure-store in this Remnic process. Clears the master key from the process-local in-memory keyring. Idempotent — succeeds even if this process is already locked.",
|
|
8843
8862
|
)
|
|
8844
8863
|
.option("--json", "Emit machine-readable JSON only")
|
|
8845
8864
|
.action(async (...args: unknown[]) => {
|
|
@@ -8864,11 +8883,14 @@ export function registerCli(
|
|
|
8864
8883
|
.option("--json", "Emit machine-readable JSON only")
|
|
8865
8884
|
.action(async (...args: unknown[]) => {
|
|
8866
8885
|
const options = (args[0] ?? {}) as Record<string, unknown>;
|
|
8867
|
-
const { runSecureStoreMigrate, renderMigrateReport } = await import(
|
|
8886
|
+
const { runSecureStoreMigrate, renderMigrateReport, createPassphraseReader } = await import(
|
|
8868
8887
|
"./secure-store/index.js"
|
|
8869
8888
|
);
|
|
8870
8889
|
const memoryDir = expandTildePath(orchestrator.config.memoryDir);
|
|
8871
|
-
const report = await runSecureStoreMigrate({
|
|
8890
|
+
const report = await runSecureStoreMigrate({
|
|
8891
|
+
memoryDir,
|
|
8892
|
+
readPassphrase: createPassphraseReader(),
|
|
8893
|
+
});
|
|
8872
8894
|
if (options.json === true) {
|
|
8873
8895
|
console.log(JSON.stringify(report, null, 2));
|
|
8874
8896
|
} else {
|
|
@@ -8880,11 +8902,14 @@ export function registerCli(
|
|
|
8880
8902
|
});
|
|
8881
8903
|
|
|
8882
8904
|
async function runSecureStoreDisableCommand(options: Record<string, unknown>): Promise<void> {
|
|
8883
|
-
const { runSecureStoreDisable, renderDisableReport } = await import(
|
|
8905
|
+
const { runSecureStoreDisable, renderDisableReport, createPassphraseReader } = await import(
|
|
8884
8906
|
"./secure-store/index.js"
|
|
8885
8907
|
);
|
|
8886
8908
|
const memoryDir = expandTildePath(orchestrator.config.memoryDir);
|
|
8887
|
-
const report = await runSecureStoreDisable({
|
|
8909
|
+
const report = await runSecureStoreDisable({
|
|
8910
|
+
memoryDir,
|
|
8911
|
+
readPassphrase: createPassphraseReader(),
|
|
8912
|
+
});
|
|
8888
8913
|
if (options.json === true) {
|
|
8889
8914
|
console.log(JSON.stringify(report, null, 2));
|
|
8890
8915
|
} else {
|
|
@@ -8918,7 +8943,7 @@ export function registerCli(
|
|
|
8918
8943
|
secureStoreCmd
|
|
8919
8944
|
.command("status")
|
|
8920
8945
|
.description(
|
|
8921
|
-
"Report secure-store status: whether a header exists, whether
|
|
8946
|
+
"Report secure-store status: whether a header exists, whether this Remnic process currently holds the key, KDF parameters, and last-unlock timestamp.",
|
|
8922
8947
|
)
|
|
8923
8948
|
.option("--json", "Emit machine-readable JSON only")
|
|
8924
8949
|
.action(async (...args: unknown[]) => {
|
|
@@ -12,6 +12,7 @@ import test from "node:test";
|
|
|
12
12
|
import {
|
|
13
13
|
branchNamespaceName,
|
|
14
14
|
combineNamespaces,
|
|
15
|
+
projectTagProjectId,
|
|
15
16
|
projectNamespaceName,
|
|
16
17
|
resolveCodingNamespaceOverlay,
|
|
17
18
|
} from "./coding-namespace.js";
|
|
@@ -56,6 +57,12 @@ test("projectNamespaceName: empty input falls back to 'unknown'", () => {
|
|
|
56
57
|
assert.equal(projectNamespaceName(" "), "project-unknown");
|
|
57
58
|
});
|
|
58
59
|
|
|
60
|
+
test("projectTagProjectId: lossy tags get hash disambiguators", () => {
|
|
61
|
+
assert.equal(projectTagProjectId("blend-supply"), "tag:blend-supply");
|
|
62
|
+
assert.notEqual(projectTagProjectId("blend/supply"), projectTagProjectId("blend-supply"));
|
|
63
|
+
assert.match(projectTagProjectId("blend/supply"), /^tag:blend-supply-[0-9a-f]{8}$/);
|
|
64
|
+
});
|
|
65
|
+
|
|
59
66
|
test("projectNamespaceName: length-capped to 64 chars, no trailing dash", () => {
|
|
60
67
|
const huge = "a".repeat(200);
|
|
61
68
|
const out = projectNamespaceName(huge);
|
|
@@ -136,6 +136,14 @@ export function projectNamespaceName(projectId: string): string {
|
|
|
136
136
|
return capLength(`project-${frag || "unknown"}`);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
+
export function projectTagProjectId(projectTag: string): string {
|
|
140
|
+
const trimmed = projectTag.trim();
|
|
141
|
+
const frag = sanitizeFragment(trimmed);
|
|
142
|
+
const disambig = trimmed.length > 0 && frag !== trimmed;
|
|
143
|
+
const suffix = disambig ? `-${stableHash(trimmed)}` : "";
|
|
144
|
+
return `tag:${frag || "unknown"}${suffix}`;
|
|
145
|
+
}
|
|
146
|
+
|
|
139
147
|
/**
|
|
140
148
|
* Preserve case when sanitizing a principal-derived base namespace. The
|
|
141
149
|
* router's `isSafeRouteNamespace` check accepts `[A-Za-z0-9._-]{1,64}`, so
|
|
@@ -199,6 +199,22 @@ test("parseTouchedFiles: escaped quote inside quoted path is preserved", () => {
|
|
|
199
199
|
assert.deepEqual(out, ['has"quote.ts']);
|
|
200
200
|
});
|
|
201
201
|
|
|
202
|
+
test("parseTouchedFiles: C-quoted octal UTF-8 path bytes are decoded", () => {
|
|
203
|
+
const diff = [
|
|
204
|
+
'diff --git "a/caf\\303\\251.ts" "b/caf\\303\\251.ts"',
|
|
205
|
+
'--- "a/caf\\303\\251.ts"',
|
|
206
|
+
'+++ "b/caf\\303\\251.ts"',
|
|
207
|
+
].join("\n");
|
|
208
|
+
|
|
209
|
+
assert.deepEqual(parseTouchedFiles(diff), ["café.ts"]);
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
test("parseTouchedFiles: invalid C-quoted UTF-8 preserves raw token without path-separator corruption", () => {
|
|
213
|
+
const diff = 'diff --git "a/bad\\303.ts" "b/bad\\303.ts"';
|
|
214
|
+
|
|
215
|
+
assert.deepEqual(parseTouchedFiles(diff), ['"a/bad\\303.ts"', '"b/bad\\303.ts"']);
|
|
216
|
+
});
|
|
217
|
+
|
|
202
218
|
// ──────────────────────────────────────────────────────────────────────────
|
|
203
219
|
// rankReviewCandidates
|
|
204
220
|
// ──────────────────────────────────────────────────────────────────────────
|
|
@@ -306,6 +322,20 @@ test("packReviewContext: full path — diff → touched files + ranked recall",
|
|
|
306
322
|
assert.equal(result.rankedRecall[1]!.id, "random-other");
|
|
307
323
|
});
|
|
308
324
|
|
|
325
|
+
test("packReviewContext: C-quoted non-ASCII touched paths boost matching candidates", () => {
|
|
326
|
+
const result = packReviewContext({
|
|
327
|
+
diff: 'diff --git "a/caf\\303\\251.ts" "b/caf\\303\\251.ts"',
|
|
328
|
+
candidates: [
|
|
329
|
+
c("matched-cafe", 0.2, ["café.ts"]),
|
|
330
|
+
c("unmatched", 0.6, ["db.sql"]),
|
|
331
|
+
],
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
assert.deepEqual(result.touchedFiles, ["café.ts"]);
|
|
335
|
+
assert.equal(result.rankedRecall[0]!.id, "matched-cafe");
|
|
336
|
+
assert.equal(result.rankedRecall[0]!.boost, 0.5);
|
|
337
|
+
});
|
|
338
|
+
|
|
309
339
|
test("packReviewContext: empty diff → no touched files, no boosts, ranked by score", () => {
|
|
310
340
|
const result = packReviewContext({
|
|
311
341
|
diff: "",
|
|
@@ -231,22 +231,92 @@ function stripDiffPathPrefix(raw: string): string {
|
|
|
231
231
|
// `"a` and the prefix is never recognized.
|
|
232
232
|
let s = raw;
|
|
233
233
|
if (s.length >= 2 && s[0] === '"' && s[s.length - 1] === '"') {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
// touched-file set is only used for lexical matches against
|
|
240
|
-
// entityRefs, where matching either form produces the same hit.
|
|
241
|
-
s = s.replace(/\\(["\\])/g, "$1");
|
|
234
|
+
const decoded = decodeGitCQuotedPath(s.slice(1, -1));
|
|
235
|
+
if (decoded === null) {
|
|
236
|
+
return raw;
|
|
237
|
+
}
|
|
238
|
+
s = decoded;
|
|
242
239
|
}
|
|
243
240
|
// Normalize Windows-style backslashes. Must happen AFTER quote stripping
|
|
244
|
-
// so that
|
|
241
|
+
// so that C-quote escape pairs are decoded before path separators are
|
|
242
|
+
// normalized.
|
|
245
243
|
s = s.replace(/\\/g, "/");
|
|
246
244
|
if (s.startsWith("a/") || s.startsWith("b/")) s = s.slice(2);
|
|
247
245
|
return s;
|
|
248
246
|
}
|
|
249
247
|
|
|
248
|
+
function decodeGitCQuotedPath(value: string): string | null {
|
|
249
|
+
const bytes: number[] = [];
|
|
250
|
+
const encoder = new TextEncoder();
|
|
251
|
+
const appendText = (text: string) => {
|
|
252
|
+
bytes.push(...encoder.encode(text));
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
256
|
+
const char = value[index]!;
|
|
257
|
+
if (char !== "\\") {
|
|
258
|
+
appendText(char);
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (index + 1 >= value.length) {
|
|
263
|
+
appendText("\\");
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
const next = value[index + 1]!;
|
|
268
|
+
if (next >= "0" && next <= "7") {
|
|
269
|
+
let octal = next;
|
|
270
|
+
let cursor = index + 2;
|
|
271
|
+
while (cursor < value.length && octal.length < 3) {
|
|
272
|
+
const digit = value[cursor]!;
|
|
273
|
+
if (digit < "0" || digit > "7") break;
|
|
274
|
+
octal += digit;
|
|
275
|
+
cursor += 1;
|
|
276
|
+
}
|
|
277
|
+
bytes.push(Number.parseInt(octal, 8));
|
|
278
|
+
index = cursor - 1;
|
|
279
|
+
continue;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
const escaped = cEscapeValue(next);
|
|
283
|
+
if (escaped !== null) {
|
|
284
|
+
appendText(escaped);
|
|
285
|
+
index += 1;
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
appendText(`\\${next}`);
|
|
290
|
+
index += 1;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
try {
|
|
294
|
+
return new TextDecoder("utf-8", { fatal: true }).decode(Uint8Array.from(bytes));
|
|
295
|
+
} catch {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
function cEscapeValue(value: string): string | null {
|
|
301
|
+
switch (value) {
|
|
302
|
+
case "n":
|
|
303
|
+
return "\n";
|
|
304
|
+
case "t":
|
|
305
|
+
return "\t";
|
|
306
|
+
case "r":
|
|
307
|
+
return "\r";
|
|
308
|
+
case "b":
|
|
309
|
+
return "\b";
|
|
310
|
+
case "f":
|
|
311
|
+
return "\f";
|
|
312
|
+
case "\\":
|
|
313
|
+
case '"':
|
|
314
|
+
return value;
|
|
315
|
+
default:
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
250
320
|
// ──────────────────────────────────────────────────────────────────────────
|
|
251
321
|
// Ranking
|
|
252
322
|
// ──────────────────────────────────────────────────────────────────────────
|
|
@@ -195,6 +195,22 @@ test("set_coding_context with projectTag creates tag-based context", async () =>
|
|
|
195
195
|
assert.equal(calls[0]!.ctx?.defaultBranch, null);
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
+
test("set_coding_context with projectTag disambiguates lossy tags", async () => {
|
|
199
|
+
const { mcp, calls } = makeMcp();
|
|
200
|
+
await call(mcp, "engram.set_coding_context", {
|
|
201
|
+
sessionKey: "session-A",
|
|
202
|
+
projectTag: "blend/supply",
|
|
203
|
+
});
|
|
204
|
+
await call(mcp, "engram.set_coding_context", {
|
|
205
|
+
sessionKey: "session-B",
|
|
206
|
+
projectTag: "blend-supply",
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
assert.notEqual(calls[0]!.ctx?.projectId, calls[1]!.ctx?.projectId);
|
|
210
|
+
assert.match(calls[0]!.ctx?.projectId ?? "", /^tag:blend-supply-[0-9a-f]{8}$/);
|
|
211
|
+
assert.equal(calls[1]!.ctx?.projectId, "tag:blend-supply");
|
|
212
|
+
});
|
|
213
|
+
|
|
198
214
|
test("set_coding_context with codingContext takes precedence over projectTag", async () => {
|
|
199
215
|
const { mcp, calls } = makeMcp();
|
|
200
216
|
await call(mcp, "engram.set_coding_context", {
|