@remnic/core 9.69.86 → 9.69.88
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/access-admin-ops-surface.js +74 -67
- package/dist/access-authorization-probe.js +75 -68
- package/dist/access-boundary.js +74 -67
- package/dist/access-citation-namespace.js +2 -2
- package/dist/access-cli.js +158 -151
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.d.ts.map +1 -1
- package/dist/access-extraction-force-flush.js +74 -67
- package/dist/access-http-briefing.js +75 -68
- package/dist/access-http-offline-stream.d.ts.map +1 -1
- package/dist/access-http-offline-stream.js +1 -1
- package/dist/access-http-query.js +76 -69
- package/dist/access-http.js +100 -93
- package/dist/access-identity-continuity-surface.js +74 -67
- package/dist/access-lcm-surface.js +74 -67
- package/dist/access-mcp-output-schemas.d.ts.map +1 -1
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts.map +1 -1
- package/dist/access-mcp.js +89 -82
- package/dist/access-namespace-preflight.js +74 -67
- package/dist/access-observe-write-category.js +19 -13
- package/dist/access-observe-write-surface.js +74 -67
- package/dist/access-offline-manifest.js +15 -10
- package/dist/access-operations-batch.js +78 -71
- package/dist/access-operations.js +85 -78
- package/dist/access-recall-concurrency.js +74 -67
- package/dist/access-recall-diagnostics.js +4 -4
- package/dist/access-recall-response.js +74 -67
- package/dist/access-recall-surface.js +74 -67
- package/dist/access-schema.js +15 -7
- package/dist/access-service-helpers.d.ts +1 -0
- package/dist/access-service-helpers.d.ts.map +1 -1
- package/dist/access-service-helpers.js +1 -1
- package/dist/access-service.d.ts.map +1 -1
- package/dist/access-service.js +74 -67
- package/dist/access-surface-catalog.js +76 -69
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +34 -28
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-WEUDMXUW.js → auto-sync-U5N3CB5Y.js} +10 -10
- package/dist/background-generation.js +2 -2
- package/dist/briefing.js +18 -18
- package/dist/buffer.js +9 -8
- package/dist/calibration.js +2 -2
- package/dist/{capsule-crypto-GWVG7LGC.js → capsule-crypto-YO5QJ6L3.js} +2 -2
- package/dist/{capsule-merge-3MNURAQ3.js → capsule-merge-ZCXUPLNJ.js} +2 -2
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +21 -21
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.js +3 -3
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-JE334SIA.js → chunk-22DYJLFN.js} +2 -2
- package/dist/{chunk-DGAWEJVI.js → chunk-2DLWLNO4.js} +3 -3
- package/dist/{chunk-J3IWHCMF.js → chunk-2DT7PIDZ.js} +3 -3
- package/dist/{chunk-NKFLHW7J.js → chunk-2NAD4YCI.js} +2 -2
- package/dist/{chunk-SV72F4DS.js → chunk-2WLMWP2T.js} +2 -2
- package/dist/{chunk-IVH7INFM.js → chunk-3O5BB45T.js} +7 -7
- package/dist/{chunk-RDEUG2M2.js → chunk-3SGTV7RD.js} +6 -6
- package/dist/{chunk-QOPB6KE3.js → chunk-3TB2XQ3C.js} +2 -2
- package/dist/{chunk-C7JAUNFC.js → chunk-4KN2JLQV.js} +2 -2
- package/dist/{chunk-TIQZNDZ5.js → chunk-4MP7XR5J.js} +2 -2
- package/dist/chunk-4NSLQ7EU.js +137 -0
- package/dist/chunk-4NSLQ7EU.js.map +1 -0
- package/dist/{chunk-7DE2NOON.js → chunk-4O4XCBOS.js} +3 -3
- package/dist/{chunk-SLEAJ67D.js → chunk-4OQET73E.js} +4 -4
- package/dist/{chunk-Q3THVX75.js → chunk-4RL3JOB3.js} +2 -2
- package/dist/{chunk-GDYU6VF4.js → chunk-5AYUHSAU.js} +2 -2
- package/dist/{chunk-B47OHVFT.js → chunk-5E6RYRYW.js} +7 -7
- package/dist/{chunk-2U3R3DDH.js → chunk-5FAGCOZD.js} +9 -9
- package/dist/{chunk-CRKWSSS4.js → chunk-5MNUBT7T.js} +2 -2
- package/dist/{chunk-CK5KOVHW.js → chunk-5R627MYY.js} +3 -2
- package/dist/{chunk-CK5KOVHW.js.map → chunk-5R627MYY.js.map} +1 -1
- package/dist/chunk-5X4MXNEU.js +64 -0
- package/dist/chunk-5X4MXNEU.js.map +1 -0
- package/dist/{chunk-52II7PB6.js → chunk-645WOU5I.js} +4 -4
- package/dist/{chunk-7G6WUOLB.js → chunk-66DKTOBY.js} +2 -2
- package/dist/{chunk-AZ2X5LNA.js → chunk-6LYAEM54.js} +2 -2
- package/dist/{chunk-DUJYRVUD.js → chunk-6O2VUWV6.js} +3 -3
- package/dist/{chunk-IMAP236M.js → chunk-6UQFJULG.js} +2 -2
- package/dist/chunk-75PT4N7Q.js +75 -0
- package/dist/chunk-75PT4N7Q.js.map +1 -0
- package/dist/{chunk-2I6VHX6Q.js → chunk-76M5OK7V.js} +2 -2
- package/dist/{chunk-OEBLZZKK.js → chunk-7XG7KMIW.js} +2 -2
- package/dist/{chunk-FYAU4S6E.js → chunk-A4VSOUCB.js} +3 -3
- package/dist/{chunk-GEX5NI36.js → chunk-AE5U5NMS.js} +2 -2
- package/dist/{chunk-UNJOB4DY.js → chunk-AEHVZY3X.js} +2 -2
- package/dist/{chunk-ML2MVAEZ.js → chunk-AEU4EQGV.js} +1 -1
- package/dist/{chunk-3SG4FGDV.js → chunk-AWD36R4D.js} +5 -2
- package/dist/chunk-AWD36R4D.js.map +1 -0
- package/dist/{chunk-JVY556FW.js → chunk-AWG3TIAY.js} +2 -2
- package/dist/{chunk-JX6USXZR.js → chunk-AXC4WSF3.js} +4 -4
- package/dist/{chunk-BOUFVFV2.js → chunk-AZSGSRIM.js} +2 -2
- package/dist/{chunk-VZBW6CDG.js → chunk-B3O3IRZN.js} +1 -1
- package/dist/{chunk-4V44AA7O.js → chunk-BGI4NUAO.js} +2 -2
- package/dist/{chunk-BNPLDVM6.js → chunk-BJVO4H5C.js} +2 -2
- package/dist/{chunk-S42HZILI.js → chunk-BLVR4WYU.js} +3 -3
- package/dist/{chunk-JXMECXMF.js → chunk-BOZJD5PK.js} +2 -2
- package/dist/{chunk-6DTJBTHL.js → chunk-BUQKSQXL.js} +15 -3
- package/dist/chunk-BUQKSQXL.js.map +1 -0
- package/dist/{chunk-OWHERGF2.js → chunk-BXLOS5AJ.js} +2 -2
- package/dist/{chunk-EVBI7S4J.js → chunk-C6U57KG4.js} +4 -4
- package/dist/{chunk-RB776UH3.js → chunk-C7V3KPKJ.js} +235 -93
- package/dist/chunk-C7V3KPKJ.js.map +1 -0
- package/dist/{chunk-T4BE5KJM.js → chunk-C7ZDKWPS.js} +4 -4
- package/dist/{chunk-HKFJ3PF3.js → chunk-CRXRZA3G.js} +2 -2
- package/dist/{chunk-NMBX4D7P.js → chunk-CZJA2EQE.js} +2 -2
- package/dist/{chunk-BJX3VQWZ.js → chunk-D5BSQR63.js} +2 -2
- package/dist/{chunk-MFZACYZ6.js → chunk-DGS34QSY.js} +2 -2
- package/dist/{chunk-UVYI6VIX.js → chunk-DQEMWVMT.js} +1 -1
- package/dist/{chunk-DQISIT63.js → chunk-DZ42MDZE.js} +3 -3
- package/dist/{chunk-5ELENZTA.js → chunk-EDIH6X2P.js} +2 -2
- package/dist/{chunk-3BTFBQLO.js → chunk-EFHNFTWB.js} +49 -3
- package/dist/chunk-EFHNFTWB.js.map +1 -0
- package/dist/{chunk-C3QXITIP.js → chunk-EQUD7FP4.js} +2 -2
- package/dist/chunk-ETUZFFPU.js +218 -0
- package/dist/chunk-ETUZFFPU.js.map +1 -0
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-IA3X2Y4K.js → chunk-FJLQXMTU.js} +3 -3
- package/dist/{chunk-TY446V34.js → chunk-FKD656D2.js} +2 -2
- package/dist/{chunk-CLXTDOKV.js → chunk-FUNBJQYR.js} +2 -2
- package/dist/{chunk-CLSYE5OZ.js → chunk-G2STTRYB.js} +2 -2
- package/dist/{chunk-SQDKX4RW.js → chunk-GWM6T5EQ.js} +2 -2
- package/dist/{chunk-AXDOF4VI.js → chunk-GZDTVYK2.js} +2 -2
- package/dist/{chunk-55FCXCXJ.js → chunk-H56VY4BY.js} +7 -7
- package/dist/{chunk-OM5BIPBR.js → chunk-H5BJWPUI.js} +4 -4
- package/dist/{chunk-7QK5TUTW.js → chunk-HLB7GKGG.js} +2 -2
- package/dist/{chunk-CHDGJJV6.js → chunk-HWLIMQE2.js} +2 -2
- package/dist/{chunk-QB75LKQQ.js → chunk-IOSZHHJC.js} +34 -15
- package/dist/chunk-IOSZHHJC.js.map +1 -0
- package/dist/{chunk-NAFPHFDM.js → chunk-JNLEJE4A.js} +2 -2
- package/dist/{chunk-7UUKRS3J.js → chunk-JVPWRNHA.js} +3 -3
- package/dist/{chunk-6ET2VII7.js → chunk-JYG2334B.js} +2 -2
- package/dist/chunk-K6T33R4Q.js +535 -0
- package/dist/chunk-K6T33R4Q.js.map +1 -0
- package/dist/{chunk-2QG4SLZI.js → chunk-KF7PQ7G2.js} +2 -2
- package/dist/{chunk-WIKO4SCR.js → chunk-LHRQBMJN.js} +2 -2
- package/dist/{chunk-IFCKHPY4.js → chunk-LO4UKPKX.js} +2 -2
- package/dist/{chunk-TEV2JGU5.js → chunk-LU7E2MXE.js} +19 -19
- package/dist/{chunk-RJLV4BKR.js → chunk-LV5H6FTN.js} +2 -2
- package/dist/{chunk-IBGEHKQ6.js → chunk-LW3HKRL7.js} +3 -3
- package/dist/{chunk-3XQYM4RE.js → chunk-M6C7SOR6.js} +2 -2
- package/dist/{chunk-JN72EPOE.js → chunk-MAAL6OZV.js} +7 -7
- package/dist/chunk-MAAL6OZV.js.map +1 -0
- package/dist/{chunk-MY2PLXSM.js → chunk-MCTM4YPL.js} +2 -1
- package/dist/{chunk-MY2PLXSM.js.map → chunk-MCTM4YPL.js.map} +1 -1
- package/dist/{chunk-T4QGUXCV.js → chunk-MXCAJKMA.js} +9 -9
- package/dist/{chunk-BMYZTZ5D.js → chunk-MY7B3HYC.js} +2 -2
- package/dist/{chunk-NB3LRY4T.js → chunk-N4PYB235.js} +2 -2
- package/dist/{chunk-S3YM4SZQ.js → chunk-N7QV3CMX.js} +2 -2
- package/dist/{chunk-3GN2PEOT.js → chunk-NYKIUQL6.js} +2 -2
- package/dist/{chunk-WQZZDN5M.js → chunk-OCFXVDBZ.js} +322 -376
- package/dist/chunk-OCFXVDBZ.js.map +1 -0
- package/dist/{chunk-L2LBMKSI.js → chunk-OK52IY3W.js} +10 -10
- package/dist/{chunk-WB2I2EQK.js → chunk-P2ODTYOF.js} +2 -2
- package/dist/{chunk-RIEX7NOZ.js → chunk-PEBHPCX2.js} +2 -2
- package/dist/{chunk-VYCOJKSX.js → chunk-PO7NXNGC.js} +2 -2
- package/dist/{chunk-G6SVZWPB.js → chunk-PZX3AQLF.js} +44 -1
- package/dist/chunk-PZX3AQLF.js.map +1 -0
- package/dist/{chunk-XAITGGX5.js → chunk-Q4AUIFUA.js} +4 -4
- package/dist/{chunk-EU3N5MK3.js → chunk-QAW55ZHJ.js} +4 -4
- package/dist/{chunk-SVZWVZ7E.js → chunk-QB57WIS6.js} +101 -93
- package/dist/chunk-QB57WIS6.js.map +1 -0
- package/dist/{chunk-I4G4UWQA.js → chunk-QI2E6ISQ.js} +1 -1
- package/dist/{chunk-CK5U7JGH.js → chunk-QI7K7BZ5.js} +2 -2
- package/dist/{chunk-VTPASHTO.js → chunk-R3X2T2LP.js} +3 -3
- package/dist/{chunk-I53NAHZ4.js → chunk-RBITPCMK.js} +10 -9
- package/dist/chunk-RBITPCMK.js.map +1 -0
- package/dist/{chunk-EJPF6XDQ.js → chunk-RDJ6C7NZ.js} +3 -3
- package/dist/{chunk-C2WWQ4OR.js → chunk-RMMA44HE.js} +1 -1
- package/dist/chunk-RMMA44HE.js.map +1 -0
- package/dist/{chunk-QC56VZXC.js → chunk-S2GE2K36.js} +85 -82
- package/dist/{chunk-QC56VZXC.js.map → chunk-S2GE2K36.js.map} +1 -1
- package/dist/{chunk-2UPTRDGM.js → chunk-SCXURCVT.js} +3 -3
- package/dist/{chunk-S55WTPFJ.js → chunk-STEOT4DI.js} +20 -20
- package/dist/chunk-STEOT4DI.js.map +1 -0
- package/dist/{chunk-N3MNDVJO.js → chunk-SWBC3UER.js} +2 -2
- package/dist/{chunk-ZTHGFTMW.js → chunk-TKC5LZ43.js} +2 -2
- package/dist/chunk-TYT4TEQV.js +45 -0
- package/dist/chunk-TYT4TEQV.js.map +1 -0
- package/dist/{chunk-YRLHEEQT.js → chunk-U6VC6RP3.js} +2 -2
- package/dist/chunk-UCPGOUDZ.js +726 -0
- package/dist/chunk-UCPGOUDZ.js.map +1 -0
- package/dist/{chunk-MOQPEFLN.js → chunk-UP75KL3L.js} +2 -2
- package/dist/{chunk-D5F7TKMH.js → chunk-V4JZCTMK.js} +2 -2
- package/dist/{chunk-NAYBHNGN.js → chunk-VALKBYBN.js} +2 -2
- package/dist/{chunk-BUKK5SWA.js → chunk-VDX2J7OX.js} +2 -2
- package/dist/{chunk-H36X4NRH.js → chunk-VVX5PZFS.js} +2 -2
- package/dist/{chunk-RCQKAOOB.js → chunk-W3XXFPRI.js} +52 -52
- package/dist/{chunk-W75BBBSY.js → chunk-WKY7N3L7.js} +11 -11
- package/dist/{chunk-GZAGLCQH.js → chunk-X5SHE2O3.js} +3 -3
- package/dist/{chunk-OAOBL6OY.js → chunk-XOV7NRY5.js} +5 -5
- package/dist/{chunk-FZVROZKC.js → chunk-XVZA6VXC.js} +4 -4
- package/dist/{chunk-RGMVMVMF.js → chunk-YBA52OKG.js} +2 -1
- package/dist/chunk-YBA52OKG.js.map +1 -0
- package/dist/{chunk-IP5VLSLO.js → chunk-YJ7MW627.js} +2 -2
- package/dist/{chunk-HS75MCQF.js → chunk-YRULQW5J.js} +2 -2
- package/dist/{chunk-DINRT75P.js → chunk-YSBL7VPO.js} +2 -2
- package/dist/{chunk-QWUJWBZ5.js → chunk-Z3O53WZR.js} +2 -2
- package/dist/{chunk-KERNN6BC.js → chunk-Z5LP6ILP.js} +2 -2
- package/dist/{chunk-5FNZ3G6X.js → chunk-Z6EZCN6Z.js} +5 -5
- package/dist/chunk-ZJP66Q4I.js +48 -0
- package/dist/chunk-ZJP66Q4I.js.map +1 -0
- package/dist/{chunk-JS3S2HVG.js → chunk-ZZZ4I455.js} +2 -2
- package/dist/cli.js +122 -115
- package/dist/coding/export-okf-codegraph.js +19 -19
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.js +19 -19
- package/dist/config.js +34 -28
- package/dist/connectors/codex-materialize-runner.js +18 -18
- package/dist/connectors/index.js +18 -18
- package/dist/console/state.d.ts +30 -0
- package/dist/console/state.d.ts.map +1 -1
- package/dist/contradiction/index.js +7 -7
- package/dist/{contradiction-scan-5EJYRKD3.js → contradiction-scan-TAGMOUQ2.js} +3 -3
- package/dist/convergence-refresh.js +20 -20
- package/dist/corpus-watermark.js +20 -20
- package/dist/correction/correction-access-wiring.d.ts.map +1 -1
- package/dist/dashboard-runtime.js +2 -2
- package/dist/deep-recall-http-glue.js +15 -8
- package/dist/deep-recall-policy-llm.js +3 -3
- package/dist/deep-recall.js +2 -2
- package/dist/embedding-fallback.d.ts +41 -31
- package/dist/embedding-fallback.d.ts.map +1 -1
- package/dist/embedding-fallback.js +9 -1
- package/dist/embedding-generation-lock.d.ts +49 -0
- package/dist/embedding-generation-lock.d.ts.map +1 -0
- package/dist/embedding-generation-lock.js +19 -0
- package/dist/embedding-index-storage.d.ts +276 -0
- package/dist/embedding-index-storage.d.ts.map +1 -0
- package/dist/embedding-index-storage.js +28 -0
- package/dist/entity-retrieval.js +19 -19
- package/dist/event-order-recall.js +3 -3
- package/dist/explicit-capture.js +6 -6
- package/dist/external-wiki-access.js +75 -68
- package/dist/extraction-faithfulness.js +3 -3
- package/dist/extraction-judge.js +3 -3
- package/dist/extraction-liveness.d.ts +9 -0
- package/dist/extraction-liveness.d.ts.map +1 -1
- package/dist/extraction-liveness.js +2 -1
- package/dist/extraction-llm-health.d.ts +32 -0
- package/dist/extraction-llm-health.d.ts.map +1 -0
- package/dist/extraction-llm-health.js +17 -0
- package/dist/extraction-span-config.js +3 -2
- package/dist/extraction-span-materialize.js +2 -2
- package/dist/extraction.js +29 -28
- package/dist/fallback-llm.js +2 -2
- package/dist/{first-start-migration-GAT7G733.js → first-start-migration-7OATHJKB.js} +4 -4
- package/dist/{graph-edge-decay-PVKDKLQK.js → graph-edge-decay-MKIRZ762.js} +6 -6
- package/dist/graph-jsonl.js +4 -4
- package/dist/graph-snapshot.js +4 -4
- package/dist/graph.js +5 -5
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +237 -206
- package/dist/json-extract.d.ts.map +1 -1
- package/dist/json-extract.js +1 -1
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.js +5 -5
- package/dist/local-llm.d.ts.map +1 -1
- package/dist/local-llm.js +2 -2
- package/dist/location/index.js +21 -21
- package/dist/maintenance/memory-governance.js +18 -18
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +18 -18
- package/dist/maintenance/rebuild-memory-projection.js +19 -19
- package/dist/memory-browse-operations.js +75 -68
- package/dist/memory-browse.js +3 -3
- package/dist/memory-subject.js +3 -3
- package/dist/namespaces/migrate.js +19 -19
- package/dist/namespaces/search.js +4 -4
- package/dist/namespaces/storage.js +18 -18
- package/dist/offline-sync-embedding-generation.d.ts +207 -0
- package/dist/offline-sync-embedding-generation.d.ts.map +1 -0
- package/dist/offline-sync-embedding-generation.js +42 -0
- package/dist/offline-sync-embedding-generation.js.map +1 -0
- package/dist/offline-sync-exclude-globs.d.ts +15 -0
- package/dist/offline-sync-exclude-globs.d.ts.map +1 -1
- package/dist/offline-sync-exclude-globs.js +11 -3
- package/dist/offline-sync-file-io.d.ts +7 -0
- package/dist/offline-sync-file-io.d.ts.map +1 -1
- package/dist/offline-sync-file-io.js +14 -2
- package/dist/offline-sync-impression-drain.js +3 -3
- package/dist/offline-sync-runtime-state.d.ts +5 -0
- package/dist/offline-sync-runtime-state.d.ts.map +1 -0
- package/dist/offline-sync-runtime-state.js +14 -0
- package/dist/offline-sync-runtime-state.js.map +1 -0
- package/dist/offline-sync-snapshot-stream.d.ts +26 -0
- package/dist/offline-sync-snapshot-stream.d.ts.map +1 -0
- package/dist/offline-sync-snapshot-stream.js +28 -0
- package/dist/offline-sync-snapshot-stream.js.map +1 -0
- package/dist/offline-sync-upload-staging.d.ts +34 -0
- package/dist/offline-sync-upload-staging.d.ts.map +1 -0
- package/dist/offline-sync-upload-staging.js +26 -0
- package/dist/offline-sync-upload-staging.js.map +1 -0
- package/dist/offline-sync.d.ts +46 -27
- package/dist/offline-sync.d.ts.map +1 -1
- package/dist/offline-sync.js +21 -8
- package/dist/operator-doctor-corpus.js +21 -21
- package/dist/operator-toolkit.js +46 -40
- package/dist/orchestration/extraction-run.d.ts.map +1 -1
- package/dist/orchestration/maintenance.js +30 -30
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +159 -152
- package/dist/recall-navigation-operations.js +75 -68
- package/dist/recall-navigation.js +74 -67
- package/dist/recall-planner-llm.js +2 -2
- package/dist/recall-state-view-admission.js +3 -3
- package/dist/recall-why-service.js +6 -6
- package/dist/recall-why.js +3 -3
- package/dist/reconcile/manifest.js +4 -4
- package/dist/{resolution-UYJU5JUA.js → resolution-K4A3VPKZ.js} +8 -8
- package/dist/resolution-K4A3VPKZ.js.map +1 -0
- package/dist/resume-bundles.js +35 -29
- package/dist/salvage-envelope.js +5 -5
- package/dist/search/factory.js +3 -3
- package/dist/search/index.js +7 -7
- package/dist/secure-store/index.js +2 -2
- package/dist/secure-store/secure-fs.d.ts +14 -1
- package/dist/secure-store/secure-fs.d.ts.map +1 -1
- package/dist/semantic-consolidation.js +19 -19
- package/dist/semantic-rule-promotion.js +18 -18
- package/dist/semantic-rule-verifier.js +18 -18
- package/dist/source-agent-qualifier.js +23 -22
- package/dist/standup/build.js +18 -18
- package/dist/{state-ITXJKXRE.js → state-JB47KHYV.js} +2 -2
- package/dist/state-JB47KHYV.js.map +1 -0
- package/dist/storage.d.ts +9 -3
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +17 -17
- package/dist/subject-config.js +4 -4
- package/dist/summarizer.js +6 -6
- package/dist/support-passport/index.js +77 -70
- package/dist/{trace-ZFVRH4GO.js → trace-LXXCMZJA.js} +3 -3
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/transfer/export-okf.js +19 -19
- package/dist/{tui-55UJMJX7.js → tui-2Z5WOV7L.js} +3 -3
- package/dist/tui-2Z5WOV7L.js.map +1 -0
- package/dist/verified-recall.js +18 -18
- package/dist/who-knows-cli.js +19 -19
- package/dist/who-knows.js +18 -18
- package/dist/write-envelope.js +4 -4
- package/package.json +2 -2
- package/src/access-extraction-force-flush.ts +15 -7
- package/src/access-http-offline-stream.ts +3 -0
- package/src/access-mcp-output-schemas.ts +1 -0
- package/src/access-mcp.ts +90 -28
- package/src/access-service-health.test.ts +41 -5
- package/src/access-service-helpers.ts +1 -0
- package/src/access-service-observe-lcm-parity.test.ts +56 -24
- package/src/access-service.ts +7 -18
- package/src/console/state.test.ts +56 -0
- package/src/console/state.ts +83 -0
- package/src/correction/correction-access-wiring.ts +36 -8
- package/src/correction/correction-classify-parse.test.ts +178 -0
- package/src/embedding-fallback.ts +325 -141
- package/src/embedding-generation-lock.ts +141 -0
- package/src/embedding-index-storage.test.ts +245 -0
- package/src/embedding-index-storage.ts +1068 -0
- package/src/extraction-liveness.ts +13 -1
- package/src/extraction-llm-health.test.ts +103 -0
- package/src/extraction-llm-health.ts +71 -0
- package/src/index.ts +3 -3
- package/src/json-extract.ts +6 -0
- package/src/local-llm-thinking.test.ts +12 -0
- package/src/local-llm.ts +1 -0
- package/src/offline-sync-embedding-generation.test.ts +2173 -0
- package/src/offline-sync-embedding-generation.ts +885 -0
- package/src/offline-sync-exclude-globs.ts +112 -0
- package/src/offline-sync-file-io.ts +48 -0
- package/src/offline-sync-runtime-state.ts +48 -0
- package/src/offline-sync-snapshot-stream.ts +99 -0
- package/src/offline-sync-upload-staging.ts +291 -0
- package/src/offline-sync.test.ts +164 -1
- package/src/offline-sync.ts +458 -453
- package/src/orchestration/extraction-run.test.ts +55 -1
- package/src/orchestration/extraction-run.ts +13 -0
- package/src/orchestrator.ts +2 -1
- package/src/secure-store/secure-fs.ts +26 -6
- package/src/storage.ts +11 -6
- package/dist/chunk-3BTFBQLO.js.map +0 -1
- package/dist/chunk-3SG4FGDV.js.map +0 -1
- package/dist/chunk-6DTJBTHL.js.map +0 -1
- package/dist/chunk-AREGMX2J.js +0 -50
- package/dist/chunk-AREGMX2J.js.map +0 -1
- package/dist/chunk-C2WWQ4OR.js.map +0 -1
- package/dist/chunk-G6SVZWPB.js.map +0 -1
- package/dist/chunk-I53NAHZ4.js.map +0 -1
- package/dist/chunk-JN72EPOE.js.map +0 -1
- package/dist/chunk-QB75LKQQ.js.map +0 -1
- package/dist/chunk-RB776UH3.js.map +0 -1
- package/dist/chunk-RGMVMVMF.js.map +0 -1
- package/dist/chunk-S55WTPFJ.js.map +0 -1
- package/dist/chunk-SVZWVZ7E.js.map +0 -1
- package/dist/chunk-WQZZDN5M.js.map +0 -1
- /package/dist/{auto-sync-WEUDMXUW.js.map → auto-sync-U5N3CB5Y.js.map} +0 -0
- /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
- /package/dist/{capsule-merge-3MNURAQ3.js.map → capsule-merge-ZCXUPLNJ.js.map} +0 -0
- /package/dist/{chunk-JE334SIA.js.map → chunk-22DYJLFN.js.map} +0 -0
- /package/dist/{chunk-DGAWEJVI.js.map → chunk-2DLWLNO4.js.map} +0 -0
- /package/dist/{chunk-J3IWHCMF.js.map → chunk-2DT7PIDZ.js.map} +0 -0
- /package/dist/{chunk-NKFLHW7J.js.map → chunk-2NAD4YCI.js.map} +0 -0
- /package/dist/{chunk-SV72F4DS.js.map → chunk-2WLMWP2T.js.map} +0 -0
- /package/dist/{chunk-IVH7INFM.js.map → chunk-3O5BB45T.js.map} +0 -0
- /package/dist/{chunk-RDEUG2M2.js.map → chunk-3SGTV7RD.js.map} +0 -0
- /package/dist/{chunk-QOPB6KE3.js.map → chunk-3TB2XQ3C.js.map} +0 -0
- /package/dist/{chunk-C7JAUNFC.js.map → chunk-4KN2JLQV.js.map} +0 -0
- /package/dist/{chunk-TIQZNDZ5.js.map → chunk-4MP7XR5J.js.map} +0 -0
- /package/dist/{chunk-7DE2NOON.js.map → chunk-4O4XCBOS.js.map} +0 -0
- /package/dist/{chunk-SLEAJ67D.js.map → chunk-4OQET73E.js.map} +0 -0
- /package/dist/{chunk-Q3THVX75.js.map → chunk-4RL3JOB3.js.map} +0 -0
- /package/dist/{chunk-GDYU6VF4.js.map → chunk-5AYUHSAU.js.map} +0 -0
- /package/dist/{chunk-B47OHVFT.js.map → chunk-5E6RYRYW.js.map} +0 -0
- /package/dist/{chunk-2U3R3DDH.js.map → chunk-5FAGCOZD.js.map} +0 -0
- /package/dist/{chunk-CRKWSSS4.js.map → chunk-5MNUBT7T.js.map} +0 -0
- /package/dist/{chunk-52II7PB6.js.map → chunk-645WOU5I.js.map} +0 -0
- /package/dist/{chunk-7G6WUOLB.js.map → chunk-66DKTOBY.js.map} +0 -0
- /package/dist/{chunk-AZ2X5LNA.js.map → chunk-6LYAEM54.js.map} +0 -0
- /package/dist/{chunk-DUJYRVUD.js.map → chunk-6O2VUWV6.js.map} +0 -0
- /package/dist/{chunk-IMAP236M.js.map → chunk-6UQFJULG.js.map} +0 -0
- /package/dist/{chunk-2I6VHX6Q.js.map → chunk-76M5OK7V.js.map} +0 -0
- /package/dist/{chunk-OEBLZZKK.js.map → chunk-7XG7KMIW.js.map} +0 -0
- /package/dist/{chunk-FYAU4S6E.js.map → chunk-A4VSOUCB.js.map} +0 -0
- /package/dist/{chunk-GEX5NI36.js.map → chunk-AE5U5NMS.js.map} +0 -0
- /package/dist/{chunk-UNJOB4DY.js.map → chunk-AEHVZY3X.js.map} +0 -0
- /package/dist/{chunk-ML2MVAEZ.js.map → chunk-AEU4EQGV.js.map} +0 -0
- /package/dist/{chunk-JVY556FW.js.map → chunk-AWG3TIAY.js.map} +0 -0
- /package/dist/{chunk-JX6USXZR.js.map → chunk-AXC4WSF3.js.map} +0 -0
- /package/dist/{chunk-BOUFVFV2.js.map → chunk-AZSGSRIM.js.map} +0 -0
- /package/dist/{chunk-VZBW6CDG.js.map → chunk-B3O3IRZN.js.map} +0 -0
- /package/dist/{chunk-4V44AA7O.js.map → chunk-BGI4NUAO.js.map} +0 -0
- /package/dist/{chunk-BNPLDVM6.js.map → chunk-BJVO4H5C.js.map} +0 -0
- /package/dist/{chunk-S42HZILI.js.map → chunk-BLVR4WYU.js.map} +0 -0
- /package/dist/{chunk-JXMECXMF.js.map → chunk-BOZJD5PK.js.map} +0 -0
- /package/dist/{chunk-OWHERGF2.js.map → chunk-BXLOS5AJ.js.map} +0 -0
- /package/dist/{chunk-EVBI7S4J.js.map → chunk-C6U57KG4.js.map} +0 -0
- /package/dist/{chunk-T4BE5KJM.js.map → chunk-C7ZDKWPS.js.map} +0 -0
- /package/dist/{chunk-HKFJ3PF3.js.map → chunk-CRXRZA3G.js.map} +0 -0
- /package/dist/{chunk-NMBX4D7P.js.map → chunk-CZJA2EQE.js.map} +0 -0
- /package/dist/{chunk-BJX3VQWZ.js.map → chunk-D5BSQR63.js.map} +0 -0
- /package/dist/{chunk-MFZACYZ6.js.map → chunk-DGS34QSY.js.map} +0 -0
- /package/dist/{chunk-UVYI6VIX.js.map → chunk-DQEMWVMT.js.map} +0 -0
- /package/dist/{chunk-DQISIT63.js.map → chunk-DZ42MDZE.js.map} +0 -0
- /package/dist/{chunk-5ELENZTA.js.map → chunk-EDIH6X2P.js.map} +0 -0
- /package/dist/{chunk-C3QXITIP.js.map → chunk-EQUD7FP4.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-IA3X2Y4K.js.map → chunk-FJLQXMTU.js.map} +0 -0
- /package/dist/{chunk-TY446V34.js.map → chunk-FKD656D2.js.map} +0 -0
- /package/dist/{chunk-CLXTDOKV.js.map → chunk-FUNBJQYR.js.map} +0 -0
- /package/dist/{chunk-CLSYE5OZ.js.map → chunk-G2STTRYB.js.map} +0 -0
- /package/dist/{chunk-SQDKX4RW.js.map → chunk-GWM6T5EQ.js.map} +0 -0
- /package/dist/{chunk-AXDOF4VI.js.map → chunk-GZDTVYK2.js.map} +0 -0
- /package/dist/{chunk-55FCXCXJ.js.map → chunk-H56VY4BY.js.map} +0 -0
- /package/dist/{chunk-OM5BIPBR.js.map → chunk-H5BJWPUI.js.map} +0 -0
- /package/dist/{chunk-7QK5TUTW.js.map → chunk-HLB7GKGG.js.map} +0 -0
- /package/dist/{chunk-CHDGJJV6.js.map → chunk-HWLIMQE2.js.map} +0 -0
- /package/dist/{chunk-NAFPHFDM.js.map → chunk-JNLEJE4A.js.map} +0 -0
- /package/dist/{chunk-7UUKRS3J.js.map → chunk-JVPWRNHA.js.map} +0 -0
- /package/dist/{chunk-6ET2VII7.js.map → chunk-JYG2334B.js.map} +0 -0
- /package/dist/{chunk-2QG4SLZI.js.map → chunk-KF7PQ7G2.js.map} +0 -0
- /package/dist/{chunk-WIKO4SCR.js.map → chunk-LHRQBMJN.js.map} +0 -0
- /package/dist/{chunk-IFCKHPY4.js.map → chunk-LO4UKPKX.js.map} +0 -0
- /package/dist/{chunk-TEV2JGU5.js.map → chunk-LU7E2MXE.js.map} +0 -0
- /package/dist/{chunk-RJLV4BKR.js.map → chunk-LV5H6FTN.js.map} +0 -0
- /package/dist/{chunk-IBGEHKQ6.js.map → chunk-LW3HKRL7.js.map} +0 -0
- /package/dist/{chunk-3XQYM4RE.js.map → chunk-M6C7SOR6.js.map} +0 -0
- /package/dist/{chunk-T4QGUXCV.js.map → chunk-MXCAJKMA.js.map} +0 -0
- /package/dist/{chunk-BMYZTZ5D.js.map → chunk-MY7B3HYC.js.map} +0 -0
- /package/dist/{chunk-NB3LRY4T.js.map → chunk-N4PYB235.js.map} +0 -0
- /package/dist/{chunk-S3YM4SZQ.js.map → chunk-N7QV3CMX.js.map} +0 -0
- /package/dist/{chunk-3GN2PEOT.js.map → chunk-NYKIUQL6.js.map} +0 -0
- /package/dist/{chunk-L2LBMKSI.js.map → chunk-OK52IY3W.js.map} +0 -0
- /package/dist/{chunk-WB2I2EQK.js.map → chunk-P2ODTYOF.js.map} +0 -0
- /package/dist/{chunk-RIEX7NOZ.js.map → chunk-PEBHPCX2.js.map} +0 -0
- /package/dist/{chunk-VYCOJKSX.js.map → chunk-PO7NXNGC.js.map} +0 -0
- /package/dist/{chunk-XAITGGX5.js.map → chunk-Q4AUIFUA.js.map} +0 -0
- /package/dist/{chunk-EU3N5MK3.js.map → chunk-QAW55ZHJ.js.map} +0 -0
- /package/dist/{chunk-I4G4UWQA.js.map → chunk-QI2E6ISQ.js.map} +0 -0
- /package/dist/{chunk-CK5U7JGH.js.map → chunk-QI7K7BZ5.js.map} +0 -0
- /package/dist/{chunk-VTPASHTO.js.map → chunk-R3X2T2LP.js.map} +0 -0
- /package/dist/{chunk-EJPF6XDQ.js.map → chunk-RDJ6C7NZ.js.map} +0 -0
- /package/dist/{chunk-2UPTRDGM.js.map → chunk-SCXURCVT.js.map} +0 -0
- /package/dist/{chunk-N3MNDVJO.js.map → chunk-SWBC3UER.js.map} +0 -0
- /package/dist/{chunk-ZTHGFTMW.js.map → chunk-TKC5LZ43.js.map} +0 -0
- /package/dist/{chunk-YRLHEEQT.js.map → chunk-U6VC6RP3.js.map} +0 -0
- /package/dist/{chunk-MOQPEFLN.js.map → chunk-UP75KL3L.js.map} +0 -0
- /package/dist/{chunk-D5F7TKMH.js.map → chunk-V4JZCTMK.js.map} +0 -0
- /package/dist/{chunk-NAYBHNGN.js.map → chunk-VALKBYBN.js.map} +0 -0
- /package/dist/{chunk-BUKK5SWA.js.map → chunk-VDX2J7OX.js.map} +0 -0
- /package/dist/{chunk-H36X4NRH.js.map → chunk-VVX5PZFS.js.map} +0 -0
- /package/dist/{chunk-RCQKAOOB.js.map → chunk-W3XXFPRI.js.map} +0 -0
- /package/dist/{chunk-W75BBBSY.js.map → chunk-WKY7N3L7.js.map} +0 -0
- /package/dist/{chunk-GZAGLCQH.js.map → chunk-X5SHE2O3.js.map} +0 -0
- /package/dist/{chunk-OAOBL6OY.js.map → chunk-XOV7NRY5.js.map} +0 -0
- /package/dist/{chunk-FZVROZKC.js.map → chunk-XVZA6VXC.js.map} +0 -0
- /package/dist/{chunk-IP5VLSLO.js.map → chunk-YJ7MW627.js.map} +0 -0
- /package/dist/{chunk-HS75MCQF.js.map → chunk-YRULQW5J.js.map} +0 -0
- /package/dist/{chunk-DINRT75P.js.map → chunk-YSBL7VPO.js.map} +0 -0
- /package/dist/{chunk-QWUJWBZ5.js.map → chunk-Z3O53WZR.js.map} +0 -0
- /package/dist/{chunk-KERNN6BC.js.map → chunk-Z5LP6ILP.js.map} +0 -0
- /package/dist/{chunk-5FNZ3G6X.js.map → chunk-Z6EZCN6Z.js.map} +0 -0
- /package/dist/{chunk-JS3S2HVG.js.map → chunk-ZZZ4I455.js.map} +0 -0
- /package/dist/{contradiction-scan-5EJYRKD3.js.map → contradiction-scan-TAGMOUQ2.js.map} +0 -0
- /package/dist/{graph-edge-decay-PVKDKLQK.js.map → embedding-generation-lock.js.map} +0 -0
- /package/dist/{resolution-UYJU5JUA.js.map → embedding-index-storage.js.map} +0 -0
- /package/dist/{state-ITXJKXRE.js.map → extraction-llm-health.js.map} +0 -0
- /package/dist/{first-start-migration-GAT7G733.js.map → first-start-migration-7OATHJKB.js.map} +0 -0
- /package/dist/{tui-55UJMJX7.js.map → graph-edge-decay-MKIRZ762.js.map} +0 -0
- /package/dist/{trace-ZFVRH4GO.js.map → trace-LXXCMZJA.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/embedding-index-storage.ts"],"sourcesContent":["/**\n * File-level storage for the embedding fallback index (issue #3146).\n *\n * Two single-generation layouts, exactly one authoritative at a time:\n * - `legacy`: the single `state/embeddings.json` file, used while the\n * whole index serializes within `resolveIndexFileCharLimit()` chars;\n * - `sharded`: the published `state/embeddings/` directory of hash-assigned\n * shard files, migrated to ONE-WAY and ATOMICALLY (stage a complete shard\n * set, publish with a single directory rename, demote the legacy file to\n * a non-authoritative recovery artifact). Generations never merge, so a\n * crash cannot resurrect deleted entries or drop published ones.\n *\n * This module owns files, budgets, and durable diagnostics only — no index\n * caching or provider logic (that lives in `embedding-fallback.ts`).\n */\nimport path from \"node:path\";\nimport { constants as bufferConstants } from \"node:buffer\";\nimport { lstat, mkdir, mkdtemp, realpath, readFile, readdir, rename, rm, stat, writeFile } from \"node:fs/promises\";\nimport { log } from \"./logger.js\";\nimport { readEnvVar } from \"./runtime/env.js\";\nimport type { EmbeddingGenerationFence } from \"./embedding-generation-lock.js\";\n\nexport type EmbeddingProviderType = \"openai\" | \"local\" | \"host\";\n\nexport type EmbeddingIndexEntry = {\n vector: number[];\n path: string;\n};\n\nexport type EmbeddingIndexFile = {\n version: 1;\n provider: EmbeddingProviderType;\n model: string;\n entries: Record<string, EmbeddingIndexEntry>;\n};\n\nexport type EmbeddingIndexIdentity = Pick<EmbeddingIndexFile, \"provider\" | \"model\">;\n\n/** Outcome of reading one managed index file (legacy or shard). */\nexport type ManagedIndexRead =\n | { outcome: \"ok\"; file: EmbeddingIndexFile }\n | { outcome: \"absent\" }\n | { outcome: \"foreign\" }\n | { outcome: \"unreadable\"; reason: string };\n\n/** Which generation owns the index right now. */\nexport type IndexLayout = \"empty\" | \"legacy\" | \"sharded\";\n\n/**\n * Thrown when an embedding index (or one of its shards) cannot be persisted\n * within the per-file serialization budget. Issue #3146: index files are\n * materialized as single V8 strings, so a JSON document at or past\n * `bufferConstants.MAX_STRING_LENGTH` chars makes every read and write throw\n * `RangeError: Invalid string length`. The index is sharded before that\n * ceiling; this tagged error is reserved for the residual case where even\n * one shard cannot hold the payload (e.g. a single entry with an enormous\n * vector), so callers can classify it as recoverable-with-record instead of\n * an opaque background failure.\n */\nexport class EmbeddingIndexCapacityError extends Error {\n override readonly name = \"EmbeddingIndexCapacityError\" as const;\n constructor(\n message: string,\n readonly memoryId?: string,\n ) {\n super(message);\n }\n}\n\n/**\n * Thrown when an index file that should be authoritative cannot be read\n * (I/O error, over-budget size, unparseable JSON). Mutation paths fail\n * CLOSED on this: they must not continue with a fresh empty index and\n * pretend the previous vectors were loaded — the file is left untouched in\n * place for recovery. Read-only paths (recall) fail open to empty results\n * and record the reason durably.\n */\nexport class EmbeddingIndexStorageError extends Error {\n override readonly name = \"EmbeddingIndexStorageError\" as const;\n}\n\n/** Durable diagnostic row describing the last failed embedding-index write. */\nexport interface EmbeddingIndexWriteFailure {\n ts: string;\n kind: \"capacity\" | \"io\";\n message: string;\n memoryId?: string;\n}\n\n/**\n * Durable embedding-index diagnostics (issue #3146), persisted at\n * `<memoryDir>/state/embedding-fallback-status.json` and surfaced through\n * console_state, so background ingestion failures are visible to operators\n * instead of only ever appearing as log lines.\n */\nexport interface EmbeddingIndexStatusFile {\n version: 1;\n /** Cumulative count of failed index writes since the file was created. */\n failureCount: number;\n /** Active write failure; cleared by the next successful save. */\n lastWriteFailure?: EmbeddingIndexWriteFailure;\n /** Set when an unreadable index file was detected instead of overwritten. */\n lastReadRecovery?: { ts: string; message: string };\n lastSuccessAt?: string;\n}\n\n/**\n * Per-file serialization budget (JSON-string chars) for WRITES of the legacy\n * `state/embeddings.json` file and of every shard under `state/embeddings/`.\n * The 16MiB margin keeps the write round-trip clear of the V8 single-string\n * ceiling even with UTF-8 byte/count skew and small header growth. Override\n * per environment (tests, headroom tuning) via\n * `REMNIC_EMBEDDING_INDEX_FILE_CHAR_LIMIT`.\n *\n * READS are gated by the HARD ceiling (`resolveIndexHardReadCharLimit`),\n * never by this budget: a legacy index written by an older version may\n * legitimately sit between the soft budget and the hard ceiling (the\n * reported production file does), and it must still load and migrate.\n */\nconst DEFAULT_INDEX_FILE_CHAR_LIMIT =\n bufferConstants.MAX_STRING_LENGTH - 16 * 1024 * 1024;\n\n/**\n * Hard single-string ceiling for READS: files at or above this size are not\n * attempted (a readFile would throw `RangeError: Invalid string length`);\n * their bytes are preserved in place and mutations fail closed with an\n * actionable error. Defaults to the V8 maximum; tests inject a small value\n * via `REMNIC_EMBEDDING_INDEX_HARD_READ_LIMIT_CHARS`.\n */\nfunction resolveIndexHardReadCharLimit(): number {\n const soft = resolveIndexFileCharLimit();\n const raw = readEnvVar(\"REMNIC_EMBEDDING_INDEX_HARD_READ_LIMIT_CHARS\");\n if (raw) {\n const parsed = Number(raw);\n if (Number.isInteger(parsed) && parsed >= soft) return parsed;\n }\n return bufferConstants.MAX_STRING_LENGTH;\n}\n\n/** Hash shards under `state/embeddings/` used once the budget is exceeded. */\nconst SHARD_COUNT = 64;\n\nconst SHARD_FILE_PATTERN = /^shard-\\d{4}\\.json$/;\n\nexport function resolveIndexFileCharLimit(): number {\n const raw = readEnvVar(\"REMNIC_EMBEDDING_INDEX_FILE_CHAR_LIMIT\");\n if (raw) {\n const parsed = Number(raw);\n if (Number.isInteger(parsed) && parsed >= 1024) return parsed;\n }\n return DEFAULT_INDEX_FILE_CHAR_LIMIT;\n}\n\nfunction shardFileName(shardIndex: number): string {\n return `shard-${String(shardIndex).padStart(4, \"0\")}.json`;\n}\n\n/**\n * Fixed transaction backup path for identity replacements. A fixed (not\n * per-process) name is what makes the rename gap recoverable: whatever\n * process restarts after a crash finds the demoted former generation here\n * and rolls it back into place.\n */\nfunction replacementBackupPath(shardDir: string): string {\n return path.join(path.dirname(shardDir), \"embeddings.pre-replace.tmp\");\n}\n\n/**\n * Stable FNV-1a shard assignment: an entry always hashes to the same shard,\n * so an update or removal never needs a manifest to find its file.\n */\nexport function shardIndexOf(memoryId: string, shardCount: number): number {\n let hash = 0x811c9dc5;\n for (let i = 0; i < memoryId.length; i++) {\n hash ^= memoryId.charCodeAt(i);\n hash = Math.imul(hash, 0x01000193) >>> 0;\n }\n return hash % shardCount;\n}\n\n/**\n * A shard file named `shard-NNNN.json` must only contain ids that hash to\n * that shard: a misplaced copy would be loaded today and silently resurrect\n * stale vectors after the computed shard is rewritten (issue #3148, round 6).\n * Throws the tagged storage error so mutations fail closed and recall fails\n * open at its boundary.\n */\nexport function validateShardMembership(shardName: string, file: EmbeddingIndexFile): void {\n const match = /^shard-(\\d{4})\\.json$/.exec(shardName);\n if (!match) return; // not a shard file (legacy documents have no constraint)\n const shardIndex = Number(match[1]);\n for (const id of Object.keys(file.entries)) {\n if (shardIndexOf(id, SHARD_COUNT) !== shardIndex) {\n throw new EmbeddingIndexStorageError(\n `refusing embedding index shard ${shardName}: id ${id} hashes to shard ${shardIndexOf(id, SHARD_COUNT)}, not ${shardIndex}; file preserved in place`,\n );\n }\n }\n}\n\nexport function isInvalidStringLengthError(err: unknown): boolean {\n return err instanceof RangeError && /invalid string length/i.test(err.message);\n}\n\n/**\n * Parse and FULLY validate one serialized index document (legacy or shard).\n * The single read boundary shared by disk reads and offline-sync pulls: a\n * document with a valid header but a malformed body (`entries` not a plain\n * record, or an entry whose `path` is not a string / whose `vector` is not a\n * finite-number array) is `unreadable`, not `ok` — recall fails open on the\n * tagged reason, mutations fail closed, and the bytes are never overwritten\n * (issue #3148 review, round 4).\n */\nexport function parseEmbeddingIndexDocument(raw: string): ManagedIndexRead {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw);\n } catch (err) {\n return {\n outcome: \"unreadable\",\n reason: `JSON parse failed: ${err instanceof Error ? err.message : String(err)}`,\n };\n }\n if (\n !parsed ||\n typeof parsed !== \"object\" ||\n Array.isArray(parsed) ||\n (parsed as Partial<EmbeddingIndexFile>).version !== 1 ||\n typeof (parsed as Partial<EmbeddingIndexFile>).provider !== \"string\" ||\n typeof (parsed as Partial<EmbeddingIndexFile>).model !== \"string\" ||\n ((parsed as Partial<EmbeddingIndexFile>).model as string).length === 0\n ) {\n return { outcome: \"foreign\" };\n }\n // An unsupported identity must fail closed like any other malformed\n // document: recall cannot serve it and mutations must not adopt it as\n // authoritative (issue #3148, round 6).\n if (\n (parsed as Partial<EmbeddingIndexFile>).provider !== \"openai\" &&\n (parsed as Partial<EmbeddingIndexFile>).provider !== \"local\" &&\n (parsed as Partial<EmbeddingIndexFile>).provider !== \"host\"\n ) {\n return { outcome: \"foreign\" };\n }\n const entries = (parsed as Partial<EmbeddingIndexFile>).entries;\n if (!entries || typeof entries !== \"object\" || Array.isArray(entries)) {\n return {\n outcome: \"unreadable\",\n reason: \"entries must be a plain record of memory id -> entry\",\n };\n }\n for (const [id, entry] of Object.entries(entries as Record<string, unknown>)) {\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n return { outcome: \"unreadable\", reason: `entry ${id} must be an object` };\n }\n const candidate = entry as Partial<EmbeddingIndexEntry>;\n if (typeof candidate.path !== \"string\") {\n return { outcome: \"unreadable\", reason: `entry ${id}.path must be a string` };\n }\n if (!Array.isArray(candidate.vector)) {\n return { outcome: \"unreadable\", reason: `entry ${id}.vector must be an array` };\n }\n for (const component of candidate.vector) {\n if (!Number.isFinite(component)) {\n return {\n outcome: \"unreadable\",\n reason: `entry ${id}.vector must contain only finite numbers`,\n };\n }\n }\n }\n return { outcome: \"ok\", file: parsed as EmbeddingIndexFile };\n}\n\n/**\n * Group a complete index into per-shard entry records using the stable FNV\n * assignment. Shared by `persist()` and the offline-sync generation\n * transaction so a converted generation shards identically everywhere.\n */\nexport function shardEntriesForIndex(\n index: EmbeddingIndexFile,\n): Map<number, Record<string, EmbeddingIndexEntry>> {\n const groups = new Map<number, Record<string, EmbeddingIndexEntry>>();\n for (const id of Object.keys(index.entries)) {\n const shardIndex = shardIndexOf(id, SHARD_COUNT);\n const group = groups.get(shardIndex);\n if (group) group[id] = index.entries[id];\n else groups.set(shardIndex, { [id]: index.entries[id] });\n }\n return groups;\n}\n\n/**\n * Serialize one shard, translating a ceiling overflow into a tagged,\n * recoverable capacity error. Exported for the offline-sync generation\n * transaction, which stages incoming generations through the same budget.\n */\nexport function serializeEmbeddingShard(\n index: EmbeddingIndexFile,\n shardIndex: number,\n entries: Record<string, EmbeddingIndexEntry>,\n limit: number = resolveIndexFileCharLimit(),\n): string {\n let body: string;\n try {\n body = JSON.stringify({\n version: 1 as const,\n provider: index.provider,\n model: index.model,\n entries,\n });\n } catch (err) {\n throw new EmbeddingIndexCapacityError(\n `embedding index shard ${shardFileName(shardIndex)} exceeded the single-string ceiling while serializing: ${err instanceof Error ? err.message : String(err)}`,\n largestEntryId(entries) || undefined,\n );\n }\n if (body.length > limit) {\n const worstId = largestEntryId(entries);\n const worstLength = worstId && entries[worstId] ? JSON.stringify(entries[worstId]).length : 0;\n throw new EmbeddingIndexCapacityError(\n `embedding index shard ${shardFileName(shardIndex)} needs ${body.length} chars, over the ${limit}-char single-file limit; largest entry ${worstId || \"(unknown)\"} serializes to ${worstLength} chars`,\n worstId || undefined,\n );\n }\n return body;\n}\n\nfunction largestEntryId(entries: Record<string, EmbeddingIndexEntry>): string {\n let worstId = \"\";\n let worstLength = 0;\n for (const [id, entry] of Object.entries(entries)) {\n let length: number;\n try {\n length = JSON.stringify(entry).length;\n } catch {\n return id;\n }\n if (length > worstLength) {\n worstLength = length;\n worstId = id;\n }\n }\n return worstId;\n}\n\n/**\n * Optional canonical secure-store IO for the daemon. When provided (both\n * halves), file content is read/written through the SAME\n * StorageManager-backed contract offline sync uses: canonical-path AAD,\n * secure-key-aware, atomic. Shard STAGING writes carry the FINAL published\n * path so the post-publish rename keeps the ciphertext decryptable; dirty\n * shard, status, and legacy writes are their own canonical final path.\n * When omitted, the store behaves exactly as before (raw plaintext fs).\n * The diagnostics status file is intentionally ALWAYS plain: it holds no\n * memory content (failure strings/counts only) and console_state reads it\n * without unlocking the store.\n */\nexport interface EmbeddingIndexStoreIo {\n readUtf8(filePath: string): Promise<string>;\n writeUtf8(filePath: string, contents: string, opts?: { finalAadFilePath?: string }): Promise<void>;\n}\n\nexport class EmbeddingIndexFileStore {\n constructor(\n private readonly indexPath: string,\n private readonly shardDir: string,\n private readonly statusPath: string,\n private readonly io?: EmbeddingIndexStoreIo,\n ) {\n if (io && (Boolean(io.readUtf8) !== Boolean(io.writeUtf8))) {\n throw new EmbeddingIndexStorageError(\n \"embedding index store io requires both readUtf8 and writeUtf8; a half-wired io would mix encrypted and plaintext files\",\n );\n }\n }\n\n /** Legacy single-file layout path (public for error messages). */\n get legacyPath(): string {\n return this.indexPath;\n }\n\n /** Record an unreadable-authoritative-file reason (both read and mutation paths). */\n async recordIndexStatusForLoad(reason: string): Promise<void> {\n await this.recordIndexStatus({\n lastReadRecovery: { ts: new Date().toISOString(), message: reason },\n });\n }\n\n /**\n * Which generation owns the index right now. The published\n * `state/embeddings/` directory IS the layout marker: until it exists the\n * legacy file is authoritative; from the atomic rename onward it never\n * merges again.\n */\n async detectLayout(): Promise<IndexLayout> {\n // An interrupted identity replacement leaves the published directory\n // absent with the fixed transaction backup still on disk (the publish\n // rename never completed). Report SHARDED for that gap: the backup holds\n // the authoritative generation, so neither the legacy file nor a fresh\n // index may win, and reads fail open to empty until the mutation queue\n // performs the rollback. The rollback itself only ever runs inside\n // persist() — a write — so read paths never race an in-flight\n // replacement with a recovery rename (issue #3148 review).\n try {\n // lstat, NOT stat: a symlinked generation directory must be rejected\n // outright — following it would read or write OUTSIDE the state\n // directory through the link (codex PRRT_kwDORJXyws6mZ72r).\n const info = await lstat(this.shardDir);\n if (info.isSymbolicLink()) {\n throw new EmbeddingIndexStorageError(\n `embedding index shard directory is a symlink; refusing to read or write through it: ${this.shardDir}`,\n );\n }\n return \"sharded\";\n } catch (err) {\n if (err instanceof EmbeddingIndexStorageError) throw err;\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") {\n // The pointer exists but cannot be stat'ed — fail towards the\n // published generation so its readers surface the I/O error.\n log.warn(`embedding index: shard dir stat failed (${err instanceof Error ? err.message : String(err)}); assuming sharded layout`);\n return \"sharded\";\n }\n if (await this.replacementBackupExists()) return \"sharded\";\n return this.legacyOrEmptyLayout();\n }\n }\n\n /**\n * Roll the fixed transaction backup back into the published position.\n * Returns true when a rollback happened.\n */\n private async replacementBackupExists(): Promise<boolean> {\n const backupPath = replacementBackupPath(this.shardDir);\n try {\n await stat(backupPath);\n return true;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return false;\n // An unreadable backup must not be silently treated as absent —\n // that would permit the legacy fallback over a generation we cannot\n // inspect (issue #3148 review, round 1).\n throw new EmbeddingIndexStorageError(\n `cannot stat embedding index replacement backup ${backupPath}: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n }\n\n /**\n * The fixed transaction backup is a path with well-known semantics; a\n * planted symlink must never be restored into the published position (it\n * would point the generation outside the memory dir) nor removed through\n * as if it were the former generation. Symlinks are rejected outright.\n */\n private async assertBackupNotSymlink(backupPath: string): Promise<void> {\n const info = await lstat(backupPath).catch((err) => {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return null;\n throw err;\n });\n if (info?.isSymbolicLink()) {\n throw new EmbeddingIndexStorageError(\n `embedding index replacement backup is a symlink; refusing to touch it: ${backupPath}`,\n );\n }\n }\n\n /**\n * Mutation-queue entry point: roll the fixed transaction backup back into\n * the published position after an interrupted replacement. Returns true\n * when a rollback happened. Only fires in the actual rename gap\n * (published directory absent); callers must invalidate any cached index\n * view when this returns true.\n */\n async recoverIfInterrupted(fence?: EmbeddingGenerationFence): Promise<boolean> {\n // Only the rename gap (published directory absent) is recoverable. When\n // the directory is present - including after a crash that followed a\n // successful publish - the generation on disk is already authoritative\n // and renaming the backup onto it would fail with EEXIST (issue #3148\n // review, round 2).\n try {\n await stat(this.shardDir);\n return false;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") {\n log.warn(`embedding index: recovery skipped because shard dir stat failed: ${err instanceof Error ? err.message : String(err)}`);\n return false;\n }\n }\n const backupPath = replacementBackupPath(this.shardDir);\n if (!(await this.replacementBackupExists())) return false;\n await this.assertBackupNotSymlink(backupPath);\n // The rollback rename is destructive: reassert lock ownership first.\n await fence?.();\n await rename(backupPath, this.shardDir);\n log.warn(\n `embedding index: recovered interrupted replacement; former generation restored from ${backupPath}`,\n );\n await this.recordIndexStatus({\n lastReadRecovery: {\n ts: new Date().toISOString(),\n message: \"interrupted identity replacement rolled back to the former generation\",\n },\n });\n return true;\n }\n\n private async legacyOrEmptyLayout(): Promise<IndexLayout> {\n try {\n await stat(this.indexPath);\n return \"legacy\";\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return \"empty\";\n throw err;\n }\n }\n\n /** Header identity of the authoritative generation, read leniently. */\n async identityFromDisk(): Promise<EmbeddingIndexIdentity | null> {\n const layout = await this.detectLayout();\n if (layout === \"sharded\") {\n // Shard files are bounded by the per-file budget, so the identity\n // probe never reads a ceiling-sized string.\n for (const name of await this.readShardNames()) {\n const read = await this.readFileAt(path.join(this.shardDir, name));\n if (read.outcome === \"ok\") {\n return { provider: read.file.provider, model: read.file.model };\n }\n }\n return null;\n }\n if (layout === \"legacy\") {\n const read = await this.readFileAt(this.indexPath);\n if (read.outcome === \"ok\") {\n return { provider: read.file.provider, model: read.file.model };\n }\n }\n return null;\n }\n\n /**\n * Load every readable shard into `merged`. Returns the generation identity.\n * Unreadable shards record durable diagnostics; `strict` additionally\n * fails the mutation closed.\n */\n async readShardGenerationInto(\n merged: Record<string, EmbeddingIndexEntry>,\n ): Promise<EmbeddingIndexIdentity | null> {\n let identity: EmbeddingIndexIdentity | null = null;\n for (const name of await this.readShardNames()) {\n const read = await this.readFileAt(path.join(this.shardDir, name));\n if (read.outcome !== \"ok\") {\n if (read.outcome === \"unreadable\") {\n await this.recordIndexStatus({\n lastReadRecovery: { ts: new Date().toISOString(), message: `${name}: ${read.reason}` },\n });\n throw new EmbeddingIndexStorageError(\n `refusing to continue from unreadable embedding index shard ${name}: ${read.reason}`,\n );\n }\n await this.recordIndexStatus({\n lastReadRecovery: { ts: new Date().toISOString(), message: `${name}: unrecognized index format` },\n });\n throw new EmbeddingIndexStorageError(\n `refusing to continue from malformed embedding index shard ${name} (unrecognized format); file preserved in place`,\n );\n }\n try {\n validateShardMembership(name, read.file);\n } catch (error) {\n await this.recordIndexStatus({\n lastReadRecovery: { ts: new Date().toISOString(), message: String(error) },\n });\n throw error;\n }\n const shardIdentity = { provider: read.file.provider, model: read.file.model };\n if (!identity) identity = shardIdentity;\n if (!sameIndexIdentity(shardIdentity, identity)) {\n // A partial rewrite from this map would silently drop the foreign\n // shard's entries, so even recall must not serve this generation.\n throw new EmbeddingIndexStorageError(\n `refusing to continue from mixed-identity embedding index generation: ${name} is ${shardIdentity.provider}/${shardIdentity.model} but the generation identity is ${identity.provider}/${identity.model}; files preserved in place`,\n );\n }\n Object.assign(merged, read.file.entries);\n }\n return identity;\n }\n\n async readLegacy(): Promise<ManagedIndexRead> {\n return this.readFileAt(this.indexPath);\n }\n\n /**\n * Read one managed index file (legacy or shard). The file is never\n * modified or moved here: an unreadable file stays in place for recovery\n * and is reported through the returned outcome (mutation paths fail\n * closed on it; read-only paths fail open and record the reason).\n */\n /**\n * Read/mutation boundary for any generation member or the legacy marker\n * (codex PRRT_kwDORJXyws6mZ72r): a symlinked member is rejected outright\n * and its real target must stay inside the canonical state directory —\n * following a planted link would read or write outside the memory root.\n * Runs BEFORE the secure IO so storage-backed reads are covered too.\n */\n private async assertGenerationFileNotSymlinked(filePath: string): Promise<void> {\n const info = await lstat(filePath).catch((err) => {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return null;\n throw new EmbeddingIndexStorageError(\n `cannot lstat embedding index file ${filePath}: ${err instanceof Error ? err.message : String(err)}`,\n );\n });\n const stateDir = path.dirname(this.shardDir);\n // Containment must be checked even when the member itself is a regular\n // file: a SYMLINKED GENERATION DIRECTORY lets reads through to whatever\n // path the link resolves to — a regular file in a linked dir is still\n // outside the memory root and must be rejected.\n const real = await realpath(filePath).catch(() => null);\n if (real) {\n const scope = await realpath(stateDir).catch(() => stateDir);\n const rel = path.relative(scope, real);\n if (rel.startsWith(\"..\") || path.isAbsolute(rel)) {\n throw new EmbeddingIndexStorageError(\n `embedding index file escapes the state directory via symlink; refusing: ${filePath} -> ${real}`,\n );\n }\n }\n if (!info || !info.isSymbolicLink()) return;\n throw new EmbeddingIndexStorageError(\n `embedding index file is a symlink; refusing to read or write through it: ${filePath}`,\n );\n }\n\n async readFileAt(filePath: string): Promise<ManagedIndexRead> {\n await this.assertGenerationFileNotSymlinked(filePath);\n const hardLimit = resolveIndexHardReadCharLimit();\n let size = 0;\n try {\n size = (await stat(filePath)).size;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return { outcome: \"absent\" };\n return { outcome: \"unreadable\", reason: `stat failed: ${err instanceof Error ? err.message : String(err)}` };\n }\n // Reads are gated by the HARD single-string ceiling only — NOT by the\n // soft write budget — so a legacy index from an older version sitting\n // between the two still loads and migrates (issue #3146). Byte size is\n // only a conservative bound for UTF-8 (bytes ≥ chars): at or below it a\n // readFile is guaranteed materializable; past it the file MAY still be\n // readable as a string, but refusing is the safe side. An over-ceiling\n // file is preserved in place; the caller decides fail-open (recall) or\n // fail-closed (mutation).\n if (size > hardLimit) {\n return {\n outcome: \"unreadable\",\n reason: `file is ${size} bytes, over the ${hardLimit}-char hard single-string read ceiling (V8 RangeError territory); bytes preserved in place — move or prune the file to recover`,\n };\n }\n let raw: string;\n try {\n raw = this.io\n ? await this.io.readUtf8(filePath)\n : await readFile(filePath, \"utf-8\");\n } catch (err) {\n return { outcome: \"unreadable\", reason: `read failed: ${err instanceof Error ? err.message : String(err)}` };\n }\n return parseEmbeddingIndexDocument(raw);\n }\n\n private async readShardNames(): Promise<string[]> {\n try {\n return (await readdir(this.shardDir))\n .filter((name) => SHARD_FILE_PATTERN.test(name))\n .sort();\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === \"ENOENT\") return [];\n // The published generation exists but cannot be enumerated. Treating\n // it as empty would let a mutation overwrite shards it never saw, so\n // this must propagate — strict mutation fails closed, recall fails\n // open at its boundary (issue #3146 review).\n throw new EmbeddingIndexStorageError(\n `cannot enumerate embedding index shard directory ${this.shardDir}: ${err instanceof Error ? `${err.message} (${(err as NodeJS.ErrnoException).code ?? \"unknown\"})` : String(err)}`,\n );\n }\n }\n\n /**\n * Persist the index. Layout decisions, in order:\n * - published generation: rewrite only the shards this mutation touched;\n * - legacy/empty generation and the whole index fits one bounded JSON\n * string: stay the single `state/embeddings.json` file;\n * - over budget: ONE-WAY migration — stage a complete shard set, publish\n * it with a single directory rename, then rename the legacy file aside\n * as a non-authoritative recovery artifact (issue #3146).\n */\n async persist(\n index: EmbeddingIndexFile,\n opts: {\n touchedIds?: readonly string[];\n memoryId?: string;\n /** Reasserts mutation-lock ownership immediately before each destructive write (after serialization). */\n fence?: EmbeddingGenerationFence;\n } = {},\n ): Promise<void> {\n const stateDir = path.dirname(this.indexPath);\n await mkdir(stateDir, { recursive: true });\n await this.cleanForeignStagingDirs();\n // NOTE: interrupted-replacement recovery runs in the mutation wrapper\n // (EmbeddingFallback.enqueueIndexMutation) BEFORE this method, so the\n // caller's index already reflects the restored generation.\n\n const groups = shardEntriesForIndex(index);\n\n const layout = await this.detectLayout();\n\n if (layout === \"sharded\") {\n const limit = resolveIndexFileCharLimit();\n // An identity change on a published generation (a sharded host index\n // replaced by a fallback provider, or a host-model change) must\n // publish a COMPLETE replacement: the dirty-shard fast path would\n // rewrite only the touched shard under the new identity and leave the\n // former identity's shards in place — a mixed generation that every\n // later load rejects (codex P1, PR #3148).\n const diskIdentity = await this.identityFromDisk();\n if (groups.size === 0) {\n // An empty directory has no transport-visible deletion evidence.\n // Publish a valid empty shard so a peer without a shared base also\n // replaces its stale generation rather than preserving old vectors.\n groups.set(0, {});\n await this.publishReplacementGeneration(index, groups, limit, opts.fence);\n return;\n }\n const identityChanged =\n diskIdentity !== null &&\n (diskIdentity.provider !== index.provider || diskIdentity.model !== index.model);\n if (identityChanged) {\n await this.publishReplacementGeneration(index, groups, limit, opts.fence);\n return;\n }\n const dirtyShards = opts.touchedIds?.length\n ? new Set(opts.touchedIds.map((id) => shardIndexOf(id, SHARD_COUNT)))\n : null;\n // Serialize every touched shard BEFORE writing anything so a capacity\n // failure cannot leave a partial rewrite.\n const targets = dirtyShards ? [...dirtyShards] : [...groups.keys()];\n const payloads = targets\n .filter((shardIndex) => groups.has(shardIndex))\n .map((shardIndex) => ({\n shardIndex,\n body: serializeEmbeddingShard(index, shardIndex, groups.get(shardIndex)!, limit),\n }));\n // Serialization is done: reassert lock ownership immediately before\n // the destructive live-generation writes.\n await opts.fence?.();\n for (const payload of payloads) {\n await this.writeAtomicFile(\n path.join(this.shardDir, shardFileName(payload.shardIndex)),\n payload.body,\n );\n }\n // A dirty shard with no remaining entries (its last entry was just\n // removed) must be removed from disk, not silently skipped.\n for (const shardIndex of targets) {\n if (!groups.has(shardIndex)) {\n await rm(path.join(this.shardDir, shardFileName(shardIndex)), { force: true });\n }\n }\n return;\n }\n\n let whole: string | null;\n try {\n whole = JSON.stringify(index);\n } catch (err) {\n if (!isInvalidStringLengthError(err)) throw err;\n whole = null;\n }\n const limit = resolveIndexFileCharLimit();\n if (whole !== null && whole.length <= limit) {\n // Serialized above: reassert lock ownership immediately before the\n // destructive atomic write.\n await opts.fence?.();\n await this.writeAtomicFile(this.indexPath, whole);\n return;\n }\n\n // One-way migration. Until the publish rename, the legacy file stays\n // authoritative; afterwards the published directory is the only\n // generation and the legacy file is demoted to a recovery artifact.\n const stagingDir = path.join(\n stateDir,\n `embeddings.staging.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`,\n );\n await mkdir(stagingDir, { recursive: true });\n try {\n await this.stageShardSet(stagingDir, index, groups, limit);\n // Atomic publish: the directory appearing IS the layout marker.\n await this.publishSwappedGeneration(stagingDir, opts.fence);\n } catch (err) {\n await rm(stagingDir, { recursive: true, force: true }).catch(() => undefined);\n throw err;\n }\n await rename(\n this.indexPath,\n `${this.indexPath}.pre-migration.tmp-${Date.now()}-${Math.random().toString(16).slice(2)}`,\n ).catch(() => undefined);\n }\n\n /**\n * Replace a published generation wholesale after a provider/model identity\n * change (replacement semantics — the former entries are obsolete by\n * definition). Crash-safe by the same construction as the migration: the\n * COMPLETE new-identity set is staged and validated first (old bytes are\n * not touched until staging succeeds), then published atomically through\n * `publishSwappedGeneration`.\n */\n private async publishReplacementGeneration(\n index: EmbeddingIndexFile,\n groups: Map<number, Record<string, EmbeddingIndexEntry>>,\n limit: number,\n fence?: EmbeddingGenerationFence,\n ): Promise<void> {\n const stateDir = path.dirname(this.indexPath);\n const stagingDir = path.join(\n stateDir,\n `embeddings.staging.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`,\n );\n await mkdir(stagingDir, { recursive: true });\n try {\n await this.stageShardSet(stagingDir, index, groups, limit);\n await this.publishSwappedGeneration(stagingDir, fence);\n } catch (err) {\n await rm(stagingDir, { recursive: true, force: true }).catch(() => undefined);\n throw err;\n }\n }\n\n /**\n * Write a complete shard set into a staging directory. Every shard is\n * serialized before the first write, so a capacity failure cannot leave a\n * partial stage behind.\n */\n private async stageShardSet(\n stagingDir: string,\n index: EmbeddingIndexFile,\n groups: Map<number, Record<string, EmbeddingIndexEntry>>,\n limit: number,\n ): Promise<void> {\n const payloads = [...groups]\n .map(([shardIndex, entries]) => ({\n shardIndex,\n body: serializeEmbeddingShard(index, shardIndex, entries, limit),\n }));\n for (const payload of payloads) {\n const finalAadFilePath = path.join(this.shardDir, shardFileName(payload.shardIndex));\n await this.writeAtomicFile(\n path.join(stagingDir, shardFileName(payload.shardIndex)),\n payload.body,\n { finalAadFilePath },\n );\n }\n }\n\n /**\n * Atomically remove the published generation (offline-sync: the remote\n * deleted the whole index) by publishing an EMPTY staged directory\n * through the shared swap: the rename is atomic, so the former generation\n * moves whole into the fixed backup and back — a failure before the\n * commit rolls the former generation back intact, and a post-commit\n * backup-cleanup failure is non-fatal (the empty published directory\n * stays the authoritative one-way layout marker). The fixed backup is\n * symlink-checked first (round 5).\n */\n async removePublishedGeneration(fence?: EmbeddingGenerationFence): Promise<void> {\n const backupPath = replacementBackupPath(this.shardDir);\n await this.assertBackupNotSymlink(backupPath);\n await rm(backupPath, { recursive: true, force: true });\n // Remove by publishing an EMPTY staged directory through the SAME swap\n // state machine as every other publication: rename is atomic, so the\n // former generation moves whole into the fixed backup and back — a\n // partially-deleted generation can never be exposed. The empty\n // published directory stays the one-way layout marker, so a stray\n // legacy file can never become authoritative after removal. The\n // demoted backup's post-commit cleanup is non-fatal (existing\n // publishSwappedGeneration semantics).\n await mkdir(path.dirname(this.shardDir), { recursive: true });\n const emptyStaging = await mkdtemp(\n path.join(path.dirname(this.shardDir), \"embeddings.staging.tmp-empty-\"),\n );\n try {\n await this.publishSwappedGeneration(emptyStaging, fence);\n } catch (err) {\n await rm(emptyStaging, { recursive: true, force: true }).catch(() => undefined);\n throw err;\n }\n }\n\n /**\n * Atomically publish a fully staged generation directory as THE published\n * generation. The former published directory is demoted to the FIXED\n * transaction backup and the staging dir is renamed in with a single\n * rename; if the publish rename fails the former generation is rolled\n * back, and if the process dies in the rename gap `detectLayout()` /\n * `recoverIfInterrupted()` perform the same rollback on next use.\n * Shared by the mutation-side migration/replacement and the offline-sync\n * generation transaction (issue #3148, round 4) so there is exactly one\n * swap state machine. Staging-dir cleanup stays with the caller.\n */\n async publishSwappedGeneration(stagingDir: string, fence?: EmbeddingGenerationFence): Promise<void> {\n // The replacement is published: the backup is obsolete disk. A cleanup\n // failure is non-fatal (the next replacement removes it) but must stay\n // visible.\n const backupPath = replacementBackupPath(this.shardDir);\n await this.assertBackupNotSymlink(backupPath);\n // Cheap ownership check before the destructive backup cleanup: a peer\n // stale-break would otherwise see the backup vanish under it before we\n // even reach the live renames (Kilo PRRT_kwDORJXyws6mZ8i5).\n await fence?.();\n await rm(backupPath, { recursive: true, force: true });\n // Second ownership check immediately before the live renames: any\n // delay between the cleanup and the rename still allows a stale-break,\n // and publishing now would clobber the peer's write.\n await fence?.();\n let demoted = false;\n try {\n await stat(this.shardDir);\n await rename(this.shardDir, backupPath);\n demoted = true;\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== \"ENOENT\") throw err;\n }\n try {\n await rename(stagingDir, this.shardDir);\n } catch (err) {\n if (demoted) await rename(backupPath, this.shardDir).catch(() => undefined);\n throw err;\n }\n await rm(backupPath, { recursive: true, force: true }).catch((err) => {\n log.warn(`embedding index: could not remove replacement backup ${backupPath}: ${err}`);\n });\n }\n\n /** Remove staging dirs orphaned by crashed migrations. A foreign dir younger than the grace window may belong to a live writer mid-migration, so only older dirs are removed (issue #3148 review, round 3). */\n private static readonly STAGING_CLEANUP_GRACE_MS = 10 * 60 * 1000;\n\n private async cleanForeignStagingDirs(): Promise<void> {\n const stateDir = path.dirname(this.indexPath);\n let names: string[] = [];\n try {\n names = await readdir(stateDir);\n } catch {\n return;\n }\n const ownPrefix = `embeddings.staging.tmp-${process.pid}-`;\n const cutoff = Date.now() - EmbeddingIndexFileStore.STAGING_CLEANUP_GRACE_MS;\n for (const name of names) {\n if (!name.startsWith(\"embeddings.staging.tmp-\") || name.startsWith(ownPrefix)) continue;\n try {\n const stats = await stat(path.join(stateDir, name));\n if (stats.mtimeMs > cutoff) continue;\n } catch {\n continue;\n }\n await rm(path.join(stateDir, name), { recursive: true, force: true }).catch(() => undefined);\n }\n }\n\n /**\n * Temp-file + rename write. The temp name carries `.tmp-` so offline sync\n * ignores in-flight files under `state/`. With a wired io, the write goes\n * through the canonical secure-store contract instead, optionally binding\n * the ciphertext to the FINAL published path (staged shards).\n */\n private async writeAtomicFile(\n filePath: string,\n contents: string,\n opts?: { finalAadFilePath?: string; bypassSecureIo?: boolean },\n ): Promise<void> {\n if (this.io && opts?.bypassSecureIo !== true) {\n await this.io.writeUtf8(filePath, contents, opts?.finalAadFilePath === undefined ? undefined : { finalAadFilePath: opts.finalAadFilePath });\n return;\n }\n const tempPath = `${filePath}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(16).slice(2)}`;\n try {\n await writeFile(tempPath, contents, \"utf-8\");\n await rename(tempPath, filePath);\n } catch (err) {\n await rm(tempPath, { force: true }).catch(() => undefined);\n throw err;\n }\n }\n\n /**\n * Record the outcome of one index mutation durably. This is diagnostics,\n * NOT recovery: write failures are recorded and then re-thrown by the\n * caller so the extraction/consolidation task fails explicitly instead of\n * declaring success over an index that could not be persisted (issue\n * #3146).\n */\n async recordIndexWriteOutcome(err: unknown, memoryId?: string): Promise<void> {\n if (!err) {\n await this.recordIndexStatus({\n lastWriteFailure: null,\n lastSuccessAt: new Date().toISOString(),\n });\n return;\n }\n const kind: EmbeddingIndexWriteFailure[\"kind\"] =\n err instanceof EmbeddingIndexCapacityError || isInvalidStringLengthError(err)\n ? \"capacity\"\n : \"io\";\n await this.recordIndexStatus({\n failureCountIncrement: 1,\n lastWriteFailure: {\n ts: new Date().toISOString(),\n kind,\n message: err instanceof Error ? err.message : String(err),\n ...(memoryId ? { memoryId } : {}),\n },\n });\n }\n\n /**\n * Merge diagnostic state into `state/embedding-fallback-status.json`.\n * Best-effort: a diagnostics failure never masks the real outcome.\n */\n private async recordIndexStatus(\n patch: {\n failureCountIncrement?: number;\n lastWriteFailure?: EmbeddingIndexWriteFailure | null;\n lastReadRecovery?: { ts: string; message: string };\n lastSuccessAt?: string;\n },\n ): Promise<void> {\n try {\n let current: EmbeddingIndexStatusFile = { version: 1, failureCount: 0 };\n try {\n const parsed = JSON.parse(await readFile(this.statusPath, \"utf-8\")) as Partial<EmbeddingIndexStatusFile>;\n if (parsed && typeof parsed === \"object\" && typeof parsed.failureCount === \"number\") {\n current = { ...parsed, version: 1, failureCount: parsed.failureCount };\n }\n } catch {\n // Absent or unreadable status starts fresh; the index files own the truth.\n }\n const next: EmbeddingIndexStatusFile = { ...current };\n if (patch.failureCountIncrement) next.failureCount += patch.failureCountIncrement;\n if (patch.lastWriteFailure !== undefined) {\n if (patch.lastWriteFailure === null) delete next.lastWriteFailure;\n else next.lastWriteFailure = patch.lastWriteFailure;\n }\n if (patch.lastReadRecovery !== undefined) next.lastReadRecovery = patch.lastReadRecovery;\n if (patch.lastSuccessAt !== undefined) next.lastSuccessAt = patch.lastSuccessAt;\n // The status file is ALWAYS plain (non-secret diagnostics: failure\n // strings and counts only). It bypasses the secure io so console_state\n // keeps reading it on locked stores and failure counts never reset.\n await mkdir(path.dirname(this.statusPath), { recursive: true });\n await this.writeAtomicFile(this.statusPath, JSON.stringify(next), { bypassSecureIo: true });\n } catch (err) {\n log.debug(`embedding fallback status write failed: ${err}`);\n }\n }\n}\n\nfunction sameIndexIdentity(\n left: EmbeddingIndexIdentity,\n right: EmbeddingIndexIdentity,\n): boolean {\n return left.provider === right.provider && left.model === right.model;\n}\n"],"mappings":"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","names":["limit"]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
drainPendingLifecycleForSyncOrThrow,
|
|
6
6
|
drainPendingLifecycleLedgerForSync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-22DYJLFN.js";
|
|
8
8
|
import {
|
|
9
9
|
displayErrorDetail
|
|
10
10
|
} from "./chunk-RL6NEVXT.js";
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
offlineSyncStorageForSnapshot,
|
|
182
182
|
drainPendingLifecycleForOfflineSync
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-UP75KL3L.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
decryptMemoryDirToPlaintext,
|
|
21
21
|
migrateMemoryDirToEncrypted
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MAAL6OZV.js";
|
|
23
23
|
import {
|
|
24
24
|
generateSalt
|
|
25
25
|
} from "./chunk-A6XUJE5D.js";
|
|
@@ -499,4 +499,4 @@ export {
|
|
|
499
499
|
renderStatusReport,
|
|
500
500
|
createPassphraseReader
|
|
501
501
|
};
|
|
502
|
-
//# sourceMappingURL=chunk-
|
|
502
|
+
//# sourceMappingURL=chunk-V4JZCTMK.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
computeCorpusWatermarks,
|
|
6
6
|
resolveCorpusNamespaceRoots
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5MNUBT7T.js";
|
|
8
8
|
|
|
9
9
|
// src/operator-doctor-corpus.ts
|
|
10
10
|
var DIGEST_PREFIX_LENGTH = 12;
|
|
@@ -78,4 +78,4 @@ export {
|
|
|
78
78
|
corpusWatermarksFromCheck,
|
|
79
79
|
summarizeCorpusAndReplica
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-VALKBYBN.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-WEHSQBFR.js";
|
|
7
7
|
import {
|
|
8
8
|
encryptCapsuleFile
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DQEMWVMT.js";
|
|
10
10
|
import {
|
|
11
11
|
CAPSULE_SCHEMA_VERSION,
|
|
12
12
|
EXPORT_FORMAT
|
|
@@ -261,4 +261,4 @@ export {
|
|
|
261
261
|
exportCapsule,
|
|
262
262
|
isValidCapsuleSince
|
|
263
263
|
};
|
|
264
|
-
//# sourceMappingURL=chunk-
|
|
264
|
+
//# sourceMappingURL=chunk-VDX2J7OX.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
decryptCapsuleFileInMemory,
|
|
21
21
|
isEncryptedCapsuleFile
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-DQEMWVMT.js";
|
|
23
23
|
import {
|
|
24
24
|
assertIsDirectoryNotSymlink,
|
|
25
25
|
assertRealpathInsideRoot,
|
|
@@ -294,4 +294,4 @@ function mintForkId(capsuleId, originalId, now) {
|
|
|
294
294
|
export {
|
|
295
295
|
importCapsule
|
|
296
296
|
};
|
|
297
|
-
//# sourceMappingURL=chunk-
|
|
297
|
+
//# sourceMappingURL=chunk-VVX5PZFS.js.map
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
exportOkfBundle,
|
|
21
21
|
parseIncludeStatus
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-BLVR4WYU.js";
|
|
23
23
|
import {
|
|
24
24
|
exportSqlite
|
|
25
25
|
} from "./chunk-BV2TIZ4F.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-2DL3OFLD.js";
|
|
32
32
|
import {
|
|
33
33
|
backupMemoryDir
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-BXLOS5AJ.js";
|
|
35
35
|
import {
|
|
36
36
|
exportMarkdownBundle
|
|
37
37
|
} from "./chunk-765K3SAT.js";
|
|
@@ -58,7 +58,7 @@ import {
|
|
|
58
58
|
} from "./chunk-IIFFC3RL.js";
|
|
59
59
|
import {
|
|
60
60
|
rebuildMemoryLifecycleLedger
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-H5BJWPUI.js";
|
|
62
62
|
import {
|
|
63
63
|
rebuildObservations
|
|
64
64
|
} from "./chunk-DQTCGVFK.js";
|
|
@@ -73,13 +73,13 @@ import {
|
|
|
73
73
|
} from "./chunk-HSSERO3E.js";
|
|
74
74
|
import {
|
|
75
75
|
lintOkfDir
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-G2STTRYB.js";
|
|
77
77
|
import {
|
|
78
78
|
runCompatChecks
|
|
79
79
|
} from "./chunk-2524MOWK.js";
|
|
80
80
|
import {
|
|
81
81
|
searchVerifiedEpisodes
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-4MP7XR5J.js";
|
|
83
83
|
import {
|
|
84
84
|
getUtilityLearningStatus,
|
|
85
85
|
learnUtilityPromotionWeights
|
|
@@ -93,15 +93,15 @@ import {
|
|
|
93
93
|
} from "./chunk-OJP3N7UK.js";
|
|
94
94
|
import {
|
|
95
95
|
promoteSemanticRuleFromMemory
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-FJLQXMTU.js";
|
|
97
97
|
import {
|
|
98
98
|
searchVerifiedSemanticRules
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-2NAD4YCI.js";
|
|
100
100
|
import {
|
|
101
101
|
buildResumeBundleFromState,
|
|
102
102
|
getResumeBundleStatus,
|
|
103
103
|
recordResumeBundle
|
|
104
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-2WLMWP2T.js";
|
|
105
105
|
import {
|
|
106
106
|
getWorkProductLedgerStatus,
|
|
107
107
|
recordWorkProductLedgerEntry,
|
|
@@ -113,20 +113,6 @@ import {
|
|
|
113
113
|
import {
|
|
114
114
|
parseXrayCliOptions
|
|
115
115
|
} from "./chunk-DBYAY6UW.js";
|
|
116
|
-
import {
|
|
117
|
-
formatNamespaceMaintenanceHealthText,
|
|
118
|
-
runBenchmarkRecall,
|
|
119
|
-
runOperatorConfigReview,
|
|
120
|
-
runOperatorDoctor,
|
|
121
|
-
runOperatorInventory,
|
|
122
|
-
runOperatorRepair,
|
|
123
|
-
runOperatorSetup
|
|
124
|
-
} from "./chunk-W75BBBSY.js";
|
|
125
|
-
import {
|
|
126
|
-
analyzeSessionIntegrity,
|
|
127
|
-
applySessionRepair,
|
|
128
|
-
planSessionRepair
|
|
129
|
-
} from "./chunk-KFY3SGN7.js";
|
|
130
116
|
import {
|
|
131
117
|
collectPatternMemories,
|
|
132
118
|
explainPatternMemory,
|
|
@@ -140,6 +126,20 @@ import {
|
|
|
140
126
|
readRuntimePolicySnapshot,
|
|
141
127
|
sanitizeRuntimePolicyValues
|
|
142
128
|
} from "./chunk-2LA3H54D.js";
|
|
129
|
+
import {
|
|
130
|
+
formatNamespaceMaintenanceHealthText,
|
|
131
|
+
runBenchmarkRecall,
|
|
132
|
+
runOperatorConfigReview,
|
|
133
|
+
runOperatorDoctor,
|
|
134
|
+
runOperatorInventory,
|
|
135
|
+
runOperatorRepair,
|
|
136
|
+
runOperatorSetup
|
|
137
|
+
} from "./chunk-WKY7N3L7.js";
|
|
138
|
+
import {
|
|
139
|
+
analyzeSessionIntegrity,
|
|
140
|
+
applySessionRepair,
|
|
141
|
+
planSessionRepair
|
|
142
|
+
} from "./chunk-KFY3SGN7.js";
|
|
143
143
|
import {
|
|
144
144
|
GITHUB_CONNECTOR_ID,
|
|
145
145
|
GMAIL_CONNECTOR_ID,
|
|
@@ -171,12 +171,12 @@ import {
|
|
|
171
171
|
} from "./chunk-4IHBN6WU.js";
|
|
172
172
|
import {
|
|
173
173
|
GraphDashboardServer
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-EZ25VE3G.js";
|
|
175
175
|
import {
|
|
176
176
|
rebuildMemoryProjection,
|
|
177
177
|
repairMemoryProjection,
|
|
178
178
|
verifyMemoryProjection
|
|
179
|
-
} from "./chunk-
|
|
179
|
+
} from "./chunk-C7ZDKWPS.js";
|
|
180
180
|
import {
|
|
181
181
|
buildConnectorRowsFromDefinitions,
|
|
182
182
|
parseConnectorsListOptions,
|
|
@@ -197,7 +197,7 @@ import {
|
|
|
197
197
|
} from "./chunk-6TBIWIAG.js";
|
|
198
198
|
import {
|
|
199
199
|
parseConfig
|
|
200
|
-
} from "./chunk-
|
|
200
|
+
} from "./chunk-H56VY4BY.js";
|
|
201
201
|
import {
|
|
202
202
|
applyManagedRegion,
|
|
203
203
|
expandVaultTemplateTokens,
|
|
@@ -206,11 +206,11 @@ import {
|
|
|
206
206
|
parseAtxHeading,
|
|
207
207
|
resolveVaultNotePath,
|
|
208
208
|
validateRegionName
|
|
209
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-3TB2XQ3C.js";
|
|
210
210
|
import {
|
|
211
211
|
EngramAccessHttpServer,
|
|
212
212
|
MeetingsInputError
|
|
213
|
-
} from "./chunk-
|
|
213
|
+
} from "./chunk-LU7E2MXE.js";
|
|
214
214
|
import {
|
|
215
215
|
WearablesInputError
|
|
216
216
|
} from "./chunk-V7IZKJI3.js";
|
|
@@ -220,10 +220,10 @@ import {
|
|
|
220
220
|
loadChatSession,
|
|
221
221
|
processChatMessage,
|
|
222
222
|
sessionBelongsToPrincipal
|
|
223
|
-
} from "./chunk-
|
|
223
|
+
} from "./chunk-IOSZHHJC.js";
|
|
224
224
|
import {
|
|
225
225
|
EngramAccessService
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-QB57WIS6.js";
|
|
227
227
|
import {
|
|
228
228
|
WorkStorage
|
|
229
229
|
} from "./chunk-MPC7TYTZ.js";
|
|
@@ -243,16 +243,16 @@ import {
|
|
|
243
243
|
} from "./chunk-KN6CIN7I.js";
|
|
244
244
|
import {
|
|
245
245
|
readAggregateExtractionWatermark
|
|
246
|
-
} from "./chunk-
|
|
246
|
+
} from "./chunk-GZDTVYK2.js";
|
|
247
247
|
import {
|
|
248
248
|
getObjectiveStateStoreStatus
|
|
249
249
|
} from "./chunk-HM7RHKS4.js";
|
|
250
250
|
import {
|
|
251
251
|
journalPath
|
|
252
|
-
} from "./chunk-
|
|
252
|
+
} from "./chunk-66DKTOBY.js";
|
|
253
253
|
import {
|
|
254
254
|
searchHarmonicRetrieval
|
|
255
|
-
} from "./chunk-
|
|
255
|
+
} from "./chunk-AEU4EQGV.js";
|
|
256
256
|
import {
|
|
257
257
|
getCueAnchorStoreStatus
|
|
258
258
|
} from "./chunk-BMWN7B3Y.js";
|
|
@@ -261,18 +261,18 @@ import {
|
|
|
261
261
|
readMemoryGovernanceRunArtifact,
|
|
262
262
|
restoreMemoryGovernanceRun,
|
|
263
263
|
runMemoryGovernance
|
|
264
|
-
} from "./chunk-
|
|
264
|
+
} from "./chunk-AWG3TIAY.js";
|
|
265
265
|
import {
|
|
266
266
|
listNamespaces,
|
|
267
267
|
runNamespaceMigration,
|
|
268
268
|
verifyNamespaces
|
|
269
|
-
} from "./chunk-
|
|
269
|
+
} from "./chunk-2DLWLNO4.js";
|
|
270
270
|
import {
|
|
271
271
|
resolveNamespaceChildRoot
|
|
272
272
|
} from "./chunk-3UXOZBHV.js";
|
|
273
273
|
import {
|
|
274
274
|
analyzeGraphHealth
|
|
275
|
-
} from "./chunk-
|
|
275
|
+
} from "./chunk-5FAGCOZD.js";
|
|
276
276
|
import {
|
|
277
277
|
hostSecretRefResolver,
|
|
278
278
|
loadHostSecretRefResolver,
|
|
@@ -280,7 +280,7 @@ import {
|
|
|
280
280
|
} from "./chunk-IJ6WHMFB.js";
|
|
281
281
|
import {
|
|
282
282
|
renderExtractionLivenessStats
|
|
283
|
-
} from "./chunk-
|
|
283
|
+
} from "./chunk-AWD36R4D.js";
|
|
284
284
|
import {
|
|
285
285
|
parseDeepRecallMaxSteps
|
|
286
286
|
} from "./chunk-A7AISUJI.js";
|
|
@@ -300,10 +300,10 @@ import {
|
|
|
300
300
|
} from "./chunk-QDW3E4RD.js";
|
|
301
301
|
import {
|
|
302
302
|
getCausalTrajectoryStoreStatus
|
|
303
|
-
} from "./chunk-
|
|
303
|
+
} from "./chunk-B3O3IRZN.js";
|
|
304
304
|
import {
|
|
305
305
|
meetingIdDate
|
|
306
|
-
} from "./chunk-
|
|
306
|
+
} from "./chunk-STEOT4DI.js";
|
|
307
307
|
import {
|
|
308
308
|
isValidTranscriptDate
|
|
309
309
|
} from "./chunk-UHVXE24Y.js";
|
|
@@ -330,7 +330,7 @@ import {
|
|
|
330
330
|
} from "./chunk-353C5UNV.js";
|
|
331
331
|
import {
|
|
332
332
|
composeMemoryEnvelope
|
|
333
|
-
} from "./chunk-
|
|
333
|
+
} from "./chunk-5AYUHSAU.js";
|
|
334
334
|
import {
|
|
335
335
|
buildActionConfidenceInputFromOptions,
|
|
336
336
|
evaluateActionConfidence,
|
|
@@ -338,7 +338,7 @@ import {
|
|
|
338
338
|
} from "./chunk-Z2YFLXHU.js";
|
|
339
339
|
import {
|
|
340
340
|
STATE_FILE_MAX_DECRYPT_BYTES
|
|
341
|
-
} from "./chunk-
|
|
341
|
+
} from "./chunk-22DYJLFN.js";
|
|
342
342
|
import {
|
|
343
343
|
inferMemoryStatus,
|
|
344
344
|
isArchivedMemoryPath,
|
|
@@ -391,7 +391,7 @@ import {
|
|
|
391
391
|
import {
|
|
392
392
|
SECURE_STORE_ENVELOPE_OVERHEAD_BYTES,
|
|
393
393
|
probeEncryptedRegularFileHeader
|
|
394
|
-
} from "./chunk-
|
|
394
|
+
} from "./chunk-MAAL6OZV.js";
|
|
395
395
|
import {
|
|
396
396
|
RECALL_FALLBACK_DIRS
|
|
397
397
|
} from "./chunk-VS2IYZRU.js";
|
|
@@ -6698,7 +6698,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
|
|
|
6698
6698
|
}
|
|
6699
6699
|
}
|
|
6700
6700
|
if (sourceArchive.endsWith(".enc")) {
|
|
6701
|
-
const { isEncryptedCapsuleFile } = await import("./capsule-crypto-
|
|
6701
|
+
const { isEncryptedCapsuleFile } = await import("./capsule-crypto-YO5QJ6L3.js");
|
|
6702
6702
|
const encDetected = await isEncryptedCapsuleFile(sourceArchive).catch(() => true);
|
|
6703
6703
|
if (encDetected) {
|
|
6704
6704
|
throw new Error(
|
|
@@ -6706,7 +6706,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
|
|
|
6706
6706
|
);
|
|
6707
6707
|
}
|
|
6708
6708
|
}
|
|
6709
|
-
const { mergeCapsule } = await import("./capsule-merge-
|
|
6709
|
+
const { mergeCapsule } = await import("./capsule-merge-ZCXUPLNJ.js");
|
|
6710
6710
|
const result = await mergeCapsule({
|
|
6711
6711
|
sourceArchive,
|
|
6712
6712
|
targetRoot: memoryDir,
|
|
@@ -6861,7 +6861,7 @@ function registerCli(api, orchestrator, registerOptions = {}) {
|
|
|
6861
6861
|
const { parseExportBundle } = await import("./transfer/types.js");
|
|
6862
6862
|
let decryptedBuf;
|
|
6863
6863
|
try {
|
|
6864
|
-
const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-
|
|
6864
|
+
const { decryptCapsuleFileInMemory } = await import("./capsule-crypto-YO5QJ6L3.js");
|
|
6865
6865
|
decryptedBuf = await decryptCapsuleFileInMemory(archivePath, memoryDir);
|
|
6866
6866
|
} catch (decErr) {
|
|
6867
6867
|
const msg = decErr instanceof Error ? decErr.message : String(decErr);
|
|
@@ -9351,7 +9351,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
|
|
|
9351
9351
|
console.error("--verb is required. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context");
|
|
9352
9352
|
process.exit(1);
|
|
9353
9353
|
}
|
|
9354
|
-
const { isValidResolutionVerb, executeResolution } = await import("./resolution-
|
|
9354
|
+
const { isValidResolutionVerb, executeResolution } = await import("./resolution-K4A3VPKZ.js");
|
|
9355
9355
|
if (!isValidResolutionVerb(verb)) {
|
|
9356
9356
|
console.error(`Invalid verb: ${verb}. Must be one of: keep-a, keep-b, merge, both-valid, needs-more-context`);
|
|
9357
9357
|
process.exit(1);
|
|
@@ -9383,7 +9383,7 @@ Semantic consolidation complete. clusters=${result.clustersFound}, consolidated=
|
|
|
9383
9383
|
});
|
|
9384
9384
|
reviewCmd.command("scan").description("Run an on-demand contradiction scan").option("--namespace <ns>", "Namespace to scan").action(async (...args) => {
|
|
9385
9385
|
const options = args[0] ?? {};
|
|
9386
|
-
const { runContradictionScan } = await import("./contradiction-scan-
|
|
9386
|
+
const { runContradictionScan } = await import("./contradiction-scan-TAGMOUQ2.js");
|
|
9387
9387
|
console.log("Running contradiction scan...");
|
|
9388
9388
|
const result = await runContradictionScan({
|
|
9389
9389
|
storage: orchestrator.storage,
|
|
@@ -9903,13 +9903,13 @@ Legacy identity-anchor files are untouched. Verify the migration result`);
|
|
|
9903
9903
|
).action(async (...args) => {
|
|
9904
9904
|
const options = args[0] ?? {};
|
|
9905
9905
|
if (options.stateOnly === true) {
|
|
9906
|
-
const { gatherConsoleState } = await import("./state-
|
|
9906
|
+
const { gatherConsoleState } = await import("./state-JB47KHYV.js");
|
|
9907
9907
|
const snapshot = await gatherConsoleState(orchestrator);
|
|
9908
9908
|
console.log(JSON.stringify(snapshot, null, 2));
|
|
9909
9909
|
return;
|
|
9910
9910
|
}
|
|
9911
9911
|
if (typeof options.trace === "string" && options.trace.length > 0) {
|
|
9912
|
-
const { replayTrace, parseSpeedFlag } = await import("./trace-
|
|
9912
|
+
const { replayTrace, parseSpeedFlag } = await import("./trace-LXXCMZJA.js");
|
|
9913
9913
|
const { expandTildePath: expandTildePath2 } = await import("./utils/path.js");
|
|
9914
9914
|
const tracePath = expandTildePath2(options.trace);
|
|
9915
9915
|
let speed;
|
|
@@ -9937,10 +9937,10 @@ Legacy identity-anchor files are untouched. Verify the migration result`);
|
|
|
9937
9937
|
}
|
|
9938
9938
|
return;
|
|
9939
9939
|
}
|
|
9940
|
-
const { runConsoleTui } = await import("./tui-
|
|
9940
|
+
const { runConsoleTui } = await import("./tui-2Z5WOV7L.js");
|
|
9941
9941
|
let recorder = null;
|
|
9942
9942
|
if (typeof options.recordTrace === "string" && options.recordTrace.length > 0) {
|
|
9943
|
-
const { openTraceRecorder } = await import("./trace-
|
|
9943
|
+
const { openTraceRecorder } = await import("./trace-LXXCMZJA.js");
|
|
9944
9944
|
const { expandTildePath: expandTildePath2 } = await import("./utils/path.js");
|
|
9945
9945
|
recorder = await openTraceRecorder(
|
|
9946
9946
|
expandTildePath2(options.recordTrace)
|
|
@@ -9954,7 +9954,7 @@ Legacy identity-anchor files are untouched. Verify the migration result`);
|
|
|
9954
9954
|
} finally {
|
|
9955
9955
|
if (recorder) {
|
|
9956
9956
|
const CLOSE_TIMEOUT_MS = 2e3;
|
|
9957
|
-
const { flushWithTimeout } = await import("./trace-
|
|
9957
|
+
const { flushWithTimeout } = await import("./trace-LXXCMZJA.js");
|
|
9958
9958
|
const flushResult = await flushWithTimeout(
|
|
9959
9959
|
(signal) => recorder.close(signal),
|
|
9960
9960
|
CLOSE_TIMEOUT_MS
|
|
@@ -10136,4 +10136,4 @@ export {
|
|
|
10136
10136
|
listMemoryMarkdownFilePaths,
|
|
10137
10137
|
registerCli
|
|
10138
10138
|
};
|
|
10139
|
-
//# sourceMappingURL=chunk-
|
|
10139
|
+
//# sourceMappingURL=chunk-W3XXFPRI.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
readNamespaceMaintenanceLastRanStatuses,
|
|
4
4
|
readNamespaceMaintenanceStatuses,
|
|
5
5
|
runNamespaceMaintenancePlan
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-A4VSOUCB.js";
|
|
7
7
|
import {
|
|
8
8
|
analyzeSessionIntegrity,
|
|
9
9
|
applySessionRepair,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./chunk-CMTINOFS.js";
|
|
15
15
|
import {
|
|
16
16
|
summarizeCorpusAndReplica
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VALKBYBN.js";
|
|
18
18
|
import {
|
|
19
19
|
readJudgeVerdictStats
|
|
20
20
|
} from "./chunk-OZKOPQCM.js";
|
|
@@ -38,26 +38,26 @@ import {
|
|
|
38
38
|
} from "./chunk-YBPYIAA5.js";
|
|
39
39
|
import {
|
|
40
40
|
parseConfig
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-H56VY4BY.js";
|
|
42
42
|
import {
|
|
43
43
|
readAggregateExtractionWatermark
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-GZDTVYK2.js";
|
|
45
45
|
import {
|
|
46
46
|
listMemoryGovernanceRuns,
|
|
47
47
|
readMemoryGovernanceRunArtifact
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-AWG3TIAY.js";
|
|
49
49
|
import {
|
|
50
50
|
listNamespaces
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-2DLWLNO4.js";
|
|
52
52
|
import {
|
|
53
53
|
analyzeGraphHealth
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-5FAGCOZD.js";
|
|
55
55
|
import {
|
|
56
56
|
summarizeExtractionLiveness
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-AWD36R4D.js";
|
|
58
58
|
import {
|
|
59
59
|
StorageManager
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-STEOT4DI.js";
|
|
61
61
|
import {
|
|
62
62
|
lintWorkspaceFiles
|
|
63
63
|
} from "./chunk-DM2T26WE.js";
|
|
@@ -1069,7 +1069,7 @@ async function summarizeBufferSurpriseDistribution(storage, config) {
|
|
|
1069
1069
|
}
|
|
1070
1070
|
}
|
|
1071
1071
|
async function summarizeGraphEdgeDecayStatus(config) {
|
|
1072
|
-
const { readGraphEdgeDecayStatus } = await import("./graph-edge-decay-
|
|
1072
|
+
const { readGraphEdgeDecayStatus } = await import("./graph-edge-decay-MKIRZ762.js");
|
|
1073
1073
|
const { graphEdgeDecayEnabled } = config;
|
|
1074
1074
|
const enabled = graphEdgeDecayEnabled === true;
|
|
1075
1075
|
if (!enabled) {
|
|
@@ -1683,4 +1683,4 @@ export {
|
|
|
1683
1683
|
runBenchmarkRecall,
|
|
1684
1684
|
runOperatorRepair
|
|
1685
1685
|
};
|
|
1686
|
-
//# sourceMappingURL=chunk-
|
|
1686
|
+
//# sourceMappingURL=chunk-WKY7N3L7.js.map
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
} from "./chunk-7CRUDH7G.js";
|
|
5
5
|
import {
|
|
6
6
|
composeSalvagedEnvelope
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JYG2334B.js";
|
|
8
8
|
import {
|
|
9
9
|
StorageManager
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-STEOT4DI.js";
|
|
11
11
|
import {
|
|
12
12
|
parseContinuityImprovementLoops
|
|
13
13
|
} from "./chunk-LDXUBPMO.js";
|
|
@@ -1283,4 +1283,4 @@ export {
|
|
|
1283
1283
|
defaultTierMigrationCycleBudget,
|
|
1284
1284
|
CompoundingEngine
|
|
1285
1285
|
};
|
|
1286
|
-
//# sourceMappingURL=chunk-
|
|
1286
|
+
//# sourceMappingURL=chunk-X5SHE2O3.js.map
|