@remnic/core 10.0.2 → 10.0.4
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 +46 -46
- package/dist/access-authorization-probe.js +47 -47
- package/dist/access-boundary.js +46 -46
- package/dist/access-citation-namespace.js +2 -2
- package/dist/access-cli.js +111 -109
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +46 -46
- package/dist/access-http-briefing.js +47 -47
- package/dist/access-http-query.js +48 -48
- package/dist/access-http.js +65 -65
- package/dist/access-identity-continuity-surface.js +46 -46
- package/dist/access-lcm-surface.js +46 -46
- package/dist/access-mcp.js +56 -56
- package/dist/access-namespace-preflight.js +46 -46
- package/dist/access-observe-write-category.js +2 -2
- package/dist/access-observe-write-surface.js +46 -46
- package/dist/access-offline-manifest.js +4 -4
- package/dist/access-operations-batch.js +47 -47
- package/dist/access-operations.js +54 -54
- package/dist/access-recall-concurrency.js +46 -46
- package/dist/access-recall-diagnostics.js +2 -2
- package/dist/access-recall-response.js +46 -46
- package/dist/access-recall-surface.js +46 -46
- package/dist/access-service.js +46 -46
- package/dist/access-surface-catalog.js +48 -48
- package/dist/active-recall.js +19 -18
- 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-PAWBFQWL.js → auto-sync-FN7E3OTO.js} +4 -4
- package/dist/briefing.js +18 -18
- package/dist/buffer.js +7 -7
- package/dist/causal-consolidation.js +19 -19
- package/dist/{chunk-G3T6YMBO.js → chunk-2KB7TTAP.js} +4 -4
- package/dist/{chunk-345MEMRU.js → chunk-3OUGSOJP.js} +2 -2
- package/dist/{chunk-CVQWNACA.js → chunk-3QAIX7TV.js} +2 -2
- package/dist/{chunk-PTGPU4DC.js → chunk-436IRJUD.js} +4 -4
- package/dist/{chunk-G2STTRYB.js → chunk-4D2YH47Z.js} +2 -2
- package/dist/{chunk-DQQ4IM5L.js → chunk-4DXVWBDB.js} +2 -2
- package/dist/{chunk-M2OPC4BD.js → chunk-4NFRYOHT.js} +2 -2
- package/dist/{chunk-PWVBVIOP.js → chunk-5QHTQMRL.js} +5 -5
- package/dist/{chunk-RFIJRZ4K.js → chunk-5XXTZ4Y7.js} +2 -2
- package/dist/{chunk-S4DDLTPX.js → chunk-5Y43VGYB.js} +2 -2
- package/dist/{chunk-LQGX5TCI.js → chunk-5YDWSWBU.js} +3 -3
- package/dist/{chunk-FNVSBUC3.js → chunk-6AH2DDHI.js} +2 -2
- package/dist/{chunk-5GINB5LC.js → chunk-6MKLMEBE.js} +1 -1
- package/dist/{chunk-5GINB5LC.js.map → chunk-6MKLMEBE.js.map} +1 -1
- package/dist/{chunk-JDOBIFBK.js → chunk-7CXL25AA.js} +2 -2
- package/dist/{chunk-YLBE6PLR.js → chunk-7IGMKQWK.js} +2 -2
- package/dist/{chunk-JFDKPW54.js → chunk-7OOW72QA.js} +27 -27
- package/dist/{chunk-J5CUQRST.js → chunk-ABDTBGI2.js} +2 -2
- package/dist/{chunk-LHOIYLKH.js → chunk-ABET5LA5.js} +61 -50
- package/dist/chunk-ABET5LA5.js.map +1 -0
- package/dist/{chunk-IB63OVUB.js → chunk-AJ6ORARY.js} +6 -6
- package/dist/{chunk-U6VC6RP3.js → chunk-AWLQNLTM.js} +2 -2
- package/dist/{chunk-PJSK6OJM.js → chunk-BANSBRNX.js} +2 -2
- package/dist/{chunk-32HO62I4.js → chunk-BDHWKFGM.js} +2 -2
- package/dist/{chunk-AW4QUFQF.js → chunk-BTNNL7ZW.js} +3 -2
- package/dist/{chunk-AW4QUFQF.js.map → chunk-BTNNL7ZW.js.map} +1 -1
- package/dist/{chunk-MY7B3HYC.js → chunk-CLCMDKTB.js} +2 -2
- package/dist/{chunk-AALVXJJ7.js → chunk-CQQTEDHS.js} +2 -2
- package/dist/{chunk-2SYRHFUG.js → chunk-CV5AMCPX.js} +2 -2
- package/dist/{chunk-BTOHGPHC.js → chunk-CXG2T7BJ.js} +3 -3
- package/dist/{chunk-4A2UMSNB.js → chunk-DBA2W6VV.js} +230 -81
- package/dist/chunk-DBA2W6VV.js.map +1 -0
- package/dist/{chunk-E7FN5N5E.js → chunk-DQJCQHII.js} +2 -2
- package/dist/{chunk-CAXMG4JI.js → chunk-DYRXRQHV.js} +2 -2
- package/dist/{chunk-IIFFC3RL.js → chunk-EDR6CVWZ.js} +2 -2
- package/dist/{chunk-6O2VUWV6.js → chunk-EIFYYHAF.js} +2 -2
- package/dist/{chunk-2JRB3Z5N.js → chunk-EP5WXE2G.js} +3 -3
- package/dist/chunk-EWMRFW3F.js +38 -0
- package/dist/chunk-EWMRFW3F.js.map +1 -0
- package/dist/chunk-FMIVV5SV.js +80 -0
- package/dist/chunk-FMIVV5SV.js.map +1 -0
- package/dist/{chunk-2EZB2DL5.js → chunk-GE6HETIF.js} +3 -3
- package/dist/{chunk-YVHNBOK2.js → chunk-GLS3A4SQ.js} +2 -2
- package/dist/{chunk-7IGNDEUJ.js → chunk-H2XCCUOT.js} +3 -3
- package/dist/{chunk-A5N6ZEUW.js → chunk-H6FA36LC.js} +2 -2
- package/dist/{chunk-WPMDNCGB.js → chunk-HSZBALHV.js} +2 -2
- package/dist/{chunk-XG4XXI66.js → chunk-I25RQA65.js} +2 -2
- package/dist/{chunk-NBK24POV.js → chunk-IHIP7TJ3.js} +2 -2
- package/dist/{chunk-DAVONFNK.js → chunk-IINXHPCV.js} +2 -2
- package/dist/{chunk-EJJMDLVB.js → chunk-IJ4FEGZR.js} +2 -2
- package/dist/{chunk-SQPC6MUM.js → chunk-IRYKRBEX.js} +4 -4
- package/dist/{chunk-JOBE47EJ.js → chunk-IVGJXS5F.js} +2 -2
- package/dist/{chunk-36BUOTVN.js → chunk-IXF7TRMQ.js} +2 -2
- package/dist/{chunk-RVQVWDSN.js → chunk-IY7ZISXV.js} +2 -2
- package/dist/{chunk-5FLFPTDK.js → chunk-JA72X46J.js} +2 -2
- package/dist/{chunk-NLYOOGZ7.js → chunk-KE5PWLI6.js} +3 -3
- package/dist/{chunk-FF4KLI5W.js → chunk-LDPPTPO5.js} +8 -1
- package/dist/chunk-LDPPTPO5.js.map +1 -0
- package/dist/{chunk-U4SG4HKQ.js → chunk-LIGP5M2C.js} +2 -2
- package/dist/{chunk-EB3RXN2L.js → chunk-MEMH5NKJ.js} +2 -2
- package/dist/{chunk-4G2COUSD.js → chunk-MEP3POVW.js} +2 -2
- package/dist/{chunk-35A7GCHG.js → chunk-MYBCB4AT.js} +2 -2
- package/dist/{chunk-U46P4UAR.js → chunk-NQHSXHJP.js} +4 -4
- package/dist/{chunk-QPWUG2S3.js → chunk-NSQ3GUVO.js} +2 -2
- package/dist/{chunk-VQTPEL7O.js → chunk-O57VUN4U.js} +4 -4
- package/dist/{chunk-WY4IV62O.js → chunk-OAFRMLL4.js} +2 -2
- package/dist/{chunk-PCO3P7WJ.js → chunk-OGVJXIHX.js} +2 -2
- package/dist/{chunk-IR5LZCE6.js → chunk-ORAL4HJC.js} +2 -2
- package/dist/{chunk-LMZV3H4W.js → chunk-P22M3DX3.js} +3 -3
- package/dist/{chunk-2J3M2KV4.js → chunk-PTFL3INS.js} +2 -2
- package/dist/{chunk-AM4T6CHX.js → chunk-Q4E24IRR.js} +9 -8
- package/dist/chunk-Q4E24IRR.js.map +1 -0
- package/dist/{chunk-CQBFEGLF.js → chunk-QDKABMUE.js} +2 -2
- package/dist/{chunk-34G4U6HS.js → chunk-QRZMJ2WN.js} +2 -2
- package/dist/{chunk-I2VQ7WBJ.js → chunk-QVBB2CLG.js} +13 -13
- package/dist/{chunk-H5YACCE3.js → chunk-QWNBQ2T5.js} +244 -47
- package/dist/chunk-QWNBQ2T5.js.map +1 -0
- package/dist/{chunk-GUD6FYQG.js → chunk-R4O2G6ML.js} +2 -2
- package/dist/{chunk-OSDAF7HH.js → chunk-R6EOFKZG.js} +2 -2
- package/dist/{chunk-OJP3N7UK.js → chunk-R7WYAXPO.js} +2 -2
- package/dist/{chunk-RU744TNX.js → chunk-RGPPNNDJ.js} +8 -8
- package/dist/{chunk-BLHPADUX.js → chunk-RH6MQ5NG.js} +6 -11
- package/dist/chunk-RH6MQ5NG.js.map +1 -0
- package/dist/{chunk-6DNMUYEE.js → chunk-RIEGCK2W.js} +2 -2
- package/dist/{chunk-KHOINMCN.js → chunk-RZCRXCLI.js} +2 -2
- package/dist/{chunk-WI37MWRZ.js → chunk-SNGNGH53.js} +2 -2
- package/dist/{chunk-R4NGLTUS.js → chunk-TDMNADPI.js} +2 -2
- package/dist/{chunk-K4TWTUEY.js → chunk-TSEUVMJL.js} +47 -47
- package/dist/{chunk-PT6DQK5T.js → chunk-TYOBAFCY.js} +3 -3
- package/dist/{chunk-LI76ESJL.js → chunk-TZQOCQXB.js} +2 -2
- package/dist/{chunk-WHTMVTU4.js → chunk-U3LVARGV.js} +2 -2
- package/dist/{chunk-RNYVAQX2.js → chunk-UCCB7RKF.js} +2 -2
- package/dist/{chunk-NUSQ3YEL.js → chunk-UXIZ5XN5.js} +2 -2
- package/dist/{chunk-OV7EYM6M.js → chunk-VWCFR4NR.js} +9 -9
- package/dist/{chunk-DQTCGVFK.js → chunk-WHCD4Z3D.js} +2 -2
- package/dist/{chunk-P57VR7AI.js → chunk-WLC6XA6C.js} +4 -4
- package/dist/{chunk-QCP75JGO.js → chunk-WQUGCOKF.js} +5 -5
- package/dist/{chunk-P5FPO2BR.js → chunk-WWDO7ZWM.js} +3 -3
- package/dist/{chunk-KATEWTQJ.js → chunk-X7J56GPG.js} +2 -2
- package/dist/{chunk-W6K6BC3H.js → chunk-XTWF5XR6.js} +57 -57
- package/dist/{chunk-22DYJLFN.js → chunk-XVC7JU2N.js} +39 -18
- package/dist/chunk-XVC7JU2N.js.map +1 -0
- package/dist/{chunk-YFET6A4I.js → chunk-Y7CXM7UM.js} +3 -3
- package/dist/{chunk-YAPTJQI7.js → chunk-YMXCJ7SE.js} +2 -2
- package/dist/{chunk-AXFWMRKI.js → chunk-YQJCWR4R.js} +2 -2
- package/dist/{chunk-3J54RR3A.js → chunk-Z2EVKNZR.js} +2 -2
- package/dist/{chunk-RKDSELA3.js → chunk-Z63GU5NN.js} +1 -1
- package/dist/chunk-Z63GU5NN.js.map +1 -0
- package/dist/{chunk-BAREPCLY.js → chunk-ZOGZMAGI.js} +2 -2
- package/dist/cli.js +89 -88
- package/dist/coding/export-okf-codegraph.js +18 -18
- package/dist/compounding/engine.js +18 -18
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -18
- package/dist/connectors/codex-materialize-runner.js +18 -18
- package/dist/connectors/index.js +18 -18
- package/dist/convergence-refresh.js +20 -20
- package/dist/conversation-index/backend.js +2 -2
- package/dist/corpus-read-cancellation.d.ts +7 -0
- package/dist/corpus-read-cancellation.d.ts.map +1 -1
- package/dist/corpus-read-cancellation.js +1 -1
- package/dist/corpus-watermark.js +20 -20
- package/dist/directory-sidecars.js +2 -2
- package/dist/entity-retrieval.js +18 -18
- package/dist/explicit-capture.js +3 -3
- package/dist/external-wiki-access.js +47 -47
- package/dist/extraction.js +23 -23
- package/dist/harmonic-retrieval.js +18 -18
- package/dist/index.js +113 -111
- package/dist/location/index.js +21 -21
- package/dist/maintenance/archive-observations.js +2 -2
- package/dist/maintenance/atomic-file.d.ts +1 -1
- package/dist/maintenance/atomic-file.d.ts.map +1 -1
- package/dist/maintenance/atomic-file.js +1 -1
- package/dist/maintenance/memory-governance.js +18 -18
- package/dist/maintenance/migrate-observations.js +3 -3
- package/dist/maintenance/observation-ledger-utils.js +2 -2
- package/dist/maintenance/projection-rebuild-abort.d.ts +17 -0
- package/dist/maintenance/projection-rebuild-abort.d.ts.map +1 -0
- package/dist/maintenance/projection-timeline.d.ts +19 -0
- package/dist/maintenance/projection-timeline.d.ts.map +1 -0
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +18 -18
- package/dist/maintenance/rebuild-memory-projection-runner.d.ts +8 -0
- package/dist/maintenance/rebuild-memory-projection-runner.d.ts.map +1 -0
- package/dist/maintenance/rebuild-memory-projection-runner.js +113 -0
- package/dist/maintenance/rebuild-memory-projection-runner.js.map +1 -0
- package/dist/maintenance/rebuild-memory-projection.d.ts +8 -0
- package/dist/maintenance/rebuild-memory-projection.d.ts.map +1 -1
- package/dist/maintenance/rebuild-memory-projection.js +19 -19
- package/dist/maintenance/rebuild-observations.js +3 -3
- package/dist/memory-browse-operations.js +47 -47
- package/dist/memory-browse.js +7 -7
- package/dist/namespaces/migrate.js +19 -19
- package/dist/namespaces/search.js +8 -8
- package/dist/namespaces/storage.js +18 -18
- package/dist/offline-sync-impression-drain.js +3 -3
- package/dist/operator-doctor-corpus.js +21 -21
- package/dist/operator-toolkit.js +28 -27
- package/dist/orchestration/full-corpus-heap-guard.d.ts +25 -0
- package/dist/orchestration/full-corpus-heap-guard.d.ts.map +1 -0
- package/dist/orchestration/maintenance.d.ts.map +1 -1
- package/dist/orchestration/maintenance.js +29 -27
- package/dist/orchestration/projection-rebuild-schedule.d.ts +40 -0
- package/dist/orchestration/projection-rebuild-schedule.d.ts.map +1 -1
- package/dist/orchestrator.js +111 -109
- package/dist/projection-rebuild-config.d.ts +52 -0
- package/dist/projection-rebuild-config.d.ts.map +1 -0
- package/dist/projection-rebuild-config.js +14 -0
- package/dist/projection-rebuild-config.js.map +1 -0
- package/dist/qmd.js +4 -4
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.js +2 -2
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-navigation-operations.js +47 -47
- package/dist/recall-navigation.js +46 -46
- package/dist/recall-state-view-admission.js +7 -7
- package/dist/recall-state.js +2 -2
- package/dist/recall-why-service.js +7 -7
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.js +2 -2
- package/dist/relevance.js +2 -2
- package/dist/resume-bundles.js +22 -21
- package/dist/search/factory.js +7 -7
- package/dist/search/index.js +11 -11
- 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/session-identity.js +2 -2
- package/dist/session-transcript-migration.js +3 -3
- package/dist/source-agent-qualifier.js +22 -22
- package/dist/standup/build.js +18 -18
- package/dist/storage/memory-lifecycle-ledger-access.d.ts +5 -3
- package/dist/storage/memory-lifecycle-ledger-access.d.ts.map +1 -1
- package/dist/storage/memory-read-store.d.ts +2 -2
- package/dist/storage/memory-read-store.d.ts.map +1 -1
- package/dist/storage-paths.d.ts +11 -0
- package/dist/storage-paths.d.ts.map +1 -1
- package/dist/storage-paths.js +3 -1
- package/dist/storage.d.ts +4 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +17 -17
- package/dist/summarizer.js +4 -4
- package/dist/summary-snapshot.js +2 -2
- package/dist/support-passport/index.js +49 -49
- package/dist/threading.js +2 -2
- package/dist/transcript.d.ts +3 -3
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +3 -3
- package/dist/transfer/export-okf.js +19 -19
- package/dist/types.d.ts +2 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- 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-quarantine.js +2 -2
- package/package.json +2 -2
- package/src/config.test.ts +9 -0
- package/src/config.ts +2 -5
- package/src/corpus-read-cancellation.ts +7 -0
- package/src/maintenance/atomic-file.ts +2 -0
- package/src/maintenance/projection-rebuild-abort.ts +40 -0
- package/src/maintenance/projection-timeline.ts +209 -0
- package/src/maintenance/rebuild-memory-projection-runner.ts +94 -0
- package/src/maintenance/rebuild-memory-projection.memory.test.ts +159 -0
- package/src/maintenance/rebuild-memory-projection.retain-raw.test.ts +202 -0
- package/src/maintenance/rebuild-memory-projection.ts +63 -91
- package/src/orchestration/full-corpus-heap-guard.ts +38 -0
- package/src/orchestration/maintenance.test.ts +2 -2
- package/src/orchestration/maintenance.ts +2 -0
- package/src/orchestration/projection-rebuild-schedule.test.ts +498 -0
- package/src/orchestration/projection-rebuild-schedule.ts +280 -9
- package/src/projection-rebuild-config.ts +82 -0
- package/src/storage/memory-lifecycle-ledger-access.ts +61 -33
- package/src/storage/memory-read-store.ts +10 -4
- package/src/storage-paths.ts +18 -0
- package/src/storage.ts +45 -33
- package/src/transcript-recent-unscoped.test.ts +139 -0
- package/src/transcript.ts +6 -6
- package/src/types.ts +2 -18
- package/dist/chunk-22DYJLFN.js.map +0 -1
- package/dist/chunk-4A2UMSNB.js.map +0 -1
- package/dist/chunk-AM4T6CHX.js.map +0 -1
- package/dist/chunk-BLHPADUX.js.map +0 -1
- package/dist/chunk-FF4KLI5W.js.map +0 -1
- package/dist/chunk-H5YACCE3.js.map +0 -1
- package/dist/chunk-LHOIYLKH.js.map +0 -1
- package/dist/chunk-RKDSELA3.js.map +0 -1
- /package/dist/{auto-sync-PAWBFQWL.js.map → auto-sync-FN7E3OTO.js.map} +0 -0
- /package/dist/{chunk-G3T6YMBO.js.map → chunk-2KB7TTAP.js.map} +0 -0
- /package/dist/{chunk-345MEMRU.js.map → chunk-3OUGSOJP.js.map} +0 -0
- /package/dist/{chunk-CVQWNACA.js.map → chunk-3QAIX7TV.js.map} +0 -0
- /package/dist/{chunk-PTGPU4DC.js.map → chunk-436IRJUD.js.map} +0 -0
- /package/dist/{chunk-G2STTRYB.js.map → chunk-4D2YH47Z.js.map} +0 -0
- /package/dist/{chunk-DQQ4IM5L.js.map → chunk-4DXVWBDB.js.map} +0 -0
- /package/dist/{chunk-M2OPC4BD.js.map → chunk-4NFRYOHT.js.map} +0 -0
- /package/dist/{chunk-PWVBVIOP.js.map → chunk-5QHTQMRL.js.map} +0 -0
- /package/dist/{chunk-RFIJRZ4K.js.map → chunk-5XXTZ4Y7.js.map} +0 -0
- /package/dist/{chunk-S4DDLTPX.js.map → chunk-5Y43VGYB.js.map} +0 -0
- /package/dist/{chunk-LQGX5TCI.js.map → chunk-5YDWSWBU.js.map} +0 -0
- /package/dist/{chunk-FNVSBUC3.js.map → chunk-6AH2DDHI.js.map} +0 -0
- /package/dist/{chunk-JDOBIFBK.js.map → chunk-7CXL25AA.js.map} +0 -0
- /package/dist/{chunk-YLBE6PLR.js.map → chunk-7IGMKQWK.js.map} +0 -0
- /package/dist/{chunk-JFDKPW54.js.map → chunk-7OOW72QA.js.map} +0 -0
- /package/dist/{chunk-J5CUQRST.js.map → chunk-ABDTBGI2.js.map} +0 -0
- /package/dist/{chunk-IB63OVUB.js.map → chunk-AJ6ORARY.js.map} +0 -0
- /package/dist/{chunk-U6VC6RP3.js.map → chunk-AWLQNLTM.js.map} +0 -0
- /package/dist/{chunk-PJSK6OJM.js.map → chunk-BANSBRNX.js.map} +0 -0
- /package/dist/{chunk-32HO62I4.js.map → chunk-BDHWKFGM.js.map} +0 -0
- /package/dist/{chunk-MY7B3HYC.js.map → chunk-CLCMDKTB.js.map} +0 -0
- /package/dist/{chunk-AALVXJJ7.js.map → chunk-CQQTEDHS.js.map} +0 -0
- /package/dist/{chunk-2SYRHFUG.js.map → chunk-CV5AMCPX.js.map} +0 -0
- /package/dist/{chunk-BTOHGPHC.js.map → chunk-CXG2T7BJ.js.map} +0 -0
- /package/dist/{chunk-E7FN5N5E.js.map → chunk-DQJCQHII.js.map} +0 -0
- /package/dist/{chunk-CAXMG4JI.js.map → chunk-DYRXRQHV.js.map} +0 -0
- /package/dist/{chunk-IIFFC3RL.js.map → chunk-EDR6CVWZ.js.map} +0 -0
- /package/dist/{chunk-6O2VUWV6.js.map → chunk-EIFYYHAF.js.map} +0 -0
- /package/dist/{chunk-2JRB3Z5N.js.map → chunk-EP5WXE2G.js.map} +0 -0
- /package/dist/{chunk-2EZB2DL5.js.map → chunk-GE6HETIF.js.map} +0 -0
- /package/dist/{chunk-YVHNBOK2.js.map → chunk-GLS3A4SQ.js.map} +0 -0
- /package/dist/{chunk-7IGNDEUJ.js.map → chunk-H2XCCUOT.js.map} +0 -0
- /package/dist/{chunk-A5N6ZEUW.js.map → chunk-H6FA36LC.js.map} +0 -0
- /package/dist/{chunk-WPMDNCGB.js.map → chunk-HSZBALHV.js.map} +0 -0
- /package/dist/{chunk-XG4XXI66.js.map → chunk-I25RQA65.js.map} +0 -0
- /package/dist/{chunk-NBK24POV.js.map → chunk-IHIP7TJ3.js.map} +0 -0
- /package/dist/{chunk-DAVONFNK.js.map → chunk-IINXHPCV.js.map} +0 -0
- /package/dist/{chunk-EJJMDLVB.js.map → chunk-IJ4FEGZR.js.map} +0 -0
- /package/dist/{chunk-SQPC6MUM.js.map → chunk-IRYKRBEX.js.map} +0 -0
- /package/dist/{chunk-JOBE47EJ.js.map → chunk-IVGJXS5F.js.map} +0 -0
- /package/dist/{chunk-36BUOTVN.js.map → chunk-IXF7TRMQ.js.map} +0 -0
- /package/dist/{chunk-RVQVWDSN.js.map → chunk-IY7ZISXV.js.map} +0 -0
- /package/dist/{chunk-5FLFPTDK.js.map → chunk-JA72X46J.js.map} +0 -0
- /package/dist/{chunk-NLYOOGZ7.js.map → chunk-KE5PWLI6.js.map} +0 -0
- /package/dist/{chunk-U4SG4HKQ.js.map → chunk-LIGP5M2C.js.map} +0 -0
- /package/dist/{chunk-EB3RXN2L.js.map → chunk-MEMH5NKJ.js.map} +0 -0
- /package/dist/{chunk-4G2COUSD.js.map → chunk-MEP3POVW.js.map} +0 -0
- /package/dist/{chunk-35A7GCHG.js.map → chunk-MYBCB4AT.js.map} +0 -0
- /package/dist/{chunk-U46P4UAR.js.map → chunk-NQHSXHJP.js.map} +0 -0
- /package/dist/{chunk-QPWUG2S3.js.map → chunk-NSQ3GUVO.js.map} +0 -0
- /package/dist/{chunk-VQTPEL7O.js.map → chunk-O57VUN4U.js.map} +0 -0
- /package/dist/{chunk-WY4IV62O.js.map → chunk-OAFRMLL4.js.map} +0 -0
- /package/dist/{chunk-PCO3P7WJ.js.map → chunk-OGVJXIHX.js.map} +0 -0
- /package/dist/{chunk-IR5LZCE6.js.map → chunk-ORAL4HJC.js.map} +0 -0
- /package/dist/{chunk-LMZV3H4W.js.map → chunk-P22M3DX3.js.map} +0 -0
- /package/dist/{chunk-2J3M2KV4.js.map → chunk-PTFL3INS.js.map} +0 -0
- /package/dist/{chunk-CQBFEGLF.js.map → chunk-QDKABMUE.js.map} +0 -0
- /package/dist/{chunk-34G4U6HS.js.map → chunk-QRZMJ2WN.js.map} +0 -0
- /package/dist/{chunk-I2VQ7WBJ.js.map → chunk-QVBB2CLG.js.map} +0 -0
- /package/dist/{chunk-GUD6FYQG.js.map → chunk-R4O2G6ML.js.map} +0 -0
- /package/dist/{chunk-OSDAF7HH.js.map → chunk-R6EOFKZG.js.map} +0 -0
- /package/dist/{chunk-OJP3N7UK.js.map → chunk-R7WYAXPO.js.map} +0 -0
- /package/dist/{chunk-RU744TNX.js.map → chunk-RGPPNNDJ.js.map} +0 -0
- /package/dist/{chunk-6DNMUYEE.js.map → chunk-RIEGCK2W.js.map} +0 -0
- /package/dist/{chunk-KHOINMCN.js.map → chunk-RZCRXCLI.js.map} +0 -0
- /package/dist/{chunk-WI37MWRZ.js.map → chunk-SNGNGH53.js.map} +0 -0
- /package/dist/{chunk-R4NGLTUS.js.map → chunk-TDMNADPI.js.map} +0 -0
- /package/dist/{chunk-K4TWTUEY.js.map → chunk-TSEUVMJL.js.map} +0 -0
- /package/dist/{chunk-PT6DQK5T.js.map → chunk-TYOBAFCY.js.map} +0 -0
- /package/dist/{chunk-LI76ESJL.js.map → chunk-TZQOCQXB.js.map} +0 -0
- /package/dist/{chunk-WHTMVTU4.js.map → chunk-U3LVARGV.js.map} +0 -0
- /package/dist/{chunk-RNYVAQX2.js.map → chunk-UCCB7RKF.js.map} +0 -0
- /package/dist/{chunk-NUSQ3YEL.js.map → chunk-UXIZ5XN5.js.map} +0 -0
- /package/dist/{chunk-OV7EYM6M.js.map → chunk-VWCFR4NR.js.map} +0 -0
- /package/dist/{chunk-DQTCGVFK.js.map → chunk-WHCD4Z3D.js.map} +0 -0
- /package/dist/{chunk-P57VR7AI.js.map → chunk-WLC6XA6C.js.map} +0 -0
- /package/dist/{chunk-QCP75JGO.js.map → chunk-WQUGCOKF.js.map} +0 -0
- /package/dist/{chunk-P5FPO2BR.js.map → chunk-WWDO7ZWM.js.map} +0 -0
- /package/dist/{chunk-KATEWTQJ.js.map → chunk-X7J56GPG.js.map} +0 -0
- /package/dist/{chunk-W6K6BC3H.js.map → chunk-XTWF5XR6.js.map} +0 -0
- /package/dist/{chunk-YFET6A4I.js.map → chunk-Y7CXM7UM.js.map} +0 -0
- /package/dist/{chunk-YAPTJQI7.js.map → chunk-YMXCJ7SE.js.map} +0 -0
- /package/dist/{chunk-AXFWMRKI.js.map → chunk-YQJCWR4R.js.map} +0 -0
- /package/dist/{chunk-3J54RR3A.js.map → chunk-Z2EVKNZR.js.map} +0 -0
- /package/dist/{chunk-BAREPCLY.js.map → chunk-ZOGZMAGI.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/maintenance/rebuild-memory-projection.ts","../src/maintenance/projection-timeline.ts","../src/maintenance/projection-rebuild-abort.ts"],"sourcesContent":["import path from \"node:path\";\nimport { mkdir, rm, stat } from \"node:fs/promises\";\nimport { StorageManager } from \"../storage.js\";\nimport { log } from \"../logger.js\";\nimport {\n listMemoryGovernanceRuns,\n readMemoryGovernanceRunArtifact,\n} from \"./memory-governance.js\";\nimport { loadPersistedNativeKnowledgeChunks } from \"../native-knowledge.js\";\nimport { toBackupStamp } from \"./backup-stamp.js\";\nimport type {\n MemoryFile,\n MemoryLifecycleEvent,\n MemoryProjectionCurrentState,\n MemoryStatus,\n} from \"../types.js\";\nimport {\n inferMemoryStatus,\n MEMORY_LIFECYCLE_EVENT_SORT_ORDER,\n sortMemoryLifecycleEvents,\n toMemoryPathRel,\n} from \"../memory-lifecycle-ledger-utils.js\";\nimport { loadProjectionTimeline } from \"./projection-timeline.js\";\nimport {\n getMemoryProjectionPath,\n initializeMemoryProjectionDb,\n isProjectedMemoryPathValid,\n type ProjectedEntityMentionRow,\n type MemoryProjectionGovernanceAppliedActionRow,\n type MemoryProjectionGovernanceReviewQueueRow,\n type ProjectedNativeKnowledgeChunkRow,\n MEMORY_PROJECTION_SCHEMA_VERSION,\n memoryCurrentSelectExpressions,\n parseCurrentRow,\n readProjectedEntityMentions,\n readProjectedGovernanceRecord,\n readProjectedNativeKnowledgeChunks,\n parseTimelineRows,\n} from \"../memory-projection-store.js\";\nimport {\n normalizeProjectionPreview,\n normalizeProjectionTags,\n} from \"../memory-projection-format.js\";\nimport { openBetterSqlite3 } from \"../runtime/better-sqlite.js\";\nimport { commitPreparedFileAtomically } from \"./atomic-file.js\";\nimport { throwIfProjectionRebuildAborted } from \"./projection-rebuild-abort.js\";\nimport { isSupportPassportPrivateMemory } from \"../support-passport/card-projection.js\";\n\nexport interface RebuildMemoryProjectionOptions {\n memoryDir: string;\n /** Reuse the caller's live StorageManager (must be rooted at memoryDir). */\n storage?: StorageManager;\n defaultNamespace?: string;\n dryRun?: boolean;\n now?: Date;\n updatedAfter?: string;\n updatedBefore?: string;\n /**\n * When true, corpus reads keep the raw file text. Default false: the\n * projection is built from parsed fields, and skipping the raw copy keeps\n * the rebuild's peak heap down. Output rows stay the same either way.\n */\n retainRaw?: boolean;\n /** When aborted, the rebuild stops before it publishes the projection file. */\n signal?: AbortSignal;\n}\n\nexport type {\n SkippedBlankIdMemory,\n SkippedBlankIdTimelineEvent,\n SkippedDuplicateMemory,\n SkippedDuplicateTimelineEvent,\n} from \"./projection-support.js\";\nimport {\n assertInjectedStorageRooted,\n readProjectedEntityMentionRows,\n readProjectedGovernanceRows,\n readProjectedNativeKnowledgeRows,\n writeProjectionMetaHighWater,\n} from \"./projection-support.js\";\nimport type {\n SkippedBlankIdMemory,\n SkippedBlankIdTimelineEvent,\n SkippedDuplicateMemory,\n SkippedDuplicateTimelineEvent,\n} from \"./projection-support.js\";\nimport { isErrnoCode } from \"../utils/errno.js\";\n\n\nexport interface RebuildMemoryProjectionResult {\n dryRun: boolean;\n scannedMemories: number;\n currentRows: number;\n timelineRows: number;\n entityMentionRows: number;\n nativeKnowledgeRows: number;\n reviewQueueRows: number;\n outputPath: string;\n backupPath?: string;\n usedLifecycleLedger: boolean;\n skippedDuplicateMemories: SkippedDuplicateMemory[];\n skippedBlankIdMemories: SkippedBlankIdMemory[];\n skippedDuplicateTimelineEvents: SkippedDuplicateTimelineEvent[];\n skippedBlankIdTimelineEvents: SkippedBlankIdTimelineEvent[];\n scope: {\n updatedAfter: string | null;\n updatedBefore: string | null;\n };\n}\n\nexport interface VerifyMemoryProjectionOptions {\n memoryDir: string;\n defaultNamespace?: string;\n updatedAfter?: string;\n updatedBefore?: string;\n}\n\nexport interface VerifyMemoryProjectionResult {\n outputPath: string;\n projectionExists: boolean;\n ok: boolean;\n expectedCurrentRows: number;\n actualCurrentRows: number;\n expectedTimelineRows: number;\n actualTimelineRows: number;\n expectedEntityMentionRows: number;\n actualEntityMentionRows: number;\n expectedNativeKnowledgeRows: number;\n actualNativeKnowledgeRows: number;\n expectedReviewQueueRows: number;\n actualReviewQueueRows: number;\n missingCurrentMemoryIds: string[];\n extraCurrentMemoryIds: string[];\n mismatchedCurrentMemoryIds: string[];\n missingTimelineEventIds: string[];\n extraTimelineEventIds: string[];\n missingEntityMentionKeys: string[];\n extraEntityMentionKeys: string[];\n mismatchedEntityMentionKeys: string[];\n missingNativeKnowledgeChunkIds: string[];\n extraNativeKnowledgeChunkIds: string[];\n mismatchedNativeKnowledgeChunkIds: string[];\n missingReviewQueueEntryIds: string[];\n extraReviewQueueEntryIds: string[];\n mismatchedReviewQueueEntryIds: string[];\n usedLifecycleLedger: boolean;\n scope: {\n updatedAfter: string | null;\n updatedBefore: string | null;\n };\n}\n\nexport interface RepairMemoryProjectionOptions extends RebuildMemoryProjectionOptions {}\n\nexport interface RepairMemoryProjectionResult {\n dryRun: boolean;\n repaired: boolean;\n verify: VerifyMemoryProjectionResult;\n rebuild?: RebuildMemoryProjectionResult;\n}\n\nexport async function backupExistingProjection(\n memoryDir: string,\n outputPath: string,\n now: Date,\n): Promise<string | undefined> {\n try {\n await stat(outputPath);\n } catch (err) {\n if (isErrnoCode(err, \"ENOENT\")) {\n return undefined;\n }\n throw err;\n }\n\n const backupPath = path.join(\n memoryDir,\n \"archive\",\n \"memory-projection\",\n toBackupStamp(now),\n \"state\",\n \"memory-projection.sqlite\",\n );\n return backupPath;\n}\n\nfunction inferProjectedStatus(pathRel: string, memory: MemoryFile): MemoryStatus {\n return inferMemoryStatus(memory.frontmatter, pathRel);\n}\n\nfunction toCurrentStateRow(memoryDir: string, memory: MemoryFile): MemoryProjectionCurrentState {\n const pathRel = toMemoryPathRel(memoryDir, memory.path);\n return {\n memoryId: memory.frontmatter.id,\n category: memory.frontmatter.category,\n status: inferProjectedStatus(pathRel, memory),\n lifecycleState: memory.frontmatter.lifecycleState,\n path: memory.path,\n pathRel,\n created: memory.frontmatter.created,\n updated: memory.frontmatter.updated,\n archivedAt: memory.frontmatter.archivedAt,\n supersededAt: memory.frontmatter.supersededAt,\n entityRef: memory.frontmatter.entityRef,\n source: memory.frontmatter.source,\n confidence: memory.frontmatter.confidence,\n confidenceTier: memory.frontmatter.confidenceTier,\n memoryKind: memory.frontmatter.memoryKind,\n accessCount: memory.frontmatter.accessCount,\n lastAccessed: memory.frontmatter.lastAccessed,\n tags: normalizeProjectionTags(memory.frontmatter.tags),\n // Copy the preview off the source string so the full document can be collected.\n preview: Buffer.from(normalizeProjectionPreview(memory.content), \"utf8\").toString(\"utf8\"),\n privateRecord: isSupportPassportPrivateMemory(memory),\n };\n}\n\nfunction buildEntityMentionRows(\n currentRows: MemoryProjectionCurrentState[],\n): ProjectedEntityMentionRow[] {\n return currentRows.flatMap((row) => {\n const mentions: ProjectedEntityMentionRow[] = [];\n if (row.entityRef) {\n mentions.push({\n memoryId: row.memoryId,\n entityRef: row.entityRef,\n mentionSource: \"frontmatter.entityRef\",\n created: row.created,\n updated: row.updated,\n });\n }\n for (const tag of row.tags ?? []) {\n if (!tag.includes(\":\")) continue;\n mentions.push({\n memoryId: row.memoryId,\n entityRef: tag,\n mentionSource: \"tag\",\n created: row.created,\n updated: row.updated,\n });\n }\n return mentions;\n });\n}\n\nfunction buildGovernanceActionRowKey(action: {\n action: string;\n memoryId: string;\n reasonCode: string;\n originalPath: string;\n currentPath: string;\n}): string {\n return [\n action.action,\n action.memoryId,\n action.reasonCode,\n action.originalPath,\n action.currentPath,\n ].join(\"::\");\n}\n\nasync function loadLatestGovernanceProjection(memoryDir: string): Promise<{\n runId: string;\n summary: unknown;\n metrics: unknown;\n reviewQueueRows: MemoryProjectionGovernanceReviewQueueRow[];\n appliedActionRows: MemoryProjectionGovernanceAppliedActionRow[];\n report: string;\n} | null> {\n const runId = (await listMemoryGovernanceRuns(memoryDir))[0];\n if (!runId) return null;\n try {\n const artifact = await readMemoryGovernanceRunArtifact(memoryDir, runId);\n return {\n runId,\n summary: artifact.summary,\n metrics: artifact.metrics,\n reviewQueueRows: artifact.reviewQueue.map((entry) => ({\n runId,\n entryId: entry.entryId,\n memoryId: entry.memoryId,\n path: entry.path,\n reasonCode: entry.reasonCode,\n severity: entry.severity,\n suggestedAction: entry.suggestedAction,\n suggestedStatus: entry.suggestedStatus,\n relatedMemoryIds: [...entry.relatedMemoryIds],\n })),\n appliedActionRows: artifact.appliedActions.map((action) => ({\n runId,\n rowKey: buildGovernanceActionRowKey(action),\n action: action.action,\n memoryId: action.memoryId,\n reasonCode: action.reasonCode,\n beforeStatus: action.beforeStatus,\n afterStatus: action.afterStatus,\n originalPath: action.originalPath,\n currentPath: action.currentPath,\n })),\n report: artifact.report,\n };\n } catch {\n return null;\n }\n}\n\nfunction normalizeScopedIso(value: string | undefined): string | null {\n if (!value) return null;\n const trimmed = value.trim();\n if (!trimmed) return null;\n const parsed = new Date(trimmed);\n if (Number.isNaN(parsed.getTime())) {\n throw new Error(`invalid projection scope timestamp: ${value}`);\n }\n return parsed.toISOString();\n}\n\nfunction normalizeProjectionScope(options: {\n updatedAfter?: string;\n updatedBefore?: string;\n}): {\n updatedAfter: string | null;\n updatedBefore: string | null;\n} {\n const updatedAfter = normalizeScopedIso(options.updatedAfter);\n const updatedBefore = normalizeScopedIso(options.updatedBefore);\n if (\n updatedAfter &&\n updatedBefore &&\n new Date(updatedAfter).getTime() > new Date(updatedBefore).getTime()\n ) {\n throw new Error(\"updatedAfter must be less than or equal to updatedBefore\");\n }\n return {\n updatedAfter,\n updatedBefore,\n };\n}\n\nfunction hasScopedProjectionFilter(scope: {\n updatedAfter: string | null;\n updatedBefore: string | null;\n}): boolean {\n return scope.updatedAfter !== null || scope.updatedBefore !== null;\n}\n\nfunction memoryScopeTimestamp(memory: MemoryFile): string {\n const candidate = memory.frontmatter.updated || memory.frontmatter.created;\n return candidate;\n}\n\nfunction isTimestampInProjectionScope(\n timestamp: string,\n scope: { updatedAfter: string | null; updatedBefore: string | null },\n): boolean {\n if (!scope.updatedAfter && !scope.updatedBefore) return true;\n const parsed = new Date(timestamp);\n if (Number.isNaN(parsed.getTime())) return false;\n if (scope.updatedAfter && parsed.getTime() < new Date(scope.updatedAfter).getTime()) return false;\n if (scope.updatedBefore && parsed.getTime() >= new Date(scope.updatedBefore).getTime()) return false;\n return true;\n}\n\nfunction filterMemoriesForProjectionScope(\n memories: MemoryFile[],\n scope: { updatedAfter: string | null; updatedBefore: string | null },\n): MemoryFile[] {\n if (!scope.updatedAfter && !scope.updatedBefore) return memories;\n return memories.filter((memory) => isTimestampInProjectionScope(memoryScopeTimestamp(memory), scope));\n}\n\nfunction filterCurrentStateRowsForProjectionScope(\n rows: MemoryProjectionCurrentState[],\n scope: { updatedAfter: string | null; updatedBefore: string | null },\n): MemoryProjectionCurrentState[] {\n if (!scope.updatedAfter && !scope.updatedBefore) return rows;\n return rows.filter((row) => isTimestampInProjectionScope(row.updated || row.created, scope));\n}\n\nfunction serializeCurrentStateRow(row: MemoryProjectionCurrentState): string {\n return JSON.stringify({\n memoryId: row.memoryId,\n category: row.category,\n status: row.status,\n lifecycleState: row.lifecycleState ?? null,\n pathRel: row.pathRel,\n created: row.created,\n updated: row.updated,\n archivedAt: row.archivedAt ?? null,\n supersededAt: row.supersededAt ?? null,\n entityRef: row.entityRef ?? null,\n source: row.source,\n confidence: row.confidence,\n confidenceTier: row.confidenceTier,\n memoryKind: row.memoryKind ?? null,\n accessCount: row.accessCount ?? null,\n lastAccessed: row.lastAccessed ?? null,\n tags: row.tags ?? [],\n preview: row.preview ?? \"\",\n privateRecord: row.privateRecord === true,\n });\n}\n\nfunction serializeTimelineEvent(event: MemoryLifecycleEvent): string {\n return JSON.stringify({\n eventId: event.eventId,\n memoryId: event.memoryId,\n eventType: event.eventType,\n timestamp: event.timestamp,\n actor: event.actor,\n reasonCode: event.reasonCode ?? null,\n ruleVersion: event.ruleVersion,\n relatedMemoryIds: event.relatedMemoryIds ?? [],\n before: event.before ?? null,\n after: event.after ?? null,\n correlationId: event.correlationId ?? null,\n });\n}\n\nfunction serializeEntityMentionRow(row: ProjectedEntityMentionRow): string {\n return JSON.stringify(row);\n}\n\nfunction serializeNativeKnowledgeRow(row: ProjectedNativeKnowledgeChunkRow): string {\n return JSON.stringify({\n chunkId: row.chunkId,\n sourceKind: row.sourceKind,\n sourcePath: row.sourcePath,\n title: row.title,\n startLine: row.startLine,\n endLine: row.endLine,\n namespace: row.namespace ?? null,\n privacyClass: row.privacyClass ?? null,\n derivedDate: row.derivedDate ?? null,\n sessionKey: row.sessionKey ?? null,\n workflowKey: row.workflowKey ?? null,\n author: row.author ?? null,\n agent: row.agent ?? null,\n sourceHash: row.sourceHash ?? null,\n preview: row.preview,\n });\n}\n\nfunction serializeGovernanceReviewQueueRow(\n row: MemoryProjectionGovernanceReviewQueueRow,\n): string {\n return JSON.stringify({\n runId: row.runId,\n entryId: row.entryId,\n memoryId: row.memoryId,\n path: row.path,\n reasonCode: row.reasonCode,\n severity: row.severity,\n suggestedAction: row.suggestedAction,\n suggestedStatus: row.suggestedStatus ?? null,\n relatedMemoryIds: row.relatedMemoryIds,\n });\n}\n\nfunction selectProjectionMemories(\n tiers: MemoryFile[][],\n): {\n allMemories: MemoryFile[];\n memories: MemoryFile[];\n skippedDuplicateMemories: SkippedDuplicateMemory[];\n skippedBlankIdMemories: SkippedBlankIdMemory[];\n} {\n const allMemories = tiers.flat();\n const memories: MemoryFile[] = [];\n const keptById = new Map<string, MemoryFile>();\n const skippedDuplicateMemories: SkippedDuplicateMemory[] = [];\n const skippedBlankIdMemories: SkippedBlankIdMemory[] = [];\n\n // Tier order is authoritative: hot wins over cold, and cold wins over archive.\n // Paths break ties within a tier so the winner does not depend on readdir order.\n for (const tier of tiers) {\n for (const memory of [...tier].sort((left, right) => left.path.localeCompare(right.path))) {\n const memoryId = memory.frontmatter.id.trim();\n if (!memoryId) {\n skippedBlankIdMemories.push({ path: memory.path });\n log.warn(`projection rebuild skipped blank memory id: path=${memory.path}`);\n continue;\n }\n const kept = keptById.get(memoryId);\n if (kept) {\n skippedDuplicateMemories.push({\n memoryId,\n keptPath: kept.path,\n skippedPath: memory.path,\n });\n log.warn(\n `projection rebuild skipped duplicate memory id=${memoryId}: kept=${kept.path} skipped=${memory.path}`,\n );\n continue;\n }\n keptById.set(memoryId, memory);\n memories.push(memory);\n }\n }\n\n return { allMemories, memories, skippedDuplicateMemories, skippedBlankIdMemories };\n}\n\nasync function loadAuthoritativeProjectionSnapshot(options: {\n memoryDir: string;\n defaultNamespace?: string;\n storage?: StorageManager;\n updatedAfter?: string;\n updatedBefore?: string;\n retainRaw?: boolean;\n signal?: AbortSignal;\n}): Promise<{\n allMemories: MemoryFile[];\n currentRows: MemoryProjectionCurrentState[];\n timelineRows: MemoryLifecycleEvent[];\n scopedCurrentRows: MemoryProjectionCurrentState[];\n scopedTimelineRows: MemoryLifecycleEvent[];\n entityMentionRows: ProjectedEntityMentionRow[];\n scopedEntityMentionRows: ProjectedEntityMentionRow[];\n nativeKnowledgeRows: ProjectedNativeKnowledgeChunkRow[];\n governance:\n | {\n runId: string;\n summary: unknown;\n metrics: unknown;\n reviewQueueRows: MemoryProjectionGovernanceReviewQueueRow[];\n appliedActionRows: MemoryProjectionGovernanceAppliedActionRow[];\n report: string;\n }\n | null;\n usedLifecycleLedger: boolean;\n sourceLifecycleLedgerEventCount: number;\n scope: {\n updatedAfter: string | null;\n updatedBefore: string | null;\n };\n skippedDuplicateMemories: SkippedDuplicateMemory[];\n skippedBlankIdMemories: SkippedBlankIdMemory[];\n skippedDuplicateTimelineEvents: SkippedDuplicateTimelineEvent[];\n skippedBlankIdTimelineEvents: SkippedBlankIdTimelineEvent[];\n}> {\n const storage = assertInjectedStorageRooted(\"rebuildMemoryProjection\", options.memoryDir, options.storage) ?? new StorageManager(options.memoryDir);\n // Force a fresh disk read — projection verify/rebuild must see the true\n // on-disk state, not a potentially stale in-process cache.\n storage.invalidateAllMemoriesCacheForDir({ indexedText: false });\n const corpusRead = {\n retainRaw: options.retainRaw === true,\n abortSignal: options.signal,\n };\n const hot = await storage.readAllMemories(corpusRead);\n await throwIfProjectionRebuildAborted(options.signal);\n const cold = await storage.readAllColdMemories(corpusRead);\n await throwIfProjectionRebuildAborted(options.signal);\n const archived = await storage.readArchivedMemories(corpusRead);\n await throwIfProjectionRebuildAborted(options.signal);\n const selected = selectProjectionMemories([hot, cold, archived]);\n const allMemories = selected.allMemories;\n const projectionMemories = selected.memories;\n const currentRows = projectionMemories.map((memory) => toCurrentStateRow(options.memoryDir, memory));\n // Preview is already a detached copy. Drop the document bodies before the\n // ledger scan so peak heap is the larger of the corpus and the timeline,\n // not both. These objects bypass the shared caches when retainRaw is off,\n // so clearing them cannot strip a raw copy another caller is holding.\n if (options.retainRaw !== true) {\n for (const memory of allMemories) memory.content = \"\";\n }\n const {\n events,\n usedLifecycleLedger,\n sourceLifecycleLedgerEventCount,\n skipped: skippedDuplicateTimelineEvents,\n skippedBlankIds: skippedBlankIdTimelineEvents,\n } = await loadProjectionTimeline({\n storage,\n memoryDir: options.memoryDir,\n memories: projectionMemories,\n signal: options.signal,\n });\n await throwIfProjectionRebuildAborted(options.signal);\n const scope = normalizeProjectionScope(options);\n const scopedMemories = filterMemoriesForProjectionScope(projectionMemories, scope);\n const scopedMemoryIds = new Set(scopedMemories.map((memory) => memory.frontmatter.id));\n const nativeKnowledgeRows = await loadPersistedNativeKnowledgeChunks({\n memoryDir: options.memoryDir,\n defaultNamespace: options.defaultNamespace ?? \"default\",\n }).then((rows) => rows.map((row) => ({\n chunkId: row.chunkId,\n sourceKind: row.sourceKind,\n sourcePath: row.sourcePath,\n title: row.title,\n startLine: row.startLine,\n endLine: row.endLine,\n namespace: row.namespace ?? options.defaultNamespace ?? \"default\",\n privacyClass: row.privacyClass,\n derivedDate: row.derivedDate,\n sessionKey: row.sessionKey,\n workflowKey: row.workflowKey,\n author: row.author,\n agent: row.agent,\n sourceHash: row.sourceHash,\n preview: normalizeProjectionPreview(row.content),\n })));\n const governance = await loadLatestGovernanceProjection(options.memoryDir);\n const entityMentionRows = buildEntityMentionRows(currentRows);\n\n return {\n allMemories,\n currentRows,\n timelineRows: events,\n scopedCurrentRows: currentRows.filter((row) => scopedMemoryIds.has(row.memoryId)),\n scopedTimelineRows: events.filter((event) => scopedMemoryIds.has(event.memoryId)),\n entityMentionRows,\n scopedEntityMentionRows: entityMentionRows.filter((row) => scopedMemoryIds.has(row.memoryId)),\n nativeKnowledgeRows,\n governance,\n usedLifecycleLedger,\n sourceLifecycleLedgerEventCount,\n scope,\n skippedDuplicateMemories: selected.skippedDuplicateMemories,\n skippedBlankIdMemories: selected.skippedBlankIdMemories,\n skippedDuplicateTimelineEvents,\n skippedBlankIdTimelineEvents,\n };\n}\n\nfunction readProjectedCurrentRows(\n memoryDir: string,\n): { projectionExists: boolean; rows: MemoryProjectionCurrentState[] } {\n const dbPath = getMemoryProjectionPath(memoryDir);\n try {\n const db = openBetterSqlite3(dbPath, { readonly: true, fileMustExist: true });\n try {\n const selectExpressions = memoryCurrentSelectExpressions(db);\n const rows = db.prepare(`\n SELECT\n memory_id,\n category,\n status,\n lifecycle_state,\n path_rel,\n created_at,\n updated_at,\n archived_at,\n superseded_at,\n entity_ref,\n source,\n confidence,\n confidence_tier,\n memory_kind,\n access_count,\n last_accessed,\n ${selectExpressions.tagsJson}, ${selectExpressions.previewText}, ${selectExpressions.privateRecord}\n FROM memory_current\n `).all() as Array<Record<string, unknown>>;\n\n return {\n projectionExists: true,\n rows: rows\n .map((row) => parseCurrentRow(memoryDir, row))\n .filter((row): row is MemoryProjectionCurrentState => row !== null),\n };\n } finally {\n db.close();\n }\n } catch {\n return { projectionExists: false, rows: [] };\n }\n}\n\nfunction readProjectedTimelineRows(\n memoryDir: string,\n): { projectionExists: boolean; rows: MemoryLifecycleEvent[] } {\n const dbPath = getMemoryProjectionPath(memoryDir);\n try {\n const db = openBetterSqlite3(dbPath, { readonly: true, fileMustExist: true });\n try {\n const rows = db.prepare(`\n SELECT\n event_id,\n memory_id,\n event_type,\n timestamp,\n actor,\n reason_code,\n rule_version,\n related_memory_ids_json,\n before_json,\n after_json,\n correlation_id\n FROM memory_timeline\n `).all() as Array<Record<string, unknown>>;\n\n return {\n projectionExists: true,\n rows: parseTimelineRows(rows),\n };\n } finally {\n db.close();\n }\n } catch {\n return { projectionExists: false, rows: [] };\n }\n}\n\n\nfunction writeProjectionDb(\n dbPath: string,\n nowIso: string,\n currentRows: MemoryProjectionCurrentState[],\n timelineRows: MemoryLifecycleEvent[],\n entityMentionRows: ProjectedEntityMentionRow[],\n nativeKnowledgeRows: ProjectedNativeKnowledgeChunkRow[],\n governance: Awaited<ReturnType<typeof loadLatestGovernanceProjection>>,\n usedLifecycleLedger: boolean,\n sourceLifecycleLedgerEventCount: number,\n complete: boolean,\n): void {\n const db = openBetterSqlite3(dbPath);\n const memoryDir = path.dirname(path.dirname(dbPath));\n try {\n initializeMemoryProjectionDb(db);\n\n const insertMeta = db.prepare(\"INSERT OR REPLACE INTO meta(key, value) VALUES (?, ?)\");\n insertMeta.run(\"schemaVersion\", String(MEMORY_PROJECTION_SCHEMA_VERSION));\n insertMeta.run(\"rebuiltAt\", nowIso);\n insertMeta.run(\"usedLifecycleLedger\", usedLifecycleLedger ? \"true\" : \"false\");\n insertMeta.run(\"complete\", complete ? \"true\" : \"false\");\n writeProjectionMetaHighWater(insertMeta, sourceLifecycleLedgerEventCount, timelineRows);\n insertMeta.run(\"latestGovernanceRunId\", governance?.runId ?? \"\");\n\n const insertCurrent = db.prepare(`\n INSERT INTO memory_current (\n memory_id,\n category,\n status,\n lifecycle_state,\n path_rel,\n path_valid,\n created_at,\n updated_at,\n archived_at,\n superseded_at,\n entity_ref,\n source,\n confidence,\n confidence_tier,\n memory_kind,\n access_count,\n last_accessed,\n tags_json, preview_text, private_record\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n const insertTimeline = db.prepare(`\n INSERT INTO memory_timeline (\n event_id,\n memory_id,\n event_type,\n timestamp,\n event_order,\n actor,\n reason_code,\n rule_version,\n related_memory_ids_json,\n before_json,\n after_json,\n correlation_id\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n const insertEntityMention = db.prepare(`\n INSERT INTO memory_entity_mentions (\n memory_id,\n entity_ref,\n mention_source,\n created_at,\n updated_at\n ) VALUES (?, ?, ?, ?, ?)\n `);\n\n const insertNativeKnowledge = db.prepare(`\n INSERT INTO native_knowledge_chunks (\n chunk_id,\n source_kind,\n source_path,\n title,\n start_line,\n end_line,\n namespace,\n privacy_class,\n derived_date,\n session_key,\n workflow_key,\n author,\n agent,\n source_hash,\n preview_text\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n const insertGovernanceReviewQueue = db.prepare(`\n INSERT INTO memory_review_queue (\n entry_id,\n run_id,\n memory_id,\n path,\n reason_code,\n severity,\n suggested_action,\n suggested_status,\n related_memory_ids_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n const insertGovernanceAppliedAction = db.prepare(`\n INSERT INTO memory_review_actions (\n row_key,\n run_id,\n action,\n memory_id,\n reason_code,\n before_status,\n after_status,\n original_path,\n current_path\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `);\n\n const insertGovernanceRun = db.prepare(`\n INSERT INTO memory_review_runs (\n run_id,\n created_at,\n mode,\n summary_json,\n metrics_json,\n applied_actions_json,\n report_markdown\n ) VALUES (?, ?, ?, ?, ?, ?, ?)\n `);\n\n const writeTx = db.transaction(() => {\n for (const row of currentRows) {\n insertCurrent.run(\n row.memoryId,\n row.category,\n row.status,\n row.lifecycleState ?? null,\n row.pathRel,\n isProjectedMemoryPathValid(memoryDir, row.pathRel) ? 1 : 0,\n row.created,\n row.updated,\n row.archivedAt ?? null,\n row.supersededAt ?? null,\n row.entityRef ?? null,\n row.source,\n row.confidence,\n row.confidenceTier,\n row.memoryKind ?? null,\n row.accessCount ?? null,\n row.lastAccessed ?? null, JSON.stringify(row.tags ?? []), row.preview ?? \"\",\n row.privateRecord === true ? 1 : 0,\n );\n }\n\n for (const event of timelineRows) {\n insertTimeline.run(\n event.eventId,\n event.memoryId,\n event.eventType,\n event.timestamp,\n MEMORY_LIFECYCLE_EVENT_SORT_ORDER[event.eventType],\n event.actor,\n event.reasonCode ?? null,\n event.ruleVersion,\n JSON.stringify(event.relatedMemoryIds ?? []),\n event.before ? JSON.stringify(event.before) : null,\n event.after ? JSON.stringify(event.after) : null,\n event.correlationId ?? null,\n );\n }\n\n for (const row of entityMentionRows) {\n insertEntityMention.run(\n row.memoryId,\n row.entityRef,\n row.mentionSource,\n row.created,\n row.updated,\n );\n }\n\n for (const row of nativeKnowledgeRows) {\n insertNativeKnowledge.run(\n row.chunkId,\n row.sourceKind,\n row.sourcePath,\n row.title,\n row.startLine,\n row.endLine,\n row.namespace ?? null,\n row.privacyClass ?? null,\n row.derivedDate ?? null,\n row.sessionKey ?? null,\n row.workflowKey ?? null,\n row.author ?? null,\n row.agent ?? null,\n row.sourceHash ?? null,\n row.preview,\n );\n }\n\n for (const row of governance?.reviewQueueRows ?? []) {\n insertGovernanceReviewQueue.run(\n row.entryId,\n row.runId,\n row.memoryId,\n row.path,\n row.reasonCode,\n row.severity,\n row.suggestedAction,\n row.suggestedStatus ?? null,\n JSON.stringify(row.relatedMemoryIds),\n );\n }\n\n for (const row of governance?.appliedActionRows ?? []) {\n insertGovernanceAppliedAction.run(\n row.rowKey,\n row.runId,\n row.action,\n row.memoryId,\n row.reasonCode,\n row.beforeStatus,\n row.afterStatus ?? null,\n row.originalPath,\n row.currentPath,\n );\n }\n\n if (governance) {\n const createdAt =\n typeof (governance.summary as { createdAt?: unknown } | undefined)?.createdAt === \"string\"\n ? (governance.summary as { createdAt: string }).createdAt\n : nowIso;\n const mode =\n typeof (governance.summary as { mode?: unknown } | undefined)?.mode === \"string\"\n ? (governance.summary as { mode: string }).mode\n : \"shadow\";\n insertGovernanceRun.run(\n governance.runId,\n createdAt,\n mode,\n JSON.stringify(governance.summary ?? null),\n JSON.stringify(governance.metrics ?? null),\n JSON.stringify(\n (governance.appliedActionRows ?? []).map((row) => ({\n action: row.action,\n memoryId: row.memoryId,\n reasonCode: row.reasonCode,\n beforeStatus: row.beforeStatus,\n afterStatus: row.afterStatus,\n originalPath: row.originalPath,\n currentPath: row.currentPath,\n })),\n ),\n governance.report,\n );\n }\n });\n\n writeTx();\n } finally {\n db.close();\n }\n}\n\nfunction mergeScopedCurrentRows(\n existingRows: MemoryProjectionCurrentState[],\n replacementRows: MemoryProjectionCurrentState[],\n scopedMemoryIds: Set<string>,\n): MemoryProjectionCurrentState[] {\n return [...existingRows.filter((row) => !scopedMemoryIds.has(row.memoryId)), ...replacementRows]\n .sort((a, b) => a.memoryId.localeCompare(b.memoryId));\n}\n\nfunction mergeScopedTimelineRows(\n existingRows: MemoryLifecycleEvent[],\n replacementRows: MemoryLifecycleEvent[],\n scopedMemoryIds: Set<string>,\n): MemoryLifecycleEvent[] {\n return sortMemoryLifecycleEvents([\n ...existingRows.filter((event) => !scopedMemoryIds.has(event.memoryId)),\n ...replacementRows,\n ]);\n}\n\nfunction mergeScopedEntityMentionRows(\n existingRows: ProjectedEntityMentionRow[],\n replacementRows: ProjectedEntityMentionRow[],\n scopedMemoryIds: Set<string>,\n): ProjectedEntityMentionRow[] {\n return [\n ...existingRows.filter((row) => !scopedMemoryIds.has(row.memoryId)),\n ...replacementRows,\n ].sort((left, right) =>\n [left.entityRef, left.memoryId, left.mentionSource].join(\"::\").localeCompare(\n [right.entityRef, right.memoryId, right.mentionSource].join(\"::\"),\n )\n );\n}\n\nexport async function rebuildMemoryProjection(\n options: RebuildMemoryProjectionOptions,\n): Promise<RebuildMemoryProjectionResult> {\n const dryRun = options.dryRun !== false;\n const now = options.now ?? new Date();\n const outputPath = getMemoryProjectionPath(options.memoryDir);\n const snapshot = await loadAuthoritativeProjectionSnapshot(options);\n await throwIfProjectionRebuildAborted(options.signal);\n\n let backupPath: string | undefined;\n if (!dryRun) {\n let nextCurrentRows = snapshot.currentRows;\n let nextTimelineRows = snapshot.timelineRows;\n let nextEntityMentionRows = snapshot.entityMentionRows;\n let nextNativeKnowledgeRows = snapshot.nativeKnowledgeRows;\n let nextGovernance = snapshot.governance;\n if (hasScopedProjectionFilter(snapshot.scope)) {\n nextCurrentRows = snapshot.scopedCurrentRows;\n nextTimelineRows = snapshot.scopedTimelineRows;\n nextEntityMentionRows = snapshot.scopedEntityMentionRows;\n const projectedCurrent = readProjectedCurrentRows(options.memoryDir);\n const projectedTimeline = readProjectedTimelineRows(options.memoryDir);\n const projectedEntityMentions = readProjectedEntityMentionRows(options.memoryDir);\n const projectedNativeKnowledge = readProjectedNativeKnowledgeRows(options.memoryDir);\n const projectedGovernance = readProjectedGovernanceRows(options.memoryDir);\n if (projectedCurrent.projectionExists && projectedTimeline.projectionExists) {\n const actualScopedCurrentRows = filterCurrentStateRowsForProjectionScope(\n projectedCurrent.rows,\n snapshot.scope,\n );\n const scopedMemoryIds = new Set([\n ...snapshot.scopedCurrentRows.map((row) => row.memoryId),\n ...snapshot.scopedTimelineRows.map((event) => event.memoryId),\n ...actualScopedCurrentRows.map((row) => row.memoryId),\n ]);\n nextCurrentRows = mergeScopedCurrentRows(\n projectedCurrent.rows,\n snapshot.scopedCurrentRows,\n scopedMemoryIds,\n );\n nextTimelineRows = mergeScopedTimelineRows(\n projectedTimeline.rows,\n snapshot.scopedTimelineRows,\n scopedMemoryIds,\n );\n nextEntityMentionRows = mergeScopedEntityMentionRows(\n projectedEntityMentions.rows,\n snapshot.scopedEntityMentionRows,\n scopedMemoryIds,\n );\n }\n if (projectedNativeKnowledge.projectionExists) {\n // Native knowledge rows are always loaded from the full persisted sync state,\n // so scoped memory rebuilds should publish the fresh snapshot instead of\n // pinning the projection to stale previously projected rows.\n nextNativeKnowledgeRows = snapshot.nativeKnowledgeRows;\n }\n if (projectedGovernance.projectionExists && projectedGovernance.runId) {\n // Governance rows are also sourced from standalone artifact snapshots, so\n // scoped memory rebuilds should keep the latest governance artifact data\n // instead of restoring whatever happened to be in the prior projection.\n nextGovernance = snapshot.governance;\n }\n }\n\n const tempPath = `${outputPath}.tmp`;\n await mkdir(path.dirname(outputPath), { recursive: true });\n await throwIfProjectionRebuildAborted(options.signal);\n await rm(tempPath, { force: true });\n writeProjectionDb(\n tempPath,\n now.toISOString(),\n nextCurrentRows,\n nextTimelineRows,\n nextEntityMentionRows,\n nextNativeKnowledgeRows,\n nextGovernance,\n snapshot.usedLifecycleLedger,\n snapshot.sourceLifecycleLedgerEventCount,\n !hasScopedProjectionFilter(snapshot.scope),\n );\n try {\n await throwIfProjectionRebuildAborted(options.signal);\n backupPath = await backupExistingProjection(options.memoryDir, outputPath, now);\n await throwIfProjectionRebuildAborted(options.signal);\n backupPath = await commitPreparedFileAtomically(\n tempPath,\n outputPath,\n backupPath,\n () => throwIfProjectionRebuildAborted(options.signal),\n );\n } catch (err) {\n if (options.signal?.aborted) await rm(tempPath, { force: true });\n throw err;\n }\n }\n\n return {\n dryRun,\n scannedMemories: snapshot.allMemories.length,\n currentRows: snapshot.scopedCurrentRows.length,\n timelineRows: snapshot.scopedTimelineRows.length,\n entityMentionRows: snapshot.scopedEntityMentionRows.length,\n nativeKnowledgeRows: snapshot.nativeKnowledgeRows.length,\n reviewQueueRows: snapshot.governance?.reviewQueueRows.length ?? 0,\n outputPath,\n backupPath,\n usedLifecycleLedger: snapshot.usedLifecycleLedger,\n skippedDuplicateMemories: snapshot.skippedDuplicateMemories,\n skippedBlankIdMemories: snapshot.skippedBlankIdMemories,\n skippedDuplicateTimelineEvents: snapshot.skippedDuplicateTimelineEvents,\n skippedBlankIdTimelineEvents: snapshot.skippedBlankIdTimelineEvents,\n scope: snapshot.scope,\n };\n}\n\nexport async function verifyMemoryProjection(\n options: VerifyMemoryProjectionOptions,\n): Promise<VerifyMemoryProjectionResult> {\n const outputPath = getMemoryProjectionPath(options.memoryDir);\n const snapshot = await loadAuthoritativeProjectionSnapshot(options);\n const projectedCurrent = readProjectedCurrentRows(options.memoryDir);\n const projectedTimeline = readProjectedTimelineRows(options.memoryDir);\n const projectedEntityMentions = readProjectedEntityMentionRows(options.memoryDir);\n const projectedNativeKnowledge = readProjectedNativeKnowledgeRows(options.memoryDir);\n const projectedGovernance = readProjectedGovernanceRows(options.memoryDir);\n const projectionExists = projectedCurrent.projectionExists\n || projectedTimeline.projectionExists\n || projectedEntityMentions.projectionExists\n || projectedNativeKnowledge.projectionExists\n || projectedGovernance.projectionExists;\n\n const actualScopedCurrentRows = filterCurrentStateRowsForProjectionScope(projectedCurrent.rows, snapshot.scope);\n const expectedCurrentById = new Map(\n snapshot.scopedCurrentRows.map((row) => [row.memoryId, serializeCurrentStateRow(row)]),\n );\n const actualCurrentById = new Map(\n actualScopedCurrentRows.map((row) => [row.memoryId, serializeCurrentStateRow(row)]),\n );\n\n const missingCurrentMemoryIds = [...expectedCurrentById.keys()]\n .filter((memoryId) => !actualCurrentById.has(memoryId))\n .sort();\n const extraCurrentMemoryIds = [...actualCurrentById.keys()]\n .filter((memoryId) => !expectedCurrentById.has(memoryId))\n .sort();\n const mismatchedCurrentMemoryIds = [...expectedCurrentById.keys()]\n .filter((memoryId) =>\n actualCurrentById.has(memoryId) && actualCurrentById.get(memoryId) !== expectedCurrentById.get(memoryId)\n )\n .sort();\n\n const selectedMemoryIds = new Set([\n ...snapshot.scopedCurrentRows.map((row) => row.memoryId),\n ...actualScopedCurrentRows.map((row) => row.memoryId),\n ]);\n const expectedTimelineById = new Map(\n snapshot.scopedTimelineRows.map((event) => [event.eventId, serializeTimelineEvent(event)]),\n );\n const actualTimelineRows = projectedTimeline.rows.filter((event) => selectedMemoryIds.has(event.memoryId));\n const actualTimelineById = new Map(\n actualTimelineRows.map((event) => [event.eventId, serializeTimelineEvent(event)]),\n );\n const missingTimelineEventIds = [...expectedTimelineById.keys()]\n .filter((eventId) => !actualTimelineById.has(eventId))\n .sort();\n const extraTimelineEventIds = [...actualTimelineById.keys()]\n .filter((eventId) => !expectedTimelineById.has(eventId))\n .sort();\n\n const expectedEntityMentionsByKey = new Map(\n snapshot.scopedEntityMentionRows.map((row) => [\n `${row.memoryId}::${row.entityRef}::${row.mentionSource}`,\n serializeEntityMentionRow(row),\n ]),\n );\n const actualScopedEntityMentionRows = projectedEntityMentions.rows.filter((row) => selectedMemoryIds.has(row.memoryId));\n const actualEntityMentionsByKey = new Map(\n actualScopedEntityMentionRows.map((row) => [\n `${row.memoryId}::${row.entityRef}::${row.mentionSource}`,\n serializeEntityMentionRow(row),\n ]),\n );\n const missingEntityMentionKeys = [...expectedEntityMentionsByKey.keys()]\n .filter((key) => !actualEntityMentionsByKey.has(key))\n .sort();\n const extraEntityMentionKeys = [...actualEntityMentionsByKey.keys()]\n .filter((key) => !expectedEntityMentionsByKey.has(key))\n .sort();\n const mismatchedEntityMentionKeys = [...expectedEntityMentionsByKey.keys()]\n .filter((key) =>\n actualEntityMentionsByKey.has(key) && actualEntityMentionsByKey.get(key) !== expectedEntityMentionsByKey.get(key)\n )\n .sort();\n\n const expectedNativeKnowledgeById = new Map(\n snapshot.nativeKnowledgeRows.map((row) => [row.chunkId, serializeNativeKnowledgeRow(row)]),\n );\n const actualNativeKnowledgeById = new Map(\n projectedNativeKnowledge.rows.map((row) => [row.chunkId, serializeNativeKnowledgeRow(row)]),\n );\n const missingNativeKnowledgeChunkIds = [...expectedNativeKnowledgeById.keys()]\n .filter((chunkId) => !actualNativeKnowledgeById.has(chunkId))\n .sort();\n const extraNativeKnowledgeChunkIds = [...actualNativeKnowledgeById.keys()]\n .filter((chunkId) => !expectedNativeKnowledgeById.has(chunkId))\n .sort();\n const mismatchedNativeKnowledgeChunkIds = [...expectedNativeKnowledgeById.keys()]\n .filter((chunkId) =>\n actualNativeKnowledgeById.has(chunkId) && actualNativeKnowledgeById.get(chunkId) !== expectedNativeKnowledgeById.get(chunkId)\n )\n .sort();\n\n const expectedReviewQueueById = new Map(\n (snapshot.governance?.reviewQueueRows ?? []).map((row) => [\n `${row.runId}::${row.entryId}`,\n serializeGovernanceReviewQueueRow(row),\n ]),\n );\n const actualReviewQueueById = new Map(\n projectedGovernance.reviewQueueRows.map((row) => [\n `${row.runId}::${row.entryId}`,\n serializeGovernanceReviewQueueRow(row),\n ]),\n );\n const missingReviewQueueEntryIds = [...expectedReviewQueueById.keys()]\n .filter((entryId) => !actualReviewQueueById.has(entryId))\n .sort();\n const extraReviewQueueEntryIds = [...actualReviewQueueById.keys()]\n .filter((entryId) => !expectedReviewQueueById.has(entryId))\n .sort();\n const mismatchedReviewQueueEntryIds = [...expectedReviewQueueById.keys()]\n .filter((entryId) =>\n actualReviewQueueById.has(entryId) && actualReviewQueueById.get(entryId) !== expectedReviewQueueById.get(entryId)\n )\n .sort();\n\n return {\n outputPath,\n projectionExists,\n ok:\n projectionExists &&\n missingCurrentMemoryIds.length === 0 &&\n extraCurrentMemoryIds.length === 0 &&\n mismatchedCurrentMemoryIds.length === 0 &&\n missingTimelineEventIds.length === 0 &&\n extraTimelineEventIds.length === 0 &&\n missingEntityMentionKeys.length === 0 &&\n extraEntityMentionKeys.length === 0 &&\n mismatchedEntityMentionKeys.length === 0 &&\n missingNativeKnowledgeChunkIds.length === 0 &&\n extraNativeKnowledgeChunkIds.length === 0 &&\n mismatchedNativeKnowledgeChunkIds.length === 0 &&\n missingReviewQueueEntryIds.length === 0 &&\n extraReviewQueueEntryIds.length === 0 &&\n mismatchedReviewQueueEntryIds.length === 0,\n expectedCurrentRows: snapshot.scopedCurrentRows.length,\n actualCurrentRows: actualScopedCurrentRows.length,\n expectedTimelineRows: snapshot.scopedTimelineRows.length,\n actualTimelineRows: actualTimelineRows.length,\n expectedEntityMentionRows: snapshot.scopedEntityMentionRows.length,\n actualEntityMentionRows: actualScopedEntityMentionRows.length,\n expectedNativeKnowledgeRows: snapshot.nativeKnowledgeRows.length,\n actualNativeKnowledgeRows: projectedNativeKnowledge.rows.length,\n expectedReviewQueueRows: snapshot.governance?.reviewQueueRows.length ?? 0,\n actualReviewQueueRows: projectedGovernance.reviewQueueRows.length,\n missingCurrentMemoryIds,\n extraCurrentMemoryIds,\n mismatchedCurrentMemoryIds,\n missingTimelineEventIds,\n extraTimelineEventIds,\n missingEntityMentionKeys,\n extraEntityMentionKeys,\n mismatchedEntityMentionKeys,\n missingNativeKnowledgeChunkIds,\n extraNativeKnowledgeChunkIds,\n mismatchedNativeKnowledgeChunkIds,\n missingReviewQueueEntryIds,\n extraReviewQueueEntryIds,\n mismatchedReviewQueueEntryIds,\n usedLifecycleLedger: snapshot.usedLifecycleLedger,\n scope: snapshot.scope,\n };\n}\n\nexport async function repairMemoryProjection(\n options: RepairMemoryProjectionOptions,\n): Promise<RepairMemoryProjectionResult> {\n const dryRun = options.dryRun !== false;\n const verify = await verifyMemoryProjection(options);\n if (verify.ok) {\n return {\n dryRun,\n repaired: false,\n verify,\n };\n }\n if (dryRun) {\n return {\n dryRun: true,\n repaired: false,\n verify,\n };\n }\n\n const rebuild = await rebuildMemoryProjection({\n ...options,\n dryRun: false,\n });\n const verified = await verifyMemoryProjection(options);\n return {\n dryRun: false,\n repaired: verified.ok,\n verify: verified,\n rebuild,\n };\n}\n","/**\n * Projection timeline assembly.\n *\n * The lifecycle ledger is streamed one event at a time. Dedup keeps the same\n * winner as sort-then-first-wins (stable `compareMemoryLifecycleEvents`, file\n * order on ties) without materializing the unsorted ledger beside the result.\n */\nimport path from \"node:path\";\nimport { throwIfAborted } from \"../abort-error.js\";\nimport { log } from \"../logger.js\";\nimport type { MemoryFile, MemoryLifecycleEvent } from \"../types.js\";\nimport {\n buildLifecycleEventsForMemory,\n compareMemoryLifecycleEvents,\n memoryLifecycleEventProjectionIdentity,\n sortMemoryLifecycleEvents,\n} from \"../memory-lifecycle-ledger-utils.js\";\nimport type {\n SkippedBlankIdTimelineEvent,\n SkippedDuplicateTimelineEvent,\n} from \"./projection-support.js\";\n\nexport interface ProjectionLedgerReader {\n iterateMemoryLifecycleEvents(): AsyncIterable<MemoryLifecycleEvent>;\n}\n\nexport interface ProjectionTimeline {\n events: MemoryLifecycleEvent[];\n usedLifecycleLedger: boolean;\n sourceLifecycleLedgerEventCount: number;\n skipped: SkippedDuplicateTimelineEvent[];\n skippedBlankIds: SkippedBlankIdTimelineEvent[];\n}\n\nfunction loadTimelineEvents(\n memories: MemoryFile[],\n lifecycleEvents: MemoryLifecycleEvent[],\n): { events: MemoryLifecycleEvent[]; usedLifecycleLedger: boolean } {\n if (lifecycleEvents.length > 0) {\n return {\n events: sortMemoryLifecycleEvents(lifecycleEvents),\n usedLifecycleLedger: true,\n };\n }\n\n return {\n events: sortMemoryLifecycleEvents(memories.flatMap((memory) => buildLifecycleEventsForMemory(memory))),\n usedLifecycleLedger: false,\n };\n}\n\nfunction deduplicateTimelineEvents(\n events: MemoryLifecycleEvent[],\n sourcePathFor: (event: MemoryLifecycleEvent) => string,\n): {\n events: MemoryLifecycleEvent[];\n skipped: SkippedDuplicateTimelineEvent[];\n skippedBlankIds: SkippedBlankIdTimelineEvent[];\n} {\n const keptById = new Map<string, { event: MemoryLifecycleEvent; path: string }>();\n const unique: MemoryLifecycleEvent[] = [];\n const skipped: SkippedDuplicateTimelineEvent[] = [];\n const skippedBlankIds: SkippedBlankIdTimelineEvent[] = [];\n for (const event of sortMemoryLifecycleEvents(events)) {\n const sourcePath = sourcePathFor(event);\n if (!event.memoryId.trim()) {\n skippedBlankIds.push({ eventId: event.eventId, path: sourcePath });\n log.warn(\n `projection rebuild skipped timeline event with blank memory id: `\n + `event_id=${event.eventId} path=${sourcePath}`,\n );\n continue;\n }\n const kept = keptById.get(event.eventId);\n if (kept) {\n skipped.push({\n eventId: event.eventId,\n keptPath: kept.path,\n skippedPath: sourcePath,\n });\n log.warn(\n `projection rebuild skipped duplicate timeline event_id=${event.eventId}: `\n + `kept=${kept.path} skipped=${sourcePath}`,\n );\n continue;\n }\n keptById.set(event.eventId, { event, path: sourcePath });\n unique.push(event);\n }\n return { events: unique, skipped, skippedBlankIds };\n}\n\nfunction internPool(): <T extends string>(value: T) => T {\n const pool = new Map<string, string>();\n return <T extends string>(value: T): T => {\n const existing = pool.get(value);\n if (existing !== undefined) return existing as T;\n pool.set(value, value);\n return value;\n };\n}\n\n/** Share repeated ledger scalars so a long ledger does not keep one string per row. */\nfunction internLedgerEvent(event: MemoryLifecycleEvent, intern: <T extends string>(value: T) => T): void {\n event.memoryId = intern(event.memoryId);\n event.eventType = intern(event.eventType);\n event.timestamp = intern(event.timestamp);\n event.actor = intern(event.actor);\n event.ruleVersion = intern(event.ruleVersion);\n if (event.reasonCode) event.reasonCode = intern(event.reasonCode);\n if (event.correlationId) event.correlationId = intern(event.correlationId);\n}\n\n/**\n * Stream ledger events into the deduped timeline. Returns null when the ledger\n * contributed no parsable row, so the caller can fall back to frontmatter.\n */\nasync function consumeLifecycleLedger(\n events: AsyncIterable<MemoryLifecycleEvent>,\n ledgerPath: string,\n signal?: AbortSignal,\n): Promise<ProjectionTimeline | null> {\n const intern = internPool();\n const best = new Map<string, MemoryLifecycleEvent>();\n const losers: MemoryLifecycleEvent[] = [];\n const blanks: MemoryLifecycleEvent[] = [];\n const identities = new Set<string>();\n let sawEvent = false;\n for await (const event of events) {\n throwIfAborted(signal, \"projection rebuild aborted\");\n sawEvent = true;\n internLedgerEvent(event, intern);\n identities.add(memoryLifecycleEventProjectionIdentity(event));\n if (!event.memoryId.trim()) {\n blanks.push(event);\n continue;\n }\n const prev = best.get(event.eventId);\n if (!prev) {\n best.set(event.eventId, event);\n continue;\n }\n if (compareMemoryLifecycleEvents(event, prev) < 0) {\n losers.push(prev);\n best.set(event.eventId, event);\n } else {\n losers.push(event);\n }\n }\n if (!sawEvent) return null;\n const sourceLifecycleLedgerEventCount = identities.size;\n identities.clear();\n const skippedBlankIds = sortMemoryLifecycleEvents(blanks).map((event) => {\n log.warn(\n `projection rebuild skipped timeline event with blank memory id: `\n + `event_id=${event.eventId} path=${ledgerPath}`,\n );\n return { eventId: event.eventId, path: ledgerPath };\n });\n const skipped = sortMemoryLifecycleEvents(losers).map((event) => {\n log.warn(\n `projection rebuild skipped duplicate timeline event_id=${event.eventId}: `\n + `kept=${ledgerPath} skipped=${ledgerPath}`,\n );\n return {\n eventId: event.eventId,\n keptPath: ledgerPath,\n skippedPath: ledgerPath,\n };\n });\n return {\n events: sortMemoryLifecycleEvents([...best.values()]),\n usedLifecycleLedger: true,\n sourceLifecycleLedgerEventCount,\n skipped,\n skippedBlankIds,\n };\n}\n\nexport async function loadProjectionTimeline(options: {\n storage: ProjectionLedgerReader;\n memoryDir: string;\n memories: MemoryFile[];\n signal?: AbortSignal;\n}): Promise<ProjectionTimeline> {\n const ledgerPath = path.join(options.memoryDir, \"state\", \"memory-lifecycle-ledger.jsonl\");\n const streamed = await consumeLifecycleLedger(\n options.storage.iterateMemoryLifecycleEvents(),\n ledgerPath,\n options.signal,\n );\n if (streamed) return streamed;\n\n const timeline = loadTimelineEvents(options.memories, []);\n const memoryPathById = new Map(\n options.memories.map((memory) => [memory.frontmatter.id, memory.path]),\n );\n const deduplicated = deduplicateTimelineEvents(\n timeline.events,\n (event) => memoryPathById.get(event.memoryId) ?? ledgerPath,\n );\n return {\n events: deduplicated.events,\n usedLifecycleLedger: false,\n sourceLifecycleLedgerEventCount: 0,\n skipped: deduplicated.skipped,\n skippedBlankIds: deduplicated.skippedBlankIds,\n };\n}\n","/**\n * Stop a projection-rebuild child when its parent is gone.\n *\n * A non-detached fork is reparented, not killed, when the daemon exits. The\n * IPC channel closes first. The child must observe that and refuse to publish,\n * or it can rename `memory-projection.sqlite.tmp` over a projection the\n * replacement daemon has already started serving.\n */\n\nexport function projectionRebuildParentDisconnected(): Error {\n return new Error(\"projection rebuild runner parent disconnected\");\n}\n\n/** Abort when this process loses its parent IPC channel. */\nexport function watchProjectionRebuildParent(): AbortSignal {\n const abort = new AbortController();\n const stop = () => {\n if (abort.signal.aborted) return;\n abort.abort(projectionRebuildParentDisconnected());\n };\n process.on(\"disconnect\", stop);\n if (process.connected === false) stop();\n return abort.signal;\n}\n\n/**\n * Yield so a disconnect that arrived during the previous await is applied,\n * then refuse to continue. No-op when the caller did not pass a signal.\n */\nexport async function throwIfProjectionRebuildAborted(\n signal: AbortSignal | undefined,\n): Promise<void> {\n if (!signal) return;\n await new Promise<void>((resolve) => {\n setImmediate(resolve);\n });\n if (!signal.aborted) return;\n const reason = signal.reason;\n throw reason instanceof Error ? reason : projectionRebuildParentDisconnected();\n}\n"],"mappings":"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","names":["path","path"]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
headerConnector,
|
|
4
4
|
renderExtractionConversation,
|
|
5
5
|
resolveSourceConnector
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QRZMJ2WN.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeReasoningTrace
|
|
9
9
|
} from "./chunk-54V4BZWP.js";
|
|
@@ -2437,4 +2437,4 @@ export {
|
|
|
2437
2437
|
shouldEnableLocalExtractionThinking,
|
|
2438
2438
|
ExtractionEngine
|
|
2439
2439
|
};
|
|
2440
|
-
//# sourceMappingURL=chunk-
|
|
2440
|
+
//# sourceMappingURL=chunk-DQJCQHII.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SupportPassportCreateGrantRequestSchema,
|
|
3
3
|
defineOperation
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7OOW72QA.js";
|
|
5
5
|
import {
|
|
6
6
|
SupportPassportCardCategorySchema,
|
|
7
7
|
SupportPassportMemoryIdSchema,
|
|
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
|
|
|
220
220
|
result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
|
|
221
221
|
})
|
|
222
222
|
});
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-DYRXRQHV.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backupAndWriteRebuiltObservations,
|
|
3
3
|
toHourBucketIso
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YQJCWR4R.js";
|
|
5
5
|
|
|
6
6
|
// src/maintenance/migrate-observations.ts
|
|
7
7
|
import path from "path";
|
|
@@ -156,4 +156,4 @@ async function migrateObservations(options) {
|
|
|
156
156
|
export {
|
|
157
157
|
migrateObservations
|
|
158
158
|
};
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
159
|
+
//# sourceMappingURL=chunk-EDR6CVWZ.js.map
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-FFAZ2XFU.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveSafeStoragePath
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-LDPPTPO5.js";
|
|
22
22
|
import {
|
|
23
23
|
readMaybeEncryptedFileFromChunks,
|
|
24
24
|
writeMaybeEncryptedFileFromChunks
|
|
@@ -2509,4 +2509,4 @@ export {
|
|
|
2509
2509
|
parseTombstoneBlockedOfflineSyncMemory,
|
|
2510
2510
|
TombstoneBlockedCaptureIndexHost
|
|
2511
2511
|
};
|
|
2512
|
-
//# sourceMappingURL=chunk-
|
|
2512
|
+
//# sourceMappingURL=chunk-EIFYYHAF.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
drainPendingLifecycleForSyncOrThrow,
|
|
6
6
|
drainPendingLifecycleLedgerForSync
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XVC7JU2N.js";
|
|
8
8
|
import {
|
|
9
9
|
displayErrorDetail
|
|
10
10
|
} from "./chunk-RL6NEVXT.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from "./chunk-C7HJ3NEI.js";
|
|
15
15
|
import {
|
|
16
16
|
writeFileAtomically
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BTNNL7ZW.js";
|
|
18
18
|
import {
|
|
19
19
|
isSafeRouteNamespace
|
|
20
20
|
} from "./chunk-PCXDUHQH.js";
|
|
@@ -181,4 +181,4 @@ export {
|
|
|
181
181
|
offlineSyncStorageForSnapshot,
|
|
182
182
|
drainPendingLifecycleForOfflineSync
|
|
183
183
|
};
|
|
184
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-EP5WXE2G.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
coerceBooleanLike,
|
|
3
|
+
coerceNumber
|
|
4
|
+
} from "./chunk-PQVCH2AE.js";
|
|
5
|
+
|
|
6
|
+
// src/projection-rebuild-config.ts
|
|
7
|
+
var DEFAULT_PROJECTION_REBUILD_HEAP_USAGE_LIMIT = 0.6;
|
|
8
|
+
function parseProjectionRebuildHeapUsageLimit(value) {
|
|
9
|
+
if (value === void 0 || value === null) return DEFAULT_PROJECTION_REBUILD_HEAP_USAGE_LIMIT;
|
|
10
|
+
const coerced = coerceNumber(value);
|
|
11
|
+
if (coerced === void 0 || !Number.isFinite(coerced) || coerced <= 0 || coerced > 1) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
`projectionRebuildHeapUsageLimit must be a finite number in (0, 1]; got ${JSON.stringify(value)}`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
return coerced;
|
|
17
|
+
}
|
|
18
|
+
function parseProjectionRebuildScheduleConfig(cfg, parseIntegerAtLeast) {
|
|
19
|
+
return {
|
|
20
|
+
projectionRebuildEnabled: coerceBooleanLike(cfg.projectionRebuildEnabled) ?? true,
|
|
21
|
+
projectionRebuildIntervalMs: parseIntegerAtLeast(
|
|
22
|
+
cfg.projectionRebuildIntervalMs,
|
|
23
|
+
6 * 60 * 60 * 1e3,
|
|
24
|
+
6e4,
|
|
25
|
+
"projectionRebuildIntervalMs"
|
|
26
|
+
),
|
|
27
|
+
projectionRebuildHeapUsageLimit: parseProjectionRebuildHeapUsageLimit(
|
|
28
|
+
cfg.projectionRebuildHeapUsageLimit
|
|
29
|
+
)
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
DEFAULT_PROJECTION_REBUILD_HEAP_USAGE_LIMIT,
|
|
35
|
+
parseProjectionRebuildHeapUsageLimit,
|
|
36
|
+
parseProjectionRebuildScheduleConfig
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=chunk-EWMRFW3F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/projection-rebuild-config.ts"],"sourcesContent":["/**\n * Scheduled projection-rebuild knobs (issue #2119, heap guard).\n *\n * Extracted from `config.ts` / `types.ts` so those god-file ceilings do not\n * grow. `PluginConfig` extends the interface and `parseConfig` spreads\n * {@link parseProjectionRebuildScheduleConfig}.\n */\n\nimport { coerceBooleanLike, coerceNumber } from \"./connectors/coerce.js\";\n\n/** Knobs for the maintenance-scheduled memory-projection rebuild. */\nexport interface ProjectionRebuildScheduleConfig {\n /**\n * Enable the maintenance-scheduled rebuild of `state/memory-projection.sqlite`.\n * The projection is otherwise rebuild-only (manual CLI / tests), so it rots as\n * the lifecycle ledger grows and timeline/browse consumers silently regress to\n * full-corpus fallback scans. Default true — mirrors lifecycle-ledger\n * auto-compaction, which is likewise enabled-by-default to keep a state file\n * healthy. Set false to disable (operators can still cron the CLI rebuild).\n */\n projectionRebuildEnabled: boolean;\n /**\n * Minimum interval between scheduled projection rebuilds. A rebuild is skipped\n * when the projection's `rebuiltAt` meta is younger than this, so a burst of\n * maintenance requests cannot fan into back-to-back rebuilds. Floored at 60s.\n * Default 6h (matches memoryLifecycleLedgerCompactMinIntervalMs).\n */\n projectionRebuildIntervalMs: number;\n /**\n * Postpone a scheduled full-corpus projection rebuild when\n * `v8.getHeapStatistics().used_heap_size / heap_size_limit` exceeds this\n * ratio. Finite number in `(0, 1]`. Default `0.6`. `1` disables the guard\n * (usage cannot exceed the limit). A postponed rebuild uses the failure\n * backoff and does not start the multi-GB allocation.\n */\n projectionRebuildHeapUsageLimit: number;\n}\n\n/** Integer coercion contract shared with `config.ts` (`parseIntegerAtLeast`). */\ntype IntegerParser = (value: unknown, fallback: number, min: number, keyName: string) => number;\n\n/** Default heap-usage ratio above which a scheduled full-corpus rebuild waits. */\nexport const DEFAULT_PROJECTION_REBUILD_HEAP_USAGE_LIMIT = 0.6;\n\n/**\n * Parse `projectionRebuildHeapUsageLimit`. Absent values take the default.\n * A present value must be a finite number in `(0, 1]` (numeric strings\n * coerced). `0` is rejected: it would postpone every rebuild.\n */\nexport function parseProjectionRebuildHeapUsageLimit(value: unknown): number {\n if (value === undefined || value === null) return DEFAULT_PROJECTION_REBUILD_HEAP_USAGE_LIMIT;\n const coerced = coerceNumber(value);\n if (coerced === undefined || !Number.isFinite(coerced) || coerced <= 0 || coerced > 1) {\n throw new Error(\n `projectionRebuildHeapUsageLimit must be a finite number in (0, 1]; got ${JSON.stringify(value)}`,\n );\n }\n return coerced;\n}\n\n/**\n * Parse the scheduled projection-rebuild knobs. Boolean coercion follows\n * gotcha #36 (`\"false\"` is false). The interval uses the shared integer\n * parser (strings coerced, non-integers and sub-60s values rejected).\n */\nexport function parseProjectionRebuildScheduleConfig(\n cfg: Record<string, unknown>,\n parseIntegerAtLeast: IntegerParser,\n): ProjectionRebuildScheduleConfig {\n return {\n projectionRebuildEnabled: coerceBooleanLike(cfg.projectionRebuildEnabled) ?? true,\n projectionRebuildIntervalMs: parseIntegerAtLeast(\n cfg.projectionRebuildIntervalMs,\n 6 * 60 * 60 * 1000,\n 60_000,\n \"projectionRebuildIntervalMs\",\n ),\n projectionRebuildHeapUsageLimit: parseProjectionRebuildHeapUsageLimit(\n cfg.projectionRebuildHeapUsageLimit,\n ),\n };\n}\n"],"mappings":";;;;;;AA0CO,IAAM,8CAA8C;AAOpD,SAAS,qCAAqC,OAAwB;AAC3E,MAAI,UAAU,UAAa,UAAU,KAAM,QAAO;AAClD,QAAM,UAAU,aAAa,KAAK;AAClC,MAAI,YAAY,UAAa,CAAC,OAAO,SAAS,OAAO,KAAK,WAAW,KAAK,UAAU,GAAG;AACrF,UAAM,IAAI;AAAA,MACR,0EAA0E,KAAK,UAAU,KAAK,CAAC;AAAA,IACjG;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,qCACd,KACA,qBACiC;AACjC,SAAO;AAAA,IACL,0BAA0B,kBAAkB,IAAI,wBAAwB,KAAK;AAAA,IAC7E,6BAA6B;AAAA,MAC3B,IAAI;AAAA,MACJ,IAAI,KAAK,KAAK;AAAA,MACd;AAAA,MACA;AAAA,IACF;AAAA,IACA,iCAAiC;AAAA,MAC/B,IAAI;AAAA,IACN;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rebuildMemoryProjection,
|
|
3
|
+
watchProjectionRebuildParent
|
|
4
|
+
} from "./chunk-DBA2W6VV.js";
|
|
5
|
+
import {
|
|
6
|
+
initLogger,
|
|
7
|
+
log
|
|
8
|
+
} from "./chunk-3WCASNQZ.js";
|
|
9
|
+
|
|
10
|
+
// src/maintenance/rebuild-memory-projection-runner.ts
|
|
11
|
+
var PROJECTION_REBUILD_RUNNER_FLAG = "--remnic-projection-rebuild-runner";
|
|
12
|
+
function runnerArgs() {
|
|
13
|
+
const index = process.argv.indexOf(PROJECTION_REBUILD_RUNNER_FLAG);
|
|
14
|
+
const memoryDir = index >= 0 ? process.argv[index + 1] : void 0;
|
|
15
|
+
const defaultNamespace = index >= 0 ? process.argv[index + 2] : void 0;
|
|
16
|
+
const nowIso = index >= 0 ? process.argv[index + 3] : void 0;
|
|
17
|
+
if (!memoryDir || !defaultNamespace || !nowIso) {
|
|
18
|
+
throw new Error(
|
|
19
|
+
"projection rebuild runner requires memoryDir, defaultNamespace, and now"
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
const now = new Date(nowIso);
|
|
23
|
+
if (Number.isNaN(now.getTime())) {
|
|
24
|
+
throw new Error(`projection rebuild runner now is not a timestamp: ${nowIso}`);
|
|
25
|
+
}
|
|
26
|
+
return { memoryDir, defaultNamespace, now };
|
|
27
|
+
}
|
|
28
|
+
function send(message) {
|
|
29
|
+
if (typeof process.send !== "function") {
|
|
30
|
+
throw new Error("projection rebuild runner requires an IPC channel");
|
|
31
|
+
}
|
|
32
|
+
const sendMessage = process.send.bind(process);
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
sendMessage(message, (err) => err ? reject(err) : resolve());
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async function main() {
|
|
38
|
+
initLogger();
|
|
39
|
+
const { memoryDir, defaultNamespace, now } = runnerArgs();
|
|
40
|
+
const signal = watchProjectionRebuildParent();
|
|
41
|
+
const result = await rebuildMemoryProjection({
|
|
42
|
+
memoryDir,
|
|
43
|
+
defaultNamespace,
|
|
44
|
+
dryRun: false,
|
|
45
|
+
now,
|
|
46
|
+
signal
|
|
47
|
+
});
|
|
48
|
+
if (signal.aborted || process.connected === false) {
|
|
49
|
+
throw new Error("projection rebuild runner parent disconnected");
|
|
50
|
+
}
|
|
51
|
+
await send({
|
|
52
|
+
ok: true,
|
|
53
|
+
currentRows: result.currentRows,
|
|
54
|
+
timelineRows: result.timelineRows,
|
|
55
|
+
entityMentionRows: result.entityMentionRows
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
var invokedAsRunner = process.argv.includes(PROJECTION_REBUILD_RUNNER_FLAG);
|
|
59
|
+
if (invokedAsRunner) {
|
|
60
|
+
main().then(
|
|
61
|
+
() => process.exit(0),
|
|
62
|
+
(err) => {
|
|
63
|
+
const error = err instanceof Error ? err.message : String(err);
|
|
64
|
+
if (process.connected === false) {
|
|
65
|
+
process.exit(1);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
log.warn(`projection rebuild runner failed: ${error}`);
|
|
69
|
+
send({ ok: false, error }).then(
|
|
70
|
+
() => process.exit(1),
|
|
71
|
+
() => process.exit(1)
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export {
|
|
78
|
+
PROJECTION_REBUILD_RUNNER_FLAG
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=chunk-FMIVV5SV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/maintenance/rebuild-memory-projection-runner.ts"],"sourcesContent":["/**\n * Child-process entry for the scheduled memory-projection rebuild.\n *\n * The daemon forks this file so the corpus and lifecycle ledger are allocated\n * in a fresh heap. Invoke only with `--remnic-projection-rebuild-runner`.\n * Arguments are the memory directory, default namespace, and an ISO timestamp.\n * Do not put secrets, passphrases, or secure-store unlock material on argv\n * or in the environment — an encrypted store rebuilds in the parent instead.\n */\nimport { initLogger, log } from \"../logger.js\";\nimport { watchProjectionRebuildParent } from \"./projection-rebuild-abort.js\";\nimport { rebuildMemoryProjection } from \"./rebuild-memory-projection.js\";\n\nexport const PROJECTION_REBUILD_RUNNER_FLAG = \"--remnic-projection-rebuild-runner\";\n\nexport interface ProjectionRebuildRunnerSuccess {\n ok: true;\n currentRows: number;\n timelineRows: number;\n entityMentionRows: number;\n}\n\ninterface ProjectionRebuildRunnerFailure {\n ok: false;\n error: string;\n}\n\nfunction runnerArgs(): { memoryDir: string; defaultNamespace: string; now: Date } {\n const index = process.argv.indexOf(PROJECTION_REBUILD_RUNNER_FLAG);\n const memoryDir = index >= 0 ? process.argv[index + 1] : undefined;\n const defaultNamespace = index >= 0 ? process.argv[index + 2] : undefined;\n const nowIso = index >= 0 ? process.argv[index + 3] : undefined;\n if (!memoryDir || !defaultNamespace || !nowIso) {\n throw new Error(\n \"projection rebuild runner requires memoryDir, defaultNamespace, and now\",\n );\n }\n const now = new Date(nowIso);\n if (Number.isNaN(now.getTime())) {\n throw new Error(`projection rebuild runner now is not a timestamp: ${nowIso}`);\n }\n return { memoryDir, defaultNamespace, now };\n}\n\nfunction send(message: ProjectionRebuildRunnerSuccess | ProjectionRebuildRunnerFailure): Promise<void> {\n if (typeof process.send !== \"function\") {\n throw new Error(\"projection rebuild runner requires an IPC channel\");\n }\n const sendMessage = process.send.bind(process);\n return new Promise((resolve, reject) => {\n sendMessage(message, (err) => (err ? reject(err) : resolve()));\n });\n}\n\nasync function main(): Promise<void> {\n initLogger();\n const { memoryDir, defaultNamespace, now } = runnerArgs();\n const signal = watchProjectionRebuildParent();\n const result = await rebuildMemoryProjection({\n memoryDir,\n defaultNamespace,\n dryRun: false,\n now,\n signal,\n });\n if (signal.aborted || process.connected === false) {\n throw new Error(\"projection rebuild runner parent disconnected\");\n }\n await send({\n ok: true,\n currentRows: result.currentRows,\n timelineRows: result.timelineRows,\n entityMentionRows: result.entityMentionRows,\n });\n}\n\nconst invokedAsRunner = process.argv.includes(PROJECTION_REBUILD_RUNNER_FLAG);\nif (invokedAsRunner) {\n main().then(\n () => process.exit(0),\n (err: unknown) => {\n const error = err instanceof Error ? err.message : String(err);\n if (process.connected === false) {\n process.exit(1);\n return;\n }\n log.warn(`projection rebuild runner failed: ${error}`);\n send({ ok: false, error }).then(\n () => process.exit(1),\n () => process.exit(1),\n );\n },\n );\n}\n"],"mappings":";;;;;;;;;;AAaO,IAAM,iCAAiC;AAc9C,SAAS,aAAyE;AAChF,QAAM,QAAQ,QAAQ,KAAK,QAAQ,8BAA8B;AACjE,QAAM,YAAY,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI;AACzD,QAAM,mBAAmB,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI;AAChE,QAAM,SAAS,SAAS,IAAI,QAAQ,KAAK,QAAQ,CAAC,IAAI;AACtD,MAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,QAAQ;AAC9C,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,IAAI,KAAK,MAAM;AAC3B,MAAI,OAAO,MAAM,IAAI,QAAQ,CAAC,GAAG;AAC/B,UAAM,IAAI,MAAM,qDAAqD,MAAM,EAAE;AAAA,EAC/E;AACA,SAAO,EAAE,WAAW,kBAAkB,IAAI;AAC5C;AAEA,SAAS,KAAK,SAAyF;AACrG,MAAI,OAAO,QAAQ,SAAS,YAAY;AACtC,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AACA,QAAM,cAAc,QAAQ,KAAK,KAAK,OAAO;AAC7C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,gBAAY,SAAS,CAAC,QAAS,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAE;AAAA,EAC/D,CAAC;AACH;AAEA,eAAe,OAAsB;AACnC,aAAW;AACX,QAAM,EAAE,WAAW,kBAAkB,IAAI,IAAI,WAAW;AACxD,QAAM,SAAS,6BAA6B;AAC5C,QAAM,SAAS,MAAM,wBAAwB;AAAA,IAC3C;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,EACF,CAAC;AACD,MAAI,OAAO,WAAW,QAAQ,cAAc,OAAO;AACjD,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACjE;AACA,QAAM,KAAK;AAAA,IACT,IAAI;AAAA,IACJ,aAAa,OAAO;AAAA,IACpB,cAAc,OAAO;AAAA,IACrB,mBAAmB,OAAO;AAAA,EAC5B,CAAC;AACH;AAEA,IAAM,kBAAkB,QAAQ,KAAK,SAAS,8BAA8B;AAC5E,IAAI,iBAAiB;AACnB,OAAK,EAAE;AAAA,IACL,MAAM,QAAQ,KAAK,CAAC;AAAA,IACpB,CAAC,QAAiB;AAChB,YAAM,QAAQ,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC7D,UAAI,QAAQ,cAAc,OAAO;AAC/B,gBAAQ,KAAK,CAAC;AACd;AAAA,MACF;AACA,UAAI,KAAK,qCAAqC,KAAK,EAAE;AACrD,WAAK,EAAE,IAAI,OAAO,MAAM,CAAC,EAAE;AAAA,QACzB,MAAM,QAAQ,KAAK,CAAC;AAAA,QACpB,MAAM,QAAQ,KAAK,CAAC;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -3,14 +3,14 @@ import {
|
|
|
3
3
|
isArtifactMemoryPath,
|
|
4
4
|
isLocationDayPath,
|
|
5
5
|
isMeetingRecordPath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OGVJXIHX.js";
|
|
7
7
|
import {
|
|
8
8
|
isExternalWikiCollectionName
|
|
9
9
|
} from "./chunk-JV3C2MNQ.js";
|
|
10
10
|
import {
|
|
11
11
|
DIRECTORY_SIDECAR_BASENAME,
|
|
12
12
|
OKF_RESERVED_BASENAMES
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3OUGSOJP.js";
|
|
14
14
|
import {
|
|
15
15
|
isValidActivityDate
|
|
16
16
|
} from "./chunk-353C5UNV.js";
|
|
@@ -211,4 +211,4 @@ export {
|
|
|
211
211
|
isGenericRecallExcludedPath,
|
|
212
212
|
filterRecallCandidates
|
|
213
213
|
};
|
|
214
|
-
//# sourceMappingURL=chunk-
|
|
214
|
+
//# sourceMappingURL=chunk-GE6HETIF.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SupportPassportError,
|
|
3
3
|
getOperation
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7OOW72QA.js";
|
|
5
5
|
import {
|
|
6
6
|
abortError,
|
|
7
7
|
isAbortError
|
|
@@ -499,4 +499,4 @@ export {
|
|
|
499
499
|
buildSupportPassportPublicRequestHandler,
|
|
500
500
|
composeSupportPassportExternalRequestHandlers
|
|
501
501
|
};
|
|
502
|
-
//# sourceMappingURL=chunk-
|
|
502
|
+
//# sourceMappingURL=chunk-GLS3A4SQ.js.map
|
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
defineOperation,
|
|
22
22
|
parseNamespacePreflightWriteOp,
|
|
23
23
|
resolveAuthorizedNamespaceWritablePreflight
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-7OOW72QA.js";
|
|
25
25
|
import {
|
|
26
26
|
parseSharedWriteOutputControls
|
|
27
27
|
} from "./chunk-IFBSZGW3.js";
|
|
28
28
|
import {
|
|
29
29
|
validateBriefingFormat
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-LIGP5M2C.js";
|
|
31
31
|
import {
|
|
32
32
|
parseDeepRecallMaxSteps
|
|
33
33
|
} from "./chunk-A7AISUJI.js";
|
|
@@ -603,4 +603,4 @@ defineOperation({ name: "graph_events", description: "SSE graph events.", schema
|
|
|
603
603
|
defineOperation({ name: "chat_message", description: "Chat message.", schema: strictSchema({ message: S.str, chatSessionId: S.str }), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
|
|
604
604
|
defineOperation({ name: "chat_events", description: "SSE chat events.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { stream: "sse" } }) });
|
|
605
605
|
defineOperation({ name: "adapters_status", description: "Adapter registry metadata (issue #1850 round 5). Marker op: the HTTP transport builds the response from its own adapterRegistry, but the op still must be registered so it appears in listRegisteredOperations and enforceTokenOp can gate it for scoped tokens.", schema: strictSchema({}), handler: async (_i, _ctx) => ({ result: { ok: true } }) });
|
|
606
|
-
//# sourceMappingURL=chunk-
|
|
606
|
+
//# sourceMappingURL=chunk-H2XCCUOT.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-TBBDFYXW.js";
|
|
4
4
|
import {
|
|
5
5
|
StorageManager
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ABET5LA5.js";
|
|
7
7
|
import {
|
|
8
8
|
bumpMemoryCorpusVersionForDir
|
|
9
9
|
} from "./chunk-M5GVCJSJ.js";
|
|
@@ -765,4 +765,4 @@ export {
|
|
|
765
765
|
listMemoryGovernanceRuns,
|
|
766
766
|
readMemoryGovernanceRunArtifact
|
|
767
767
|
};
|
|
768
|
-
//# sourceMappingURL=chunk-
|
|
768
|
+
//# sourceMappingURL=chunk-H6FA36LC.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7OOW72QA.js";
|
|
4
4
|
import {
|
|
5
5
|
EngramAccessInputError
|
|
6
6
|
} from "./chunk-3MUKQQ7A.js";
|
|
@@ -21,4 +21,4 @@ async function respondBriefingHttp(options) {
|
|
|
21
21
|
export {
|
|
22
22
|
respondBriefingHttp
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-HSZBALHV.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-H3FZVNRN.js";
|
|
14
14
|
import {
|
|
15
15
|
ExtractionDeadlineError
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-KE5PWLI6.js";
|
|
17
17
|
import {
|
|
18
18
|
resolvePrincipal
|
|
19
19
|
} from "./chunk-OEIA4IHU.js";
|
|
@@ -801,4 +801,4 @@ var SmartBuffer = class {
|
|
|
801
801
|
export {
|
|
802
802
|
SmartBuffer
|
|
803
803
|
};
|
|
804
|
-
//# sourceMappingURL=chunk-
|
|
804
|
+
//# sourceMappingURL=chunk-I25RQA65.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runLocationSync
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IRYKRBEX.js";
|
|
4
4
|
import {
|
|
5
5
|
log
|
|
6
6
|
} from "./chunk-3WCASNQZ.js";
|
|
@@ -58,4 +58,4 @@ export {
|
|
|
58
58
|
LOCATION_SYNC_DEFAULT_INTERVAL_MS,
|
|
59
59
|
startLocationAutoSync
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
61
|
+
//# sourceMappingURL=chunk-IHIP7TJ3.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
computeCorpusWatermarks,
|
|
6
6
|
resolveCorpusNamespaceRoots
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4NFRYOHT.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-IINXHPCV.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isGenericRecallExcludedPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GE6HETIF.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeProjectionPreview
|
|
6
6
|
} from "./chunk-SCU65EZI.js";
|
|
@@ -209,4 +209,4 @@ export {
|
|
|
209
209
|
browsePatternMatches,
|
|
210
210
|
runMemoryBrowse
|
|
211
211
|
};
|
|
212
|
-
//# sourceMappingURL=chunk-
|
|
212
|
+
//# sourceMappingURL=chunk-IJ4FEGZR.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveDefaultNamespaceRoot
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3QAIX7TV.js";
|
|
4
4
|
import {
|
|
5
5
|
StorageManager
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ABET5LA5.js";
|
|
7
7
|
import {
|
|
8
8
|
composeLocationDayBody,
|
|
9
9
|
composeLocationDayMeta,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
serializeLocationDay,
|
|
24
24
|
updateLocationSourceDay,
|
|
25
25
|
writeLocationDay
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-CLCMDKTB.js";
|
|
27
27
|
import {
|
|
28
28
|
resolveNamespaceCapabilities
|
|
29
29
|
} from "./chunk-2EMROIXS.js";
|
|
@@ -728,4 +728,4 @@ export {
|
|
|
728
728
|
runLocationBackfill,
|
|
729
729
|
runLocationCliCommand
|
|
730
730
|
};
|
|
731
|
-
//# sourceMappingURL=chunk-
|
|
731
|
+
//# sourceMappingURL=chunk-IRYKRBEX.js.map
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
} from "./chunk-NVKO5YKP.js";
|
|
35
35
|
import {
|
|
36
36
|
compareEntityTimestamps
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-ABET5LA5.js";
|
|
38
38
|
import {
|
|
39
39
|
normalizeEntityText,
|
|
40
40
|
resolveRequestedEntitySectionKeys
|
|
@@ -927,4 +927,4 @@ export {
|
|
|
927
927
|
entityIndexVersion,
|
|
928
928
|
entityRecentTranscriptLookbackHours
|
|
929
929
|
};
|
|
930
|
-
//# sourceMappingURL=chunk-
|
|
930
|
+
//# sourceMappingURL=chunk-IVGJXS5F.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defineOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7OOW72QA.js";
|
|
4
4
|
import {
|
|
5
5
|
EngramAccessInputError
|
|
6
6
|
} from "./chunk-3MUKQQ7A.js";
|
|
@@ -71,4 +71,4 @@ defineOperation({
|
|
|
71
71
|
})
|
|
72
72
|
})
|
|
73
73
|
});
|
|
74
|
-
//# sourceMappingURL=chunk-
|
|
74
|
+
//# sourceMappingURL=chunk-IXF7TRMQ.js.map
|