@remnic/core 10.0.6 → 10.0.8
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 +66 -64
- package/dist/access-authorization-probe.js +67 -65
- package/dist/access-boundary.js +66 -64
- package/dist/access-cli.js +133 -131
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +66 -64
- package/dist/access-http-briefing.js +67 -65
- package/dist/access-http-query.js +68 -66
- package/dist/access-http.js +90 -88
- package/dist/access-idempotency.d.ts.map +1 -1
- package/dist/access-idempotency.js +2 -1
- package/dist/access-identity-continuity-surface.js +66 -64
- package/dist/access-lcm-surface.js +66 -64
- package/dist/access-mcp.js +79 -77
- package/dist/access-namespace-preflight.js +66 -64
- package/dist/access-observe-write-category.js +15 -14
- package/dist/access-observe-write-surface.js +66 -64
- package/dist/access-offline-manifest.js +12 -11
- package/dist/access-operations-batch.js +70 -68
- package/dist/access-operations.js +77 -75
- package/dist/access-recall-concurrency.js +66 -64
- package/dist/access-recall-response.js +66 -64
- package/dist/access-recall-surface.js +66 -64
- package/dist/access-schema.js +10 -9
- package/dist/access-service.js +66 -64
- package/dist/access-surface-catalog.js +68 -66
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +28 -27
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-FN7E3OTO.js → auto-sync-WSJAOLOP.js} +8 -7
- package/dist/{auto-sync-FN7E3OTO.js.map → auto-sync-WSJAOLOP.js.map} +1 -1
- package/dist/briefing.js +20 -19
- package/dist/buffer.js +13 -12
- package/dist/{capsule-merge-42GJGDUC.js → capsule-merge-M4HETD27.js} +5 -4
- package/dist/{capsule-merge-42GJGDUC.js.map → capsule-merge-M4HETD27.js.map} +1 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.js +23 -22
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.js +4 -3
- package/dist/causal-trajectory-graph.js.map +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-OZABSIOV.js → chunk-2AFHZTPI.js} +2 -2
- package/dist/{chunk-UK5EH7AI.js → chunk-2CXQZXWM.js} +3 -3
- package/dist/{chunk-D6M3VKMY.js → chunk-2K7D6EFT.js} +3 -3
- package/dist/{chunk-RIEGCK2W.js → chunk-2KRNPFPK.js} +2 -2
- package/dist/{chunk-N7QV3CMX.js → chunk-2NCBDGND.js} +2 -2
- package/dist/{chunk-XQSJXNWC.js → chunk-3ENX2RB4.js} +2 -2
- package/dist/{chunk-CLCMDKTB.js → chunk-3I3U6FFT.js} +2 -2
- package/dist/{chunk-WWLAKRMX.js → chunk-3NFN4Y4P.js} +5 -5
- package/dist/{chunk-I56MTWE7.js → chunk-3R6SLDTH.js} +2 -2
- package/dist/{chunk-QEPL7KIZ.js → chunk-3VTNNO2B.js} +6 -6
- package/dist/{chunk-QWUJWBZ5.js → chunk-4G4B3Z2B.js} +2 -2
- package/dist/{chunk-R7QY5ZVB.js → chunk-4NDWE44P.js} +2 -2
- package/dist/{chunk-KCCZFDJD.js → chunk-4OKPH6FG.js} +2 -2
- package/dist/{chunk-I25RQA65.js → chunk-55ZVZBX4.js} +2 -2
- package/dist/{chunk-ENNC3RZ6.js → chunk-5EOV7ANU.js} +2 -2
- package/dist/{chunk-ANZXWOYD.js → chunk-5FNVK7MW.js} +2 -2
- package/dist/{chunk-VFUEZZBS.js → chunk-5JMI26Q7.js} +5 -4
- package/dist/chunk-5JMI26Q7.js.map +1 -0
- package/dist/{chunk-KSUOM3YU.js → chunk-5NOPZYNI.js} +11 -11
- package/dist/{chunk-7LYRFI5A.js → chunk-5Q4NQNW7.js} +2 -2
- package/dist/chunk-5VC7J76U.js +134 -0
- package/dist/chunk-5VC7J76U.js.map +1 -0
- package/dist/{chunk-L3PWXD73.js → chunk-6PHB45IU.js} +2 -2
- package/dist/{chunk-CHDGJJV6.js → chunk-6VAHJ2F6.js} +2 -2
- package/dist/{chunk-KQT4DRKF.js → chunk-76KHEHT2.js} +2 -2
- package/dist/chunk-7LEQREP2.js +9 -0
- package/dist/chunk-7LEQREP2.js.map +1 -0
- package/dist/{chunk-SWRN6U7Q.js → chunk-7O252IE6.js} +2 -2
- package/dist/{chunk-U6HWKOGD.js → chunk-7OAIOE5P.js} +2 -2
- package/dist/{chunk-RSMIRLKM.js → chunk-7UX44C4N.js} +2 -2
- package/dist/{chunk-DJMVSUPK.js → chunk-A6G7K273.js} +4 -4
- package/dist/{chunk-VC4J4UTI.js → chunk-AAM66QCP.js} +5 -5
- package/dist/{chunk-TZQOCQXB.js → chunk-AL6EHLB5.js} +2 -2
- package/dist/{chunk-IJ4FEGZR.js → chunk-AMFCRZYB.js} +2 -2
- package/dist/{chunk-4K2H4KTR.js → chunk-AV46CT77.js} +3 -3
- package/dist/{chunk-7PZHH4KC.js → chunk-AZEZSQ5R.js} +23 -2
- package/dist/chunk-AZEZSQ5R.js.map +1 -0
- package/dist/{chunk-VZBW6CDG.js → chunk-BOOFTFFE.js} +1 -1
- package/dist/{chunk-2UF42WXV.js → chunk-BPY4RRTF.js} +16 -16
- package/dist/{chunk-2U3R3DDH.js → chunk-BTJ6CAIA.js} +2 -2
- package/dist/{chunk-GF4H3B3R.js → chunk-C3WJNRGR.js} +3 -3
- package/dist/{chunk-SIYZDT2V.js → chunk-CBP4HWCL.js} +3 -3
- package/dist/{chunk-GEGUBU3D.js → chunk-CSUAHUOH.js} +3 -3
- package/dist/{chunk-AJ6ORARY.js → chunk-DGRMWDQY.js} +12 -12
- package/dist/chunk-DGRMWDQY.js.map +1 -0
- package/dist/{chunk-BNMI3JBV.js → chunk-DXHVD4DS.js} +3 -3
- package/dist/{chunk-GE6HETIF.js → chunk-E5274WUC.js} +2 -2
- package/dist/{chunk-2COXDQ6C.js → chunk-E6KXJSMA.js} +2 -2
- package/dist/{chunk-FFAZ2XFU.js → chunk-EHRE7ZG3.js} +5 -6
- package/dist/chunk-EHRE7ZG3.js.map +1 -0
- package/dist/{chunk-CCMXCZLT.js → chunk-FBVLTTVV.js} +7 -7
- package/dist/{chunk-XVC7JU2N.js → chunk-FQD2KPQH.js} +2 -2
- package/dist/{chunk-SNXBXYUE.js → chunk-GDI64ITR.js} +3 -3
- package/dist/{chunk-MH2DXDN6.js → chunk-GSAZBZMA.js} +2 -2
- package/dist/{chunk-MULNBSPP.js → chunk-HT2C4EXO.js} +2 -2
- package/dist/{chunk-EMVJU7WC.js → chunk-HZVYDWUP.js} +2 -2
- package/dist/{chunk-XPRAOTJY.js → chunk-IJWEXCWF.js} +2 -2
- package/dist/{chunk-L2VS27PZ.js → chunk-IOM5QSNR.js} +4 -4
- package/dist/{chunk-KQAFEZQX.js → chunk-IPLYGWQF.js} +5 -5
- package/dist/{chunk-TDMNADPI.js → chunk-JK3DYMOC.js} +2 -2
- package/dist/{chunk-SZXPKUMN.js → chunk-JSIQSZXI.js} +4 -4
- package/dist/{chunk-KQI2PKYP.js → chunk-JTUKDLAD.js} +2 -2
- package/dist/{chunk-TL4PM7PC.js → chunk-K3DZ3G5I.js} +2 -2
- package/dist/{chunk-WG4TMZJ2.js → chunk-KDYQYMJZ.js} +2 -2
- package/dist/{chunk-N4PYB235.js → chunk-KI6UOSNR.js} +2 -2
- package/dist/{chunk-FC6RCOIU.js → chunk-KRIEQCKE.js} +2 -2
- package/dist/{chunk-EQUD7FP4.js → chunk-KYY4EACB.js} +2 -2
- package/dist/{chunk-QMFKW4OU.js → chunk-L3Z4NXDO.js} +3 -3
- package/dist/{chunk-KE5PWLI6.js → chunk-LOFVW6JA.js} +3 -3
- package/dist/{chunk-46WM6JX2.js → chunk-LZKOVXMX.js} +2 -2
- package/dist/{chunk-JMF5Q4JY.js → chunk-MAJ2OKE4.js} +9 -9
- package/dist/{chunk-U6OXJQEH.js → chunk-MB5EJ2CT.js} +5 -5
- package/dist/{chunk-VUEG3TZ4.js → chunk-MVRIW6MI.js} +2 -2
- package/dist/{chunk-TGF43K66.js → chunk-MZBWIJJN.js} +9 -9
- package/dist/{chunk-QGLEM46C.js → chunk-N44GZ73R.js} +8 -8
- package/dist/{chunk-63UNVGZW.js → chunk-N6UMXWBA.js} +4 -4
- package/dist/{chunk-FLV7M7CT.js → chunk-NAHUBSUF.js} +2 -2
- package/dist/{chunk-S5TGRZWY.js → chunk-NXLQQ6WI.js} +3 -3
- package/dist/{chunk-DTXN4NVD.js → chunk-NYVKLB2I.js} +46 -46
- package/dist/chunk-NYVKLB2I.js.map +1 -0
- package/dist/{chunk-YJAOYEWI.js → chunk-OC6JYPZX.js} +21 -44
- package/dist/chunk-OC6JYPZX.js.map +1 -0
- package/dist/{chunk-5AYUHSAU.js → chunk-OFCHT2TN.js} +2 -2
- package/dist/{chunk-HRZZJ4XB.js → chunk-P2S6P7X6.js} +2 -2
- package/dist/{chunk-OGVJXIHX.js → chunk-PBVNVKYN.js} +2 -2
- package/dist/{chunk-2CP577K6.js → chunk-PPIASWWR.js} +2 -2
- package/dist/{chunk-6C76FZRM.js → chunk-QFIPSKPC.js} +2 -2
- package/dist/{chunk-Q562GF7J.js → chunk-QN77HA6P.js} +2 -2
- package/dist/{chunk-MFZACYZ6.js → chunk-QUNDYIYZ.js} +3 -3
- package/dist/{chunk-L34W4W4I.js → chunk-QW7G7PWN.js} +2 -2
- package/dist/{chunk-W5XWHTDO.js → chunk-QZZPUREO.js} +3 -3
- package/dist/{chunk-JA72X46J.js → chunk-R2AWYR4Q.js} +2 -2
- package/dist/{chunk-YRULQW5J.js → chunk-RBJQYMMT.js} +4 -4
- package/dist/{chunk-6KHF6PAB.js → chunk-RH6QEGCT.js} +3 -3
- package/dist/{chunk-QRZMJ2WN.js → chunk-RNPJ4GQA.js} +2 -2
- package/dist/{chunk-TRBLJU6Y.js → chunk-S4GUMZRB.js} +40 -40
- package/dist/{chunk-MQNOIH2C.js → chunk-SQ2O52SU.js} +3 -3
- package/dist/{chunk-EP5WXE2G.js → chunk-TCYLCPC6.js} +2 -2
- package/dist/{chunk-7CZIKCJR.js → chunk-V4WSQYO6.js} +82 -82
- package/dist/{chunk-7CZIKCJR.js.map → chunk-V4WSQYO6.js.map} +1 -1
- package/dist/{chunk-PO7NXNGC.js → chunk-VFTK5WKI.js} +2 -2
- package/dist/{chunk-JA54KIYD.js → chunk-VSHRMIJH.js} +2 -2
- package/dist/{chunk-5BPXMAUP.js → chunk-VUQDJ3JB.js} +4 -4
- package/dist/{chunk-7CXL25AA.js → chunk-W4RLOZOG.js} +3 -3
- package/dist/{chunk-LHRQBMJN.js → chunk-WADSXS4K.js} +2 -2
- package/dist/{chunk-Y7427SL7.js → chunk-WCGJK4NQ.js} +4 -4
- package/dist/{chunk-37HCPM56.js → chunk-WJLGUY27.js} +18 -18
- package/dist/{chunk-YGPXV546.js → chunk-WPFSZZ35.js} +2 -2
- package/dist/{chunk-IM2GO42H.js → chunk-WVHRNAXL.js} +4 -4
- package/dist/chunk-WVHRNAXL.js.map +1 -0
- package/dist/{chunk-UXIZ5XN5.js → chunk-XLIK2VDE.js} +3 -3
- package/dist/{chunk-64S6X4IU.js → chunk-XTN54NML.js} +4 -4
- package/dist/{chunk-2UPTRDGM.js → chunk-Y6DZ33PA.js} +4 -4
- package/dist/{chunk-4JNTGPBR.js → chunk-YAF3NRNC.js} +2 -2
- package/dist/{chunk-IFCKHPY4.js → chunk-YDH2FSDI.js} +2 -2
- package/dist/{chunk-L6GNS5GB.js → chunk-YS7SA4HD.js} +2 -2
- package/dist/{chunk-EIFYYHAF.js → chunk-YYO447A7.js} +4 -4
- package/dist/{chunk-75PT4N7Q.js → chunk-ZI7LMSNI.js} +2 -2
- package/dist/{chunk-EUT2WCWS.js → chunk-ZQ3WU6JO.js} +2 -2
- package/dist/{chunk-YJEUHGZZ.js → chunk-ZQYAE2C5.js} +2 -2
- package/dist/{chunk-JYG2334B.js → chunk-ZSJGYC3C.js} +2 -2
- package/dist/cli.js +108 -106
- package/dist/coding/export-okf-codegraph.js +20 -19
- package/dist/coding/export-okf-codegraph.js.map +1 -1
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.js +21 -20
- package/dist/config.js +28 -27
- package/dist/connectors/codex-materialize-runner.js +20 -19
- package/dist/connectors/index.js +20 -19
- package/dist/consolidation-provenance-check.js +5 -4
- package/dist/consolidation-undo.js +4 -3
- package/dist/consolidation-undo.js.map +1 -1
- package/dist/contradiction/index.js +6 -5
- package/dist/convergence-refresh.js +22 -21
- package/dist/corpus-watermark.js +22 -21
- package/dist/deep-recall-http-glue.js +11 -10
- package/dist/deep-recall.js +2 -2
- package/dist/embedding-fallback.js +4 -3
- package/dist/embedding-generation-lock.js +3 -2
- package/dist/entity-retrieval.js +20 -19
- package/dist/explicit-capture.js +8 -7
- package/dist/external-wiki-access.js +67 -65
- package/dist/extraction.js +25 -24
- package/dist/{forget-SZ2BXDGF.js → forget-OHAJ6PSU.js} +4 -3
- package/dist/{forget-SZ2BXDGF.js.map → forget-OHAJ6PSU.js.map} +1 -1
- package/dist/{graph-edge-decay-PVKDKLQK.js → graph-edge-decay-CZ3SYLM4.js} +7 -6
- package/dist/graph-jsonl.js +5 -4
- package/dist/graph-snapshot.js +5 -4
- package/dist/graph-write-lock.js +3 -2
- package/dist/graph.js +4 -3
- package/dist/harmonic-retrieval.d.ts.map +1 -1
- package/dist/harmonic-retrieval.js +22 -20
- package/dist/harmonic-source-lookup.d.ts +14 -0
- package/dist/harmonic-source-lookup.d.ts.map +1 -0
- package/dist/harmonic-source-lookup.js +22 -0
- package/dist/http-retry.d.ts.map +1 -1
- package/dist/http-retry.js +6 -8
- package/dist/http-retry.js.map +1 -1
- package/dist/index.js +144 -142
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.js +4 -4
- package/dist/location/index.js +23 -22
- package/dist/maintenance/memory-governance.js +20 -19
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +20 -19
- package/dist/maintenance/rebuild-memory-projection-runner.js +22 -21
- package/dist/maintenance/rebuild-memory-projection.js +21 -20
- package/dist/memory-browse-operations.js +67 -65
- package/dist/memory-browse.js +8 -7
- package/dist/memory-projection-batch.d.ts +2 -0
- package/dist/memory-projection-batch.d.ts.map +1 -1
- package/dist/memory-projection-batch.js +4 -1
- package/dist/memory-subject.js +4 -3
- package/dist/namespaces/migrate.js +21 -20
- package/dist/namespaces/search.js +8 -7
- package/dist/namespaces/storage.js +20 -19
- package/dist/offline-sync-changeset-generations.js +6 -5
- package/dist/offline-sync-embedding-generation.js +5 -4
- package/dist/offline-sync-impression-drain.js +4 -3
- package/dist/offline-sync-snapshot-stream.js +8 -7
- package/dist/offline-sync.js +9 -8
- package/dist/operator-doctor-corpus.js +23 -22
- package/dist/operator-toolkit.js +40 -39
- package/dist/orchestration/maintenance.js +30 -29
- package/dist/orchestrator.js +133 -131
- package/dist/page-versioning.js +4 -3
- package/dist/procedural/procedure-miner.d.ts.map +1 -1
- package/dist/qmd-daemon-session.d.ts.map +1 -1
- package/dist/qmd-daemon-session.js +2 -1
- package/dist/qmd.d.ts.map +1 -1
- package/dist/qmd.js +7 -6
- package/dist/recall-navigation-operations.js +67 -65
- package/dist/recall-navigation.js +66 -64
- package/dist/recall-state-view-admission.js +8 -7
- package/dist/recall-state.js +3 -2
- package/dist/recall-why-service.js +8 -7
- package/dist/reconcile/manifest.js +4 -3
- package/dist/{resolution-TV3F7ZTH.js → resolution-E4GLHLY6.js} +7 -6
- package/dist/resolution-E4GLHLY6.js.map +1 -0
- package/dist/resume-bundles.js +29 -28
- package/dist/salvage-envelope.js +6 -5
- package/dist/search/factory.js +7 -6
- package/dist/search/index.js +9 -8
- package/dist/semantic-consolidation.js +21 -20
- package/dist/semantic-rule-promotion.js +20 -19
- package/dist/semantic-rule-verifier.js +20 -19
- package/dist/source-agent-qualifier.js +24 -23
- package/dist/standup/build.js +20 -19
- package/dist/storage.js +19 -18
- package/dist/subject-config.js +5 -4
- package/dist/summarizer.js +4 -3
- package/dist/summary-snapshot.js +3 -2
- package/dist/support-passport/index.js +69 -67
- package/dist/testing/orchestrator-lite.d.ts +1 -2
- package/dist/testing/orchestrator-lite.d.ts.map +1 -1
- package/dist/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +1 -1
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +5 -4
- package/dist/transfer/export-okf.js +20 -19
- package/dist/utils/serialize-mutations.d.ts.map +1 -1
- package/dist/utils/serialize-mutations.js +2 -1
- package/dist/utils/sleep.d.ts +3 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/verified-recall.js +20 -19
- package/dist/who-knows-cli.js +21 -20
- package/dist/who-knows.js +20 -19
- package/dist/write-envelope.js +5 -4
- package/package.json +2 -2
- package/src/access-idempotency.ts +1 -4
- package/src/harmonic-retrieval.ts +12 -64
- package/src/harmonic-source-lookup.test.ts +178 -0
- package/src/harmonic-source-lookup.ts +142 -0
- package/src/http-retry.ts +2 -6
- package/src/memory-projection-batch.test.ts +55 -0
- package/src/memory-projection-batch.ts +20 -0
- package/src/offline-sync-digest-cache.test.ts +45 -0
- package/src/orchestration/recall-internal.ts +12 -12
- package/src/procedural/procedure-miner.ts +1 -4
- package/src/qmd-daemon-session.ts +1 -4
- package/src/qmd.ts +0 -4
- package/src/recall-harmonic-qmd-ordering.test.ts +304 -0
- package/src/testing/orchestrator-lite.ts +2 -7
- package/src/utils/serialize-mutations.ts +1 -13
- package/src/utils/sleep.test.ts +32 -0
- package/src/utils/sleep.ts +5 -0
- package/dist/chunk-7PZHH4KC.js.map +0 -1
- package/dist/chunk-AJ6ORARY.js.map +0 -1
- package/dist/chunk-DTXN4NVD.js.map +0 -1
- package/dist/chunk-FFAZ2XFU.js.map +0 -1
- package/dist/chunk-IM2GO42H.js.map +0 -1
- package/dist/chunk-VFUEZZBS.js.map +0 -1
- package/dist/chunk-YJAOYEWI.js.map +0 -1
- /package/dist/{chunk-OZABSIOV.js.map → chunk-2AFHZTPI.js.map} +0 -0
- /package/dist/{chunk-UK5EH7AI.js.map → chunk-2CXQZXWM.js.map} +0 -0
- /package/dist/{chunk-D6M3VKMY.js.map → chunk-2K7D6EFT.js.map} +0 -0
- /package/dist/{chunk-RIEGCK2W.js.map → chunk-2KRNPFPK.js.map} +0 -0
- /package/dist/{chunk-N7QV3CMX.js.map → chunk-2NCBDGND.js.map} +0 -0
- /package/dist/{chunk-XQSJXNWC.js.map → chunk-3ENX2RB4.js.map} +0 -0
- /package/dist/{chunk-CLCMDKTB.js.map → chunk-3I3U6FFT.js.map} +0 -0
- /package/dist/{chunk-WWLAKRMX.js.map → chunk-3NFN4Y4P.js.map} +0 -0
- /package/dist/{chunk-I56MTWE7.js.map → chunk-3R6SLDTH.js.map} +0 -0
- /package/dist/{chunk-QEPL7KIZ.js.map → chunk-3VTNNO2B.js.map} +0 -0
- /package/dist/{chunk-QWUJWBZ5.js.map → chunk-4G4B3Z2B.js.map} +0 -0
- /package/dist/{chunk-R7QY5ZVB.js.map → chunk-4NDWE44P.js.map} +0 -0
- /package/dist/{chunk-KCCZFDJD.js.map → chunk-4OKPH6FG.js.map} +0 -0
- /package/dist/{chunk-I25RQA65.js.map → chunk-55ZVZBX4.js.map} +0 -0
- /package/dist/{chunk-ENNC3RZ6.js.map → chunk-5EOV7ANU.js.map} +0 -0
- /package/dist/{chunk-ANZXWOYD.js.map → chunk-5FNVK7MW.js.map} +0 -0
- /package/dist/{chunk-KSUOM3YU.js.map → chunk-5NOPZYNI.js.map} +0 -0
- /package/dist/{chunk-7LYRFI5A.js.map → chunk-5Q4NQNW7.js.map} +0 -0
- /package/dist/{chunk-L3PWXD73.js.map → chunk-6PHB45IU.js.map} +0 -0
- /package/dist/{chunk-CHDGJJV6.js.map → chunk-6VAHJ2F6.js.map} +0 -0
- /package/dist/{chunk-KQT4DRKF.js.map → chunk-76KHEHT2.js.map} +0 -0
- /package/dist/{chunk-SWRN6U7Q.js.map → chunk-7O252IE6.js.map} +0 -0
- /package/dist/{chunk-U6HWKOGD.js.map → chunk-7OAIOE5P.js.map} +0 -0
- /package/dist/{chunk-RSMIRLKM.js.map → chunk-7UX44C4N.js.map} +0 -0
- /package/dist/{chunk-DJMVSUPK.js.map → chunk-A6G7K273.js.map} +0 -0
- /package/dist/{chunk-VC4J4UTI.js.map → chunk-AAM66QCP.js.map} +0 -0
- /package/dist/{chunk-TZQOCQXB.js.map → chunk-AL6EHLB5.js.map} +0 -0
- /package/dist/{chunk-IJ4FEGZR.js.map → chunk-AMFCRZYB.js.map} +0 -0
- /package/dist/{chunk-4K2H4KTR.js.map → chunk-AV46CT77.js.map} +0 -0
- /package/dist/{chunk-VZBW6CDG.js.map → chunk-BOOFTFFE.js.map} +0 -0
- /package/dist/{chunk-2UF42WXV.js.map → chunk-BPY4RRTF.js.map} +0 -0
- /package/dist/{chunk-2U3R3DDH.js.map → chunk-BTJ6CAIA.js.map} +0 -0
- /package/dist/{chunk-GF4H3B3R.js.map → chunk-C3WJNRGR.js.map} +0 -0
- /package/dist/{chunk-SIYZDT2V.js.map → chunk-CBP4HWCL.js.map} +0 -0
- /package/dist/{chunk-GEGUBU3D.js.map → chunk-CSUAHUOH.js.map} +0 -0
- /package/dist/{chunk-BNMI3JBV.js.map → chunk-DXHVD4DS.js.map} +0 -0
- /package/dist/{chunk-GE6HETIF.js.map → chunk-E5274WUC.js.map} +0 -0
- /package/dist/{chunk-2COXDQ6C.js.map → chunk-E6KXJSMA.js.map} +0 -0
- /package/dist/{chunk-CCMXCZLT.js.map → chunk-FBVLTTVV.js.map} +0 -0
- /package/dist/{chunk-XVC7JU2N.js.map → chunk-FQD2KPQH.js.map} +0 -0
- /package/dist/{chunk-SNXBXYUE.js.map → chunk-GDI64ITR.js.map} +0 -0
- /package/dist/{chunk-MH2DXDN6.js.map → chunk-GSAZBZMA.js.map} +0 -0
- /package/dist/{chunk-MULNBSPP.js.map → chunk-HT2C4EXO.js.map} +0 -0
- /package/dist/{chunk-EMVJU7WC.js.map → chunk-HZVYDWUP.js.map} +0 -0
- /package/dist/{chunk-XPRAOTJY.js.map → chunk-IJWEXCWF.js.map} +0 -0
- /package/dist/{chunk-L2VS27PZ.js.map → chunk-IOM5QSNR.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-IPLYGWQF.js.map} +0 -0
- /package/dist/{chunk-TDMNADPI.js.map → chunk-JK3DYMOC.js.map} +0 -0
- /package/dist/{chunk-SZXPKUMN.js.map → chunk-JSIQSZXI.js.map} +0 -0
- /package/dist/{chunk-KQI2PKYP.js.map → chunk-JTUKDLAD.js.map} +0 -0
- /package/dist/{chunk-TL4PM7PC.js.map → chunk-K3DZ3G5I.js.map} +0 -0
- /package/dist/{chunk-WG4TMZJ2.js.map → chunk-KDYQYMJZ.js.map} +0 -0
- /package/dist/{chunk-N4PYB235.js.map → chunk-KI6UOSNR.js.map} +0 -0
- /package/dist/{chunk-FC6RCOIU.js.map → chunk-KRIEQCKE.js.map} +0 -0
- /package/dist/{chunk-EQUD7FP4.js.map → chunk-KYY4EACB.js.map} +0 -0
- /package/dist/{chunk-QMFKW4OU.js.map → chunk-L3Z4NXDO.js.map} +0 -0
- /package/dist/{chunk-KE5PWLI6.js.map → chunk-LOFVW6JA.js.map} +0 -0
- /package/dist/{chunk-46WM6JX2.js.map → chunk-LZKOVXMX.js.map} +0 -0
- /package/dist/{chunk-JMF5Q4JY.js.map → chunk-MAJ2OKE4.js.map} +0 -0
- /package/dist/{chunk-U6OXJQEH.js.map → chunk-MB5EJ2CT.js.map} +0 -0
- /package/dist/{chunk-VUEG3TZ4.js.map → chunk-MVRIW6MI.js.map} +0 -0
- /package/dist/{chunk-TGF43K66.js.map → chunk-MZBWIJJN.js.map} +0 -0
- /package/dist/{chunk-QGLEM46C.js.map → chunk-N44GZ73R.js.map} +0 -0
- /package/dist/{chunk-63UNVGZW.js.map → chunk-N6UMXWBA.js.map} +0 -0
- /package/dist/{chunk-FLV7M7CT.js.map → chunk-NAHUBSUF.js.map} +0 -0
- /package/dist/{chunk-S5TGRZWY.js.map → chunk-NXLQQ6WI.js.map} +0 -0
- /package/dist/{chunk-5AYUHSAU.js.map → chunk-OFCHT2TN.js.map} +0 -0
- /package/dist/{chunk-HRZZJ4XB.js.map → chunk-P2S6P7X6.js.map} +0 -0
- /package/dist/{chunk-OGVJXIHX.js.map → chunk-PBVNVKYN.js.map} +0 -0
- /package/dist/{chunk-2CP577K6.js.map → chunk-PPIASWWR.js.map} +0 -0
- /package/dist/{chunk-6C76FZRM.js.map → chunk-QFIPSKPC.js.map} +0 -0
- /package/dist/{chunk-Q562GF7J.js.map → chunk-QN77HA6P.js.map} +0 -0
- /package/dist/{chunk-MFZACYZ6.js.map → chunk-QUNDYIYZ.js.map} +0 -0
- /package/dist/{chunk-L34W4W4I.js.map → chunk-QW7G7PWN.js.map} +0 -0
- /package/dist/{chunk-W5XWHTDO.js.map → chunk-QZZPUREO.js.map} +0 -0
- /package/dist/{chunk-JA72X46J.js.map → chunk-R2AWYR4Q.js.map} +0 -0
- /package/dist/{chunk-YRULQW5J.js.map → chunk-RBJQYMMT.js.map} +0 -0
- /package/dist/{chunk-6KHF6PAB.js.map → chunk-RH6QEGCT.js.map} +0 -0
- /package/dist/{chunk-QRZMJ2WN.js.map → chunk-RNPJ4GQA.js.map} +0 -0
- /package/dist/{chunk-TRBLJU6Y.js.map → chunk-S4GUMZRB.js.map} +0 -0
- /package/dist/{chunk-MQNOIH2C.js.map → chunk-SQ2O52SU.js.map} +0 -0
- /package/dist/{chunk-EP5WXE2G.js.map → chunk-TCYLCPC6.js.map} +0 -0
- /package/dist/{chunk-PO7NXNGC.js.map → chunk-VFTK5WKI.js.map} +0 -0
- /package/dist/{chunk-JA54KIYD.js.map → chunk-VSHRMIJH.js.map} +0 -0
- /package/dist/{chunk-5BPXMAUP.js.map → chunk-VUQDJ3JB.js.map} +0 -0
- /package/dist/{chunk-7CXL25AA.js.map → chunk-W4RLOZOG.js.map} +0 -0
- /package/dist/{chunk-LHRQBMJN.js.map → chunk-WADSXS4K.js.map} +0 -0
- /package/dist/{chunk-Y7427SL7.js.map → chunk-WCGJK4NQ.js.map} +0 -0
- /package/dist/{chunk-37HCPM56.js.map → chunk-WJLGUY27.js.map} +0 -0
- /package/dist/{chunk-YGPXV546.js.map → chunk-WPFSZZ35.js.map} +0 -0
- /package/dist/{chunk-UXIZ5XN5.js.map → chunk-XLIK2VDE.js.map} +0 -0
- /package/dist/{chunk-64S6X4IU.js.map → chunk-XTN54NML.js.map} +0 -0
- /package/dist/{chunk-2UPTRDGM.js.map → chunk-Y6DZ33PA.js.map} +0 -0
- /package/dist/{chunk-4JNTGPBR.js.map → chunk-YAF3NRNC.js.map} +0 -0
- /package/dist/{chunk-IFCKHPY4.js.map → chunk-YDH2FSDI.js.map} +0 -0
- /package/dist/{chunk-L6GNS5GB.js.map → chunk-YS7SA4HD.js.map} +0 -0
- /package/dist/{chunk-EIFYYHAF.js.map → chunk-YYO447A7.js.map} +0 -0
- /package/dist/{chunk-75PT4N7Q.js.map → chunk-ZI7LMSNI.js.map} +0 -0
- /package/dist/{chunk-EUT2WCWS.js.map → chunk-ZQ3WU6JO.js.map} +0 -0
- /package/dist/{chunk-YJEUHGZZ.js.map → chunk-ZQYAE2C5.js.map} +0 -0
- /package/dist/{chunk-JYG2334B.js.map → chunk-ZSJGYC3C.js.map} +0 -0
- /package/dist/{graph-edge-decay-PVKDKLQK.js.map → graph-edge-decay-CZ3SYLM4.js.map} +0 -0
- /package/dist/{resolution-TV3F7ZTH.js.map → harmonic-source-lookup.js.map} +0 -0
package/dist/who-knows-cli.js
CHANGED
|
@@ -4,14 +4,15 @@ import {
|
|
|
4
4
|
renderWhoKnows,
|
|
5
5
|
renderWhoKnowsJson,
|
|
6
6
|
renderWhoKnowsText
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-46WM6JX2.js";
|
|
7
|
+
} from "./chunk-KRIEQCKE.js";
|
|
8
|
+
import "./chunk-3ENX2RB4.js";
|
|
9
|
+
import "./chunk-WJLGUY27.js";
|
|
11
10
|
import "./chunk-UHVXE24Y.js";
|
|
11
|
+
import "./chunk-LZKOVXMX.js";
|
|
12
12
|
import "./chunk-V4JZCTMK.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-7UX44C4N.js";
|
|
14
|
+
import "./chunk-MB5EJ2CT.js";
|
|
15
|
+
import "./chunk-CYEPCZN5.js";
|
|
15
16
|
import "./chunk-T3FMRLWQ.js";
|
|
16
17
|
import "./chunk-7VO6E5UD.js";
|
|
17
18
|
import "./chunk-5BUCKFRE.js";
|
|
@@ -19,7 +20,6 @@ import "./chunk-S7LWX2PQ.js";
|
|
|
19
20
|
import "./chunk-T2YX56QI.js";
|
|
20
21
|
import "./chunk-4O6WRBGE.js";
|
|
21
22
|
import "./chunk-GUMZC2BO.js";
|
|
22
|
-
import "./chunk-CYEPCZN5.js";
|
|
23
23
|
import "./chunk-TFA6HPOA.js";
|
|
24
24
|
import "./chunk-F4TWWUMP.js";
|
|
25
25
|
import "./chunk-72A4L5JJ.js";
|
|
@@ -28,12 +28,12 @@ import "./chunk-S2V7RUCL.js";
|
|
|
28
28
|
import "./chunk-X3724WL4.js";
|
|
29
29
|
import "./chunk-MRPOZBJC.js";
|
|
30
30
|
import "./chunk-S2HLHAZ4.js";
|
|
31
|
-
import "./chunk-DM2T26WE.js";
|
|
32
31
|
import "./chunk-LDXUBPMO.js";
|
|
32
|
+
import "./chunk-DM2T26WE.js";
|
|
33
33
|
import "./chunk-FF6N7BXC.js";
|
|
34
34
|
import "./chunk-2DT7PIDZ.js";
|
|
35
35
|
import "./chunk-AAD2ZS6P.js";
|
|
36
|
-
import "./chunk-
|
|
36
|
+
import "./chunk-YYO447A7.js";
|
|
37
37
|
import "./chunk-ZIKENA2C.js";
|
|
38
38
|
import "./chunk-3OUGSOJP.js";
|
|
39
39
|
import "./chunk-SCU65EZI.js";
|
|
@@ -41,20 +41,20 @@ import "./chunk-3ONXXHQO.js";
|
|
|
41
41
|
import "./chunk-YXZG5TVN.js";
|
|
42
42
|
import "./chunk-3WU7XOFN.js";
|
|
43
43
|
import "./chunk-6MKLMEBE.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-QZZPUREO.js";
|
|
45
45
|
import "./chunk-M5GVCJSJ.js";
|
|
46
46
|
import "./chunk-RBOJCG4T.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-4NDWE44P.js";
|
|
48
48
|
import "./chunk-5WITETWU.js";
|
|
49
49
|
import "./chunk-6CIAGZ6X.js";
|
|
50
50
|
import "./chunk-7CT3AI52.js";
|
|
51
51
|
import "./chunk-G7D6GZ5J.js";
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-IUM3VSHI.js";
|
|
52
|
+
import "./chunk-DGRMWDQY.js";
|
|
54
53
|
import "./chunk-G26YNEOC.js";
|
|
55
|
-
import "./chunk-IM2GO42H.js";
|
|
56
|
-
import "./chunk-TPSLVZHS.js";
|
|
57
54
|
import "./chunk-SIGAGKNE.js";
|
|
55
|
+
import "./chunk-IUM3VSHI.js";
|
|
56
|
+
import "./chunk-WVHRNAXL.js";
|
|
57
|
+
import "./chunk-TPSLVZHS.js";
|
|
58
58
|
import "./chunk-23G5P7TA.js";
|
|
59
59
|
import "./chunk-C64XATK7.js";
|
|
60
60
|
import "./chunk-42JKGUFJ.js";
|
|
@@ -72,30 +72,31 @@ import "./chunk-PJKTFXE2.js";
|
|
|
72
72
|
import "./chunk-W5BIQOAJ.js";
|
|
73
73
|
import "./chunk-QWWMS4AE.js";
|
|
74
74
|
import "./chunk-YBA52OKG.js";
|
|
75
|
-
import "./chunk-
|
|
75
|
+
import "./chunk-OFCHT2TN.js";
|
|
76
76
|
import "./chunk-BT7NVCML.js";
|
|
77
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-VFTK5WKI.js";
|
|
78
78
|
import "./chunk-BJMBJZ2Y.js";
|
|
79
79
|
import "./chunk-UKJAGEXH.js";
|
|
80
80
|
import "./chunk-FP2373TW.js";
|
|
81
81
|
import "./chunk-L272A5QW.js";
|
|
82
|
-
import "./chunk-
|
|
82
|
+
import "./chunk-FQD2KPQH.js";
|
|
83
83
|
import "./chunk-ZA53AZND.js";
|
|
84
84
|
import "./chunk-7RJUVTVF.js";
|
|
85
85
|
import "./chunk-AL3UYZ5N.js";
|
|
86
86
|
import "./chunk-RL6NEVXT.js";
|
|
87
87
|
import "./chunk-PWPIERBM.js";
|
|
88
88
|
import "./chunk-C7HJ3NEI.js";
|
|
89
|
-
import "./chunk-
|
|
89
|
+
import "./chunk-KI6UOSNR.js";
|
|
90
90
|
import "./chunk-BTNNL7ZW.js";
|
|
91
91
|
import "./chunk-5FVVY2EB.js";
|
|
92
92
|
import "./chunk-JDSVLVCG.js";
|
|
93
93
|
import "./chunk-5GKPFL3S.js";
|
|
94
94
|
import "./chunk-JAKIDQB2.js";
|
|
95
|
-
import "./chunk-
|
|
95
|
+
import "./chunk-EHRE7ZG3.js";
|
|
96
96
|
import "./chunk-P7FMDTKL.js";
|
|
97
97
|
import "./chunk-VUFL7X3H.js";
|
|
98
98
|
import "./chunk-2EMROIXS.js";
|
|
99
|
+
import "./chunk-7LEQREP2.js";
|
|
99
100
|
import "./chunk-ZEFVK7XC.js";
|
|
100
101
|
import "./chunk-6KH5NLQS.js";
|
|
101
102
|
import "./chunk-P2QRMMVQ.js";
|
package/dist/who-knows.js
CHANGED
|
@@ -9,13 +9,14 @@ import {
|
|
|
9
9
|
loadWhoKnowsEntities,
|
|
10
10
|
tokenizeTopic,
|
|
11
11
|
validateWhoKnowsInput
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-46WM6JX2.js";
|
|
12
|
+
} from "./chunk-3ENX2RB4.js";
|
|
13
|
+
import "./chunk-WJLGUY27.js";
|
|
15
14
|
import "./chunk-UHVXE24Y.js";
|
|
15
|
+
import "./chunk-LZKOVXMX.js";
|
|
16
16
|
import "./chunk-V4JZCTMK.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-7UX44C4N.js";
|
|
18
|
+
import "./chunk-MB5EJ2CT.js";
|
|
19
|
+
import "./chunk-CYEPCZN5.js";
|
|
19
20
|
import "./chunk-T3FMRLWQ.js";
|
|
20
21
|
import "./chunk-7VO6E5UD.js";
|
|
21
22
|
import "./chunk-5BUCKFRE.js";
|
|
@@ -23,7 +24,6 @@ import "./chunk-S7LWX2PQ.js";
|
|
|
23
24
|
import "./chunk-T2YX56QI.js";
|
|
24
25
|
import "./chunk-4O6WRBGE.js";
|
|
25
26
|
import "./chunk-GUMZC2BO.js";
|
|
26
|
-
import "./chunk-CYEPCZN5.js";
|
|
27
27
|
import "./chunk-TFA6HPOA.js";
|
|
28
28
|
import "./chunk-F4TWWUMP.js";
|
|
29
29
|
import "./chunk-72A4L5JJ.js";
|
|
@@ -32,12 +32,12 @@ import "./chunk-S2V7RUCL.js";
|
|
|
32
32
|
import "./chunk-X3724WL4.js";
|
|
33
33
|
import "./chunk-MRPOZBJC.js";
|
|
34
34
|
import "./chunk-S2HLHAZ4.js";
|
|
35
|
-
import "./chunk-DM2T26WE.js";
|
|
36
35
|
import "./chunk-LDXUBPMO.js";
|
|
36
|
+
import "./chunk-DM2T26WE.js";
|
|
37
37
|
import "./chunk-FF6N7BXC.js";
|
|
38
38
|
import "./chunk-2DT7PIDZ.js";
|
|
39
39
|
import "./chunk-AAD2ZS6P.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-YYO447A7.js";
|
|
41
41
|
import "./chunk-ZIKENA2C.js";
|
|
42
42
|
import "./chunk-3OUGSOJP.js";
|
|
43
43
|
import "./chunk-SCU65EZI.js";
|
|
@@ -45,20 +45,20 @@ import "./chunk-3ONXXHQO.js";
|
|
|
45
45
|
import "./chunk-YXZG5TVN.js";
|
|
46
46
|
import "./chunk-3WU7XOFN.js";
|
|
47
47
|
import "./chunk-6MKLMEBE.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-QZZPUREO.js";
|
|
49
49
|
import "./chunk-M5GVCJSJ.js";
|
|
50
50
|
import "./chunk-RBOJCG4T.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-4NDWE44P.js";
|
|
52
52
|
import "./chunk-5WITETWU.js";
|
|
53
53
|
import "./chunk-6CIAGZ6X.js";
|
|
54
54
|
import "./chunk-7CT3AI52.js";
|
|
55
55
|
import "./chunk-G7D6GZ5J.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-IUM3VSHI.js";
|
|
56
|
+
import "./chunk-DGRMWDQY.js";
|
|
58
57
|
import "./chunk-G26YNEOC.js";
|
|
59
|
-
import "./chunk-IM2GO42H.js";
|
|
60
|
-
import "./chunk-TPSLVZHS.js";
|
|
61
58
|
import "./chunk-SIGAGKNE.js";
|
|
59
|
+
import "./chunk-IUM3VSHI.js";
|
|
60
|
+
import "./chunk-WVHRNAXL.js";
|
|
61
|
+
import "./chunk-TPSLVZHS.js";
|
|
62
62
|
import "./chunk-23G5P7TA.js";
|
|
63
63
|
import "./chunk-C64XATK7.js";
|
|
64
64
|
import "./chunk-42JKGUFJ.js";
|
|
@@ -76,30 +76,31 @@ import "./chunk-PJKTFXE2.js";
|
|
|
76
76
|
import "./chunk-W5BIQOAJ.js";
|
|
77
77
|
import "./chunk-QWWMS4AE.js";
|
|
78
78
|
import "./chunk-YBA52OKG.js";
|
|
79
|
-
import "./chunk-
|
|
79
|
+
import "./chunk-OFCHT2TN.js";
|
|
80
80
|
import "./chunk-BT7NVCML.js";
|
|
81
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-VFTK5WKI.js";
|
|
82
82
|
import "./chunk-BJMBJZ2Y.js";
|
|
83
83
|
import "./chunk-UKJAGEXH.js";
|
|
84
84
|
import "./chunk-FP2373TW.js";
|
|
85
85
|
import "./chunk-L272A5QW.js";
|
|
86
|
-
import "./chunk-
|
|
86
|
+
import "./chunk-FQD2KPQH.js";
|
|
87
87
|
import "./chunk-ZA53AZND.js";
|
|
88
88
|
import "./chunk-7RJUVTVF.js";
|
|
89
89
|
import "./chunk-AL3UYZ5N.js";
|
|
90
90
|
import "./chunk-RL6NEVXT.js";
|
|
91
91
|
import "./chunk-PWPIERBM.js";
|
|
92
92
|
import "./chunk-C7HJ3NEI.js";
|
|
93
|
-
import "./chunk-
|
|
93
|
+
import "./chunk-KI6UOSNR.js";
|
|
94
94
|
import "./chunk-BTNNL7ZW.js";
|
|
95
95
|
import "./chunk-5FVVY2EB.js";
|
|
96
96
|
import "./chunk-JDSVLVCG.js";
|
|
97
97
|
import "./chunk-5GKPFL3S.js";
|
|
98
98
|
import "./chunk-JAKIDQB2.js";
|
|
99
|
-
import "./chunk-
|
|
99
|
+
import "./chunk-EHRE7ZG3.js";
|
|
100
100
|
import "./chunk-P7FMDTKL.js";
|
|
101
101
|
import "./chunk-VUFL7X3H.js";
|
|
102
102
|
import "./chunk-2EMROIXS.js";
|
|
103
|
+
import "./chunk-7LEQREP2.js";
|
|
103
104
|
import "./chunk-ZEFVK7XC.js";
|
|
104
105
|
import "./chunk-6KH5NLQS.js";
|
|
105
106
|
import "./chunk-P2QRMMVQ.js";
|
package/dist/write-envelope.js
CHANGED
|
@@ -12,16 +12,17 @@ import {
|
|
|
12
12
|
isMemoryCategory,
|
|
13
13
|
isSealedMemoryEnvelope,
|
|
14
14
|
sealedWriteToLegacyArgs
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-OFCHT2TN.js";
|
|
16
16
|
import "./chunk-BT7NVCML.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-VFTK5WKI.js";
|
|
18
|
+
import "./chunk-KI6UOSNR.js";
|
|
19
19
|
import "./chunk-5FVVY2EB.js";
|
|
20
20
|
import "./chunk-JDSVLVCG.js";
|
|
21
21
|
import "./chunk-5GKPFL3S.js";
|
|
22
22
|
import "./chunk-JAKIDQB2.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-EHRE7ZG3.js";
|
|
24
24
|
import "./chunk-P7FMDTKL.js";
|
|
25
|
+
import "./chunk-7LEQREP2.js";
|
|
25
26
|
import "./chunk-MAAL6OZV.js";
|
|
26
27
|
import "./chunk-A6XUJE5D.js";
|
|
27
28
|
import "./chunk-VS2IYZRU.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "10.0.
|
|
3
|
+
"version": "10.0.8",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3327,7 +3327,7 @@
|
|
|
3327
3327
|
"core"
|
|
3328
3328
|
],
|
|
3329
3329
|
"peerDependencies": {
|
|
3330
|
-
"@remnic/coding-graph": "^10.0.
|
|
3330
|
+
"@remnic/coding-graph": "^10.0.8"
|
|
3331
3331
|
},
|
|
3332
3332
|
"peerDependenciesMeta": {
|
|
3333
3333
|
"@remnic/coding-graph": {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir, open, readFile, rename, stat, unlink, utimes, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
|
+
import { sleep } from "./utils/sleep.js";
|
|
4
5
|
|
|
5
6
|
type AccessIdempotencyEntry = {
|
|
6
7
|
recordedAt: string;
|
|
@@ -359,7 +360,3 @@ async function unlinkStaleLockIfStillOwned(options: {
|
|
|
359
360
|
await unlink(options.lockPath);
|
|
360
361
|
return true;
|
|
361
362
|
}
|
|
362
|
-
|
|
363
|
-
function sleep(ms: number): Promise<void> {
|
|
364
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
365
|
-
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
2
|
import { realpath } from "node:fs/promises";
|
|
4
3
|
import { listJsonFilesStrict, readJsonFile } from "./json-store.js";
|
|
5
4
|
import { throwIfAborted } from "./abort-error.js";
|
|
@@ -22,31 +21,11 @@ import { readProjectedMemoryStates } from "./memory-projection-batch.js";
|
|
|
22
21
|
import { SecureStoreLockedError } from "./secure-store/secure-fs.js";
|
|
23
22
|
import { StorageManager } from "./storage.js";
|
|
24
23
|
import { RECALL_FALLBACK_DIRS } from "./utils/category-dir.js";
|
|
25
|
-
import {
|
|
24
|
+
import { readHarmonicSourceMemory, readUnresolvedHarmonicSources } from "./harmonic-source-lookup.js";
|
|
26
25
|
|
|
27
26
|
|
|
28
27
|
type SourceMemoryMap = Map<string, MemoryFile>;
|
|
29
28
|
|
|
30
|
-
// `rootReal` set: a direct probe, which skips the corpus walk's symlink
|
|
31
|
-
// hardening, so the resolved file must stay inside the memory root. Null: the
|
|
32
|
-
// path came from the contained corpus walk and is already trusted.
|
|
33
|
-
async function readMemoryFile(
|
|
34
|
-
storage: StorageManager,
|
|
35
|
-
rootReal: string | null,
|
|
36
|
-
filePath: string,
|
|
37
|
-
abortSignal?: AbortSignal,
|
|
38
|
-
): Promise<MemoryFile | null> {
|
|
39
|
-
throwIfAborted(abortSignal, "harmonic retrieval aborted");
|
|
40
|
-
if (!existsSync(filePath)) return null;
|
|
41
|
-
try {
|
|
42
|
-
if (rootReal !== null && !isPathInsideStorageRoot(rootReal, await realpath(filePath))) return null;
|
|
43
|
-
return await storage.readMemoryByPath(filePath);
|
|
44
|
-
} catch (err) {
|
|
45
|
-
throwIfAborted(abortSignal, "harmonic retrieval aborted");
|
|
46
|
-
if (err instanceof SecureStoreLockedError) throw err;
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
29
|
|
|
51
30
|
// An index older than this is treated as unusable: the date window needed to
|
|
52
31
|
// cover "created since the last rebuild" would stop being cheap.
|
|
@@ -61,13 +40,6 @@ function utcDaysSince(rebuiltMs: number, nowMs: number): string[] {
|
|
|
61
40
|
return days;
|
|
62
41
|
}
|
|
63
42
|
|
|
64
|
-
// Source ids confirmed absent by a corpus path walk. A node only references a
|
|
65
|
-
// source after the source file exists, so a confirmed absence stays true unless
|
|
66
|
-
// the file is restored later; the short TTL bounds that. Without this, one
|
|
67
|
-
// dangling id (a hard-deleted fact) would force a walk on every recall.
|
|
68
|
-
const ABSENT_SOURCE_TTL_MS = 10 * 60_000;
|
|
69
|
-
const ABSENT_SOURCE_MAX_ENTRIES = 4096;
|
|
70
|
-
const absentSourceIds = new Map<string, number>(); // `${memoryDir}\0${id}` -> expiry ms
|
|
71
43
|
|
|
72
44
|
// Memories the projection has no row for were written after its last rebuild, so
|
|
73
45
|
// their dated directory is normally one of `days`. Hot and cold tiers are probed
|
|
@@ -84,16 +56,7 @@ function unprojectedCandidatePaths(memoryDir: string, id: string, days: string[]
|
|
|
84
56
|
return paths;
|
|
85
57
|
}
|
|
86
58
|
|
|
87
|
-
/**
|
|
88
|
-
* Resolve only the source ids the abstraction nodes reference. Returns null when
|
|
89
|
-
* the projection is absent, unreadable, too old, or not known to cover every
|
|
90
|
-
* active memory (a scoped or pre-`complete` rebuild), so the caller keeps the
|
|
91
|
-
* full-corpus scan. Every file is read from disk, so status, tags and validity
|
|
92
|
-
* are current; the index only says where to look. An id the cheap probes cannot
|
|
93
|
-
* place (an import filed under an old date, a tier root outside the memory dir)
|
|
94
|
-
* is looked up by one contained path-only walk, never a frontmatter parse of the
|
|
95
|
-
* corpus.
|
|
96
|
-
*/
|
|
59
|
+
/** Resolve indexed sources first, then use the durable unresolved-id path cache. */
|
|
97
60
|
async function readIndexedSourceMemories(options: {
|
|
98
61
|
memoryDir: string;
|
|
99
62
|
abortSignal?: AbortSignal;
|
|
@@ -103,7 +66,7 @@ async function readIndexedSourceMemories(options: {
|
|
|
103
66
|
// The ids go to SQL as bound parameters, so any id the projection holds is safe to look up.
|
|
104
67
|
const batch = readProjectedMemoryStates(options.memoryDir, options.sourceMemoryIds);
|
|
105
68
|
const rebuiltMs = Date.parse(batch?.rebuiltAt ?? "");
|
|
106
|
-
if (!batch?.complete || !Number.isFinite(rebuiltMs) || options.nowMs - rebuiltMs > INDEX_MAX_AGE_MS) return null;
|
|
69
|
+
if (!batch?.complete || !batch.rebuiltAt || !Number.isFinite(rebuiltMs) || options.nowMs - rebuiltMs > INDEX_MAX_AGE_MS) return null;
|
|
107
70
|
const rootReal = await realpath(options.memoryDir).catch(() => null);
|
|
108
71
|
if (rootReal === null) return null;
|
|
109
72
|
|
|
@@ -120,42 +83,27 @@ async function readIndexedSourceMemories(options: {
|
|
|
120
83
|
} catch {
|
|
121
84
|
safeId = false;
|
|
122
85
|
}
|
|
123
|
-
// An unprojected id that is not a single path segment cannot be probed or
|
|
124
|
-
// matched by filename, and the scan keys sources by frontmatter id, so only
|
|
125
|
-
// the scan can place it. Rare (legacy/imported ids); worst case is the old cost.
|
|
126
|
-
if (!state && !safeId) return null;
|
|
127
86
|
// state.path was containment-checked by the projection reader.
|
|
128
87
|
const candidates = state
|
|
129
88
|
? [state.path, path.join(options.memoryDir, "cold", state.pathRel)]
|
|
130
|
-
: unprojectedCandidatePaths(options.memoryDir, id, days);
|
|
89
|
+
: safeId ? unprojectedCandidatePaths(options.memoryDir, id, days) : [];
|
|
131
90
|
let found = false;
|
|
132
91
|
for (const candidate of candidates) {
|
|
133
|
-
const memory = await
|
|
92
|
+
const memory = await readHarmonicSourceMemory(storage, rootReal, candidate, options.abortSignal);
|
|
134
93
|
if (memory?.frontmatter.id !== id) continue;
|
|
135
94
|
sourceMemories.set(id, memory);
|
|
136
95
|
found = true;
|
|
137
96
|
break;
|
|
138
97
|
}
|
|
139
|
-
|
|
140
|
-
if (!found && safeId && (absentSourceIds.get(absentKey) ?? 0) <= options.nowMs) pending.push(id);
|
|
98
|
+
if (!found) pending.push(id);
|
|
141
99
|
}
|
|
142
100
|
if (pending.length === 0) return sourceMemories;
|
|
143
101
|
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
];
|
|
149
|
-
for (const filePath of walked) {
|
|
150
|
-
throwIfAborted(options.abortSignal, "harmonic retrieval aborted");
|
|
151
|
-
if (!wanted.has(path.basename(filePath, ".md"))) continue;
|
|
152
|
-
const memory = await readMemoryFile(storage, null, filePath, options.abortSignal);
|
|
153
|
-
if (memory && wanted.has(memory.frontmatter.id)) sourceMemories.set(memory.frontmatter.id, memory);
|
|
154
|
-
}
|
|
155
|
-
if (absentSourceIds.size > ABSENT_SOURCE_MAX_ENTRIES) absentSourceIds.clear();
|
|
156
|
-
for (const id of pending) {
|
|
157
|
-
if (!sourceMemories.has(id)) absentSourceIds.set(`${options.memoryDir}\0${id}`, options.nowMs + ABSENT_SOURCE_TTL_MS);
|
|
158
|
-
}
|
|
102
|
+
const unresolved = await readUnresolvedHarmonicSources({
|
|
103
|
+
storage, rootReal, rebuiltAt: batch.rebuiltAt, sourceMemoryIds: pending,
|
|
104
|
+
nowMs: options.nowMs, abortSignal: options.abortSignal,
|
|
105
|
+
});
|
|
106
|
+
for (const [id, memory] of unresolved) sourceMemories.set(id, memory);
|
|
159
107
|
return sourceMemories;
|
|
160
108
|
}
|
|
161
109
|
|
|
@@ -168,7 +116,7 @@ async function readCorpusSourceMemories(options: {
|
|
|
168
116
|
const storage = new StorageManager(options.memoryDir);
|
|
169
117
|
const [hotMemories, coldMemories] = await Promise.all([
|
|
170
118
|
storage.readAllMemories({ abortSignal: options.abortSignal }),
|
|
171
|
-
storage.readAllColdMemories(),
|
|
119
|
+
storage.readAllColdMemories({ abortSignal: options.abortSignal }),
|
|
172
120
|
]);
|
|
173
121
|
for (const memory of [...hotMemories, ...coldMemories]) {
|
|
174
122
|
throwIfAborted(options.abortSignal, "harmonic retrieval aborted");
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { mkdir, mkdtemp, readFile, realpath, rm, writeFile } from "node:fs/promises";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { promisify } from "node:util";
|
|
7
|
+
import test from "node:test";
|
|
8
|
+
import { recordAbstractionNode } from "./abstraction-nodes.js";
|
|
9
|
+
import { readProjectedHarmonicGraph } from "./harmonic-retrieval.js";
|
|
10
|
+
import { rebuildMemoryProjection } from "./maintenance/rebuild-memory-projection.js";
|
|
11
|
+
import { StorageManager } from "./storage.js";
|
|
12
|
+
import { readUnresolvedHarmonicSources } from "./harmonic-source-lookup.js";
|
|
13
|
+
import { bumpMemoryCorpusVersionForDir } from "./memory-corpus-version.js";
|
|
14
|
+
|
|
15
|
+
async function seed(memoryDir: string) {
|
|
16
|
+
const storage = new StorageManager(memoryDir);
|
|
17
|
+
await storage.ensureDirectories();
|
|
18
|
+
const real = await storage.writeMemory("fact", "real harmonic source", { source: "test" });
|
|
19
|
+
await recordAbstractionNode({ memoryDir, node: {
|
|
20
|
+
schemaVersion: 1, nodeId: "source-lookup", recordedAt: new Date().toISOString(),
|
|
21
|
+
sessionKey: "agent:test", kind: "topic", abstractionLevel: "meso",
|
|
22
|
+
title: "source lookup", summary: "source lookup",
|
|
23
|
+
sourceMemoryIds: [real.id, "missing-source", "hot-import", "cold/import"],
|
|
24
|
+
} });
|
|
25
|
+
await rebuildMemoryProjection({ memoryDir, storage, dryRun: false });
|
|
26
|
+
return { storage, real };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async function importFile(memoryDir: string, tier: string, name: string, id: string) {
|
|
30
|
+
const dir = path.join(memoryDir, tier, "facts", "2000-01-01");
|
|
31
|
+
await mkdir(dir, { recursive: true });
|
|
32
|
+
await writeFile(path.join(dir, name),
|
|
33
|
+
`---\nid: ${id}\ncategory: fact\ncreated: 2000-01-01T00:00:00.000Z\nupdated: 2000-01-01T00:00:00.000Z\nsource: test\nconfidence: 0.8\nconfidenceTier: implied\ntags: []\n---\n\nImported ${id} body.\n`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
test("old-dated imports with non-id filenames resolve in both tiers without a corpus parse (#3188)", async (t) => {
|
|
37
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-lookup-"));
|
|
38
|
+
try {
|
|
39
|
+
const { real } = await seed(memoryDir);
|
|
40
|
+
await importFile(memoryDir, "", "unrelated-hot-name.md", "hot-import");
|
|
41
|
+
await importFile(memoryDir, "cold", "unrelated-cold-name.md", "cold/import");
|
|
42
|
+
let scans = 0;
|
|
43
|
+
t.mock.method(StorageManager.prototype, "readAllMemories", async () => { scans += 1; return []; });
|
|
44
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
45
|
+
assert.deepEqual(graph.nodes[0]?.sourceMemoryIds?.slice().sort(), [real.id, "hot-import", "cold/import"].sort());
|
|
46
|
+
assert.equal(scans, 0, "unprojected legacy ids must not force the full frontmatter corpus scan");
|
|
47
|
+
} finally {
|
|
48
|
+
t.mock.restoreAll();
|
|
49
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("confirmed missing sources survive a fresh process without another path walk (#3188)", async () => {
|
|
54
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-durable-"));
|
|
55
|
+
try {
|
|
56
|
+
const { real } = await seed(memoryDir);
|
|
57
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
58
|
+
assert.deepEqual(graph.nodes[0]?.sourceMemoryIds, [real.id]);
|
|
59
|
+
const script = `
|
|
60
|
+
import { StorageManager } from ${JSON.stringify(new URL("./storage.ts", import.meta.url).href)};
|
|
61
|
+
import { readProjectedHarmonicGraph } from ${JSON.stringify(new URL("./harmonic-retrieval.ts", import.meta.url).href)};
|
|
62
|
+
StorageManager.prototype.collectActiveMemoryPaths = async () => { throw new Error("unexpected hot walk after restart"); };
|
|
63
|
+
StorageManager.prototype.collectColdMemoryPaths = async () => { throw new Error("unexpected cold walk after restart"); };
|
|
64
|
+
StorageManager.prototype.readAllMemories = async () => { throw new Error("unexpected corpus scan after restart"); };
|
|
65
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir: ${JSON.stringify(memoryDir)}, anchorsEnabled: false });
|
|
66
|
+
if (graph.nodes[0]?.sourceMemoryIds?.join() !== ${JSON.stringify(real.id)}) throw new Error("source lost after restart");
|
|
67
|
+
`;
|
|
68
|
+
await promisify(execFile)(process.execPath, ["--import", "tsx", "--input-type=module", "-e", script]);
|
|
69
|
+
} finally {
|
|
70
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
for (const invalidation of ["ttl", "rebuiltAt", "corpusVersion"]) {
|
|
75
|
+
test(`durable misses invalidate on ${invalidation} without losing an imported source (#3188)`, async () => {
|
|
76
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-epoch-"));
|
|
77
|
+
try {
|
|
78
|
+
const { storage } = await seed(memoryDir);
|
|
79
|
+
const nowMs = Date.now();
|
|
80
|
+
const options = {
|
|
81
|
+
storage, rootReal: await realpath(memoryDir), rebuiltAt: new Date(nowMs).toISOString(),
|
|
82
|
+
nowMs, sourceMemoryIds: ["restored-id"],
|
|
83
|
+
};
|
|
84
|
+
assert.equal((await readUnresolvedHarmonicSources(options)).size, 0);
|
|
85
|
+
await importFile(memoryDir, "", "not-the-source-id.md", "restored-id");
|
|
86
|
+
assert.equal((await readUnresolvedHarmonicSources(options)).size, 0, "the existing ten-minute miss window is preserved");
|
|
87
|
+
if (invalidation === "ttl") options.nowMs += 10 * 60_000;
|
|
88
|
+
if (invalidation === "rebuiltAt") options.rebuiltAt = new Date(nowMs + 1).toISOString();
|
|
89
|
+
if (invalidation === "corpusVersion") bumpMemoryCorpusVersionForDir(memoryDir);
|
|
90
|
+
const restored = await readUnresolvedHarmonicSources(options);
|
|
91
|
+
assert.equal(restored.get("restored-id")?.content.trim(), "Imported restored-id body.");
|
|
92
|
+
} finally {
|
|
93
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
test("harmonic cold walk receives cancellation and cannot publish a partial absence cache (#3188)", async (t) => {
|
|
99
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-cancel-"));
|
|
100
|
+
try {
|
|
101
|
+
await seed(memoryDir);
|
|
102
|
+
await importFile(memoryDir, "cold", "cold-import.md", "cold/import");
|
|
103
|
+
const controller = new AbortController();
|
|
104
|
+
const original = StorageManager.prototype.collectColdMemoryPaths;
|
|
105
|
+
t.mock.method(StorageManager.prototype, "collectColdMemoryPaths", function (
|
|
106
|
+
this: StorageManager, options?: Parameters<StorageManager["collectColdMemoryPaths"]>[0],
|
|
107
|
+
) {
|
|
108
|
+
assert.equal(options?.abortSignal, controller.signal);
|
|
109
|
+
controller.abort();
|
|
110
|
+
return original.call(this, options);
|
|
111
|
+
});
|
|
112
|
+
await assert.rejects(
|
|
113
|
+
() => readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false, abortSignal: controller.signal }),
|
|
114
|
+
{ name: "AbortError" },
|
|
115
|
+
);
|
|
116
|
+
await assert.rejects(() => readFile(path.join(memoryDir, "state/harmonic-source-paths.json")), { code: "ENOENT" });
|
|
117
|
+
t.mock.restoreAll();
|
|
118
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
119
|
+
assert.equal(graph.nodes[0]?.sourceMemoryIds?.includes("cold/import"), true);
|
|
120
|
+
} finally {
|
|
121
|
+
t.mock.restoreAll();
|
|
122
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
test("an unreadable/unwritable path cache never suppresses an imported source (#3188)", async () => {
|
|
127
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-cache-errors-"));
|
|
128
|
+
try {
|
|
129
|
+
await seed(memoryDir);
|
|
130
|
+
await importFile(memoryDir, "", "not-id.md", "hot-import");
|
|
131
|
+
const cachePath = path.join(memoryDir, "state/harmonic-source-paths.json");
|
|
132
|
+
await mkdir(cachePath);
|
|
133
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
134
|
+
assert.equal(graph.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
|
|
135
|
+
await rm(cachePath, { recursive: true });
|
|
136
|
+
await writeFile(cachePath, "{broken");
|
|
137
|
+
const recovered = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
138
|
+
assert.equal(recovered.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
|
|
139
|
+
} finally {
|
|
140
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
test("an unresolved opaque id keeps the old scan candidate set for an edited projected file (#3188)", async () => {
|
|
145
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-opaque-"));
|
|
146
|
+
try {
|
|
147
|
+
const { storage, real } = await seed(memoryDir);
|
|
148
|
+
const memory = await storage.getMemoryById(real.id);
|
|
149
|
+
assert.ok(memory);
|
|
150
|
+
await writeFile(memory.path,
|
|
151
|
+
`---\nid: cold/import\ncategory: fact\ncreated: 2000-01-01T00:00:00.000Z\nupdated: 2000-01-01T00:00:00.000Z\nsource: test\nconfidence: 0.8\nconfidenceTier: implied\ntags: []\n---\n\nEdited projected legacy source.\n`);
|
|
152
|
+
const graph = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
153
|
+
assert.deepEqual(graph.nodes[0]?.sourceMemoryIds, ["cold/import"]);
|
|
154
|
+
assert.equal(graph.nodes[0]?.summary, "Edited projected legacy source.");
|
|
155
|
+
} finally {
|
|
156
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
test("cached import paths reread source status without another walk (#3188)", async (t) => {
|
|
161
|
+
const memoryDir = await mkdtemp(path.join(tmpdir(), "remnic-harmonic-fresh-status-"));
|
|
162
|
+
try {
|
|
163
|
+
const { real } = await seed(memoryDir);
|
|
164
|
+
await importFile(memoryDir, "", "not-id.md", "hot-import");
|
|
165
|
+
const first = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
166
|
+
assert.equal(first.nodes[0]?.sourceMemoryIds?.includes("hot-import"), true);
|
|
167
|
+
const filePath = path.join(memoryDir, "facts/2000-01-01/not-id.md");
|
|
168
|
+
await writeFile(filePath, (await readFile(filePath, "utf8")).replace("category: fact", "category: fact\nstatus: quarantined"));
|
|
169
|
+
t.mock.method(StorageManager.prototype, "collectActiveMemoryPaths", async () => { throw new Error("unexpected hot walk"); });
|
|
170
|
+
t.mock.method(StorageManager.prototype, "collectColdMemoryPaths", async () => { throw new Error("unexpected cold walk"); });
|
|
171
|
+
t.mock.method(StorageManager.prototype, "readAllMemories", async () => { throw new Error("unexpected corpus parse"); });
|
|
172
|
+
const second = await readProjectedHarmonicGraph({ memoryDir, anchorsEnabled: false });
|
|
173
|
+
assert.deepEqual(second.nodes[0]?.sourceMemoryIds, [real.id]);
|
|
174
|
+
} finally {
|
|
175
|
+
t.mock.restoreAll();
|
|
176
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
177
|
+
}
|
|
178
|
+
});
|