@remnic/core 10.0.14 → 10.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abstraction-nodes.js +3 -2
- package/dist/access-admin-ops-surface.js +34 -32
- package/dist/access-authorization-probe.js +35 -33
- package/dist/access-boundary.js +34 -32
- package/dist/access-cli.js +90 -88
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +34 -32
- package/dist/access-http-briefing.js +35 -33
- package/dist/access-http-query.js +36 -34
- package/dist/access-http.js +53 -51
- package/dist/access-identity-continuity-surface.js +34 -32
- package/dist/access-lcm-surface.js +34 -32
- package/dist/access-mcp.js +45 -43
- package/dist/access-namespace-preflight.js +34 -32
- package/dist/access-observe-write-category.js +4 -3
- package/dist/access-observe-write-surface.js +34 -32
- package/dist/access-offline-manifest.js +3 -2
- package/dist/access-operations-batch.js +37 -35
- package/dist/access-operations.js +44 -42
- package/dist/access-recall-concurrency.js +34 -32
- package/dist/access-recall-response.js +34 -32
- package/dist/access-recall-surface.js +34 -32
- package/dist/access-schema.js +3 -2
- package/dist/access-service.js +34 -32
- package/dist/access-surface-catalog.js +36 -34
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +14 -12
- package/dist/active-recall.js.map +1 -1
- package/dist/briefing.js +10 -8
- package/dist/buffer.js +2 -2
- package/dist/calibration.d.ts.map +1 -1
- package/dist/calibration.js +6 -3
- package/dist/calibration.js.map +1 -1
- package/dist/causal-behavior.js +4 -3
- package/dist/causal-behavior.js.map +1 -1
- package/dist/causal-chain.js +4 -3
- package/dist/causal-consolidation.js +14 -12
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +4 -3
- package/dist/causal-retrieval.js.map +1 -1
- package/dist/causal-trajectory.js +3 -2
- package/dist/{chunk-63B2IZYE.js → chunk-23ZQPP2G.js} +6 -1
- package/dist/chunk-23ZQPP2G.js.map +1 -0
- package/dist/{chunk-YFMBHQRG.js → chunk-2PTH4PRL.js} +2 -2
- package/dist/{chunk-TITG2NBS.js → chunk-2PYHLSXK.js} +2 -2
- package/dist/{chunk-B6O2YLUR.js → chunk-2Z5DIDQD.js} +6 -1
- package/dist/chunk-2Z5DIDQD.js.map +1 -0
- package/dist/{chunk-KH2LKDX7.js → chunk-33G67YZF.js} +2 -2
- package/dist/{chunk-SWIKABKI.js → chunk-3Q3XD3NO.js} +2 -2
- package/dist/{chunk-4KY5GSMB.js → chunk-4PDTVVSW.js} +2 -2
- package/dist/{chunk-HM7RHKS4.js → chunk-4RNBLLZR.js} +2 -2
- package/dist/{chunk-PAZ35RJ4.js → chunk-4SCZZ3U7.js} +240 -55
- package/dist/chunk-4SCZZ3U7.js.map +1 -0
- package/dist/{chunk-Y4NKEXQT.js → chunk-5ATSXCAG.js} +3 -3
- package/dist/{chunk-JDZFIR2S.js → chunk-5KGYTX5O.js} +2 -2
- package/dist/{chunk-J7JWFZHI.js → chunk-5MLGY6IY.js} +39 -39
- package/dist/{chunk-NW2E4CI2.js → chunk-5SMR542T.js} +2 -2
- package/dist/{chunk-S7LWX2PQ.js → chunk-655FVTCD.js} +2 -2
- package/dist/{chunk-4OSG5Y6M.js → chunk-6YEPGWUP.js} +2 -2
- package/dist/{chunk-W47S5TIH.js → chunk-7VQ6AI7H.js} +2 -2
- package/dist/{chunk-WLMZ2L5P.js → chunk-AZDTDWS2.js} +2 -2
- package/dist/{chunk-G7NYVKD6.js → chunk-B2NXOVZN.js} +2 -2
- package/dist/{chunk-N7KYEVLK.js → chunk-BK2BVLZW.js} +2 -2
- package/dist/{chunk-QJ622LTI.js → chunk-BQOGQULP.js} +30 -8
- package/dist/chunk-BQOGQULP.js.map +1 -0
- package/dist/{chunk-S2I7DL5Q.js → chunk-C2RW36YR.js} +2 -2
- package/dist/{chunk-P5NQN4JE.js → chunk-C6JMGAMO.js} +6 -2
- package/dist/chunk-C6JMGAMO.js.map +1 -0
- package/dist/{chunk-6LG7BWKW.js → chunk-CFZ4SXXH.js} +2 -2
- package/dist/{chunk-JQ7XU625.js → chunk-CQOIWJ5E.js} +6 -6
- package/dist/{chunk-FSIMZNBC.js → chunk-CXOYUANR.js} +2 -2
- package/dist/{chunk-BLVHDY2U.js → chunk-DOWACHYO.js} +5 -2
- package/dist/chunk-DOWACHYO.js.map +1 -0
- package/dist/{chunk-QOZJCSFO.js → chunk-DQR2LD3V.js} +2 -2
- package/dist/{chunk-MATDGSJ7.js → chunk-DUPHIZBY.js} +2 -2
- package/dist/{chunk-EBA5DA77.js → chunk-EOU6V4IN.js} +2 -2
- package/dist/{chunk-5WCJLQTM.js → chunk-F2772ATT.js} +2 -2
- package/dist/{chunk-46EST7JO.js → chunk-F2XNSIPP.js} +2 -2
- package/dist/{chunk-PZHQWFR3.js → chunk-G3UUAQOD.js} +2 -2
- package/dist/{chunk-YE36AJL7.js → chunk-GCVDFX66.js} +2 -2
- package/dist/{chunk-ZV65I6ME.js → chunk-GFWRXPF6.js} +29 -26
- package/dist/chunk-GFWRXPF6.js.map +1 -0
- package/dist/{chunk-T2YX56QI.js → chunk-GQJKVQJR.js} +2 -2
- package/dist/{chunk-I7S55EOB.js → chunk-GUY6L6LL.js} +2 -2
- package/dist/{chunk-L5DAHSEZ.js → chunk-GWVNGDJW.js} +2 -2
- package/dist/{chunk-N45NEBOD.js → chunk-GZXXPCWJ.js} +3 -3
- package/dist/{chunk-EPJDSQHF.js → chunk-H5IUN433.js} +2 -2
- package/dist/{chunk-EUAIYYYR.js → chunk-H6FREOYX.js} +7 -7
- package/dist/{chunk-Q4E24IRR.js → chunk-HDN7IVIO.js} +14 -11
- package/dist/chunk-HDN7IVIO.js.map +1 -0
- package/dist/{chunk-T3FMRLWQ.js → chunk-HFSPY26A.js} +2 -2
- package/dist/{chunk-GH7AOMJD.js → chunk-IJMDBYCO.js} +2 -2
- package/dist/{chunk-4IHBN6WU.js → chunk-JKMIGCK6.js} +2 -2
- package/dist/{chunk-ROBHL3GL.js → chunk-JWX2Q6HS.js} +2 -2
- package/dist/{chunk-DPR2WTN3.js → chunk-JZTEOBOR.js} +16 -16
- package/dist/{chunk-4O6WRBGE.js → chunk-KJXP6RUG.js} +5 -1
- package/dist/chunk-KJXP6RUG.js.map +1 -0
- package/dist/{chunk-JIHMUOOS.js → chunk-KLJVTZ3R.js} +3 -3
- package/dist/{chunk-FP4JYE66.js → chunk-KW4AJ7T3.js} +2 -2
- package/dist/{chunk-NIRQGDYC.js → chunk-L5VCT7LU.js} +5 -1
- package/dist/chunk-L5VCT7LU.js.map +1 -0
- package/dist/{chunk-QODKDRSP.js → chunk-L6AZOEXV.js} +4 -4
- package/dist/{chunk-CLWBFR7Q.js → chunk-LO76EF3Y.js} +1 -1
- package/dist/chunk-LO76EF3Y.js.map +1 -0
- package/dist/{chunk-LS2FHUML.js → chunk-LQ5SS4OP.js} +3 -3
- package/dist/{chunk-SIIRTDJ4.js → chunk-LWFWZTWX.js} +2 -2
- package/dist/{chunk-BMWN7B3Y.js → chunk-LXATZLSC.js} +3 -3
- package/dist/{chunk-O4SGYW7H.js → chunk-MAVYEZKM.js} +2 -2
- package/dist/{chunk-B665A6BO.js → chunk-MJIOGYKX.js} +2 -2
- package/dist/{chunk-RTKV5XHL.js → chunk-MO6N4QYY.js} +2 -2
- package/dist/{chunk-N4C7QKOG.js → chunk-MWWAQXZ6.js} +2 -2
- package/dist/{chunk-LCKVXX5F.js → chunk-MXV2MY6C.js} +2 -2
- package/dist/{chunk-FFOVKNQV.js → chunk-NAGMQXWV.js} +2 -2
- package/dist/{chunk-ZJVMUBYF.js → chunk-NHUX6GXA.js} +6 -6
- package/dist/{chunk-CB6ANA2I.js → chunk-NZCKG25S.js} +2 -2
- package/dist/{chunk-UMTCNEVQ.js → chunk-O2YPCFJT.js} +11 -11
- package/dist/{chunk-WSGPFRBH.js → chunk-OMERTLB7.js} +3 -3
- package/dist/{chunk-QX6JN3O4.js → chunk-PEF5LHQU.js} +6 -6
- package/dist/{chunk-JYZSRNR7.js → chunk-PIITB2YZ.js} +2 -2
- package/dist/chunk-PPUNC7UX.js +73 -0
- package/dist/chunk-PPUNC7UX.js.map +1 -0
- package/dist/{chunk-EQWEIIKQ.js → chunk-PQM3B54K.js} +6 -1
- package/dist/chunk-PQM3B54K.js.map +1 -0
- package/dist/{chunk-UQDG3YLN.js → chunk-PRU7OF3Y.js} +3 -3
- package/dist/{chunk-EU534WGS.js → chunk-PVHQSLNN.js} +7 -7
- package/dist/{chunk-TZNDKTX5.js → chunk-Q7DWEXG2.js} +37 -33
- package/dist/chunk-Q7DWEXG2.js.map +1 -0
- package/dist/{chunk-5VC7J76U.js → chunk-QPH52AZB.js} +2 -2
- package/dist/{chunk-XISROV24.js → chunk-QSEUUQUF.js} +2 -2
- package/dist/chunk-QUIRIG2P.js +31 -0
- package/dist/chunk-QUIRIG2P.js.map +1 -0
- package/dist/{chunk-FUFAXVBA.js → chunk-RI2KCQHP.js} +6 -2
- package/dist/chunk-RI2KCQHP.js.map +1 -0
- package/dist/{chunk-O2IPAX26.js → chunk-RTTPBBAN.js} +4 -4
- package/dist/{chunk-W5MCEVUS.js → chunk-RYYVMZBR.js} +2 -2
- package/dist/{chunk-ZSH2NRDV.js → chunk-TN4EA4X4.js} +2 -2
- package/dist/{chunk-SS3IS2JR.js → chunk-UGYUBENJ.js} +2 -2
- package/dist/{chunk-GELS5Z5Z.js → chunk-V3TXIXXY.js} +3 -3
- package/dist/{chunk-WVADKFWV.js → chunk-VNZMZPAC.js} +2 -2
- package/dist/{chunk-JPTPS4OB.js → chunk-VPXIKBPX.js} +2 -2
- package/dist/{chunk-OP6N4H6A.js → chunk-W3FVQBGF.js} +2 -2
- package/dist/{chunk-W3K3HITK.js → chunk-WLT6LTQP.js} +2 -2
- package/dist/{chunk-GMXWTJNU.js → chunk-XKRXN63M.js} +2 -2
- package/dist/{chunk-KR6ZKECI.js → chunk-XYGQSDTH.js} +3 -3
- package/dist/{chunk-22W2XWGH.js → chunk-YBO2WGCV.js} +2 -2
- package/dist/{chunk-P7TOIOT7.js → chunk-YR4COAEC.js} +2 -2
- package/dist/{chunk-6WHJ2EAB.js → chunk-Z64TS5V4.js} +2 -2
- package/dist/{chunk-NHLLKEKK.js → chunk-ZAJLJ35W.js} +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +73 -71
- package/dist/coding/export-okf-codegraph.js +9 -7
- package/dist/coding/export-okf-codegraph.js.map +1 -1
- package/dist/coding/pre-action-gate.js +4 -3
- package/dist/commitment-ledger.js +3 -2
- package/dist/compounding/engine.js +11 -9
- package/dist/config.js +14 -12
- package/dist/connectors/codex-materialize-runner.js +10 -8
- package/dist/connectors/index.js +10 -8
- package/dist/consolidation-provenance-check.d.ts.map +1 -1
- package/dist/consolidation-provenance-check.js +2 -1
- package/dist/contradiction/index.js +3 -2
- package/dist/convergence-refresh.js +12 -10
- package/dist/corpus-watermark.js +12 -10
- package/dist/correction/correction-planner.d.ts.map +1 -1
- package/dist/cue-anchors.js +4 -3
- package/dist/deep-recall-http-glue.js +4 -3
- package/dist/{dreams-ledger-567VKVOU.js → dreams-ledger-UCHHRQ4R.js} +3 -2
- package/dist/entity-retrieval.js +10 -8
- package/dist/eval-trajectory-store.js +4 -3
- package/dist/eval-trajectory.js +4 -3
- package/dist/evals.js +3 -2
- package/dist/external-wiki-access.js +35 -33
- package/dist/extraction.js +14 -12
- package/dist/{first-start-migration-6A5BJPDW.js → first-start-migration-QVD22WWS.js} +6 -5
- package/dist/{first-start-migration-6A5BJPDW.js.map → first-start-migration-QVD22WWS.js.map} +1 -1
- package/dist/harmonic-construction.js +5 -4
- package/dist/harmonic-retrieval.js +14 -12
- package/dist/harmonic-source-lookup.js +3 -2
- package/dist/index.js +90 -88
- package/dist/json-store.d.ts.map +1 -1
- package/dist/json-store.js +2 -1
- package/dist/location/index.js +12 -10
- package/dist/maintenance/dreams-ledger.d.ts.map +1 -1
- package/dist/maintenance/memory-governance.d.ts.map +1 -1
- package/dist/maintenance/memory-governance.js +10 -8
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -8
- package/dist/maintenance/rebuild-memory-projection-runner.js +12 -10
- package/dist/maintenance/rebuild-memory-projection.js +11 -9
- package/dist/memory-browse-operations.js +35 -33
- package/dist/namespaces/migrate.js +11 -9
- package/dist/namespaces/search.js +7 -6
- package/dist/namespaces/storage.d.ts.map +1 -1
- package/dist/namespaces/storage.js +10 -8
- package/dist/objective-state-writers.js +4 -3
- package/dist/objective-state.js +3 -2
- package/dist/offline-sync-snapshot-stream.js +3 -2
- package/dist/offline-sync.d.ts.map +1 -1
- package/dist/offline-sync.js +2 -1
- package/dist/operator-doctor-corpus.js +13 -11
- package/dist/operator-toolkit.js +25 -23
- package/dist/orchestration/extraction-run.d.ts +6 -20
- package/dist/orchestration/extraction-run.d.ts.map +1 -1
- package/dist/orchestration/maintenance.js +20 -18
- package/dist/orchestrator.js +90 -88
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +2 -1
- package/dist/recall-navigation-operations.js +35 -33
- package/dist/recall-navigation.js +34 -32
- package/dist/{resolution-7AY36LGJ.js → resolution-ZU5BIAJA.js} +4 -3
- package/dist/resume-bundles.js +19 -17
- package/dist/retrieval-agents.d.ts +1 -1
- package/dist/retrieval-agents.d.ts.map +1 -1
- package/dist/retrieval-agents.js +7 -1
- package/dist/search/document-scanner.d.ts.map +1 -1
- package/dist/search/document-scanner.js +2 -1
- package/dist/search/factory.js +6 -5
- package/dist/search/index.js +6 -5
- package/dist/search/lancedb-backend.js +3 -2
- package/dist/search/meilisearch-backend.js +3 -2
- package/dist/search/orama-backend.js +3 -2
- package/dist/semantic-consolidation.js +11 -9
- package/dist/semantic-rule-promotion.js +10 -8
- package/dist/semantic-rule-verifier.js +10 -8
- package/dist/source-agent-qualifier.js +12 -10
- package/dist/standup/build.js +10 -8
- package/dist/storage/entity-canonical-id-migration.d.ts.map +1 -1
- package/dist/storage/entity-store.d.ts +32 -1
- package/dist/storage/entity-store.d.ts.map +1 -1
- package/dist/storage/memory-read-store.d.ts.map +1 -1
- package/dist/storage/supersession-audit.d.ts.map +1 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +9 -7
- package/dist/support-passport/index.js +37 -35
- package/dist/{tier-stats-RQM76XYY.js → tier-stats-C3IAMS4X.js} +6 -5
- package/dist/{tier-stats-RQM76XYY.js.map → tier-stats-C3IAMS4X.js.map} +1 -1
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +2 -1
- package/dist/transfer/export-okf.js +10 -8
- package/dist/trust-zones.js +3 -2
- package/dist/utility-learner.js +4 -3
- package/dist/utility-runtime.js +5 -4
- package/dist/utility-telemetry.js +3 -2
- package/dist/utils/macos-replication-junk.d.ts +32 -0
- package/dist/utils/macos-replication-junk.d.ts.map +1 -0
- package/dist/utils/malformed-entity-record.d.ts +24 -0
- package/dist/utils/malformed-entity-record.d.ts.map +1 -0
- package/dist/verified-recall.js +10 -8
- package/dist/who-knows-cli.js +11 -9
- package/dist/who-knows.js +10 -8
- package/dist/work-product-ledger.js +3 -2
- package/package.json +2 -2
- package/src/calibration.ts +3 -2
- package/src/cli.ts +2 -2
- package/src/consolidation-provenance-check.ts +2 -0
- package/src/correction/correction-planner.ts +3 -2
- package/src/json-store.ts +3 -0
- package/src/macos-replication-junk-scanners.test.ts +275 -0
- package/src/maintenance/dreams-ledger.ts +2 -0
- package/src/maintenance/memory-governance.ts +2 -0
- package/src/namespaces/storage.ts +2 -0
- package/src/offline-sync-macos-junk.test.ts +169 -0
- package/src/offline-sync.ts +7 -0
- package/src/orchestration/extraction-run.ts +6 -20
- package/src/profiling.ts +2 -1
- package/src/retrieval-agents.ts +29 -12
- package/src/search/document-scanner.ts +4 -0
- package/src/storage/entity-canonical-id-migration.ts +56 -13
- package/src/storage/entity-store.ts +173 -15
- package/src/storage/memory-read-store.ts +30 -5
- package/src/storage/supersession-audit.ts +2 -0
- package/src/storage.ts +3 -2
- package/src/transcript.ts +11 -10
- package/src/utils/macos-replication-junk.test.ts +46 -0
- package/src/utils/macos-replication-junk.ts +65 -0
- package/src/utils/malformed-entity-record.ts +101 -0
- package/dist/chunk-4O6WRBGE.js.map +0 -1
- package/dist/chunk-63B2IZYE.js.map +0 -1
- package/dist/chunk-B6O2YLUR.js.map +0 -1
- package/dist/chunk-BLVHDY2U.js.map +0 -1
- package/dist/chunk-CLWBFR7Q.js.map +0 -1
- package/dist/chunk-EQWEIIKQ.js.map +0 -1
- package/dist/chunk-FUFAXVBA.js.map +0 -1
- package/dist/chunk-NIRQGDYC.js.map +0 -1
- package/dist/chunk-P5NQN4JE.js.map +0 -1
- package/dist/chunk-PAZ35RJ4.js.map +0 -1
- package/dist/chunk-Q4E24IRR.js.map +0 -1
- package/dist/chunk-QJ622LTI.js.map +0 -1
- package/dist/chunk-TZNDKTX5.js.map +0 -1
- package/dist/chunk-ZV65I6ME.js.map +0 -1
- /package/dist/{chunk-YFMBHQRG.js.map → chunk-2PTH4PRL.js.map} +0 -0
- /package/dist/{chunk-TITG2NBS.js.map → chunk-2PYHLSXK.js.map} +0 -0
- /package/dist/{chunk-KH2LKDX7.js.map → chunk-33G67YZF.js.map} +0 -0
- /package/dist/{chunk-SWIKABKI.js.map → chunk-3Q3XD3NO.js.map} +0 -0
- /package/dist/{chunk-4KY5GSMB.js.map → chunk-4PDTVVSW.js.map} +0 -0
- /package/dist/{chunk-HM7RHKS4.js.map → chunk-4RNBLLZR.js.map} +0 -0
- /package/dist/{chunk-Y4NKEXQT.js.map → chunk-5ATSXCAG.js.map} +0 -0
- /package/dist/{chunk-JDZFIR2S.js.map → chunk-5KGYTX5O.js.map} +0 -0
- /package/dist/{chunk-J7JWFZHI.js.map → chunk-5MLGY6IY.js.map} +0 -0
- /package/dist/{chunk-NW2E4CI2.js.map → chunk-5SMR542T.js.map} +0 -0
- /package/dist/{chunk-S7LWX2PQ.js.map → chunk-655FVTCD.js.map} +0 -0
- /package/dist/{chunk-4OSG5Y6M.js.map → chunk-6YEPGWUP.js.map} +0 -0
- /package/dist/{chunk-W47S5TIH.js.map → chunk-7VQ6AI7H.js.map} +0 -0
- /package/dist/{chunk-WLMZ2L5P.js.map → chunk-AZDTDWS2.js.map} +0 -0
- /package/dist/{chunk-G7NYVKD6.js.map → chunk-B2NXOVZN.js.map} +0 -0
- /package/dist/{chunk-N7KYEVLK.js.map → chunk-BK2BVLZW.js.map} +0 -0
- /package/dist/{chunk-S2I7DL5Q.js.map → chunk-C2RW36YR.js.map} +0 -0
- /package/dist/{chunk-6LG7BWKW.js.map → chunk-CFZ4SXXH.js.map} +0 -0
- /package/dist/{chunk-JQ7XU625.js.map → chunk-CQOIWJ5E.js.map} +0 -0
- /package/dist/{chunk-FSIMZNBC.js.map → chunk-CXOYUANR.js.map} +0 -0
- /package/dist/{chunk-QOZJCSFO.js.map → chunk-DQR2LD3V.js.map} +0 -0
- /package/dist/{chunk-MATDGSJ7.js.map → chunk-DUPHIZBY.js.map} +0 -0
- /package/dist/{chunk-EBA5DA77.js.map → chunk-EOU6V4IN.js.map} +0 -0
- /package/dist/{chunk-5WCJLQTM.js.map → chunk-F2772ATT.js.map} +0 -0
- /package/dist/{chunk-46EST7JO.js.map → chunk-F2XNSIPP.js.map} +0 -0
- /package/dist/{chunk-PZHQWFR3.js.map → chunk-G3UUAQOD.js.map} +0 -0
- /package/dist/{chunk-YE36AJL7.js.map → chunk-GCVDFX66.js.map} +0 -0
- /package/dist/{chunk-T2YX56QI.js.map → chunk-GQJKVQJR.js.map} +0 -0
- /package/dist/{chunk-I7S55EOB.js.map → chunk-GUY6L6LL.js.map} +0 -0
- /package/dist/{chunk-L5DAHSEZ.js.map → chunk-GWVNGDJW.js.map} +0 -0
- /package/dist/{chunk-N45NEBOD.js.map → chunk-GZXXPCWJ.js.map} +0 -0
- /package/dist/{chunk-EPJDSQHF.js.map → chunk-H5IUN433.js.map} +0 -0
- /package/dist/{chunk-EUAIYYYR.js.map → chunk-H6FREOYX.js.map} +0 -0
- /package/dist/{chunk-T3FMRLWQ.js.map → chunk-HFSPY26A.js.map} +0 -0
- /package/dist/{chunk-GH7AOMJD.js.map → chunk-IJMDBYCO.js.map} +0 -0
- /package/dist/{chunk-4IHBN6WU.js.map → chunk-JKMIGCK6.js.map} +0 -0
- /package/dist/{chunk-ROBHL3GL.js.map → chunk-JWX2Q6HS.js.map} +0 -0
- /package/dist/{chunk-DPR2WTN3.js.map → chunk-JZTEOBOR.js.map} +0 -0
- /package/dist/{chunk-JIHMUOOS.js.map → chunk-KLJVTZ3R.js.map} +0 -0
- /package/dist/{chunk-FP4JYE66.js.map → chunk-KW4AJ7T3.js.map} +0 -0
- /package/dist/{chunk-QODKDRSP.js.map → chunk-L6AZOEXV.js.map} +0 -0
- /package/dist/{chunk-LS2FHUML.js.map → chunk-LQ5SS4OP.js.map} +0 -0
- /package/dist/{chunk-SIIRTDJ4.js.map → chunk-LWFWZTWX.js.map} +0 -0
- /package/dist/{chunk-BMWN7B3Y.js.map → chunk-LXATZLSC.js.map} +0 -0
- /package/dist/{chunk-O4SGYW7H.js.map → chunk-MAVYEZKM.js.map} +0 -0
- /package/dist/{chunk-B665A6BO.js.map → chunk-MJIOGYKX.js.map} +0 -0
- /package/dist/{chunk-RTKV5XHL.js.map → chunk-MO6N4QYY.js.map} +0 -0
- /package/dist/{chunk-N4C7QKOG.js.map → chunk-MWWAQXZ6.js.map} +0 -0
- /package/dist/{chunk-LCKVXX5F.js.map → chunk-MXV2MY6C.js.map} +0 -0
- /package/dist/{chunk-FFOVKNQV.js.map → chunk-NAGMQXWV.js.map} +0 -0
- /package/dist/{chunk-ZJVMUBYF.js.map → chunk-NHUX6GXA.js.map} +0 -0
- /package/dist/{chunk-CB6ANA2I.js.map → chunk-NZCKG25S.js.map} +0 -0
- /package/dist/{chunk-UMTCNEVQ.js.map → chunk-O2YPCFJT.js.map} +0 -0
- /package/dist/{chunk-WSGPFRBH.js.map → chunk-OMERTLB7.js.map} +0 -0
- /package/dist/{chunk-QX6JN3O4.js.map → chunk-PEF5LHQU.js.map} +0 -0
- /package/dist/{chunk-JYZSRNR7.js.map → chunk-PIITB2YZ.js.map} +0 -0
- /package/dist/{chunk-UQDG3YLN.js.map → chunk-PRU7OF3Y.js.map} +0 -0
- /package/dist/{chunk-EU534WGS.js.map → chunk-PVHQSLNN.js.map} +0 -0
- /package/dist/{chunk-5VC7J76U.js.map → chunk-QPH52AZB.js.map} +0 -0
- /package/dist/{chunk-XISROV24.js.map → chunk-QSEUUQUF.js.map} +0 -0
- /package/dist/{chunk-O2IPAX26.js.map → chunk-RTTPBBAN.js.map} +0 -0
- /package/dist/{chunk-W5MCEVUS.js.map → chunk-RYYVMZBR.js.map} +0 -0
- /package/dist/{chunk-ZSH2NRDV.js.map → chunk-TN4EA4X4.js.map} +0 -0
- /package/dist/{chunk-SS3IS2JR.js.map → chunk-UGYUBENJ.js.map} +0 -0
- /package/dist/{chunk-GELS5Z5Z.js.map → chunk-V3TXIXXY.js.map} +0 -0
- /package/dist/{chunk-WVADKFWV.js.map → chunk-VNZMZPAC.js.map} +0 -0
- /package/dist/{chunk-JPTPS4OB.js.map → chunk-VPXIKBPX.js.map} +0 -0
- /package/dist/{chunk-OP6N4H6A.js.map → chunk-W3FVQBGF.js.map} +0 -0
- /package/dist/{chunk-W3K3HITK.js.map → chunk-WLT6LTQP.js.map} +0 -0
- /package/dist/{chunk-GMXWTJNU.js.map → chunk-XKRXN63M.js.map} +0 -0
- /package/dist/{chunk-KR6ZKECI.js.map → chunk-XYGQSDTH.js.map} +0 -0
- /package/dist/{chunk-22W2XWGH.js.map → chunk-YBO2WGCV.js.map} +0 -0
- /package/dist/{chunk-P7TOIOT7.js.map → chunk-YR4COAEC.js.map} +0 -0
- /package/dist/{chunk-6WHJ2EAB.js.map → chunk-Z64TS5V4.js.map} +0 -0
- /package/dist/{chunk-NHLLKEKK.js.map → chunk-ZAJLJ35W.js.map} +0 -0
- /package/dist/{dreams-ledger-567VKVOU.js.map → dreams-ledger-UCHHRQ4R.js.map} +0 -0
- /package/dist/{resolution-7AY36LGJ.js.map → resolution-ZU5BIAJA.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/maintenance/tier-stats.ts"],"sourcesContent":["/**\n * Operator-facing tier visibility (issue #686 PR 5/6).\n *\n * Two read-only surfaces:\n *\n * - `summarizeTiers(storage)` — count memories by tier (hot vs cold)\n * plus per-status breakdown so operators can see at a glance\n * whether the lifecycle policy has actually demoted anything.\n * - `explainTierForMemory(storage, id)` — show the value-score\n * components and tier-transition decision for a single memory\n * so an operator can reason about why a memory ended up where\n * it did.\n *\n * Pure inspection — neither surface mutates anything. The CLI wires\n * them as `remnic tier list` and `remnic tier explain <id>`.\n */\n\nimport type { StorageManager } from \"../storage.js\";\nimport type { MemoryFile, PluginConfig } from \"../types.js\";\nimport { computeLifecycleValueInputs } from \"../lifecycle.js\";\nimport {\n computeTierValueScore,\n decideTierTransition,\n type MemoryTier,\n type TierRoutingPolicy,\n type TierTransitionDecision,\n} from \"../tier-routing.js\";\nimport { resolveQmdCapabilities, resolveUtilityLearningCapabilities} from \"../capabilities.js\";\nimport {\n applyUtilityPromotionRuntimePolicy,\n loadUtilityRuntimeValues,\n} from \"../utility-runtime.js\";\n\nexport interface TierSummary {\n /** Total memories scanned (all tiers, all statuses). */\n total: number;\n byTier: Record<MemoryTier, number>;\n byStatus: Record<string, number>;\n /** Memories with `status === \"forgotten\"` (issue #686 PR 4/6). */\n forgottenCount: number;\n /** Top contributors to the forgotten / archived buckets, by category. */\n byCategory: Record<string, number>;\n}\n\nexport interface TierExplainResult {\n id: string;\n path: string;\n currentTier: MemoryTier;\n status: string;\n category: string;\n valueScore: number;\n decision: TierTransitionDecision;\n signals: {\n confidence: number;\n accessCount: number;\n lastAccessed: string | null;\n created: string;\n updated: string;\n importance: number;\n feedback: number;\n };\n}\n\ninterface TierVisibleMemory {\n memory: MemoryFile;\n tier: MemoryTier;\n}\n\nasync function readTierVisibleMemories(\n storage: StorageManager,\n): Promise<TierVisibleMemory[]> {\n const [hotMemories, coldMemories] = await Promise.all([\n storage.readAllMemories(),\n storage.readAllColdMemories(),\n ]);\n return [\n ...hotMemories.map((memory) => ({ memory, tier: \"hot\" as const })),\n ...coldMemories.map((memory) => ({ memory, tier: \"cold\" as const })),\n ];\n}\n\nasync function tierRoutingPolicyFromConfig(\n config: PluginConfig,\n): Promise<TierRoutingPolicy> {\n const basePolicy: TierRoutingPolicy = {\n enabled: resolveQmdCapabilities(config).qmdTierMigration,\n demotionMinAgeDays: config.qmdTierDemotionMinAgeDays,\n demotionValueThreshold: config.qmdTierDemotionValueThreshold,\n promotionValueThreshold: config.qmdTierPromotionValueThreshold,\n };\n const runtime = await loadUtilityRuntimeValues({\n memoryDir: config.memoryDir,\n memoryUtilityLearningEnabled: resolveUtilityLearningCapabilities(config).memoryUtilityLearning,\n promotionByOutcomeEnabled: resolveUtilityLearningCapabilities(config).promotionByOutcome,\n });\n return applyUtilityPromotionRuntimePolicy(basePolicy, runtime);\n}\n\nexport async function summarizeTiers(\n storage: StorageManager,\n): Promise<TierSummary> {\n const all = await readTierVisibleMemories(storage);\n const summary: TierSummary = {\n total: all.length,\n byTier: { hot: 0, cold: 0 },\n byStatus: {},\n forgottenCount: 0,\n byCategory: {},\n };\n for (const { memory: m, tier } of all) {\n summary.byTier[tier] += 1;\n const status: string = m.frontmatter.status ?? \"active\";\n summary.byStatus[status] = (summary.byStatus[status] ?? 0) + 1;\n // Compare via the widened `string` type so this module compiles\n // both before and after PR 4/6 lands `\"forgotten\"` in MemoryStatus.\n if (status === \"forgotten\") summary.forgottenCount += 1;\n const cat = m.frontmatter.category ?? \"(uncategorized)\";\n summary.byCategory[cat] = (summary.byCategory[cat] ?? 0) + 1;\n }\n return summary;\n}\n\nexport async function explainTierForMemory(\n storage: StorageManager,\n id: string,\n config: PluginConfig,\n): Promise<TierExplainResult> {\n const trimmed = typeof id === \"string\" ? id.trim() : \"\";\n if (trimmed.length === 0) {\n throw new Error(\"tier explain: memory id is required and must be non-empty\");\n }\n const all = await readTierVisibleMemories(storage);\n const entry = all.find(({ memory: m }) => m.frontmatter.id === trimmed);\n if (!entry) {\n throw new Error(`tier explain: memory not found: ${trimmed}`);\n }\n const { memory, tier: currentTier } = entry;\n const now = new Date();\n const valueInputs = computeLifecycleValueInputs(memory, now);\n const valueScore = computeTierValueScore(memory, now);\n const policy = await tierRoutingPolicyFromConfig(config);\n const decision = decideTierTransition(memory, currentTier, policy, now);\n const fm = memory.frontmatter as unknown as Record<string, unknown>;\n return {\n id: trimmed,\n path: memory.path,\n currentTier,\n status: typeof fm.status === \"string\" ? (fm.status as string) : \"active\",\n category: typeof fm.category === \"string\" ? (fm.category as string) : \"\",\n valueScore,\n decision,\n signals: {\n confidence: valueInputs.confidence,\n accessCount:\n typeof fm.accessCount === \"number\" ? (fm.accessCount as number) : 0,\n lastAccessed:\n typeof fm.lastAccessed === \"string\" ? (fm.lastAccessed as string) : null,\n created: typeof fm.created === \"string\" ? (fm.created as string) : \"\",\n updated: typeof fm.updated === \"string\" ? (fm.updated as string) : \"\",\n importance: valueInputs.importance,\n feedback: valueInputs.feedback,\n },\n };\n}\n\n/**\n * Render a TierSummary as plain text for `remnic tier list` text mode.\n * Pure formatter — exposed so future surfaces (HTTP, MCP) can reuse.\n */\nexport function formatTierSummaryText(summary: TierSummary): string {\n const lines: string[] = [];\n lines.push(\"=== Memory Tier Distribution ===\");\n lines.push(`Total memories: ${summary.total}`);\n lines.push(\"\");\n lines.push(\"Tier:\");\n lines.push(` hot: ${summary.byTier.hot}`);\n lines.push(` cold: ${summary.byTier.cold}`);\n lines.push(\"\");\n lines.push(\"Status:\");\n const statusEntries = Object.entries(summary.byStatus).sort(\n (a, b) => b[1] - a[1] || a[0].localeCompare(b[0]),\n );\n for (const [status, count] of statusEntries) {\n lines.push(` ${status}: ${count}`);\n }\n lines.push(\"\");\n lines.push(\"Top categories:\");\n const categoryEntries = Object.entries(summary.byCategory)\n .sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))\n .slice(0, 8);\n for (const [cat, count] of categoryEntries) {\n lines.push(` ${cat}: ${count}`);\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Render a TierExplainResult as plain text for `remnic tier explain`.\n */\nexport function formatTierExplainText(explain: TierExplainResult): string {\n const lines: string[] = [];\n lines.push(`=== Tier Explain: ${explain.id} ===`);\n lines.push(`path: ${explain.path}`);\n lines.push(`current tier: ${explain.currentTier}`);\n lines.push(`status: ${explain.status}`);\n lines.push(`category: ${explain.category}`);\n lines.push(`value score: ${explain.valueScore.toFixed(3)}`);\n lines.push(\"\");\n lines.push(\"Tier-transition decision:\");\n lines.push(` next tier: ${explain.decision.nextTier}`);\n lines.push(` changed: ${explain.decision.changed}`);\n lines.push(` reason: ${explain.decision.reason}`);\n lines.push(\"\");\n lines.push(\"Signals:\");\n lines.push(` confidence: ${explain.signals.confidence}`);\n lines.push(` accessCount: ${explain.signals.accessCount}`);\n lines.push(` lastAccessed: ${explain.signals.lastAccessed ?? \"(never)\"}`);\n lines.push(` created: ${explain.signals.created}`);\n lines.push(` updated: ${explain.signals.updated}`);\n lines.push(` importance: ${explain.signals.importance}`);\n lines.push(` feedback: ${explain.signals.feedback}`);\n return lines.join(\"\\n\");\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/maintenance/tier-stats.ts"],"sourcesContent":["/**\n * Operator-facing tier visibility (issue #686 PR 5/6).\n *\n * Two read-only surfaces:\n *\n * - `summarizeTiers(storage)` — count memories by tier (hot vs cold)\n * plus per-status breakdown so operators can see at a glance\n * whether the lifecycle policy has actually demoted anything.\n * - `explainTierForMemory(storage, id)` — show the value-score\n * components and tier-transition decision for a single memory\n * so an operator can reason about why a memory ended up where\n * it did.\n *\n * Pure inspection — neither surface mutates anything. The CLI wires\n * them as `remnic tier list` and `remnic tier explain <id>`.\n */\n\nimport type { StorageManager } from \"../storage.js\";\nimport type { MemoryFile, PluginConfig } from \"../types.js\";\nimport { computeLifecycleValueInputs } from \"../lifecycle.js\";\nimport {\n computeTierValueScore,\n decideTierTransition,\n type MemoryTier,\n type TierRoutingPolicy,\n type TierTransitionDecision,\n} from \"../tier-routing.js\";\nimport { resolveQmdCapabilities, resolveUtilityLearningCapabilities} from \"../capabilities.js\";\nimport {\n applyUtilityPromotionRuntimePolicy,\n loadUtilityRuntimeValues,\n} from \"../utility-runtime.js\";\n\nexport interface TierSummary {\n /** Total memories scanned (all tiers, all statuses). */\n total: number;\n byTier: Record<MemoryTier, number>;\n byStatus: Record<string, number>;\n /** Memories with `status === \"forgotten\"` (issue #686 PR 4/6). */\n forgottenCount: number;\n /** Top contributors to the forgotten / archived buckets, by category. */\n byCategory: Record<string, number>;\n}\n\nexport interface TierExplainResult {\n id: string;\n path: string;\n currentTier: MemoryTier;\n status: string;\n category: string;\n valueScore: number;\n decision: TierTransitionDecision;\n signals: {\n confidence: number;\n accessCount: number;\n lastAccessed: string | null;\n created: string;\n updated: string;\n importance: number;\n feedback: number;\n };\n}\n\ninterface TierVisibleMemory {\n memory: MemoryFile;\n tier: MemoryTier;\n}\n\nasync function readTierVisibleMemories(\n storage: StorageManager,\n): Promise<TierVisibleMemory[]> {\n const [hotMemories, coldMemories] = await Promise.all([\n storage.readAllMemories(),\n storage.readAllColdMemories(),\n ]);\n return [\n ...hotMemories.map((memory) => ({ memory, tier: \"hot\" as const })),\n ...coldMemories.map((memory) => ({ memory, tier: \"cold\" as const })),\n ];\n}\n\nasync function tierRoutingPolicyFromConfig(\n config: PluginConfig,\n): Promise<TierRoutingPolicy> {\n const basePolicy: TierRoutingPolicy = {\n enabled: resolveQmdCapabilities(config).qmdTierMigration,\n demotionMinAgeDays: config.qmdTierDemotionMinAgeDays,\n demotionValueThreshold: config.qmdTierDemotionValueThreshold,\n promotionValueThreshold: config.qmdTierPromotionValueThreshold,\n };\n const runtime = await loadUtilityRuntimeValues({\n memoryDir: config.memoryDir,\n memoryUtilityLearningEnabled: resolveUtilityLearningCapabilities(config).memoryUtilityLearning,\n promotionByOutcomeEnabled: resolveUtilityLearningCapabilities(config).promotionByOutcome,\n });\n return applyUtilityPromotionRuntimePolicy(basePolicy, runtime);\n}\n\nexport async function summarizeTiers(\n storage: StorageManager,\n): Promise<TierSummary> {\n const all = await readTierVisibleMemories(storage);\n const summary: TierSummary = {\n total: all.length,\n byTier: { hot: 0, cold: 0 },\n byStatus: {},\n forgottenCount: 0,\n byCategory: {},\n };\n for (const { memory: m, tier } of all) {\n summary.byTier[tier] += 1;\n const status: string = m.frontmatter.status ?? \"active\";\n summary.byStatus[status] = (summary.byStatus[status] ?? 0) + 1;\n // Compare via the widened `string` type so this module compiles\n // both before and after PR 4/6 lands `\"forgotten\"` in MemoryStatus.\n if (status === \"forgotten\") summary.forgottenCount += 1;\n const cat = m.frontmatter.category ?? \"(uncategorized)\";\n summary.byCategory[cat] = (summary.byCategory[cat] ?? 0) + 1;\n }\n return summary;\n}\n\nexport async function explainTierForMemory(\n storage: StorageManager,\n id: string,\n config: PluginConfig,\n): Promise<TierExplainResult> {\n const trimmed = typeof id === \"string\" ? id.trim() : \"\";\n if (trimmed.length === 0) {\n throw new Error(\"tier explain: memory id is required and must be non-empty\");\n }\n const all = await readTierVisibleMemories(storage);\n const entry = all.find(({ memory: m }) => m.frontmatter.id === trimmed);\n if (!entry) {\n throw new Error(`tier explain: memory not found: ${trimmed}`);\n }\n const { memory, tier: currentTier } = entry;\n const now = new Date();\n const valueInputs = computeLifecycleValueInputs(memory, now);\n const valueScore = computeTierValueScore(memory, now);\n const policy = await tierRoutingPolicyFromConfig(config);\n const decision = decideTierTransition(memory, currentTier, policy, now);\n const fm = memory.frontmatter as unknown as Record<string, unknown>;\n return {\n id: trimmed,\n path: memory.path,\n currentTier,\n status: typeof fm.status === \"string\" ? (fm.status as string) : \"active\",\n category: typeof fm.category === \"string\" ? (fm.category as string) : \"\",\n valueScore,\n decision,\n signals: {\n confidence: valueInputs.confidence,\n accessCount:\n typeof fm.accessCount === \"number\" ? (fm.accessCount as number) : 0,\n lastAccessed:\n typeof fm.lastAccessed === \"string\" ? (fm.lastAccessed as string) : null,\n created: typeof fm.created === \"string\" ? (fm.created as string) : \"\",\n updated: typeof fm.updated === \"string\" ? (fm.updated as string) : \"\",\n importance: valueInputs.importance,\n feedback: valueInputs.feedback,\n },\n };\n}\n\n/**\n * Render a TierSummary as plain text for `remnic tier list` text mode.\n * Pure formatter — exposed so future surfaces (HTTP, MCP) can reuse.\n */\nexport function formatTierSummaryText(summary: TierSummary): string {\n const lines: string[] = [];\n lines.push(\"=== Memory Tier Distribution ===\");\n lines.push(`Total memories: ${summary.total}`);\n lines.push(\"\");\n lines.push(\"Tier:\");\n lines.push(` hot: ${summary.byTier.hot}`);\n lines.push(` cold: ${summary.byTier.cold}`);\n lines.push(\"\");\n lines.push(\"Status:\");\n const statusEntries = Object.entries(summary.byStatus).sort(\n (a, b) => b[1] - a[1] || a[0].localeCompare(b[0]),\n );\n for (const [status, count] of statusEntries) {\n lines.push(` ${status}: ${count}`);\n }\n lines.push(\"\");\n lines.push(\"Top categories:\");\n const categoryEntries = Object.entries(summary.byCategory)\n .sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))\n .slice(0, 8);\n for (const [cat, count] of categoryEntries) {\n lines.push(` ${cat}: ${count}`);\n }\n return lines.join(\"\\n\");\n}\n\n/**\n * Render a TierExplainResult as plain text for `remnic tier explain`.\n */\nexport function formatTierExplainText(explain: TierExplainResult): string {\n const lines: string[] = [];\n lines.push(`=== Tier Explain: ${explain.id} ===`);\n lines.push(`path: ${explain.path}`);\n lines.push(`current tier: ${explain.currentTier}`);\n lines.push(`status: ${explain.status}`);\n lines.push(`category: ${explain.category}`);\n lines.push(`value score: ${explain.valueScore.toFixed(3)}`);\n lines.push(\"\");\n lines.push(\"Tier-transition decision:\");\n lines.push(` next tier: ${explain.decision.nextTier}`);\n lines.push(` changed: ${explain.decision.changed}`);\n lines.push(` reason: ${explain.decision.reason}`);\n lines.push(\"\");\n lines.push(\"Signals:\");\n lines.push(` confidence: ${explain.signals.confidence}`);\n lines.push(` accessCount: ${explain.signals.accessCount}`);\n lines.push(` lastAccessed: ${explain.signals.lastAccessed ?? \"(never)\"}`);\n lines.push(` created: ${explain.signals.created}`);\n lines.push(` updated: ${explain.signals.updated}`);\n lines.push(` importance: ${explain.signals.importance}`);\n lines.push(` feedback: ${explain.signals.feedback}`);\n return lines.join(\"\\n\");\n}\n"],"mappings":"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","names":[]}
|
package/dist/transcript.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"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"}
|
package/dist/transcript.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TranscriptManager,
|
|
3
3
|
utcDayRange
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HDN7IVIO.js";
|
|
5
5
|
import "./chunk-KFY3SGN7.js";
|
|
6
6
|
import "./chunk-5Y43VGYB.js";
|
|
7
7
|
import "./chunk-TOTT6S2V.js";
|
|
8
|
+
import "./chunk-QUIRIG2P.js";
|
|
8
9
|
import "./chunk-LDPPTPO5.js";
|
|
9
10
|
import "./chunk-3WCASNQZ.js";
|
|
10
11
|
import "./chunk-PZ5AY32C.js";
|
|
@@ -4,24 +4,24 @@ import {
|
|
|
4
4
|
exportOkfBundle,
|
|
5
5
|
firstHeading,
|
|
6
6
|
parseIncludeStatus
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-BK2BVLZW.js";
|
|
8
8
|
import {
|
|
9
9
|
OKF_EXPORT_VERSION
|
|
10
10
|
} from "../chunk-4D2YH47Z.js";
|
|
11
11
|
import "../chunk-D24OXEPB.js";
|
|
12
12
|
import "../chunk-3UXOZBHV.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-4SCZZ3U7.js";
|
|
14
14
|
import "../chunk-UHVXE24Y.js";
|
|
15
15
|
import "../chunk-TRMJ6BYC.js";
|
|
16
16
|
import "../chunk-V4JZCTMK.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-MWWAQXZ6.js";
|
|
18
|
+
import "../chunk-RTTPBBAN.js";
|
|
19
|
+
import "../chunk-655FVTCD.js";
|
|
20
|
+
import "../chunk-GQJKVQJR.js";
|
|
21
21
|
import "../chunk-CYEPCZN5.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-HFSPY26A.js";
|
|
23
23
|
import "../chunk-7VO6E5UD.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-KJXP6RUG.js";
|
|
25
25
|
import "../chunk-VOKHZRHW.js";
|
|
26
26
|
import "../chunk-GUMZC2BO.js";
|
|
27
27
|
import "../chunk-TFA6HPOA.js";
|
|
@@ -29,6 +29,7 @@ import "../chunk-F4TWWUMP.js";
|
|
|
29
29
|
import "../chunk-72A4L5JJ.js";
|
|
30
30
|
import "../chunk-A7Q43EUZ.js";
|
|
31
31
|
import "../chunk-S2V7RUCL.js";
|
|
32
|
+
import "../chunk-PPUNC7UX.js";
|
|
32
33
|
import "../chunk-X3724WL4.js";
|
|
33
34
|
import "../chunk-MRPOZBJC.js";
|
|
34
35
|
import "../chunk-S2HLHAZ4.js";
|
|
@@ -107,6 +108,7 @@ import "../chunk-ZEFVK7XC.js";
|
|
|
107
108
|
import "../chunk-6KH5NLQS.js";
|
|
108
109
|
import "../chunk-P2QRMMVQ.js";
|
|
109
110
|
import "../chunk-BTTPKDIL.js";
|
|
111
|
+
import "../chunk-QUIRIG2P.js";
|
|
110
112
|
import "../chunk-LDPPTPO5.js";
|
|
111
113
|
import "../chunk-MAAL6OZV.js";
|
|
112
114
|
import "../chunk-A6XUJE5D.js";
|
package/dist/trust-zones.js
CHANGED
|
@@ -11,10 +11,11 @@ import {
|
|
|
11
11
|
seedTrustZoneDemoDataset,
|
|
12
12
|
summarizeTrustZonePromotionReadiness,
|
|
13
13
|
validateTrustZoneRecord
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JWX2Q6HS.js";
|
|
15
15
|
import "./chunk-YCVB7X56.js";
|
|
16
16
|
import "./chunk-A2IYSXDQ.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-2Z5DIDQD.js";
|
|
18
|
+
import "./chunk-QUIRIG2P.js";
|
|
18
19
|
import "./chunk-KNA3BXXL.js";
|
|
19
20
|
import "./chunk-PZ5AY32C.js";
|
|
20
21
|
export {
|
package/dist/utility-learner.js
CHANGED
|
@@ -3,11 +3,12 @@ import {
|
|
|
3
3
|
learnUtilityPromotionWeights,
|
|
4
4
|
readUtilityLearningSnapshot,
|
|
5
5
|
resolveUtilityLearningStatePath
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-WLT6LTQP.js";
|
|
7
|
+
import "./chunk-EOU6V4IN.js";
|
|
8
8
|
import "./chunk-TBBDFYXW.js";
|
|
9
9
|
import "./chunk-A2IYSXDQ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-2Z5DIDQD.js";
|
|
11
|
+
import "./chunk-QUIRIG2P.js";
|
|
11
12
|
import "./chunk-KNA3BXXL.js";
|
|
12
13
|
import "./chunk-PZ5AY32C.js";
|
|
13
14
|
export {
|
package/dist/utility-runtime.js
CHANGED
|
@@ -2,12 +2,13 @@ import {
|
|
|
2
2
|
applyUtilityPromotionRuntimePolicy,
|
|
3
3
|
applyUtilityRankingRuntimeDelta,
|
|
4
4
|
loadUtilityRuntimeValues
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-3Q3XD3NO.js";
|
|
6
|
+
import "./chunk-WLT6LTQP.js";
|
|
7
|
+
import "./chunk-EOU6V4IN.js";
|
|
8
8
|
import "./chunk-TBBDFYXW.js";
|
|
9
9
|
import "./chunk-A2IYSXDQ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-2Z5DIDQD.js";
|
|
11
|
+
import "./chunk-QUIRIG2P.js";
|
|
11
12
|
import "./chunk-KNA3BXXL.js";
|
|
12
13
|
import "./chunk-PZ5AY32C.js";
|
|
13
14
|
export {
|
|
@@ -4,9 +4,10 @@ import {
|
|
|
4
4
|
recordUtilityTelemetryEvent,
|
|
5
5
|
resolveUtilityTelemetryDir,
|
|
6
6
|
validateUtilityTelemetryEvent
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EOU6V4IN.js";
|
|
8
8
|
import "./chunk-A2IYSXDQ.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-2Z5DIDQD.js";
|
|
10
|
+
import "./chunk-QUIRIG2P.js";
|
|
10
11
|
import "./chunk-KNA3BXXL.js";
|
|
11
12
|
import "./chunk-PZ5AY32C.js";
|
|
12
13
|
export {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* macOS Finder metadata that arrives through Mac-to-Linux copies.
|
|
3
|
+
*
|
|
4
|
+
* AppleDouble sidecars are named `._` plus the real file's basename
|
|
5
|
+
* (`._project-notes.md` beside `project-notes.md`). Finder also writes
|
|
6
|
+
* `.DS_Store` into any directory it opens. Neither is a Remnic record.
|
|
7
|
+
* Directory scanners and replication must ignore them so they are never
|
|
8
|
+
* parsed as entities, memories, or sync objects.
|
|
9
|
+
*
|
|
10
|
+
* QMD's own indexer already drops every hidden path (`dot: false` plus a
|
|
11
|
+
* hidden-segment filter). Callers that build index inputs themselves still
|
|
12
|
+
* use this helper so the non-QMD scanners stay in parity.
|
|
13
|
+
*/
|
|
14
|
+
/** True for an AppleDouble sidecar or a Finder `.DS_Store` file. */
|
|
15
|
+
export declare function isMacOsReplicationJunkBasename(basename: string): boolean;
|
|
16
|
+
/** True when the final path segment is macOS replication junk. */
|
|
17
|
+
export declare function isMacOsReplicationJunkRelativePath(relPath: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Drop junk names from a directory listing. `ignored` is the count of
|
|
20
|
+
* names removed, so the caller can emit one summary warning.
|
|
21
|
+
*/
|
|
22
|
+
export declare function withoutMacOsReplicationJunk<T>(entries: readonly T[], basenameOf: (entry: T) => string): {
|
|
23
|
+
kept: T[];
|
|
24
|
+
ignored: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Emit at most one junk warning per directory and count. A later scan of
|
|
28
|
+
* the same directory (entity migration, then entity load) stays quiet
|
|
29
|
+
* instead of repeating the same summary.
|
|
30
|
+
*/
|
|
31
|
+
export declare function warnIgnoredMacOsReplicationJunk(directoryKey: string, count: number, warn: (message: string) => void): void;
|
|
32
|
+
//# sourceMappingURL=macos-replication-junk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"macos-replication-junk.d.ts","sourceRoot":"","sources":["../../src/utils/macos-replication-junk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,oEAAoE;AACpE,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,kEAAkE;AAClE,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK3E;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAC/B;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAWhC;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC9B,IAAI,CAMN"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* No `# ` name. A named file whose type line is absent stays readable:
|
|
3
|
+
* `parseEntityFile` defaults the type to `other`.
|
|
4
|
+
*/
|
|
5
|
+
export declare function isUnnamedEntityRecord(content: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Unnamed entity body that still has text. An empty body under frontmatter
|
|
8
|
+
* stays readable so a canonical filename can supply the type. A tab heading,
|
|
9
|
+
* a blank `# ` heading, or prose with no name does not.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isPopulatedUnnamedEntityRecord(content: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Unnamed file that still looks like an entity record (`#` or `**Type:**`).
|
|
14
|
+
* Direct filename recall keeps unstructured placeholders such as "content".
|
|
15
|
+
*/
|
|
16
|
+
export declare function isShapedUnnamedEntityRecord(content: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Migration gate. Canonical ids are derived from name and type, and the
|
|
19
|
+
* old startup throw required an explicit `**Type:**` line. Files that
|
|
20
|
+
* only have a heading stay on disk and are not renamed. Listing does not
|
|
21
|
+
* use this predicate: `parseEntityFile` defaults a missing type to `other`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function isMalformedEntityRecord(content: string): boolean;
|
|
24
|
+
//# sourceMappingURL=malformed-entity-record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"malformed-entity-record.d.ts","sourceRoot":"","sources":["../../src/utils/malformed-entity-record.ts"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAWD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAcpE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGhE"}
|
package/dist/verified-recall.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-H5IUN433.js";
|
|
5
5
|
import "./chunk-B7RWBZXW.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-4SCZZ3U7.js";
|
|
7
7
|
import "./chunk-UHVXE24Y.js";
|
|
8
8
|
import "./chunk-TRMJ6BYC.js";
|
|
9
9
|
import "./chunk-V4JZCTMK.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-MWWAQXZ6.js";
|
|
11
|
+
import "./chunk-RTTPBBAN.js";
|
|
12
|
+
import "./chunk-655FVTCD.js";
|
|
13
|
+
import "./chunk-GQJKVQJR.js";
|
|
14
14
|
import "./chunk-CYEPCZN5.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-HFSPY26A.js";
|
|
16
16
|
import "./chunk-7VO6E5UD.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-KJXP6RUG.js";
|
|
18
18
|
import "./chunk-VOKHZRHW.js";
|
|
19
19
|
import "./chunk-GUMZC2BO.js";
|
|
20
20
|
import "./chunk-TFA6HPOA.js";
|
|
@@ -22,6 +22,7 @@ import "./chunk-F4TWWUMP.js";
|
|
|
22
22
|
import "./chunk-72A4L5JJ.js";
|
|
23
23
|
import "./chunk-A7Q43EUZ.js";
|
|
24
24
|
import "./chunk-S2V7RUCL.js";
|
|
25
|
+
import "./chunk-PPUNC7UX.js";
|
|
25
26
|
import "./chunk-X3724WL4.js";
|
|
26
27
|
import "./chunk-MRPOZBJC.js";
|
|
27
28
|
import "./chunk-S2HLHAZ4.js";
|
|
@@ -100,6 +101,7 @@ import "./chunk-ZEFVK7XC.js";
|
|
|
100
101
|
import "./chunk-6KH5NLQS.js";
|
|
101
102
|
import "./chunk-P2QRMMVQ.js";
|
|
102
103
|
import "./chunk-BTTPKDIL.js";
|
|
104
|
+
import "./chunk-QUIRIG2P.js";
|
|
103
105
|
import "./chunk-LDPPTPO5.js";
|
|
104
106
|
import "./chunk-MAAL6OZV.js";
|
|
105
107
|
import "./chunk-A6XUJE5D.js";
|
package/dist/who-knows-cli.js
CHANGED
|
@@ -4,20 +4,20 @@ import {
|
|
|
4
4
|
renderWhoKnows,
|
|
5
5
|
renderWhoKnowsJson,
|
|
6
6
|
renderWhoKnowsText
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-F2772ATT.js";
|
|
8
|
+
import "./chunk-4PDTVVSW.js";
|
|
9
|
+
import "./chunk-4SCZZ3U7.js";
|
|
10
10
|
import "./chunk-UHVXE24Y.js";
|
|
11
11
|
import "./chunk-TRMJ6BYC.js";
|
|
12
12
|
import "./chunk-V4JZCTMK.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-MWWAQXZ6.js";
|
|
14
|
+
import "./chunk-RTTPBBAN.js";
|
|
15
|
+
import "./chunk-655FVTCD.js";
|
|
16
|
+
import "./chunk-GQJKVQJR.js";
|
|
17
17
|
import "./chunk-CYEPCZN5.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-HFSPY26A.js";
|
|
19
19
|
import "./chunk-7VO6E5UD.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-KJXP6RUG.js";
|
|
21
21
|
import "./chunk-VOKHZRHW.js";
|
|
22
22
|
import "./chunk-GUMZC2BO.js";
|
|
23
23
|
import "./chunk-TFA6HPOA.js";
|
|
@@ -25,6 +25,7 @@ import "./chunk-F4TWWUMP.js";
|
|
|
25
25
|
import "./chunk-72A4L5JJ.js";
|
|
26
26
|
import "./chunk-A7Q43EUZ.js";
|
|
27
27
|
import "./chunk-S2V7RUCL.js";
|
|
28
|
+
import "./chunk-PPUNC7UX.js";
|
|
28
29
|
import "./chunk-X3724WL4.js";
|
|
29
30
|
import "./chunk-MRPOZBJC.js";
|
|
30
31
|
import "./chunk-S2HLHAZ4.js";
|
|
@@ -104,6 +105,7 @@ import "./chunk-6KH5NLQS.js";
|
|
|
104
105
|
import "./chunk-P2QRMMVQ.js";
|
|
105
106
|
import "./chunk-3MUKQQ7A.js";
|
|
106
107
|
import "./chunk-BTTPKDIL.js";
|
|
108
|
+
import "./chunk-QUIRIG2P.js";
|
|
107
109
|
import "./chunk-LDPPTPO5.js";
|
|
108
110
|
import "./chunk-MAAL6OZV.js";
|
|
109
111
|
import "./chunk-A6XUJE5D.js";
|
package/dist/who-knows.js
CHANGED
|
@@ -9,19 +9,19 @@ import {
|
|
|
9
9
|
loadWhoKnowsEntities,
|
|
10
10
|
tokenizeTopic,
|
|
11
11
|
validateWhoKnowsInput
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-4PDTVVSW.js";
|
|
13
|
+
import "./chunk-4SCZZ3U7.js";
|
|
14
14
|
import "./chunk-UHVXE24Y.js";
|
|
15
15
|
import "./chunk-TRMJ6BYC.js";
|
|
16
16
|
import "./chunk-V4JZCTMK.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-MWWAQXZ6.js";
|
|
18
|
+
import "./chunk-RTTPBBAN.js";
|
|
19
|
+
import "./chunk-655FVTCD.js";
|
|
20
|
+
import "./chunk-GQJKVQJR.js";
|
|
21
21
|
import "./chunk-CYEPCZN5.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-HFSPY26A.js";
|
|
23
23
|
import "./chunk-7VO6E5UD.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-KJXP6RUG.js";
|
|
25
25
|
import "./chunk-VOKHZRHW.js";
|
|
26
26
|
import "./chunk-GUMZC2BO.js";
|
|
27
27
|
import "./chunk-TFA6HPOA.js";
|
|
@@ -29,6 +29,7 @@ import "./chunk-F4TWWUMP.js";
|
|
|
29
29
|
import "./chunk-72A4L5JJ.js";
|
|
30
30
|
import "./chunk-A7Q43EUZ.js";
|
|
31
31
|
import "./chunk-S2V7RUCL.js";
|
|
32
|
+
import "./chunk-PPUNC7UX.js";
|
|
32
33
|
import "./chunk-X3724WL4.js";
|
|
33
34
|
import "./chunk-MRPOZBJC.js";
|
|
34
35
|
import "./chunk-S2HLHAZ4.js";
|
|
@@ -108,6 +109,7 @@ import "./chunk-6KH5NLQS.js";
|
|
|
108
109
|
import "./chunk-P2QRMMVQ.js";
|
|
109
110
|
import "./chunk-3MUKQQ7A.js";
|
|
110
111
|
import "./chunk-BTTPKDIL.js";
|
|
112
|
+
import "./chunk-QUIRIG2P.js";
|
|
111
113
|
import "./chunk-LDPPTPO5.js";
|
|
112
114
|
import "./chunk-MAAL6OZV.js";
|
|
113
115
|
import "./chunk-A6XUJE5D.js";
|
|
@@ -4,10 +4,11 @@ import {
|
|
|
4
4
|
resolveWorkProductLedgerDir,
|
|
5
5
|
searchWorkProductLedgerEntries,
|
|
6
6
|
validateWorkProductLedgerEntry
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-B2NXOVZN.js";
|
|
8
8
|
import "./chunk-YCVB7X56.js";
|
|
9
9
|
import "./chunk-A2IYSXDQ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-2Z5DIDQD.js";
|
|
11
|
+
import "./chunk-QUIRIG2P.js";
|
|
11
12
|
import "./chunk-KNA3BXXL.js";
|
|
12
13
|
import "./chunk-PZ5AY32C.js";
|
|
13
14
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.16",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3347,7 +3347,7 @@
|
|
|
3347
3347
|
"core"
|
|
3348
3348
|
],
|
|
3349
3349
|
"peerDependencies": {
|
|
3350
|
-
"@remnic/coding-graph": "^10.0.
|
|
3350
|
+
"@remnic/coding-graph": "^10.0.16"
|
|
3351
3351
|
},
|
|
3352
3352
|
"peerDependenciesMeta": {
|
|
3353
3353
|
"@remnic/coding-graph": {
|
package/src/calibration.ts
CHANGED
|
@@ -19,6 +19,7 @@ import { resolveLocalLlmCapabilities } from "./capabilities.js";
|
|
|
19
19
|
import { OUTPUT_LANGUAGE_POLICY } from "./extraction-prompt.js";
|
|
20
20
|
import { FallbackLlmClient } from "./fallback-llm.js";
|
|
21
21
|
import { listJsonFiles } from "./json-store.js";
|
|
22
|
+
import { isMacOsReplicationJunkBasename } from "./utils/macos-replication-junk.js";
|
|
22
23
|
import { LocalLlmClient } from "./local-llm.js";
|
|
23
24
|
import { log } from "./logger.js";
|
|
24
25
|
import { writeFileAtomically } from "./maintenance/atomic-file.js";
|
|
@@ -195,7 +196,7 @@ async function readCorrectionsImpl(memoryDir: string): Promise<CorrectionMemory[
|
|
|
195
196
|
for (const day of dayDirs) {
|
|
196
197
|
const dayPath = path.join(factsDir, day);
|
|
197
198
|
const dayFiles = (await readdir(dayPath))
|
|
198
|
-
.filter((f: string) => f.startsWith("correction-") && f.endsWith(".md"))
|
|
199
|
+
.filter((f: string) => !isMacOsReplicationJunkBasename(f) && f.startsWith("correction-") && f.endsWith(".md"))
|
|
199
200
|
.map((f: string) => path.join(dayPath, f));
|
|
200
201
|
files.push(...dayFiles);
|
|
201
202
|
}
|
|
@@ -207,7 +208,7 @@ async function readCorrectionsImpl(memoryDir: string): Promise<CorrectionMemory[
|
|
|
207
208
|
try {
|
|
208
209
|
const { readdir } = await import("node:fs/promises");
|
|
209
210
|
const corrFiles = (await readdir(correctionsDir))
|
|
210
|
-
.filter((f: string) => f.endsWith(".md"))
|
|
211
|
+
.filter((f: string) => !isMacOsReplicationJunkBasename(f) && f.endsWith(".md"))
|
|
211
212
|
.map((f: string) => path.join(correctionsDir, f));
|
|
212
213
|
files.push(...corrFiles);
|
|
213
214
|
} catch {
|
package/src/cli.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { ThreadingManager } from "./threading.js";
|
|
|
13
13
|
import { bumpMemoryCorpusVersionForDir } from "./memory-corpus-version.js";
|
|
14
14
|
import { utcDayRange } from "./transcript.js";
|
|
15
15
|
import { padEndDisplay, truncateGraphemeSafe } from "./whitespace.js";
|
|
16
|
+
import { isMacOsReplicationJunkBasename } from "./utils/macos-replication-junk.js";
|
|
16
17
|
import { runWearablesCliCommand } from "./wearables/cli.js";
|
|
17
18
|
import { registerMeetingsCommands } from "./cli/meetings-commands.js"; import { registerDeepRecallCommands } from "./cli/deep-recall-commands.js"; import { registerRecallNavigationCommands } from "./cli/recall-navigation-commands.js"; import { registerMemoryBrowseCommands } from "./cli/memory-browse-commands.js";
|
|
18
19
|
import { registerExportOkfCommand, registerOkfCommands } from "./cli/okf-commands.js";
|
|
@@ -3334,7 +3335,6 @@ export async function resolveMemoryDirForNamespace(
|
|
|
3334
3335
|
}
|
|
3335
3336
|
return candidate;
|
|
3336
3337
|
}
|
|
3337
|
-
|
|
3338
3338
|
/**
|
|
3339
3339
|
* Walk every recall category directory under `memoryDir` recursively and invoke
|
|
3340
3340
|
* `visit` for every `*.md` file. The directory set is `RECALL_FALLBACK_DIRS`
|
|
@@ -3392,6 +3392,7 @@ async function walkMemoryMarkdownFiles(
|
|
|
3392
3392
|
for (const entry of entries) {
|
|
3393
3393
|
if (entry.isSymbolicLink()) continue; // never follow symlinked entries
|
|
3394
3394
|
const entryName = typeof entry.name === "string" ? entry.name : entry.name.toString("utf-8");
|
|
3395
|
+
if (isMacOsReplicationJunkBasename(entryName)) continue;
|
|
3395
3396
|
const fullPath = path.join(dir, entryName);
|
|
3396
3397
|
try {
|
|
3397
3398
|
assertPathInsideRoot(memoryRootReal, await realpath(fullPath), fullPath);
|
|
@@ -3412,7 +3413,6 @@ async function walkMemoryMarkdownFiles(
|
|
|
3412
3413
|
await walk(root);
|
|
3413
3414
|
}
|
|
3414
3415
|
}
|
|
3415
|
-
|
|
3416
3416
|
/**
|
|
3417
3417
|
* List absolute paths of every `*.md` file under each recall category directory
|
|
3418
3418
|
* of `memoryDir` (facts/, corrections/, decisions/, ...; see
|
|
@@ -30,6 +30,7 @@ import {
|
|
|
30
30
|
// lock-step with the doctor scan.
|
|
31
31
|
import { sidecarKey } from "./page-versioning.js";
|
|
32
32
|
import { RECALL_FALLBACK_DIRS } from "./utils/category-dir.js";
|
|
33
|
+
import { isMacOsReplicationJunkBasename } from "./utils/macos-replication-junk.js";
|
|
33
34
|
|
|
34
35
|
/**
|
|
35
36
|
* Regex to spot a `derived_via: <value>` line in the raw YAML frontmatter
|
|
@@ -549,6 +550,7 @@ async function* walkMarkdownFiles(root: string, memoryDir: string): AsyncGenerat
|
|
|
549
550
|
return;
|
|
550
551
|
}
|
|
551
552
|
for (const entry of entries) {
|
|
553
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
552
554
|
const full = path.join(root, entry.name);
|
|
553
555
|
if (entry.isSymbolicLink()) continue;
|
|
554
556
|
if (entry.isDirectory()) {
|
|
@@ -26,6 +26,7 @@ import { readFile, readdir, unlink } from "node:fs/promises";
|
|
|
26
26
|
import path from "node:path";
|
|
27
27
|
import { throwIfAborted } from "../abort-error.js";
|
|
28
28
|
import { writeFileAtomically } from "../maintenance/atomic-file.js";
|
|
29
|
+
import { isMacOsReplicationJunkBasename } from "../utils/macos-replication-junk.js";
|
|
29
30
|
import { serializeMutations } from "../utils/serialize-mutations.js";
|
|
30
31
|
import {
|
|
31
32
|
CORRECTION_TEXT_MAX,
|
|
@@ -576,7 +577,7 @@ export class CorrectionPlanner {
|
|
|
576
577
|
}
|
|
577
578
|
const plans: CorrectionPlan[] = [];
|
|
578
579
|
for (const f of files) {
|
|
579
|
-
if (!f.endsWith(".json")) continue;
|
|
580
|
+
if (isMacOsReplicationJunkBasename(f) || !f.endsWith(".json")) continue;
|
|
580
581
|
let plan: CorrectionPlan | null = null;
|
|
581
582
|
try {
|
|
582
583
|
plan = await this.loadPlan(namespace, f.replace(/\.json$/, ""));
|
|
@@ -702,7 +703,7 @@ export class CorrectionPlanner {
|
|
|
702
703
|
}
|
|
703
704
|
const recovered: string[] = [];
|
|
704
705
|
for (const f of files) {
|
|
705
|
-
if (!f.endsWith(".json")) continue;
|
|
706
|
+
if (isMacOsReplicationJunkBasename(f) || !f.endsWith(".json")) continue;
|
|
706
707
|
const planId = f.replace(/\.json$/, "");
|
|
707
708
|
let plan: CorrectionPlan | null;
|
|
708
709
|
try {
|
package/src/json-store.ts
CHANGED
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
} from "node:fs/promises";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
import { isErrnoCode } from "./utils/errno.js";
|
|
17
|
+
import { isMacOsReplicationJunkBasename } from "./utils/macos-replication-junk.js";
|
|
17
18
|
|
|
18
19
|
async function listJsonFilesStrictInner(dir: string, allowMissingDirectory: boolean): Promise<string[]> {
|
|
19
20
|
let entries: Dirent[];
|
|
@@ -25,6 +26,7 @@ async function listJsonFilesStrictInner(dir: string, allowMissingDirectory: bool
|
|
|
25
26
|
}
|
|
26
27
|
const out: string[] = [];
|
|
27
28
|
for (const entry of entries) {
|
|
29
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
28
30
|
const fullPath = path.join(dir, entry.name);
|
|
29
31
|
if (entry.isDirectory()) {
|
|
30
32
|
out.push(...(await listJsonFilesStrictInner(fullPath, false)));
|
|
@@ -55,6 +57,7 @@ export async function listNamedFiles(dir: string, fileName: string): Promise<str
|
|
|
55
57
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
56
58
|
const out: string[] = [];
|
|
57
59
|
for (const entry of entries) {
|
|
60
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
58
61
|
const fullPath = path.join(dir, entry.name);
|
|
59
62
|
if (entry.isDirectory()) {
|
|
60
63
|
out.push(...(await listNamedFiles(fullPath, fileName)));
|