@remnic/core 9.69.74 → 9.69.76
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 +35 -36
- package/dist/access-authorization-probe.js +36 -37
- package/dist/access-boundary.js +35 -36
- package/dist/access-cli.js +94 -94
- package/dist/access-extraction-force-flush.js +35 -36
- package/dist/access-http-briefing.js +36 -37
- package/dist/access-http-query.js +37 -38
- package/dist/access-http.js +55 -56
- package/dist/access-identity-continuity-surface.js +35 -36
- package/dist/access-lcm-surface.js +35 -36
- package/dist/access-mcp.js +46 -47
- package/dist/access-namespace-preflight.js +35 -36
- package/dist/access-observe-write-category.js +7 -7
- package/dist/access-observe-write-surface.js +35 -36
- package/dist/access-offline-manifest.js +3 -3
- package/dist/access-operations-batch.js +37 -38
- package/dist/access-operations.js +44 -45
- package/dist/access-recall-concurrency.js +35 -36
- package/dist/access-recall-diagnostics.js +2 -2
- package/dist/access-recall-response.js +35 -36
- package/dist/access-recall-surface.js +35 -36
- package/dist/access-schema.js +4 -4
- package/dist/access-service.js +35 -36
- package/dist/access-surface-catalog.js +37 -38
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +9 -8
- package/dist/active-recall.js.map +1 -1
- package/dist/{auto-sync-QJNIKZHV.js → auto-sync-WEUDMXUW.js} +4 -4
- package/dist/briefing.js +8 -7
- package/dist/buffer.js +4 -4
- package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
- package/dist/causal-consolidation.js +9 -8
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/{chunk-SYTPPMCM.js → chunk-252U6XYX.js} +2 -2
- package/dist/{chunk-IXLHREAB.js → chunk-2MLWQMXH.js} +2 -2
- package/dist/{chunk-ZL3Q4OWJ.js → chunk-34R75BVF.js} +2 -2
- package/dist/{chunk-3SBDUMPW.js → chunk-364F6EMG.js} +2 -2
- package/dist/{chunk-ZMV67JXV.js → chunk-4GPI3GVE.js} +4 -4
- package/dist/{chunk-V6ULW25E.js → chunk-4MONIKIY.js} +2 -2
- package/dist/{chunk-SIV2ENTD.js → chunk-5D6IMOW6.js} +30 -30
- package/dist/{chunk-BRJNNP7R.js → chunk-5ELXQQY7.js} +2 -2
- package/dist/{chunk-ZUT4FK5W.js → chunk-5Z574AVZ.js} +2 -2
- package/dist/{chunk-NS2SFWKC.js → chunk-6FJCKMSJ.js} +3 -3
- package/dist/{chunk-PDY7C73D.js → chunk-6OACG7JV.js} +2 -2
- package/dist/{chunk-QOL6OTIK.js → chunk-6OR3AQHP.js} +2 -2
- package/dist/{chunk-AG5QWIU7.js → chunk-6RBUAPQT.js} +19 -25
- package/dist/chunk-6RBUAPQT.js.map +1 -0
- package/dist/{chunk-WQC54W25.js → chunk-6VQFPA3J.js} +2 -2
- package/dist/{chunk-GM2UUMWJ.js → chunk-74C5FI4S.js} +5 -5
- package/dist/{chunk-A7AI3WDN.js → chunk-AV5K5QH4.js} +4 -4
- package/dist/{chunk-BMTR244T.js → chunk-BFDBLAVG.js} +2 -2
- package/dist/{chunk-IGEZE6QB.js → chunk-BMYZTZ5D.js} +4 -4
- package/dist/{chunk-7JFQI6DQ.js → chunk-BOUFVFV2.js} +2 -2
- package/dist/{chunk-CGO3A7SR.js → chunk-BRBB62TS.js} +2 -2
- package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
- package/dist/{chunk-GZBNEZIU.js → chunk-DBYAY6UW.js} +3 -3
- package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
- package/dist/{chunk-U3NBO4IX.js → chunk-FAT6HY7N.js} +119 -37
- package/dist/chunk-FAT6HY7N.js.map +1 -0
- package/dist/{chunk-ML64HXAN.js → chunk-FCVPZIHF.js} +2 -2
- package/dist/{chunk-B5EZWPSM.js → chunk-FUWW7ED4.js} +2 -2
- package/dist/{chunk-HXRZRYHQ.js → chunk-GN7YTM5I.js} +2 -2
- package/dist/{chunk-XDOXR3U6.js → chunk-HC4RWJR3.js} +2 -2
- package/dist/{chunk-HA5V67N4.js → chunk-HKPGEFIT.js} +2 -2
- package/dist/{chunk-MB3HMRXM.js → chunk-I6PZTU3Q.js} +2 -2
- package/dist/{chunk-KSJP3AWY.js → chunk-IGJL6JOD.js} +2 -2
- package/dist/{chunk-KK6TS7ED.js → chunk-IV2CY3RE.js} +3 -3
- package/dist/{chunk-ZIJ5FAI4.js → chunk-J3NN2Q4Z.js} +5 -5
- package/dist/{chunk-2JJVJMN6.js → chunk-JBHCTDYF.js} +2 -2
- package/dist/{chunk-D4SPMHEW.js → chunk-JLPNONPH.js} +2 -2
- package/dist/{chunk-BFUYPEJB.js → chunk-JOAR32R6.js} +2 -2
- package/dist/{chunk-FJZUIM5G.js → chunk-JU5MAF2L.js} +2 -2
- package/dist/{chunk-AEGQ5PJ7.js → chunk-JX6USXZR.js} +2 -2
- package/dist/{chunk-VEBYLZQQ.js → chunk-KN6CIN7I.js} +2 -2
- package/dist/{chunk-UJX4I26O.js → chunk-KOXUUJE3.js} +2 -2
- package/dist/{chunk-5UBH37SL.js → chunk-LI76ESJL.js} +4 -4
- package/dist/chunk-LJLGH2DE.js +65 -0
- package/dist/chunk-LJLGH2DE.js.map +1 -0
- package/dist/{chunk-B2PGHXTP.js → chunk-LTS2XIU3.js} +2 -2
- package/dist/{chunk-A7GQBJP5.js → chunk-LVFI5LG7.js} +7 -7
- package/dist/{chunk-WZGSSLYI.js → chunk-MKGIW5W6.js} +2 -2
- package/dist/{chunk-5LWVTSF7.js → chunk-MOQPEFLN.js} +4 -4
- package/dist/{chunk-4ETSHAIZ.js → chunk-N25RPRSI.js} +8 -8
- package/dist/{chunk-5W62ZVC6.js → chunk-N6TUO3O6.js} +2 -2
- package/dist/{chunk-2IH2WNM6.js → chunk-NC7OAEYY.js} +3 -3
- package/dist/{chunk-GXHRNONR.js → chunk-NQBD3R24.js} +2 -2
- package/dist/{chunk-S52VKUUW.js → chunk-NRPLDEFR.js} +2 -2
- package/dist/{chunk-VSBY5HAI.js → chunk-OH6AMNSA.js} +2 -2
- package/dist/{chunk-NVPE6AJ3.js → chunk-OIKX22FU.js} +1 -1
- package/dist/{chunk-T3XDF5RO.js → chunk-OJMAM4RO.js} +2 -2
- package/dist/{chunk-NKIK4VFP.js → chunk-OMYCECTS.js} +2 -2
- package/dist/{chunk-UHQ5UPAQ.js → chunk-OOWUOWXK.js} +2 -2
- package/dist/{chunk-RBAG3VUT.js → chunk-P2FJ2KYJ.js} +17 -17
- package/dist/{chunk-F5O6WEDO.js → chunk-PWF4JXKD.js} +1 -1
- package/dist/chunk-PWF4JXKD.js.map +1 -0
- package/dist/{chunk-A5HBAR5Y.js → chunk-RQIETS2K.js} +2 -2
- package/dist/{chunk-RWQXTR35.js → chunk-SFDZ66MD.js} +2 -2
- package/dist/{chunk-YR6A6ZK7.js → chunk-SSUDD72S.js} +2 -2
- package/dist/{chunk-5TS5QOZS.js → chunk-TWUMZCGA.js} +6 -6
- package/dist/{chunk-Y4IQFWGD.js → chunk-TYR4D4GH.js} +2 -2
- package/dist/{chunk-VE456O3R.js → chunk-UHKME3I7.js} +2 -2
- package/dist/{chunk-IPLYGWQF.js → chunk-VDX2J7OX.js} +6 -6
- package/dist/{chunk-542IROS3.js → chunk-VKWMW32Y.js} +2 -2
- package/dist/{chunk-YF3JERFZ.js → chunk-VL4X7ZHC.js} +2 -2
- package/dist/{chunk-ZHXSOMYH.js → chunk-VVX5PZFS.js} +2 -2
- package/dist/{chunk-GLX4SU4W.js → chunk-W5VYWOU3.js} +2 -2
- package/dist/{chunk-FRD5N3CS.js → chunk-WZ7M2QRP.js} +2 -2
- package/dist/{chunk-OMU54WOM.js → chunk-X2PBZOYZ.js} +2 -2
- package/dist/{chunk-HVWLZ7ZQ.js → chunk-XC4MDMQE.js} +4 -4
- package/dist/{chunk-JLNJ7AGH.js → chunk-XIA4CN3T.js} +7 -7
- package/dist/{chunk-JTGL6UX7.js → chunk-XLLRMUMH.js} +8 -7
- package/dist/chunk-XLLRMUMH.js.map +1 -0
- package/dist/{chunk-SUD76OMV.js → chunk-XNTIX4LA.js} +97 -50
- package/dist/chunk-XNTIX4LA.js.map +1 -0
- package/dist/{chunk-QNUK4SUE.js → chunk-XQSAPG34.js} +2 -2
- package/dist/{chunk-QXDZYPBL.js → chunk-Y37KZVUM.js} +2 -2
- package/dist/{chunk-NNPJWVGN.js → chunk-YNNXM6FN.js} +38 -38
- package/dist/{chunk-SB4ZWVKI.js → chunk-YPWOZ6ME.js} +3 -5
- package/dist/{chunk-SB4ZWVKI.js.map → chunk-YPWOZ6ME.js.map} +1 -1
- package/dist/{chunk-47AONXWB.js → chunk-YYI5DZAQ.js} +2 -2
- package/dist/{chunk-HZZIH5SW.js → chunk-YZENVZWY.js} +2 -2
- package/dist/cli.js +74 -75
- package/dist/coding/export-okf-codegraph.js +8 -7
- package/dist/coding/export-okf-codegraph.js.map +1 -1
- package/dist/compounding/engine.js +8 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -8
- package/dist/connectors/codex-materialize-runner.js +8 -7
- package/dist/connectors/index.js +8 -7
- package/dist/convergence-refresh.js +10 -10
- package/dist/corpus-watermark.js +10 -9
- package/dist/deep-recall-http-glue.js +5 -5
- package/dist/directory-sidecars.d.ts +3 -0
- package/dist/directory-sidecars.d.ts.map +1 -1
- package/dist/directory-sidecars.js +7 -4
- package/dist/entity-retrieval.js +8 -7
- package/dist/external-wiki-access.js +36 -37
- package/dist/extraction.js +12 -12
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.js +102 -102
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.js +8 -8
- package/dist/location/index.js +11 -11
- package/dist/maintenance/memory-governance.js +8 -7
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
- package/dist/maintenance/rebuild-memory-projection.js +9 -9
- package/dist/memory-browse-operations.js +36 -37
- package/dist/memory-browse.js +3 -4
- package/dist/namespaces/migrate.js +9 -8
- package/dist/namespaces/search.js +3 -3
- package/dist/namespaces/storage.js +8 -7
- package/dist/offline-sync-impression-drain.js +2 -2
- package/dist/operator-doctor-corpus.js +11 -10
- package/dist/operator-toolkit.js +18 -17
- package/dist/orchestration/maintenance.js +17 -17
- package/dist/orchestration/recall-entry.d.ts.map +1 -1
- package/dist/orchestration/recall-search-pipeline.d.ts.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +94 -94
- 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 +36 -37
- package/dist/recall-navigation.js +35 -36
- package/dist/recall-state-view-admission.js +3 -4
- package/dist/recall-state.js +2 -2
- package/dist/recall-why-service.js +3 -4
- 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/resume-bundles.js +10 -9
- package/dist/search/factory.js +2 -2
- package/dist/search/index.js +4 -4
- package/dist/semantic-consolidation.js +9 -8
- package/dist/semantic-rule-promotion.js +8 -7
- package/dist/semantic-rule-verifier.js +8 -7
- package/dist/source-agent-qualifier.js +11 -11
- package/dist/standing-memory-recall.d.ts +22 -0
- package/dist/standing-memory-recall.d.ts.map +1 -0
- package/dist/standing-memory-recall.js +16 -0
- package/dist/standing-memory-recall.js.map +1 -0
- package/dist/standup/build.js +8 -7
- package/dist/storage.d.ts +1 -19
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +7 -6
- package/dist/support-passport/index.js +38 -39
- package/dist/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +3 -3
- package/dist/transfer/capsule-import.js +2 -2
- package/dist/transfer/export-okf.js +9 -8
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/verified-recall.js +8 -7
- package/dist/who-knows-cli.js +9 -8
- package/dist/who-knows.js +8 -7
- package/package.json +2 -2
- package/src/config.ts +2 -3
- package/src/directory-sidecars-config.test.ts +34 -0
- package/src/directory-sidecars.ts +27 -6
- package/src/orchestration/recall-entry.ts +54 -13
- package/src/orchestration/recall-search-pipeline.ts +4 -6
- package/src/orchestrator.ts +8 -0
- package/src/standing-memory-block.test.ts +4 -3
- package/src/standing-memory-recall.test.ts +30 -0
- package/src/standing-memory-recall.ts +87 -0
- package/src/storage.ts +13 -22
- package/src/types.ts +3 -3
- package/dist/chunk-AG5QWIU7.js.map +0 -1
- package/dist/chunk-F5O6WEDO.js.map +0 -1
- package/dist/chunk-JTGL6UX7.js.map +0 -1
- package/dist/chunk-PCEYGOSL.js +0 -66
- package/dist/chunk-PCEYGOSL.js.map +0 -1
- package/dist/chunk-SUD76OMV.js.map +0 -1
- package/dist/chunk-U3NBO4IX.js.map +0 -1
- /package/dist/{auto-sync-QJNIKZHV.js.map → auto-sync-WEUDMXUW.js.map} +0 -0
- /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
- /package/dist/{chunk-SYTPPMCM.js.map → chunk-252U6XYX.js.map} +0 -0
- /package/dist/{chunk-IXLHREAB.js.map → chunk-2MLWQMXH.js.map} +0 -0
- /package/dist/{chunk-ZL3Q4OWJ.js.map → chunk-34R75BVF.js.map} +0 -0
- /package/dist/{chunk-3SBDUMPW.js.map → chunk-364F6EMG.js.map} +0 -0
- /package/dist/{chunk-ZMV67JXV.js.map → chunk-4GPI3GVE.js.map} +0 -0
- /package/dist/{chunk-V6ULW25E.js.map → chunk-4MONIKIY.js.map} +0 -0
- /package/dist/{chunk-SIV2ENTD.js.map → chunk-5D6IMOW6.js.map} +0 -0
- /package/dist/{chunk-BRJNNP7R.js.map → chunk-5ELXQQY7.js.map} +0 -0
- /package/dist/{chunk-ZUT4FK5W.js.map → chunk-5Z574AVZ.js.map} +0 -0
- /package/dist/{chunk-NS2SFWKC.js.map → chunk-6FJCKMSJ.js.map} +0 -0
- /package/dist/{chunk-PDY7C73D.js.map → chunk-6OACG7JV.js.map} +0 -0
- /package/dist/{chunk-QOL6OTIK.js.map → chunk-6OR3AQHP.js.map} +0 -0
- /package/dist/{chunk-WQC54W25.js.map → chunk-6VQFPA3J.js.map} +0 -0
- /package/dist/{chunk-GM2UUMWJ.js.map → chunk-74C5FI4S.js.map} +0 -0
- /package/dist/{chunk-A7AI3WDN.js.map → chunk-AV5K5QH4.js.map} +0 -0
- /package/dist/{chunk-BMTR244T.js.map → chunk-BFDBLAVG.js.map} +0 -0
- /package/dist/{chunk-IGEZE6QB.js.map → chunk-BMYZTZ5D.js.map} +0 -0
- /package/dist/{chunk-7JFQI6DQ.js.map → chunk-BOUFVFV2.js.map} +0 -0
- /package/dist/{chunk-CGO3A7SR.js.map → chunk-BRBB62TS.js.map} +0 -0
- /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
- /package/dist/{chunk-GZBNEZIU.js.map → chunk-DBYAY6UW.js.map} +0 -0
- /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
- /package/dist/{chunk-ML64HXAN.js.map → chunk-FCVPZIHF.js.map} +0 -0
- /package/dist/{chunk-B5EZWPSM.js.map → chunk-FUWW7ED4.js.map} +0 -0
- /package/dist/{chunk-HXRZRYHQ.js.map → chunk-GN7YTM5I.js.map} +0 -0
- /package/dist/{chunk-XDOXR3U6.js.map → chunk-HC4RWJR3.js.map} +0 -0
- /package/dist/{chunk-HA5V67N4.js.map → chunk-HKPGEFIT.js.map} +0 -0
- /package/dist/{chunk-MB3HMRXM.js.map → chunk-I6PZTU3Q.js.map} +0 -0
- /package/dist/{chunk-KSJP3AWY.js.map → chunk-IGJL6JOD.js.map} +0 -0
- /package/dist/{chunk-KK6TS7ED.js.map → chunk-IV2CY3RE.js.map} +0 -0
- /package/dist/{chunk-ZIJ5FAI4.js.map → chunk-J3NN2Q4Z.js.map} +0 -0
- /package/dist/{chunk-2JJVJMN6.js.map → chunk-JBHCTDYF.js.map} +0 -0
- /package/dist/{chunk-D4SPMHEW.js.map → chunk-JLPNONPH.js.map} +0 -0
- /package/dist/{chunk-BFUYPEJB.js.map → chunk-JOAR32R6.js.map} +0 -0
- /package/dist/{chunk-FJZUIM5G.js.map → chunk-JU5MAF2L.js.map} +0 -0
- /package/dist/{chunk-AEGQ5PJ7.js.map → chunk-JX6USXZR.js.map} +0 -0
- /package/dist/{chunk-VEBYLZQQ.js.map → chunk-KN6CIN7I.js.map} +0 -0
- /package/dist/{chunk-UJX4I26O.js.map → chunk-KOXUUJE3.js.map} +0 -0
- /package/dist/{chunk-5UBH37SL.js.map → chunk-LI76ESJL.js.map} +0 -0
- /package/dist/{chunk-B2PGHXTP.js.map → chunk-LTS2XIU3.js.map} +0 -0
- /package/dist/{chunk-A7GQBJP5.js.map → chunk-LVFI5LG7.js.map} +0 -0
- /package/dist/{chunk-WZGSSLYI.js.map → chunk-MKGIW5W6.js.map} +0 -0
- /package/dist/{chunk-5LWVTSF7.js.map → chunk-MOQPEFLN.js.map} +0 -0
- /package/dist/{chunk-4ETSHAIZ.js.map → chunk-N25RPRSI.js.map} +0 -0
- /package/dist/{chunk-5W62ZVC6.js.map → chunk-N6TUO3O6.js.map} +0 -0
- /package/dist/{chunk-2IH2WNM6.js.map → chunk-NC7OAEYY.js.map} +0 -0
- /package/dist/{chunk-GXHRNONR.js.map → chunk-NQBD3R24.js.map} +0 -0
- /package/dist/{chunk-S52VKUUW.js.map → chunk-NRPLDEFR.js.map} +0 -0
- /package/dist/{chunk-VSBY5HAI.js.map → chunk-OH6AMNSA.js.map} +0 -0
- /package/dist/{chunk-NVPE6AJ3.js.map → chunk-OIKX22FU.js.map} +0 -0
- /package/dist/{chunk-T3XDF5RO.js.map → chunk-OJMAM4RO.js.map} +0 -0
- /package/dist/{chunk-NKIK4VFP.js.map → chunk-OMYCECTS.js.map} +0 -0
- /package/dist/{chunk-UHQ5UPAQ.js.map → chunk-OOWUOWXK.js.map} +0 -0
- /package/dist/{chunk-RBAG3VUT.js.map → chunk-P2FJ2KYJ.js.map} +0 -0
- /package/dist/{chunk-A5HBAR5Y.js.map → chunk-RQIETS2K.js.map} +0 -0
- /package/dist/{chunk-RWQXTR35.js.map → chunk-SFDZ66MD.js.map} +0 -0
- /package/dist/{chunk-YR6A6ZK7.js.map → chunk-SSUDD72S.js.map} +0 -0
- /package/dist/{chunk-5TS5QOZS.js.map → chunk-TWUMZCGA.js.map} +0 -0
- /package/dist/{chunk-Y4IQFWGD.js.map → chunk-TYR4D4GH.js.map} +0 -0
- /package/dist/{chunk-VE456O3R.js.map → chunk-UHKME3I7.js.map} +0 -0
- /package/dist/{chunk-IPLYGWQF.js.map → chunk-VDX2J7OX.js.map} +0 -0
- /package/dist/{chunk-542IROS3.js.map → chunk-VKWMW32Y.js.map} +0 -0
- /package/dist/{chunk-YF3JERFZ.js.map → chunk-VL4X7ZHC.js.map} +0 -0
- /package/dist/{chunk-ZHXSOMYH.js.map → chunk-VVX5PZFS.js.map} +0 -0
- /package/dist/{chunk-GLX4SU4W.js.map → chunk-W5VYWOU3.js.map} +0 -0
- /package/dist/{chunk-FRD5N3CS.js.map → chunk-WZ7M2QRP.js.map} +0 -0
- /package/dist/{chunk-OMU54WOM.js.map → chunk-X2PBZOYZ.js.map} +0 -0
- /package/dist/{chunk-HVWLZ7ZQ.js.map → chunk-XC4MDMQE.js.map} +0 -0
- /package/dist/{chunk-JLNJ7AGH.js.map → chunk-XIA4CN3T.js.map} +0 -0
- /package/dist/{chunk-QNUK4SUE.js.map → chunk-XQSAPG34.js.map} +0 -0
- /package/dist/{chunk-QXDZYPBL.js.map → chunk-Y37KZVUM.js.map} +0 -0
- /package/dist/{chunk-NNPJWVGN.js.map → chunk-YNNXM6FN.js.map} +0 -0
- /package/dist/{chunk-47AONXWB.js.map → chunk-YYI5DZAQ.js.map} +0 -0
- /package/dist/{chunk-HZZIH5SW.js.map → chunk-YZENVZWY.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-5HFVWYHL.js";
|
|
4
4
|
import {
|
|
5
5
|
isGenericRecallExcludedPath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YPWOZ6ME.js";
|
|
7
7
|
import {
|
|
8
8
|
planRecallMode
|
|
9
9
|
} from "./chunk-CSAKJVXW.js";
|
|
@@ -132,4 +132,4 @@ async function findExpectedMemory(orchestrator, namespaces, expect) {
|
|
|
132
132
|
export {
|
|
133
133
|
runRecallWhy
|
|
134
134
|
};
|
|
135
|
-
//# sourceMappingURL=chunk-
|
|
135
|
+
//# sourceMappingURL=chunk-6VQFPA3J.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
startLocationAutoSync
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FCVPZIHF.js";
|
|
4
4
|
import {
|
|
5
5
|
ensureContradictionScanCron,
|
|
6
6
|
ensureDaySummaryCron,
|
|
@@ -12,14 +12,14 @@ import {
|
|
|
12
12
|
} from "./chunk-666A3MOW.js";
|
|
13
13
|
import {
|
|
14
14
|
rebuildMemoryLifecycleLedger
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-RQIETS2K.js";
|
|
16
16
|
import {
|
|
17
17
|
planNamespaceMaintenance,
|
|
18
18
|
runNamespaceMaintenanceBatchPlan
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-6FJCKMSJ.js";
|
|
20
20
|
import {
|
|
21
21
|
rebuildMemoryProjection
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-IV2CY3RE.js";
|
|
23
23
|
import {
|
|
24
24
|
DEFAULT_TIMELINE_CATEGORIES,
|
|
25
25
|
TIMELINE_RESERVED_IDLE,
|
|
@@ -2450,4 +2450,4 @@ export {
|
|
|
2450
2450
|
ActivitySyncScheduler,
|
|
2451
2451
|
MaintenanceScheduler
|
|
2452
2452
|
};
|
|
2453
|
-
//# sourceMappingURL=chunk-
|
|
2453
|
+
//# sourceMappingURL=chunk-74C5FI4S.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
rejectSymlinkPath,
|
|
6
6
|
renderFrontmatter,
|
|
7
7
|
writeBundleFile
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KOXUUJE3.js";
|
|
9
9
|
import {
|
|
10
10
|
parseOaiMemCitation
|
|
11
11
|
} from "./chunk-D24OXEPB.js";
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
} from "./chunk-3UXOZBHV.js";
|
|
15
15
|
import {
|
|
16
16
|
StorageManager
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-6RBUAPQT.js";
|
|
18
18
|
import {
|
|
19
19
|
OKF_PROFILE_TYPE,
|
|
20
20
|
okfTypeForMemory
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-FAT6HY7N.js";
|
|
22
22
|
import {
|
|
23
23
|
normalizeProjectionPreview
|
|
24
24
|
} from "./chunk-SCU65EZI.js";
|
|
@@ -272,4 +272,4 @@ export {
|
|
|
272
272
|
exportOkfBundle,
|
|
273
273
|
firstHeading
|
|
274
274
|
};
|
|
275
|
-
//# sourceMappingURL=chunk-
|
|
275
|
+
//# sourceMappingURL=chunk-AV5K5QH4.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defineOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5D6IMOW6.js";
|
|
4
4
|
import {
|
|
5
5
|
EngramAccessInputError
|
|
6
6
|
} from "./chunk-3MUKQQ7A.js";
|
|
@@ -92,4 +92,4 @@ defineOperation({
|
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
});
|
|
95
|
-
//# sourceMappingURL=chunk-
|
|
95
|
+
//# sourceMappingURL=chunk-BFDBLAVG.js.map
|
|
@@ -6,12 +6,12 @@ import {
|
|
|
6
6
|
STRUCTURED_ATTRIBUTE_LIMITS,
|
|
7
7
|
TAG_LIMITS
|
|
8
8
|
} from "./chunk-GDYU6VF4.js";
|
|
9
|
-
import {
|
|
10
|
-
writeFileAtomically
|
|
11
|
-
} from "./chunk-AW4QUFQF.js";
|
|
12
9
|
import {
|
|
13
10
|
pathIsInside
|
|
14
11
|
} from "./chunk-C7HJ3NEI.js";
|
|
12
|
+
import {
|
|
13
|
+
writeFileAtomically
|
|
14
|
+
} from "./chunk-AW4QUFQF.js";
|
|
15
15
|
import {
|
|
16
16
|
isErrnoCode
|
|
17
17
|
} from "./chunk-KNA3BXXL.js";
|
|
@@ -889,4 +889,4 @@ export {
|
|
|
889
889
|
applyBriefingLocationContext,
|
|
890
890
|
daySummaryAutoOptions
|
|
891
891
|
};
|
|
892
|
-
//# sourceMappingURL=chunk-
|
|
892
|
+
//# sourceMappingURL=chunk-BMYZTZ5D.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-Q3THVX75.js";
|
|
4
4
|
import {
|
|
5
5
|
isRecallDisclosure
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PWF4JXKD.js";
|
|
7
7
|
import {
|
|
8
8
|
EngramAccessInputError
|
|
9
9
|
} from "./chunk-3MUKQQ7A.js";
|
|
@@ -165,4 +165,4 @@ export {
|
|
|
165
165
|
handleRecallWhyHttpQuery,
|
|
166
166
|
handleRecallXrayHttpQuery
|
|
167
167
|
};
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
168
|
+
//# sourceMappingURL=chunk-BOUFVFV2.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-S3YM4SZQ.js";
|
|
9
9
|
import {
|
|
10
10
|
offlineSyncStorageForSnapshot
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MOQPEFLN.js";
|
|
12
12
|
import {
|
|
13
13
|
iterateOfflineSyncSnapshotFileRecords
|
|
14
14
|
} from "./chunk-ZHOXXHT5.js";
|
|
@@ -250,4 +250,4 @@ export {
|
|
|
250
250
|
retainExcludedClassifications,
|
|
251
251
|
createOfflineSyncManifestStream
|
|
252
252
|
};
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
253
|
+
//# sourceMappingURL=chunk-BRBB62TS.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-765K3SAT.js";
|
|
4
4
|
import {
|
|
5
5
|
encryptCapsuleFile
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DQEMWVMT.js";
|
|
7
7
|
import {
|
|
8
8
|
computeTransferOutputRel,
|
|
9
9
|
isTransferPathExcluded
|
|
@@ -109,4 +109,4 @@ async function enforceRetention(outDirAbs, retentionDays) {
|
|
|
109
109
|
export {
|
|
110
110
|
backupMemoryDir
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
112
|
+
//# sourceMappingURL=chunk-BXLOS5AJ.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseXrayFormat
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KN6CIN7I.js";
|
|
4
4
|
import {
|
|
5
5
|
RECALL_DISCLOSURE_LEVELS,
|
|
6
6
|
isRecallDisclosure
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PWF4JXKD.js";
|
|
8
8
|
|
|
9
9
|
// src/recall-xray-cli.ts
|
|
10
10
|
function parseXrayDisclosureFlag(value) {
|
|
@@ -50,4 +50,4 @@ export {
|
|
|
50
50
|
parseXrayBudgetFlag,
|
|
51
51
|
parseXrayCliOptions
|
|
52
52
|
};
|
|
53
|
-
//# sourceMappingURL=chunk-
|
|
53
|
+
//# sourceMappingURL=chunk-DBYAY6UW.js.map
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
OKF_RESERVED_BASENAMES
|
|
3
|
-
} from "./chunk-PCEYGOSL.js";
|
|
4
1
|
import {
|
|
5
2
|
normalizeProjectionPreview
|
|
6
3
|
} from "./chunk-SCU65EZI.js";
|
|
@@ -17,7 +14,62 @@ import {
|
|
|
17
14
|
// src/directory-sidecars.ts
|
|
18
15
|
import { createHash } from "crypto";
|
|
19
16
|
import { lstatSync, readFileSync, readdirSync, statSync, unlinkSync } from "fs";
|
|
17
|
+
import path2 from "path";
|
|
18
|
+
|
|
19
|
+
// src/okf/type-mapping.ts
|
|
20
20
|
import path from "path";
|
|
21
|
+
var OKF_TYPE_BY_CATEGORY = Object.freeze({
|
|
22
|
+
fact: "Memory Fact",
|
|
23
|
+
decision: "Decision",
|
|
24
|
+
preference: "Preference",
|
|
25
|
+
commitment: "Commitment",
|
|
26
|
+
relationship: "Relationship",
|
|
27
|
+
principle: "Principle",
|
|
28
|
+
moment: "Moment",
|
|
29
|
+
skill: "Skill",
|
|
30
|
+
correction: "Correction",
|
|
31
|
+
rule: "Rule"
|
|
32
|
+
});
|
|
33
|
+
var OKF_TYPE_FALLBACK = "Memory";
|
|
34
|
+
function okfTypeForCategory(category) {
|
|
35
|
+
return OKF_TYPE_BY_CATEGORY[category] ?? OKF_TYPE_FALLBACK;
|
|
36
|
+
}
|
|
37
|
+
function okfTypeForMemory(fm) {
|
|
38
|
+
return fm.artifactType ? "Artifact" : okfTypeForCategory(fm.category);
|
|
39
|
+
}
|
|
40
|
+
var OKF_TYPE_BY_ENTITY_KIND = Object.freeze({
|
|
41
|
+
person: "Person",
|
|
42
|
+
company: "Company",
|
|
43
|
+
organization: "Organization",
|
|
44
|
+
project: "Project",
|
|
45
|
+
topic: "Topic",
|
|
46
|
+
technology: "Technology",
|
|
47
|
+
place: "Place",
|
|
48
|
+
event: "Event"
|
|
49
|
+
});
|
|
50
|
+
function okfTypeForEntityKind(kind) {
|
|
51
|
+
const normalized = kind?.trim().toLowerCase();
|
|
52
|
+
return normalized !== void 0 && OKF_TYPE_BY_ENTITY_KIND[normalized] || "Entity";
|
|
53
|
+
}
|
|
54
|
+
var OKF_PROFILE_TYPE = "Profile";
|
|
55
|
+
var OKF_QUESTION_TYPE = "Question";
|
|
56
|
+
var OKF_DECISION_RECORD_TYPE = "Decision Record";
|
|
57
|
+
var OKF_ARCHITECTURE_CARD_TYPE = "Architecture Card";
|
|
58
|
+
var OKF_CODE_MODULE_TYPE = "Code Module";
|
|
59
|
+
var OKF_RESERVED_BASENAMES = Object.freeze({
|
|
60
|
+
"index.md": true,
|
|
61
|
+
"log.md": true
|
|
62
|
+
});
|
|
63
|
+
function assertNotOkfReservedBasename(filePath) {
|
|
64
|
+
const basename = path.basename(filePath);
|
|
65
|
+
if (OKF_RESERVED_BASENAMES[basename] === true) {
|
|
66
|
+
throw new Error(
|
|
67
|
+
`OKF reserved basename '${basename}' is not a valid memory file target (${filePath}); OKF \xA76/\xA77 reserves it for bundle-level files.`
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// src/directory-sidecars.ts
|
|
21
73
|
var DIRECTORY_SIDECAR_BASENAME = "overview.md";
|
|
22
74
|
var DIRECTORY_SIDECAR_MARKER = "<!-- remnic-directory-sidecar -->";
|
|
23
75
|
var NEIGHBORHOOD_ABSTRACT_LABEL = "Neighborhood:";
|
|
@@ -28,6 +80,19 @@ var CATEGORY_ROOTS = new Set(RECALL_FALLBACK_DIRS);
|
|
|
28
80
|
function parseDirectorySidecarsEnabled(raw) {
|
|
29
81
|
return coerceBooleanLike(raw, "directorySidecarsEnabled") === true;
|
|
30
82
|
}
|
|
83
|
+
var sidecarEnabledByDir = /* @__PURE__ */ new Map();
|
|
84
|
+
function setDirectorySidecarsEnabledForDir(memoryDir, enabled) {
|
|
85
|
+
sidecarEnabledByDir.set(path2.resolve(memoryDir), enabled === true);
|
|
86
|
+
}
|
|
87
|
+
function isDirectorySidecarsEnabledForDir(memoryDir) {
|
|
88
|
+
let dir = path2.resolve(memoryDir);
|
|
89
|
+
for (; ; ) {
|
|
90
|
+
if (sidecarEnabledByDir.has(dir)) return sidecarEnabledByDir.get(dir) === true;
|
|
91
|
+
const parent = path2.dirname(dir);
|
|
92
|
+
if (parent === dir) return false;
|
|
93
|
+
dir = parent;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
31
96
|
var RESERVED_CHILD_BASENAMES = Object.freeze({
|
|
32
97
|
...OKF_RESERVED_BASENAMES,
|
|
33
98
|
[DIRECTORY_SIDECAR_BASENAME]: true
|
|
@@ -57,7 +122,7 @@ function directoryFingerprint(dir) {
|
|
|
57
122
|
const hash = createHash("sha256");
|
|
58
123
|
for (const name of memoryChildren(dir)) {
|
|
59
124
|
try {
|
|
60
|
-
const stats = statSync(
|
|
125
|
+
const stats = statSync(path2.join(dir, name));
|
|
61
126
|
hash.update(`f|${name}|${stats.size}|${Math.trunc(stats.mtimeMs)}
|
|
62
127
|
`);
|
|
63
128
|
} catch {
|
|
@@ -66,7 +131,7 @@ function directoryFingerprint(dir) {
|
|
|
66
131
|
}
|
|
67
132
|
}
|
|
68
133
|
for (const name of directoryChildren(dir)) {
|
|
69
|
-
hash.update(`d|${name}|${directoryFingerprint(
|
|
134
|
+
hash.update(`d|${name}|${directoryFingerprint(path2.join(dir, name))}
|
|
70
135
|
`);
|
|
71
136
|
}
|
|
72
137
|
return hash.digest("hex");
|
|
@@ -89,15 +154,15 @@ function parseSidecar(content) {
|
|
|
89
154
|
return { abstract, overview, childCount, fingerprint };
|
|
90
155
|
}
|
|
91
156
|
function sidecarPath(dir) {
|
|
92
|
-
return
|
|
157
|
+
return path2.join(dir, DIRECTORY_SIDECAR_BASENAME);
|
|
93
158
|
}
|
|
94
159
|
function renderSidecar(dir, fingerprint, childAbstracts) {
|
|
95
160
|
const children = memoryChildren(dir);
|
|
96
|
-
const childDirs = directoryChildren(dir).filter((name) => childAbstracts.has(
|
|
161
|
+
const childDirs = directoryChildren(dir).filter((name) => childAbstracts.has(path2.join(dir, name)));
|
|
97
162
|
if (children.length === 0 && childDirs.length === 0) return null;
|
|
98
163
|
const previews = children.map((name) => {
|
|
99
164
|
try {
|
|
100
|
-
return normalizeProjectionPreview(readFileSync(
|
|
165
|
+
return normalizeProjectionPreview(readFileSync(path2.join(dir, name), "utf8"), 120);
|
|
101
166
|
} catch {
|
|
102
167
|
return "";
|
|
103
168
|
}
|
|
@@ -106,13 +171,13 @@ function renderSidecar(dir, fingerprint, childAbstracts) {
|
|
|
106
171
|
(name, index) => previews[index].split(" ").slice(0, 8).join(" ") || name.replace(/\.md$/, "")
|
|
107
172
|
);
|
|
108
173
|
const abstract = normalizeProjectionPreview(
|
|
109
|
-
`${
|
|
174
|
+
`${path2.basename(dir)}/ \u2014 ${children.length} memories: ${titles.slice(0, 5).join(" \xB7 ")}`,
|
|
110
175
|
ABSTRACT_MAX_CHARS
|
|
111
176
|
);
|
|
112
177
|
const lines = [
|
|
113
178
|
DIRECTORY_SIDECAR_MARKER,
|
|
114
179
|
`fingerprint: ${fingerprint}`,
|
|
115
|
-
`# ${
|
|
180
|
+
`# ${path2.basename(dir)}/ overview`,
|
|
116
181
|
"",
|
|
117
182
|
"## Abstract",
|
|
118
183
|
abstract,
|
|
@@ -124,17 +189,17 @@ function renderSidecar(dir, fingerprint, childAbstracts) {
|
|
|
124
189
|
}
|
|
125
190
|
for (const name of childDirs) {
|
|
126
191
|
lines.push(`### ${name}/`);
|
|
127
|
-
lines.push(childAbstracts.get(
|
|
192
|
+
lines.push(childAbstracts.get(path2.join(dir, name)) ?? "");
|
|
128
193
|
}
|
|
129
194
|
lines.push("");
|
|
130
195
|
return lines.join("\n");
|
|
131
196
|
}
|
|
132
197
|
function scopeRoots(memoryDir) {
|
|
133
198
|
const roots = [memoryDir];
|
|
134
|
-
const namespacesRoot =
|
|
199
|
+
const namespacesRoot = path2.join(memoryDir, "namespaces");
|
|
135
200
|
for (const entry of listEntries(namespacesRoot)) {
|
|
136
|
-
if (entry.isDirectory() && isRealDirectory(
|
|
137
|
-
roots.push(
|
|
201
|
+
if (entry.isDirectory() && isRealDirectory(path2.join(namespacesRoot, entry.name))) {
|
|
202
|
+
roots.push(path2.join(namespacesRoot, entry.name));
|
|
138
203
|
}
|
|
139
204
|
}
|
|
140
205
|
return roots;
|
|
@@ -144,14 +209,14 @@ function collectSidecarDirs(scopeRoot) {
|
|
|
144
209
|
const walk = (dir, isCategoryRoot) => {
|
|
145
210
|
let carries = memoryChildren(dir).length > 0;
|
|
146
211
|
for (const name of directoryChildren(dir)) {
|
|
147
|
-
carries = walk(
|
|
212
|
+
carries = walk(path2.join(dir, name), false) || carries;
|
|
148
213
|
}
|
|
149
214
|
const hasSidecar = readFileOrNull(sidecarPath(dir))?.startsWith(DIRECTORY_SIDECAR_MARKER) === true;
|
|
150
215
|
if (isCategoryRoot || carries || hasSidecar) dirs.push(dir);
|
|
151
216
|
return carries;
|
|
152
217
|
};
|
|
153
218
|
for (const category of RECALL_FALLBACK_DIRS) {
|
|
154
|
-
const categoryDir =
|
|
219
|
+
const categoryDir = path2.join(scopeRoot, category);
|
|
155
220
|
if (!isRealDirectory(categoryDir)) continue;
|
|
156
221
|
walk(categoryDir, true);
|
|
157
222
|
}
|
|
@@ -186,18 +251,18 @@ async function syncSidecarDir(dir, enabled, childAbstracts, written, removed) {
|
|
|
186
251
|
function childAbstractsFromDisk(dir) {
|
|
187
252
|
const abstracts = /* @__PURE__ */ new Map();
|
|
188
253
|
for (const name of directoryChildren(dir)) {
|
|
189
|
-
const childDir =
|
|
254
|
+
const childDir = path2.join(dir, name);
|
|
190
255
|
const parsed = parseSidecar(readFileOrNull(sidecarPath(childDir)) ?? "");
|
|
191
256
|
if (parsed) abstracts.set(childDir, parsed.abstract);
|
|
192
257
|
}
|
|
193
258
|
return abstracts;
|
|
194
259
|
}
|
|
195
260
|
function directorySidecarAncestry(memoryDir, changedPath) {
|
|
196
|
-
const root =
|
|
197
|
-
const abs =
|
|
198
|
-
const rel =
|
|
199
|
-
if (rel.startsWith("..") ||
|
|
200
|
-
const parts = rel.split(
|
|
261
|
+
const root = path2.resolve(memoryDir);
|
|
262
|
+
const abs = path2.isAbsolute(changedPath) ? path2.resolve(changedPath) : path2.resolve(root, changedPath);
|
|
263
|
+
const rel = path2.relative(root, abs);
|
|
264
|
+
if (rel.startsWith("..") || path2.isAbsolute(rel)) return [];
|
|
265
|
+
const parts = rel.split(path2.sep).filter(Boolean);
|
|
201
266
|
const dirParts = isRealDirectory(abs) ? parts : parts.slice(0, -1);
|
|
202
267
|
let categoryAt = -1;
|
|
203
268
|
if (dirParts[0] === "namespaces" && dirParts.length >= 3 && CATEGORY_ROOTS.has(dirParts[2] ?? "")) {
|
|
@@ -208,7 +273,7 @@ function directorySidecarAncestry(memoryDir, changedPath) {
|
|
|
208
273
|
if (categoryAt === -1) return [];
|
|
209
274
|
const dirs = [];
|
|
210
275
|
for (let i = dirParts.length; i > categoryAt; i--) {
|
|
211
|
-
dirs.push(
|
|
276
|
+
dirs.push(path2.join(root, ...dirParts.slice(0, i)));
|
|
212
277
|
}
|
|
213
278
|
return dirs;
|
|
214
279
|
}
|
|
@@ -251,8 +316,8 @@ async function loadDirectorySidecar(dir, options = {}) {
|
|
|
251
316
|
if (!refresh) return null;
|
|
252
317
|
const childAbstracts = /* @__PURE__ */ new Map();
|
|
253
318
|
for (const name of directoryChildren(dir)) {
|
|
254
|
-
const child = await loadDirectorySidecar(
|
|
255
|
-
if (child) childAbstracts.set(
|
|
319
|
+
const child = await loadDirectorySidecar(path2.join(dir, name));
|
|
320
|
+
if (child) childAbstracts.set(path2.join(dir, name), child.abstract);
|
|
256
321
|
}
|
|
257
322
|
const next = renderSidecar(dir, directoryFingerprint(dir), childAbstracts);
|
|
258
323
|
if (next === null) {
|
|
@@ -275,7 +340,7 @@ async function loadDirectorySidecar(dir, options = {}) {
|
|
|
275
340
|
} : null;
|
|
276
341
|
}
|
|
277
342
|
async function findDirectorySidecarsForQuery(memoryDir, query, options = {}) {
|
|
278
|
-
const scope = options.namespace ?
|
|
343
|
+
const scope = options.namespace ? path2.join(memoryDir, "namespaces", options.namespace) : memoryDir;
|
|
279
344
|
if (!isRealDirectory(scope)) return [];
|
|
280
345
|
const terms = query.toLowerCase().split(/[^a-z0-9]+/).filter((term) => term.length >= 2);
|
|
281
346
|
const matches = [];
|
|
@@ -295,7 +360,7 @@ async function findDirectorySidecarsForQuery(memoryDir, query, options = {}) {
|
|
|
295
360
|
}
|
|
296
361
|
matches.sort((a, b) => b.score - a.score || a.dir.localeCompare(b.dir));
|
|
297
362
|
const limit = options.limit ?? DEFAULT_QUERY_LIMIT;
|
|
298
|
-
return matches.filter((candidate) => !matches.some((other) => other.dir.startsWith(`${candidate.dir}${
|
|
363
|
+
return matches.filter((candidate) => !matches.some((other) => other.dir.startsWith(`${candidate.dir}${path2.sep}`))).slice(0, limit);
|
|
299
364
|
}
|
|
300
365
|
function attachNeighborhoodAbstract(snippet, abstract) {
|
|
301
366
|
const line = `${NEIGHBORHOOD_ABSTRACT_LABEL} ${abstract}`;
|
|
@@ -305,22 +370,27 @@ function attachNeighborhoodAbstract(snippet, abstract) {
|
|
|
305
370
|
${snippet}`;
|
|
306
371
|
}
|
|
307
372
|
function mostSpecificSidecarForHit(memoryDir, hitPath, matches) {
|
|
308
|
-
if (
|
|
309
|
-
const abs =
|
|
373
|
+
if (path2.basename(hitPath) === DIRECTORY_SIDECAR_BASENAME) return null;
|
|
374
|
+
const abs = path2.isAbsolute(hitPath) ? path2.resolve(hitPath) : path2.resolve(memoryDir, hitPath);
|
|
310
375
|
let best = null;
|
|
311
376
|
for (const match of matches) {
|
|
312
|
-
const rel =
|
|
313
|
-
if (rel === "" || rel.startsWith("..") ||
|
|
377
|
+
const rel = path2.relative(match.dir, abs);
|
|
378
|
+
if (rel === "" || rel.startsWith("..") || path2.isAbsolute(rel)) continue;
|
|
314
379
|
if (best === null || match.dir.length > best.dir.length) best = match;
|
|
315
380
|
}
|
|
316
381
|
return best;
|
|
317
382
|
}
|
|
318
383
|
async function applyDirectorySidecarDrillDown(memoryDir, query, hits, options = {}) {
|
|
319
|
-
if (options.enabled !== true) return
|
|
320
|
-
const
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
384
|
+
if (options.enabled !== true) return hits;
|
|
385
|
+
const namespaces = options.namespaces;
|
|
386
|
+
if (namespaces !== void 0 && namespaces.length === 0) return hits;
|
|
387
|
+
const scopes = namespaces && namespaces.length > 0 ? namespaces : [options.namespace];
|
|
388
|
+
const matchLists = await Promise.all(
|
|
389
|
+
scopes.map(
|
|
390
|
+
(namespace) => findDirectorySidecarsForQuery(memoryDir, query, { namespace, refresh: false })
|
|
391
|
+
)
|
|
392
|
+
);
|
|
393
|
+
const matches = matchLists.flat();
|
|
324
394
|
const fresh = matches.filter((match) => match.fresh && match.abstract.length > 0);
|
|
325
395
|
if (fresh.length === 0) return [...hits];
|
|
326
396
|
return hits.map((hit) => {
|
|
@@ -332,10 +402,22 @@ async function applyDirectorySidecarDrillDown(memoryDir, query, hits, options =
|
|
|
332
402
|
}
|
|
333
403
|
|
|
334
404
|
export {
|
|
405
|
+
okfTypeForCategory,
|
|
406
|
+
okfTypeForMemory,
|
|
407
|
+
okfTypeForEntityKind,
|
|
408
|
+
OKF_PROFILE_TYPE,
|
|
409
|
+
OKF_QUESTION_TYPE,
|
|
410
|
+
OKF_DECISION_RECORD_TYPE,
|
|
411
|
+
OKF_ARCHITECTURE_CARD_TYPE,
|
|
412
|
+
OKF_CODE_MODULE_TYPE,
|
|
413
|
+
OKF_RESERVED_BASENAMES,
|
|
414
|
+
assertNotOkfReservedBasename,
|
|
335
415
|
DIRECTORY_SIDECAR_BASENAME,
|
|
336
416
|
DIRECTORY_SIDECAR_MARKER,
|
|
337
417
|
NEIGHBORHOOD_ABSTRACT_LABEL,
|
|
338
418
|
parseDirectorySidecarsEnabled,
|
|
419
|
+
setDirectorySidecarsEnabledForDir,
|
|
420
|
+
isDirectorySidecarsEnabledForDir,
|
|
339
421
|
directoryFingerprint,
|
|
340
422
|
directorySidecarAncestry,
|
|
341
423
|
runDirectorySidecarMaintenance,
|
|
@@ -344,4 +426,4 @@ export {
|
|
|
344
426
|
findDirectorySidecarsForQuery,
|
|
345
427
|
applyDirectorySidecarDrillDown
|
|
346
428
|
};
|
|
347
|
-
//# sourceMappingURL=chunk-
|
|
429
|
+
//# sourceMappingURL=chunk-FAT6HY7N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/directory-sidecars.ts","../src/okf/type-mapping.ts"],"sourcesContent":["/**\n * @remnic/core — per-directory abstract/overview sidecars (issue #2977).\n *\n * One derived `overview.md` per memory directory (category roots and every\n * directory beneath them, including `namespaces/<ns>/` subtrees), rendered\n * bottom-up from existing memory content:\n *\n * - the ABSTRACT is a single line (<=256 chars) composed from child titles;\n * - the OVERVIEW body lists one preview line per child memory and embeds\n * each child DIRECTORY's abstract, so a parent summarizes its subtree\n * without embedding full child overviews.\n *\n * Determinism: no LLM, no embeddings. Content is assembled with the same\n * preview machinery the OKF index files use (`normalizeProjectionPreview`).\n *\n * Invalidation: each sidecar stores a content-free fingerprint of its subtree\n * (child name|size|mtime for files, recursive fingerprints for child dirs).\n * Any add/edit/delete anywhere below a directory changes its fingerprint, so\n * `loadDirectorySidecar` can detect staleness with `readdir`+`stat` alone and\n * refresh without reading child memory files first. Eager regeneration runs\n * through {@link runDirectorySidecarMaintenance}; lazy refresh on read covers\n * direct-write paths that bypass scheduled maintenance (Gotcha #43).\n *\n * Isolation: sidecars are derived artifacts, excluded from generic recall via\n * `isGenericRecallExcludedPath` (basename match, the same tradeoff OKF makes\n * for `index.md`/`log.md`) while staying full-text searchable. Files at the\n * sidecar path WITHOUT the marker are user content: never overwritten, never\n * removed.\n *\n * Layer 2: {@link refreshDirectorySidecarsAfterWrite} refreshes only the\n * changed directory and its category ancestors. `enabled: false` is a\n * proven no-op (no reads, no writes).\n *\n * Layer 3 (this slice): {@link applyDirectorySidecarDrillDown} scores\n * fresh sidecars and attaches the winning directory's abstract to hits.\n * `enabled` stays a function argument — not a parseConfig key (`config.ts`\n * and `types.ts` are at their file-size ratchets). Retrieval never writes.\n * xray trajectory, storage write-hook, parseConfig wiring, and LLM\n * summarization remain later layers on #2977.\n */\n\nimport { createHash } from \"node:crypto\";\nimport { lstatSync, readFileSync, readdirSync, statSync, unlinkSync } from \"node:fs\";\nimport path from \"node:path\";\n\nimport { coerceBooleanLike } from \"./connectors/coerce.js\";\nimport { writeFileAtomically } from \"./maintenance/atomic-file.js\";\nimport { normalizeProjectionPreview } from \"./memory-projection-format.js\";\nimport { OKF_RESERVED_BASENAMES } from \"./okf/type-mapping.js\";\nimport { RECALL_FALLBACK_DIRS } from \"./utils/category-dir.js\";\n\nexport const DIRECTORY_SIDECAR_BASENAME = \"overview.md\";\nexport const DIRECTORY_SIDECAR_MARKER = \"<!-- remnic-directory-sidecar -->\";\n/** Prefix prepended to a hit snippet when a fresh directory abstract attaches. */\nexport const NEIGHBORHOOD_ABSTRACT_LABEL = \"Neighborhood:\";\n\nconst ABSTRACT_MAX_CHARS = 256;\nconst OVERVIEW_MAX_CHARS = 4000;\nconst DEFAULT_QUERY_LIMIT = 5;\nconst CATEGORY_ROOTS: ReadonlySet<string> = new Set(RECALL_FALLBACK_DIRS);\n\n/** Config fields this slice owns. Mix into `PluginConfig` in a later layer. */\nexport interface DirectorySidecarSettings {\n /** Populate sidecars on memory writes. Default false. */\n directorySidecarsEnabled: boolean;\n}\n\n/** Strict off-default: only an explicit true/\"true\"/1 opts in. */\nexport function parseDirectorySidecarsEnabled(raw: unknown): boolean {\n return coerceBooleanLike(raw, \"directorySidecarsEnabled\") === true;\n}\n\nconst sidecarEnabledByDir = new Map<string, boolean>();\n\nexport function setDirectorySidecarsEnabledForDir(memoryDir: string, enabled: boolean): void {\n sidecarEnabledByDir.set(path.resolve(memoryDir), enabled === true);\n}\n\nexport function isDirectorySidecarsEnabledForDir(memoryDir: string): boolean {\n let dir = path.resolve(memoryDir);\n for (;;) {\n if (sidecarEnabledByDir.has(dir)) return sidecarEnabledByDir.get(dir) === true;\n const parent = path.dirname(dir);\n if (parent === dir) return false;\n dir = parent;\n }\n}\n\n/** Basenames never treated as child memories (ours plus OKF's reserved ones). */\nconst RESERVED_CHILD_BASENAMES: Readonly<Record<string, true>> = Object.freeze({\n ...OKF_RESERVED_BASENAMES,\n [DIRECTORY_SIDECAR_BASENAME]: true,\n});\n\nexport interface DirectorySidecar {\n /** Absolute directory the sidecar describes. */\n readonly dir: string;\n /** Single-line L0 abstract (<=256 chars). */\n readonly abstract: string;\n /** Abstract plus the per-child preview body (<=4000 chars). */\n readonly overview: string;\n /** Number of memory `.md` children in this directory. */\n readonly childCount: number;\n /** False when the stored fingerprint no longer matches the subtree. */\n readonly fresh: boolean;\n}\n\nexport interface DirectorySidecarMatch extends DirectorySidecar {\n readonly score: number;\n}\n\n/** Minimal hit shape drill-down mutates. Extra fields pass through. */\nexport interface DirectorySidecarHit {\n path: string;\n snippet: string;\n score: number;\n}\n\nexport interface DirectorySidecarReport {\n written: string[];\n removed: string[];\n}\n\ninterface ParsedSidecar {\n abstract: string;\n overview: string;\n childCount: number;\n fingerprint: string;\n}\n\nfunction listEntries(dir: string) {\n try {\n return readdirSync(dir, { withFileTypes: true });\n } catch {\n return [];\n }\n}\n\n/** Root check that refuses symlinks (fs-boundary rule, PRs #1938/#1999). */\nfunction isRealDirectory(entryPath: string): boolean {\n try {\n const stats = lstatSync(entryPath);\n return !stats.isSymbolicLink() && stats.isDirectory();\n } catch {\n return false;\n }\n}\n\nfunction memoryChildren(dir: string): string[] {\n // Dirent.isFile() is false for symlinks, so a linked memory never enters the corpus.\n return listEntries(dir)\n .filter((entry) => entry.isFile() && !RESERVED_CHILD_BASENAMES[entry.name] && entry.name.endsWith(\".md\"))\n .map((entry) => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\nfunction directoryChildren(dir: string): string[] {\n // Dirent.isDirectory() is false for symlinks (fs-boundary rule, PRs #1938/#1999).\n return listEntries(dir)\n .filter((entry) => entry.isDirectory())\n .map((entry) => entry.name)\n .sort((a, b) => a.localeCompare(b));\n}\n\n/**\n * Content-free subtree fingerprint: sha256 over sorted child descriptors.\n * Files contribute `name|size|mtimeMs`; directories contribute their own\n * recursive fingerprint, so any change below a directory invalidates every\n * ancestor. Reads no file contents.\n */\nexport function directoryFingerprint(dir: string): string {\n const hash = createHash(\"sha256\");\n for (const name of memoryChildren(dir)) {\n try {\n const stats = statSync(path.join(dir, name));\n hash.update(`f|${name}|${stats.size}|${Math.trunc(stats.mtimeMs)}\\n`);\n } catch {\n hash.update(`f|${name}|missing\\n`);\n }\n }\n for (const name of directoryChildren(dir)) {\n hash.update(`d|${name}|${directoryFingerprint(path.join(dir, name))}\\n`);\n }\n return hash.digest(\"hex\");\n}\n\nfunction readFileOrNull(target: string): string | null {\n try {\n return readFileSync(target, \"utf8\");\n } catch {\n return null;\n }\n}\n\nfunction parseSidecar(content: string): ParsedSidecar | null {\n if (!content.startsWith(DIRECTORY_SIDECAR_MARKER)) return null;\n const fingerprint = /^fingerprint: ([0-9a-f]{64})$/m.exec(content)?.[1];\n if (!fingerprint) return null;\n const abstract = /^## Abstract\\n([^\\n]+)$/m.exec(content)?.[1] ?? \"\";\n const overviewStart = content.indexOf(\"## Abstract\");\n const overview =\n overviewStart === -1 ? \"\" : content.slice(overviewStart, overviewStart + OVERVIEW_MAX_CHARS).trim();\n // The `* name — preview` child bullets are the rendered child count.\n const childCount = (content.match(/^\\* .+$/gm) ?? []).length;\n return { abstract, overview, childCount, fingerprint };\n}\n\nfunction sidecarPath(dir: string): string {\n return path.join(dir, DIRECTORY_SIDECAR_BASENAME);\n}\n\nfunction renderSidecar(dir: string, fingerprint: string, childAbstracts: Map<string, string>): string | null {\n const children = memoryChildren(dir);\n const childDirs = directoryChildren(dir).filter((name) => childAbstracts.has(path.join(dir, name)));\n if (children.length === 0 && childDirs.length === 0) return null;\n\n const previews = children.map((name) => {\n try {\n return normalizeProjectionPreview(readFileSync(path.join(dir, name), \"utf8\"), 120);\n } catch {\n return \"\";\n }\n });\n const titles = children.map(\n (name, index) => previews[index].split(\" \").slice(0, 8).join(\" \") || name.replace(/\\.md$/, \"\"),\n );\n const abstract = normalizeProjectionPreview(\n `${path.basename(dir)}/ — ${children.length} memories: ${titles.slice(0, 5).join(\" · \")}`,\n ABSTRACT_MAX_CHARS,\n );\n\n const lines = [\n DIRECTORY_SIDECAR_MARKER,\n `fingerprint: ${fingerprint}`,\n `# ${path.basename(dir)}/ overview`,\n \"\",\n \"## Abstract\",\n abstract,\n \"\",\n \"## Children\",\n ];\n for (const [index, name] of children.entries()) {\n lines.push(`* ${name} — ${previews[index]}`);\n }\n for (const name of childDirs) {\n lines.push(`### ${name}/`);\n lines.push(childAbstracts.get(path.join(dir, name)) ?? \"\");\n }\n lines.push(\"\");\n return lines.join(\"\\n\");\n}\n\n/** Scope roots whose category subtrees carry sidecars: the memory root plus every namespace root. */\nfunction scopeRoots(memoryDir: string): string[] {\n const roots = [memoryDir];\n const namespacesRoot = path.join(memoryDir, \"namespaces\");\n for (const entry of listEntries(namespacesRoot)) {\n if (entry.isDirectory() && isRealDirectory(path.join(namespacesRoot, entry.name))) {\n roots.push(path.join(namespacesRoot, entry.name));\n }\n }\n return roots;\n}\n\n/**\n * Every directory that should carry a sidecar, deepest first (post-order) so\n * parents render after their children and can embed child abstracts.\n */\nfunction collectSidecarDirs(scopeRoot: string): string[] {\n const dirs: string[] = [];\n const walk = (dir: string, isCategoryRoot: boolean): boolean => {\n let carries = memoryChildren(dir).length > 0;\n for (const name of directoryChildren(dir)) {\n carries = walk(path.join(dir, name), false) || carries;\n }\n // A directory that stopped carrying memories must still be visited so its\n // orphaned sidecar can be pruned or rewritten (cache-invalidation completeness).\n const hasSidecar = readFileOrNull(sidecarPath(dir))?.startsWith(DIRECTORY_SIDECAR_MARKER) === true;\n if (isCategoryRoot || carries || hasSidecar) dirs.push(dir);\n return carries;\n };\n for (const category of RECALL_FALLBACK_DIRS) {\n const categoryDir = path.join(scopeRoot, category);\n if (!isRealDirectory(categoryDir)) continue;\n walk(categoryDir, true);\n }\n return dirs;\n}\n\nasync function syncSidecarDir(\n dir: string,\n enabled: boolean,\n childAbstracts: Map<string, string>,\n written: string[],\n removed: string[],\n): Promise<void> {\n const target = sidecarPath(dir);\n const raw = readFileOrNull(target);\n const existing = raw !== null && raw.startsWith(DIRECTORY_SIDECAR_MARKER) ? raw : null;\n if (!enabled) {\n if (existing !== null) {\n unlinkSync(target);\n removed.push(target);\n }\n return;\n }\n const next = renderSidecar(dir, directoryFingerprint(dir), childAbstracts);\n if (next === null) {\n if (existing !== null) {\n unlinkSync(target);\n removed.push(target);\n }\n return;\n }\n const parsedNext = parseSidecar(next);\n if (parsedNext) childAbstracts.set(dir, parsedNext.abstract);\n if (raw === next) return;\n if (existing === null && raw !== null) return; // user-authored file: hands off\n await writeFileAtomically(target, next);\n written.push(target);\n}\n\nfunction childAbstractsFromDisk(dir: string): Map<string, string> {\n const abstracts = new Map<string, string>();\n for (const name of directoryChildren(dir)) {\n const childDir = path.join(dir, name);\n const parsed = parseSidecar(readFileOrNull(sidecarPath(childDir)) ?? \"\");\n if (parsed) abstracts.set(childDir, parsed.abstract);\n }\n return abstracts;\n}\n\n/**\n * Category-root ancestry of a changed memory path, deepest first.\n * Paths outside a recall category return `[]` so writes to `state/` or\n * `namespaces/<ns>/` itself never mint a sidecar.\n */\nexport function directorySidecarAncestry(memoryDir: string, changedPath: string): string[] {\n const root = path.resolve(memoryDir);\n const abs = path.isAbsolute(changedPath) ? path.resolve(changedPath) : path.resolve(root, changedPath);\n const rel = path.relative(root, abs);\n if (rel.startsWith(\"..\") || path.isAbsolute(rel)) return [];\n const parts = rel.split(path.sep).filter(Boolean);\n const dirParts = isRealDirectory(abs) ? parts : parts.slice(0, -1);\n let categoryAt = -1;\n if (dirParts[0] === \"namespaces\" && dirParts.length >= 3 && CATEGORY_ROOTS.has(dirParts[2] ?? \"\")) {\n categoryAt = 2;\n } else if (CATEGORY_ROOTS.has(dirParts[0] ?? \"\")) {\n categoryAt = 0;\n }\n if (categoryAt === -1) return [];\n const dirs: string[] = [];\n for (let i = dirParts.length; i > categoryAt; i--) {\n dirs.push(path.join(root, ...dirParts.slice(0, i)));\n }\n return dirs;\n}\n\n/**\n * Regenerates directory sidecars incrementally. Unchanged sidecars are left\n * untouched; emptied directories lose theirs; user files at the sidecar path\n * (no marker) are never written or removed. With `enabled: false` every\n * generated sidecar is removed — the OKF index-maintenance contract.\n */\nexport async function runDirectorySidecarMaintenance(\n memoryDir: string,\n enabled: boolean,\n): Promise<DirectorySidecarReport> {\n const written: string[] = [];\n const removed: string[] = [];\n for (const scope of scopeRoots(memoryDir)) {\n const childAbstracts = new Map<string, string>();\n for (const dir of collectSidecarDirs(scope)) {\n await syncSidecarDir(dir, enabled, childAbstracts, written, removed);\n }\n }\n return { written, removed };\n}\n\n/**\n * Incremental write-path refresh: only the changed directory and its\n * category ancestors, using the same fingerprint/render path as maintenance.\n * `enabled: false` returns immediately — no readdir, no writes.\n */\nexport async function refreshDirectorySidecarsAfterWrite(\n memoryDir: string,\n changedPath: string,\n enabled: boolean,\n): Promise<DirectorySidecarReport> {\n if (!enabled) return { written: [], removed: [] };\n const written: string[] = [];\n const removed: string[] = [];\n for (const dir of directorySidecarAncestry(memoryDir, changedPath)) {\n await syncSidecarDir(dir, true, childAbstractsFromDisk(dir), written, removed);\n }\n return { written, removed };\n}\n\n/**\n * Read a directory's sidecar for retrieval. By default a stale sidecar is\n * refreshed in place (child directories first), which is what makes direct\n * writes that bypass maintenance still converge. With `{ refresh: false }`\n * the stored sidecar is returned as-is with `fresh: false` so callers can\n * observe staleness without writes.\n */\nexport async function loadDirectorySidecar(\n dir: string,\n options: { refresh?: boolean } = {},\n): Promise<DirectorySidecar | null> {\n const refresh = options.refresh !== false;\n const target = sidecarPath(dir);\n const stored = readFileOrNull(target);\n const generated = stored !== null && stored.startsWith(DIRECTORY_SIDECAR_MARKER);\n const parsed = generated ? parseSidecar(stored) : null;\n const fingerprint = directoryFingerprint(dir);\n if (parsed !== null && (parsed.fingerprint === fingerprint || !refresh)) {\n return {\n dir,\n abstract: parsed.abstract,\n overview: parsed.overview,\n childCount: parsed.childCount,\n fresh: parsed.fingerprint === fingerprint,\n };\n }\n if (!refresh) return null;\n\n // Refresh bottom-up so this directory's body embeds current child abstracts.\n const childAbstracts = new Map<string, string>();\n for (const name of directoryChildren(dir)) {\n const child = await loadDirectorySidecar(path.join(dir, name));\n if (child) childAbstracts.set(path.join(dir, name), child.abstract);\n }\n const next = renderSidecar(dir, directoryFingerprint(dir), childAbstracts);\n if (next === null) {\n if (generated) unlinkSync(target);\n return null;\n }\n if (readFileOrNull(target) !== next) {\n if (stored !== null && !generated) {\n // User-authored file at the sidecar path: serve nothing rather than clobber it.\n return null;\n }\n await writeFileAtomically(target, next);\n }\n const refreshed = parseSidecar(next);\n return refreshed\n ? {\n dir,\n abstract: refreshed.abstract,\n overview: refreshed.overview,\n childCount: refreshed.childCount,\n fresh: true,\n }\n : null;\n}\n\n/**\n * Overview-query primitive for hierarchical retrieval (layer 1 of #2977):\n * score every sidecar's abstract (+3 per query term) and overview (+1 per\n * term) lexically, then return the most specific matches — when both a\n * directory and its descendant match, only the descendant is kept, matching\n * the drill-down semantics the full retrieval mode will build on.\n */\nexport async function findDirectorySidecarsForQuery(\n memoryDir: string,\n query: string,\n options: { namespace?: string; limit?: number; refresh?: boolean } = {},\n): Promise<DirectorySidecarMatch[]> {\n const scope = options.namespace ? path.join(memoryDir, \"namespaces\", options.namespace) : memoryDir;\n if (!isRealDirectory(scope)) return [];\n const terms = query\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .filter((term) => term.length >= 2);\n\n const matches: DirectorySidecarMatch[] = [];\n for (const root of scopeRoots(scope)) {\n for (const dir of collectSidecarDirs(root)) {\n const sidecar = await loadDirectorySidecar(dir, { refresh: options.refresh });\n if (!sidecar) continue;\n const abstractLower = sidecar.abstract.toLowerCase();\n const overviewLower = sidecar.overview.toLowerCase();\n let score = 0;\n for (const term of terms) {\n if (abstractLower.includes(term)) score += 3;\n else if (overviewLower.includes(term)) score += 1;\n }\n if (score > 0) matches.push({ ...sidecar, score });\n }\n }\n matches.sort((a, b) => b.score - a.score || a.dir.localeCompare(b.dir));\n\n const limit = options.limit ?? DEFAULT_QUERY_LIMIT;\n return matches\n .filter((candidate) => !matches.some((other) => other.dir.startsWith(`${candidate.dir}${path.sep}`)))\n .slice(0, limit);\n}\n\nfunction attachNeighborhoodAbstract(snippet: string, abstract: string): string {\n const line = `${NEIGHBORHOOD_ABSTRACT_LABEL} ${abstract}`;\n if (snippet === line || snippet.startsWith(`${line}\\n`)) return snippet;\n return snippet.length === 0 ? line : `${line}\\n${snippet}`;\n}\n\nfunction mostSpecificSidecarForHit(\n memoryDir: string,\n hitPath: string,\n matches: readonly DirectorySidecarMatch[],\n): DirectorySidecarMatch | null {\n if (path.basename(hitPath) === DIRECTORY_SIDECAR_BASENAME) return null;\n const abs = path.isAbsolute(hitPath) ? path.resolve(hitPath) : path.resolve(memoryDir, hitPath);\n let best: DirectorySidecarMatch | null = null;\n for (const match of matches) {\n const rel = path.relative(match.dir, abs);\n if (rel === \"\" || rel.startsWith(\"..\") || path.isAbsolute(rel)) continue;\n if (best === null || match.dir.length > best.dir.length) best = match;\n }\n return best;\n}\n\n/**\n * Retrieval drill-down (layer 3 of #2977): score fresh directory sidecars\n * and attach the winning neighborhood abstract to hits under that directory.\n * `enabled: false` (the default) returns hits unchanged with no I/O.\n * Never writes. Does not reorder. parseConfig is not consulted.\n */\nexport async function applyDirectorySidecarDrillDown<T extends DirectorySidecarHit>(\n memoryDir: string,\n query: string,\n hits: readonly T[],\n options: { enabled?: boolean; namespace?: string; namespaces?: readonly string[] } = {},\n): Promise<T[]> {\n if (options.enabled !== true) return hits as T[];\n const namespaces = options.namespaces;\n if (namespaces !== undefined && namespaces.length === 0) return hits as T[];\n const scopes = namespaces && namespaces.length > 0 ? namespaces : [options.namespace];\n const matchLists = await Promise.all(\n scopes.map((namespace) =>\n findDirectorySidecarsForQuery(memoryDir, query, { namespace, refresh: false }),\n ),\n );\n const matches = matchLists.flat();\n const fresh = matches.filter((match) => match.fresh && match.abstract.length > 0);\n if (fresh.length === 0) return [...hits];\n return hits.map((hit) => {\n const match = mostSpecificSidecarForHit(memoryDir, hit.path, fresh);\n if (!match) return hit;\n const snippet = attachNeighborhoodAbstract(hit.snippet, match.abstract);\n return snippet === hit.snippet ? hit : { ...hit, snippet };\n });\n}\n","/**\n * OKF v0.1 `type` mapping (issue #1946) — the single source of truth for\n * the inert `type` metadata emitted alongside Remnic's canonical fields.\n *\n * `category` remains the canonical internal field; `type` is\n * presentation/interop metadata for OKF consumers and NEVER overrides\n * `category` on parse (the parser reads `type` into its own field only).\n */\nimport path from \"node:path\";\n\n/** OKF `type` values derived from Remnic memory categories. */\nexport const OKF_TYPE_BY_CATEGORY: Readonly<Record<string, string>> = Object.freeze({\n fact: \"Memory Fact\",\n decision: \"Decision\",\n preference: \"Preference\",\n commitment: \"Commitment\",\n relationship: \"Relationship\",\n principle: \"Principle\",\n moment: \"Moment\",\n skill: \"Skill\",\n correction: \"Correction\",\n rule: \"Rule\",\n});\n\n/** Fallback for categories not listed above (unknown/future categories). */\nexport const OKF_TYPE_FALLBACK = \"Memory\";\n\n/** Stable domain seam over the category table (single mapping source, AGENTS.md pattern 9). */\nexport function okfTypeForCategory(category: string): string {\n return OKF_TYPE_BY_CATEGORY[category] ?? OKF_TYPE_FALLBACK;\n}\n\n/** Artifact memories report `Artifact` regardless of their storage category. */\nexport function okfTypeForMemory(fm: { category: string; artifactType?: string }): string {\n return fm.artifactType ? \"Artifact\" : okfTypeForCategory(fm.category);\n}\n\n/** OKF types for entity files, derived from the entity kind. */\nexport const OKF_TYPE_BY_ENTITY_KIND: Readonly<Record<string, string>> = Object.freeze({\n person: \"Person\",\n company: \"Company\",\n organization: \"Organization\",\n project: \"Project\",\n topic: \"Topic\",\n technology: \"Technology\",\n place: \"Place\",\n event: \"Event\",\n});\n\n/** Stable domain seam over the entity-kind table (single mapping source). */\nexport function okfTypeForEntityKind(kind: string | undefined): string {\n const normalized = kind?.trim().toLowerCase();\n return (normalized !== undefined && OKF_TYPE_BY_ENTITY_KIND[normalized]) || \"Entity\";\n}\n\n/** Fixed OKF types for non-memory bundle files. */\nexport const OKF_PROFILE_TYPE = \"Profile\";\nexport const OKF_QUESTION_TYPE = \"Question\";\nexport const OKF_DECISION_RECORD_TYPE = \"Decision Record\";\nexport const OKF_ARCHITECTURE_CARD_TYPE = \"Architecture Card\";\nexport const OKF_CODE_MODULE_TYPE = \"Code Module\";\n\n/**\n * OKF §6/§7 reserve `index.md` and `log.md` for bundle-level files with a\n * different contract. Remnic never writes them (separate issue), and writes\n * targeting those basenames are rejected outright so a stray ID can never\n * shadow a reserved bundle file.\n */\nexport const OKF_RESERVED_BASENAMES: Readonly<Record<string, true>> = Object.freeze({\n \"index.md\": true,\n \"log.md\": true,\n});\n\nexport function assertNotOkfReservedBasename(filePath: string): void {\n const basename = path.basename(filePath);\n if (OKF_RESERVED_BASENAMES[basename] === true) {\n throw new Error(\n `OKF reserved basename '${basename}' is not a valid memory file target (${filePath}); OKF §6/§7 reserves it for bundle-level files.`,\n );\n }\n}\n"],"mappings":"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","names":["path","path"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runLocationSync
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XC4MDMQE.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-FCVPZIHF.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-DBB5JPSL.js";
|
|
4
4
|
import {
|
|
5
5
|
isGenericRecallExcludedPath
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YPWOZ6ME.js";
|
|
7
7
|
import {
|
|
8
8
|
isChangeOrientedQuery
|
|
9
9
|
} from "./chunk-EH3HNCAM.js";
|
|
@@ -69,4 +69,4 @@ export {
|
|
|
69
69
|
filterRecentScanMemoriesForStateView,
|
|
70
70
|
indexStateViewAnnotatedResults
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-FUWW7ED4.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-B7RWBZXW.js";
|
|
4
4
|
import {
|
|
5
5
|
StorageManager
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6RBUAPQT.js";
|
|
7
7
|
import {
|
|
8
8
|
getCachedEpisodeMap,
|
|
9
9
|
setCachedEpisodeMap
|
|
@@ -109,4 +109,4 @@ export {
|
|
|
109
109
|
compareVerifiedEpisodeResults,
|
|
110
110
|
searchVerifiedEpisodes
|
|
111
111
|
};
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
112
|
+
//# sourceMappingURL=chunk-GN7YTM5I.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-NRPLDEFR.js";
|
|
17
17
|
import {
|
|
18
18
|
resolvePrincipal
|
|
19
19
|
} from "./chunk-Y23L4YJV.js";
|
|
@@ -801,4 +801,4 @@ var SmartBuffer = class {
|
|
|
801
801
|
export {
|
|
802
802
|
SmartBuffer
|
|
803
803
|
};
|
|
804
|
-
//# sourceMappingURL=chunk-
|
|
804
|
+
//# sourceMappingURL=chunk-HC4RWJR3.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
rebuildMemoryProjection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IV2CY3RE.js";
|
|
4
4
|
|
|
5
5
|
// src/convergence-refresh.ts
|
|
6
6
|
async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
|
|
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
|
|
|
32
32
|
export {
|
|
33
33
|
refreshConvergedNamespaces
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-HKPGEFIT.js.map
|