@remnic/core 10.0.13 → 10.0.15
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 +96 -92
- package/dist/access-authorization-probe.js +97 -93
- package/dist/access-boundary.js +96 -92
- package/dist/access-cli.js +203 -198
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +96 -92
- package/dist/access-http-briefing.js +97 -93
- package/dist/access-http-query.js +98 -94
- package/dist/access-http.js +121 -117
- package/dist/access-idempotency.js +3 -2
- package/dist/access-identity-continuity-surface.js +96 -92
- package/dist/access-lcm-surface.js +96 -92
- package/dist/access-mcp.js +110 -106
- package/dist/access-namespace-preflight.js +96 -92
- package/dist/access-observe-write-category.js +18 -17
- package/dist/access-observe-write-surface.js +96 -92
- package/dist/access-offline-manifest.js +17 -15
- package/dist/access-operations-batch.js +101 -97
- package/dist/access-operations.js +108 -104
- package/dist/access-recall-concurrency.js +96 -92
- package/dist/access-recall-diagnostics.js +2 -2
- package/dist/access-recall-response.js +96 -92
- package/dist/access-recall-surface.js +96 -92
- package/dist/access-schema.d.ts +2 -2
- package/dist/access-schema.js +13 -12
- package/dist/access-service.js +96 -92
- package/dist/access-surface-catalog.js +98 -94
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-recall.js +43 -39
- 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-DGJOZYGT.js → auto-sync-7WWAKW6F.js} +8 -8
- package/dist/briefing.js +32 -28
- package/dist/buffer.js +13 -13
- package/dist/calibration.d.ts.map +1 -1
- package/dist/calibration.js +6 -3
- package/dist/calibration.js.map +1 -1
- package/dist/{capsule-merge-M4HETD27.js → capsule-merge-LGYURS3C.js} +6 -5
- package/dist/{capsule-merge-M4HETD27.js.map → capsule-merge-LGYURS3C.js.map} +1 -1
- package/dist/capture-write-lock-backoff.d.ts +50 -0
- package/dist/capture-write-lock-backoff.d.ts.map +1 -0
- package/dist/capture-write-lock-backoff.js +30 -0
- package/dist/capture-write-lock.d.ts +6 -0
- package/dist/capture-write-lock.d.ts.map +1 -0
- package/dist/capture-write-lock.js +15 -0
- 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 +36 -32
- 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-graph.js +7 -6
- package/dist/causal-trajectory-graph.js.map +1 -1
- package/dist/causal-trajectory.js +3 -2
- package/dist/{chunk-KZO43HPY.js → chunk-22RM2ZUJ.js} +112 -112
- package/dist/{chunk-ZUMXY4KA.js → chunk-22W2XWGH.js} +3 -3
- package/dist/{chunk-MZBWIJJN.js → chunk-23ZQPP2G.js} +24 -19
- package/dist/chunk-23ZQPP2G.js.map +1 -0
- package/dist/{chunk-PCWXLAJY.js → chunk-2PTH4PRL.js} +2 -2
- package/dist/{chunk-ZIZ2G47N.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-7OAIOE5P.js → chunk-33G67YZF.js} +2 -2
- package/dist/{chunk-AV2OQF2O.js → chunk-3F3HA3R2.js} +2 -2
- package/dist/{chunk-RP5SJ3XR.js → chunk-3GNIJUUE.js} +2 -2
- package/dist/{chunk-QZZPUREO.js → chunk-3GYSZHMT.js} +3 -3
- package/dist/{chunk-QWWMS4AE.js → chunk-3MO4LWYU.js} +1 -1
- package/dist/chunk-3MO4LWYU.js.map +1 -0
- package/dist/{chunk-SWIKABKI.js → chunk-3Q3XD3NO.js} +2 -2
- package/dist/{chunk-AL6EHLB5.js → chunk-3X3PNU3T.js} +2 -2
- package/dist/{chunk-BTJ6CAIA.js → chunk-4IYIGN53.js} +10 -10
- package/dist/{chunk-BZTRPCCH.js → chunk-4PDTVVSW.js} +2 -2
- package/dist/{chunk-HM7RHKS4.js → chunk-4RNBLLZR.js} +2 -2
- package/dist/{chunk-Y3VDGK2O.js → chunk-4SCZZ3U7.js} +282 -84
- package/dist/chunk-4SCZZ3U7.js.map +1 -0
- package/dist/{chunk-JUWJYXI4.js → chunk-5ATSXCAG.js} +4 -4
- package/dist/{chunk-EHRE7ZG3.js → chunk-5B5WYAHQ.js} +2 -2
- package/dist/{chunk-WCGJK4NQ.js → chunk-5FNZ3G6X.js} +10 -10
- package/dist/{chunk-Y6DZ33PA.js → chunk-5GX5457J.js} +4 -4
- package/dist/{chunk-EMFBC7L3.js → chunk-5KGYTX5O.js} +2 -2
- package/dist/{chunk-OFCHT2TN.js → chunk-5LRV557D.js} +2 -2
- package/dist/{chunk-DXHVD4DS.js → chunk-5SMR542T.js} +3 -3
- package/dist/{chunk-S7LWX2PQ.js → chunk-655FVTCD.js} +2 -2
- package/dist/{chunk-DGRMWDQY.js → chunk-66BCOVW2.js} +7 -7
- package/dist/chunk-6EDW54SQ.js +298 -0
- package/dist/chunk-6EDW54SQ.js.map +1 -0
- package/dist/{chunk-5MDM7UE4.js → chunk-6WGMZQGG.js} +2 -2
- package/dist/chunk-77R7BQZ2.js +152 -0
- package/dist/chunk-77R7BQZ2.js.map +1 -0
- package/dist/{chunk-IPLYGWQF.js → chunk-7LCGFUMB.js} +6 -6
- package/dist/{chunk-5ZJYHOJT.js → chunk-7VQ6AI7H.js} +8 -8
- package/dist/{chunk-KYY4EACB.js → chunk-7Z3DLNSD.js} +2 -2
- package/dist/{chunk-LNH76ZJX.js → chunk-AIYXVWUH.js} +27 -2
- package/dist/{chunk-LNH76ZJX.js.map → chunk-AIYXVWUH.js.map} +1 -1
- package/dist/{chunk-G7NYVKD6.js → chunk-B2NXOVZN.js} +2 -2
- package/dist/{chunk-B43NMCGQ.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-BOOFTFFE.js → chunk-C2RW36YR.js} +2 -2
- package/dist/{chunk-XERVJYH2.js → chunk-C6JMGAMO.js} +7 -3
- package/dist/chunk-C6JMGAMO.js.map +1 -0
- package/dist/{chunk-5JMI26Q7.js → chunk-CBH2Z4UA.js} +2 -2
- package/dist/{chunk-P2S6P7X6.js → chunk-CFZ4SXXH.js} +2 -2
- package/dist/{chunk-YRH3C2OJ.js → chunk-CIIHIAJ2.js} +13 -5
- package/dist/chunk-CIIHIAJ2.js.map +1 -0
- package/dist/{chunk-6M56RFFJ.js → chunk-CJRENHVZ.js} +3 -3
- package/dist/{chunk-EGDYVYU7.js → chunk-CLWBFR7Q.js} +3 -3
- package/dist/{chunk-375ARKRS.js → chunk-D5SSBCYY.js} +70 -59
- package/dist/chunk-D5SSBCYY.js.map +1 -0
- package/dist/{chunk-KI6UOSNR.js → chunk-DEY7B77Y.js} +2 -2
- package/dist/chunk-DEY7B77Y.js.map +1 -0
- package/dist/{chunk-6VAHJ2F6.js → chunk-DMDWFQMR.js} +2 -2
- package/dist/{chunk-BLVHDY2U.js → chunk-DOWACHYO.js} +5 -2
- package/dist/chunk-DOWACHYO.js.map +1 -0
- package/dist/{chunk-UZSBCQEC.js → chunk-DPSOFK4D.js} +2 -2
- package/dist/{chunk-IZT3BVDW.js → chunk-DQR2LD3V.js} +2 -2
- package/dist/{chunk-K4QY55XV.js → chunk-EH4BQ7LT.js} +2 -2
- package/dist/chunk-EHHQJTAU.js +131 -0
- package/dist/chunk-EHHQJTAU.js.map +1 -0
- package/dist/{chunk-EBA5DA77.js → chunk-EOU6V4IN.js} +2 -2
- package/dist/{chunk-GD7BWGIB.js → chunk-EU6IRUCY.js} +6 -4
- package/dist/{chunk-GD7BWGIB.js.map → chunk-EU6IRUCY.js.map} +1 -1
- package/dist/{chunk-7KYJNHGM.js → chunk-EUCYTCFP.js} +2 -2
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-CKUUP64O.js → chunk-F2772ATT.js} +2 -2
- package/dist/{chunk-46EST7JO.js → chunk-F2XNSIPP.js} +2 -2
- package/dist/{chunk-2KRNPFPK.js → chunk-FLI6DEIU.js} +2 -2
- package/dist/{chunk-OAIWPB2I.js → chunk-FT4UQYOV.js} +2 -2
- package/dist/{chunk-HYNEDMYJ.js → chunk-G2OYFTUD.js} +2 -2
- package/dist/{chunk-XTN54NML.js → chunk-G3T6YMBO.js} +4 -4
- package/dist/{chunk-CNG2XVZG.js → chunk-G3UUAQOD.js} +2 -2
- package/dist/{chunk-2ZQJLBV6.js → chunk-GCVDFX66.js} +4 -4
- package/dist/{chunk-ON4ILX3G.js → chunk-GFAM2LTC.js} +2 -2
- package/dist/{chunk-2LUSQV4U.js → chunk-GKJJNO7C.js} +2 -2
- package/dist/{chunk-T2YX56QI.js → chunk-GQJKVQJR.js} +2 -2
- package/dist/{chunk-5AOAQR37.js → chunk-GWVNGDJW.js} +3 -3
- package/dist/{chunk-YDH2FSDI.js → chunk-GZXXPCWJ.js} +3 -3
- package/dist/{chunk-5JCLELOP.js → chunk-H5IUN433.js} +2 -2
- package/dist/{chunk-IWHEJXR2.js → chunk-H6FREOYX.js} +8 -8
- package/dist/{chunk-B7CANWCA.js → chunk-HBAOOSHU.js} +2 -2
- 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-B657ZGDH.js → chunk-HQSK2INQ.js} +2 -2
- package/dist/{chunk-RT6D3WN7.js → chunk-IJMDBYCO.js} +2 -2
- package/dist/{chunk-CS2JEHTB.js → chunk-IUCPLBDS.js} +9 -9
- package/dist/{chunk-XRBHXUTQ.js → chunk-IWD33CF4.js} +6 -6
- package/dist/{chunk-4IHBN6WU.js → chunk-JKMIGCK6.js} +2 -2
- package/dist/{chunk-YYO447A7.js → chunk-JNIVZNIB.js} +41 -253
- package/dist/chunk-JNIVZNIB.js.map +1 -0
- package/dist/{chunk-ROBHL3GL.js → chunk-JWX2Q6HS.js} +2 -2
- package/dist/{chunk-3I3U6FFT.js → chunk-K7BN34IA.js} +2 -2
- package/dist/{chunk-4O6WRBGE.js → chunk-KJXP6RUG.js} +5 -1
- package/dist/chunk-KJXP6RUG.js.map +1 -0
- package/dist/{chunk-4THZGKQ2.js → chunk-KLJVTZ3R.js} +3 -3
- package/dist/{chunk-4G4B3Z2B.js → chunk-KW4AJ7T3.js} +2 -2
- package/dist/{chunk-HT2C4EXO.js → chunk-L5VCT7LU.js} +8 -4
- package/dist/chunk-L5VCT7LU.js.map +1 -0
- package/dist/{chunk-ZI7LMSNI.js → chunk-LLHZZOIB.js} +2 -2
- package/dist/{chunk-LS2FHUML.js → chunk-LQ5SS4OP.js} +3 -3
- package/dist/{chunk-NSFOERZQ.js → chunk-LWFWZTWX.js} +3 -3
- package/dist/{chunk-BMWN7B3Y.js → chunk-LXATZLSC.js} +3 -3
- package/dist/{chunk-OYKQ6T4V.js → chunk-MATDGSJ7.js} +2 -2
- package/dist/{chunk-3NFN4Y4P.js → chunk-MGCKZWAE.js} +5 -5
- package/dist/{chunk-O4KYRDRT.js → chunk-MJIOGYKX.js} +2 -2
- package/dist/{chunk-6OMUHXHP.js → chunk-ML7ZJAKJ.js} +2 -2
- package/dist/{chunk-GKIXBH7Y.js → chunk-MO6N4QYY.js} +4 -4
- package/dist/{chunk-A2E4WNW4.js → chunk-MWWAQXZ6.js} +2 -2
- package/dist/{chunk-VYPFEVOM.js → chunk-NHUX6GXA.js} +6 -6
- package/dist/{chunk-AKREOU5F.js → chunk-NZCKG25S.js} +2 -2
- package/dist/{chunk-4NDWE44P.js → chunk-NZFFGO5O.js} +2 -2
- package/dist/{chunk-WWSRLS4M.js → chunk-O2YPCFJT.js} +17 -17
- package/dist/{chunk-ZSJGYC3C.js → chunk-OQJKY3Z5.js} +2 -2
- package/dist/{chunk-U7VPOXVM.js → chunk-OQR42XCN.js} +82 -78
- package/dist/chunk-OQR42XCN.js.map +1 -0
- package/dist/{chunk-OFEHITAZ.js → chunk-OXNTOHL6.js} +2 -2
- package/dist/{chunk-FQD2KPQH.js → chunk-P55FACBG.js} +2 -2
- package/dist/chunk-PGRZ3FYC.js +34 -0
- package/dist/chunk-PGRZ3FYC.js.map +1 -0
- package/dist/{chunk-JYZSRNR7.js → chunk-PIITB2YZ.js} +2 -2
- package/dist/{chunk-PBVNVKYN.js → chunk-PIN5OPBA.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-4TTGRETU.js → chunk-PRU7OF3Y.js} +5 -5
- package/dist/{chunk-K2FSASGZ.js → chunk-PVHQSLNN.js} +7 -7
- package/dist/{chunk-SVDU4OHO.js → chunk-Q35L7TYB.js} +2 -2
- package/dist/{chunk-5VC7J76U.js → chunk-QPH52AZB.js} +2 -2
- package/dist/{chunk-6T42L5FI.js → chunk-QS3OLP5I.js} +2 -2
- package/dist/{chunk-P34FDDB5.js → chunk-QSEUUQUF.js} +2 -2
- package/dist/chunk-QUIRIG2P.js +31 -0
- package/dist/chunk-QUIRIG2P.js.map +1 -0
- package/dist/{chunk-PAAJWQH5.js → chunk-QUMKDRCF.js} +2 -2
- package/dist/{chunk-KZEMFD6E.js → chunk-R2H4ZFBJ.js} +3 -3
- package/dist/{chunk-X3VID2TT.js → chunk-RI2KCQHP.js} +7 -3
- package/dist/chunk-RI2KCQHP.js.map +1 -0
- package/dist/{chunk-JFVCDEIC.js → chunk-RP7PQWZM.js} +7 -7
- package/dist/{chunk-KC46VZR5.js → chunk-RTTPBBAN.js} +9 -9
- package/dist/{chunk-ZQ3WU6JO.js → chunk-RXFCU3CY.js} +2 -2
- package/dist/{chunk-CBP4HWCL.js → chunk-RYYVMZBR.js} +3 -3
- package/dist/{chunk-2NCBDGND.js → chunk-SA6GMZJY.js} +3 -3
- package/dist/{chunk-VFTK5WKI.js → chunk-STBX5X6B.js} +2 -2
- package/dist/{chunk-WVHRNAXL.js → chunk-SWWHIJUJ.js} +2 -2
- package/dist/{chunk-WADSXS4K.js → chunk-SX4QDWXK.js} +2 -2
- package/dist/{chunk-WETFW255.js → chunk-T7ASDYNK.js} +2 -2
- package/dist/{chunk-XZLWYZ7C.js → chunk-THEPGZBM.js} +2 -2
- package/dist/{chunk-YEM7K3KD.js → chunk-TMC7HBED.js} +6 -6
- package/dist/{chunk-RWRQ67OR.js → chunk-TPNCXSXP.js} +2 -2
- package/dist/{chunk-LZKOVXMX.js → chunk-TRMJ6BYC.js} +2 -2
- package/dist/{chunk-A6TVQ3QP.js → chunk-UGYUBENJ.js} +3 -3
- package/dist/{chunk-AAM66QCP.js → chunk-UZRSI6NX.js} +2 -2
- package/dist/{chunk-XHWJRUVP.js → chunk-V3TXIXXY.js} +3 -3
- package/dist/{chunk-2CXQZXWM.js → chunk-V4MB5ONM.js} +6 -6
- package/dist/{chunk-UOKPJFO3.js → chunk-VNZMZPAC.js} +3 -3
- package/dist/{chunk-FZB4TS2W.js → chunk-VPXIKBPX.js} +5 -5
- package/dist/{chunk-CYEK6Z3P.js → chunk-VW6VIJOS.js} +2 -2
- package/dist/{chunk-QUA7RLK6.js → chunk-W3FVQBGF.js} +2 -2
- package/dist/{chunk-6OQ6N5RP.js → chunk-WGTR573G.js} +22 -22
- package/dist/{chunk-W3K3HITK.js → chunk-WLT6LTQP.js} +2 -2
- package/dist/{chunk-6Z2AZ4AJ.js → chunk-XKRXN63M.js} +2 -2
- package/dist/{chunk-3J5JKBYD.js → chunk-XLBFX63V.js} +80 -77
- package/dist/chunk-XLBFX63V.js.map +1 -0
- package/dist/{chunk-FZVROZKC.js → chunk-XVZA6VXC.js} +4 -4
- package/dist/{chunk-DA2INEB5.js → chunk-XYGQSDTH.js} +4 -4
- package/dist/chunk-YET735EZ.js +99 -0
- package/dist/chunk-YET735EZ.js.map +1 -0
- package/dist/{chunk-RBJQYMMT.js → chunk-YRULQW5J.js} +4 -4
- package/dist/{chunk-QUNDYIYZ.js → chunk-YYEOR4XN.js} +3 -3
- package/dist/{chunk-6WHJ2EAB.js → chunk-Z64TS5V4.js} +2 -2
- package/dist/{chunk-NHLLKEKK.js → chunk-ZAJLJ35W.js} +2 -2
- package/dist/{chunk-M7V65M6H.js → chunk-ZKHSAMTE.js} +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +154 -150
- package/dist/coding/export-okf-codegraph.js +32 -28
- 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 +34 -30
- package/dist/config.js +43 -39
- package/dist/connectors/codex-materialize-runner.js +32 -28
- package/dist/connectors/index.js +32 -28
- package/dist/console/trace.d.ts +5 -14
- package/dist/console/trace.d.ts.map +1 -1
- package/dist/consolidation-provenance-check.d.ts.map +1 -1
- package/dist/consolidation-provenance-check.js +8 -6
- package/dist/consolidation-undo.js +5 -4
- package/dist/consolidation-undo.js.map +1 -1
- package/dist/contradiction/index.js +9 -7
- package/dist/converge-config.d.ts +2 -0
- package/dist/converge-config.d.ts.map +1 -1
- package/dist/converge-config.js +7 -3
- package/dist/convergence-refresh.js +34 -30
- package/dist/corpus-watermark.js +34 -30
- package/dist/correction/correction-planner.d.ts.map +1 -1
- package/dist/cue-anchors.js +4 -3
- package/dist/dashboard-runtime.js +2 -2
- package/dist/deep-recall-http-glue.js +14 -13
- package/dist/deep-recall.js +2 -2
- package/dist/{dreams-ledger-567VKVOU.js → dreams-ledger-UCHHRQ4R.js} +3 -2
- package/dist/embedding-fallback.js +5 -4
- package/dist/embedding-generation-lock.js +4 -3
- package/dist/entity-retrieval.js +33 -29
- package/dist/eval-trajectory-store.js +4 -3
- package/dist/eval-trajectory.js +4 -3
- package/dist/evals.js +3 -2
- package/dist/explicit-capture.js +11 -8
- package/dist/external-wiki-access.js +97 -93
- package/dist/extraction-quote-grounding.d.ts +67 -0
- package/dist/extraction-quote-grounding.d.ts.map +1 -0
- package/dist/extraction-quote-grounding.js +27 -0
- package/dist/extraction-quote-grounding.js.map +1 -0
- package/dist/extraction-source-grounding-helpers.d.ts +8 -0
- package/dist/extraction-source-grounding-helpers.d.ts.map +1 -1
- package/dist/extraction-source-grounding-helpers.js +11 -1
- package/dist/extraction-source-grounding-rules.d.ts +3 -1
- package/dist/extraction-source-grounding-rules.d.ts.map +1 -1
- package/dist/extraction-source-grounding-rules.js +3 -2
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts.map +1 -1
- package/dist/extraction-source-grounding.js +4 -3
- package/dist/extraction-span-materialize.js +2 -2
- package/dist/extraction.js +44 -39
- package/dist/{first-start-migration-HYAMKJ6V.js → first-start-migration-QVD22WWS.js} +9 -8
- package/dist/{first-start-migration-HYAMKJ6V.js.map → first-start-migration-QVD22WWS.js.map} +1 -1
- package/dist/{forget-OHAJ6PSU.js → forget-GXBWFKRC.js} +5 -4
- package/dist/{forget-OHAJ6PSU.js.map → forget-GXBWFKRC.js.map} +1 -1
- package/dist/{graph-edge-decay-CZ3SYLM4.js → graph-edge-decay-BYPZVJT4.js} +10 -9
- package/dist/graph-edge-decay-BYPZVJT4.js.map +1 -0
- package/dist/graph-jsonl.js +8 -7
- package/dist/graph-snapshot.js +8 -7
- package/dist/graph-write-lock.js +4 -3
- package/dist/graph.js +9 -8
- package/dist/harmonic-construction.js +5 -4
- package/dist/harmonic-retrieval.js +36 -32
- package/dist/harmonic-source-lookup.js +3 -2
- package/dist/http-retry.js +2 -1
- package/dist/http-retry.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +244 -237
- package/dist/json-store.d.ts.map +1 -1
- package/dist/json-store.js +2 -1
- package/dist/lcm/engine.js +4 -4
- package/dist/lcm/index.js +12 -12
- package/dist/location/index.js +35 -31
- 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 +32 -28
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +32 -28
- package/dist/maintenance/rebuild-memory-projection-runner.js +34 -30
- package/dist/maintenance/rebuild-memory-projection.js +33 -29
- package/dist/memory-browse-operations.js +97 -93
- package/dist/memory-browse.js +7 -7
- package/dist/memory-subject.js +5 -4
- package/dist/namespaces/migrate.js +33 -29
- package/dist/namespaces/search.js +11 -10
- package/dist/namespaces/storage.d.ts.map +1 -1
- package/dist/namespaces/storage.js +32 -28
- package/dist/objective-state-writers.js +4 -3
- package/dist/objective-state.js +3 -2
- package/dist/offline-sync-changeset-generations.js +7 -6
- package/dist/offline-sync-embedding-generation.js +6 -5
- package/dist/offline-sync-impression-drain.js +4 -4
- package/dist/offline-sync-snapshot-stream.js +10 -9
- package/dist/offline-sync.d.ts.map +1 -1
- package/dist/offline-sync.js +11 -10
- package/dist/operator-doctor-corpus.js +35 -31
- package/dist/operator-toolkit.js +58 -54
- package/dist/orchestration/maintenance.js +44 -40
- package/dist/orchestrator.js +205 -200
- package/dist/page-versioning.js +5 -4
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +2 -1
- package/dist/qmd-daemon-session.js +2 -2
- package/dist/qmd.js +4 -4
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.js +2 -2
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-navigation-operations.js +97 -93
- package/dist/recall-navigation.js +96 -92
- package/dist/recall-state-view-admission.js +7 -7
- package/dist/recall-state.js +4 -3
- package/dist/recall-why-service.js +7 -7
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.js +2 -2
- package/dist/reconcile/cursor.js +4 -2
- package/dist/reconcile/cursor.js.map +1 -1
- package/dist/reconcile/manifest.js +9 -6
- package/dist/reconcile/plan.js +4 -2
- package/dist/{resolution-EKJHREVJ.js → resolution-ZU5BIAJA.js} +10 -8
- package/dist/resolution-ZU5BIAJA.js.map +1 -0
- package/dist/resume-bundles.js +48 -44
- 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/salvage-envelope.js +7 -6
- package/dist/search/document-scanner.d.ts.map +1 -1
- package/dist/search/document-scanner.js +2 -1
- package/dist/search/factory.js +10 -9
- package/dist/search/index.js +16 -15
- 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 +37 -33
- package/dist/semantic-rule-promotion.js +32 -28
- package/dist/semantic-rule-verifier.js +32 -28
- package/dist/source-agent-qualifier.js +40 -35
- package/dist/standup/build.js +32 -28
- package/dist/storage/content-hash-index.d.ts +10 -0
- package/dist/storage/content-hash-index.d.ts.map +1 -1
- 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/tombstone-blocked-capture-index.d.ts +3 -0
- package/dist/storage/tombstone-blocked-capture-index.d.ts.map +1 -1
- package/dist/storage/tombstone-blocked-capture-mutation.d.ts +23 -3
- package/dist/storage/tombstone-blocked-capture-mutation.d.ts.map +1 -1
- package/dist/storage.d.ts +6 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +33 -29
- package/dist/subject-config.js +6 -5
- package/dist/summarizer.js +4 -4
- package/dist/summary-snapshot.js +4 -3
- package/dist/support-passport/index.js +99 -95
- 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/{trace-LXXCMZJA.js → trace-QBQVS5BC.js} +5 -21
- package/dist/trace-QBQVS5BC.js.map +1 -0
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +2 -1
- package/dist/transfer/autodetect.js +1 -1
- package/dist/transfer/backup.js +1 -1
- package/dist/transfer/capsule-export.js +3 -3
- package/dist/transfer/capsule-import.js +7 -6
- package/dist/transfer/export-okf.js +32 -28
- package/dist/trust-zones.js +3 -2
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- 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/utils/serialize-mutations.js +3 -2
- package/dist/utils/sleep.d.ts +6 -0
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/verified-recall.js +32 -28
- package/dist/who-knows-cli.js +33 -29
- package/dist/who-knows.js +32 -28
- package/dist/work-product-ledger.js +3 -2
- package/dist/write-envelope.js +6 -5
- package/package.json +22 -2
- package/src/calibration.ts +3 -2
- package/src/capture-write-lock-backoff.test.ts +534 -0
- package/src/capture-write-lock-backoff.ts +140 -0
- package/src/capture-write-lock.ts +8 -0
- package/src/cli.ts +2 -2
- package/src/console/trace.ts +5 -36
- package/src/consolidation-provenance-check.ts +2 -0
- package/src/converge-config.ts +80 -1
- package/src/correction/correction-planner.ts +3 -2
- package/src/extraction-quote-grounding.test.ts +546 -0
- package/src/extraction-quote-grounding.ts +232 -0
- package/src/extraction-source-grounding-helpers.ts +35 -0
- package/src/extraction-source-grounding-rules.ts +90 -65
- package/src/extraction-source-grounding.ts +11 -2
- package/src/index.ts +1 -1
- 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/profiling.ts +2 -1
- package/src/providers/codex-subscription.test.ts +15 -3
- package/src/retrieval-agents.ts +29 -12
- package/src/search/document-scanner.ts +4 -0
- package/src/storage/content-hash-index.ts +10 -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/tombstone-blocked-capture-index.ts +8 -1
- package/src/storage/tombstone-blocked-capture-mutation.ts +133 -43
- package/src/storage.ts +16 -2
- package/src/transcript.ts +11 -10
- package/src/types.ts +9 -0
- 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/src/utils/sleep.ts +28 -0
- package/dist/chunk-375ARKRS.js.map +0 -1
- package/dist/chunk-3J5JKBYD.js.map +0 -1
- package/dist/chunk-4O6WRBGE.js.map +0 -1
- package/dist/chunk-6MINUTGJ.js +0 -64
- package/dist/chunk-6MINUTGJ.js.map +0 -1
- package/dist/chunk-7LEQREP2.js +0 -9
- package/dist/chunk-7LEQREP2.js.map +0 -1
- package/dist/chunk-B6O2YLUR.js.map +0 -1
- package/dist/chunk-BLVHDY2U.js.map +0 -1
- package/dist/chunk-EQWEIIKQ.js.map +0 -1
- package/dist/chunk-HT2C4EXO.js.map +0 -1
- package/dist/chunk-KI6UOSNR.js.map +0 -1
- package/dist/chunk-MZBWIJJN.js.map +0 -1
- package/dist/chunk-Q4E24IRR.js.map +0 -1
- package/dist/chunk-QJ622LTI.js.map +0 -1
- package/dist/chunk-QWWMS4AE.js.map +0 -1
- package/dist/chunk-U7VPOXVM.js.map +0 -1
- package/dist/chunk-X3VID2TT.js.map +0 -1
- package/dist/chunk-XERVJYH2.js.map +0 -1
- package/dist/chunk-Y3VDGK2O.js.map +0 -1
- package/dist/chunk-YRH3C2OJ.js.map +0 -1
- package/dist/chunk-YYO447A7.js.map +0 -1
- package/dist/trace-LXXCMZJA.js.map +0 -1
- /package/dist/{auto-sync-DGJOZYGT.js.map → auto-sync-7WWAKW6F.js.map} +0 -0
- /package/dist/{dreams-ledger-567VKVOU.js.map → capture-write-lock-backoff.js.map} +0 -0
- /package/dist/{graph-edge-decay-CZ3SYLM4.js.map → capture-write-lock.js.map} +0 -0
- /package/dist/{chunk-KZO43HPY.js.map → chunk-22RM2ZUJ.js.map} +0 -0
- /package/dist/{chunk-ZUMXY4KA.js.map → chunk-22W2XWGH.js.map} +0 -0
- /package/dist/{chunk-PCWXLAJY.js.map → chunk-2PTH4PRL.js.map} +0 -0
- /package/dist/{chunk-ZIZ2G47N.js.map → chunk-2PYHLSXK.js.map} +0 -0
- /package/dist/{chunk-7OAIOE5P.js.map → chunk-33G67YZF.js.map} +0 -0
- /package/dist/{chunk-AV2OQF2O.js.map → chunk-3F3HA3R2.js.map} +0 -0
- /package/dist/{chunk-RP5SJ3XR.js.map → chunk-3GNIJUUE.js.map} +0 -0
- /package/dist/{chunk-QZZPUREO.js.map → chunk-3GYSZHMT.js.map} +0 -0
- /package/dist/{chunk-SWIKABKI.js.map → chunk-3Q3XD3NO.js.map} +0 -0
- /package/dist/{chunk-AL6EHLB5.js.map → chunk-3X3PNU3T.js.map} +0 -0
- /package/dist/{chunk-BTJ6CAIA.js.map → chunk-4IYIGN53.js.map} +0 -0
- /package/dist/{chunk-BZTRPCCH.js.map → chunk-4PDTVVSW.js.map} +0 -0
- /package/dist/{chunk-HM7RHKS4.js.map → chunk-4RNBLLZR.js.map} +0 -0
- /package/dist/{chunk-JUWJYXI4.js.map → chunk-5ATSXCAG.js.map} +0 -0
- /package/dist/{chunk-EHRE7ZG3.js.map → chunk-5B5WYAHQ.js.map} +0 -0
- /package/dist/{chunk-WCGJK4NQ.js.map → chunk-5FNZ3G6X.js.map} +0 -0
- /package/dist/{chunk-Y6DZ33PA.js.map → chunk-5GX5457J.js.map} +0 -0
- /package/dist/{chunk-EMFBC7L3.js.map → chunk-5KGYTX5O.js.map} +0 -0
- /package/dist/{chunk-OFCHT2TN.js.map → chunk-5LRV557D.js.map} +0 -0
- /package/dist/{chunk-DXHVD4DS.js.map → chunk-5SMR542T.js.map} +0 -0
- /package/dist/{chunk-S7LWX2PQ.js.map → chunk-655FVTCD.js.map} +0 -0
- /package/dist/{chunk-DGRMWDQY.js.map → chunk-66BCOVW2.js.map} +0 -0
- /package/dist/{chunk-5MDM7UE4.js.map → chunk-6WGMZQGG.js.map} +0 -0
- /package/dist/{chunk-IPLYGWQF.js.map → chunk-7LCGFUMB.js.map} +0 -0
- /package/dist/{chunk-5ZJYHOJT.js.map → chunk-7VQ6AI7H.js.map} +0 -0
- /package/dist/{chunk-KYY4EACB.js.map → chunk-7Z3DLNSD.js.map} +0 -0
- /package/dist/{chunk-G7NYVKD6.js.map → chunk-B2NXOVZN.js.map} +0 -0
- /package/dist/{chunk-B43NMCGQ.js.map → chunk-BK2BVLZW.js.map} +0 -0
- /package/dist/{chunk-BOOFTFFE.js.map → chunk-C2RW36YR.js.map} +0 -0
- /package/dist/{chunk-5JMI26Q7.js.map → chunk-CBH2Z4UA.js.map} +0 -0
- /package/dist/{chunk-P2S6P7X6.js.map → chunk-CFZ4SXXH.js.map} +0 -0
- /package/dist/{chunk-6M56RFFJ.js.map → chunk-CJRENHVZ.js.map} +0 -0
- /package/dist/{chunk-EGDYVYU7.js.map → chunk-CLWBFR7Q.js.map} +0 -0
- /package/dist/{chunk-6VAHJ2F6.js.map → chunk-DMDWFQMR.js.map} +0 -0
- /package/dist/{chunk-UZSBCQEC.js.map → chunk-DPSOFK4D.js.map} +0 -0
- /package/dist/{chunk-IZT3BVDW.js.map → chunk-DQR2LD3V.js.map} +0 -0
- /package/dist/{chunk-K4QY55XV.js.map → chunk-EH4BQ7LT.js.map} +0 -0
- /package/dist/{chunk-EBA5DA77.js.map → chunk-EOU6V4IN.js.map} +0 -0
- /package/dist/{chunk-7KYJNHGM.js.map → chunk-EUCYTCFP.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-CKUUP64O.js.map → chunk-F2772ATT.js.map} +0 -0
- /package/dist/{chunk-46EST7JO.js.map → chunk-F2XNSIPP.js.map} +0 -0
- /package/dist/{chunk-2KRNPFPK.js.map → chunk-FLI6DEIU.js.map} +0 -0
- /package/dist/{chunk-OAIWPB2I.js.map → chunk-FT4UQYOV.js.map} +0 -0
- /package/dist/{chunk-HYNEDMYJ.js.map → chunk-G2OYFTUD.js.map} +0 -0
- /package/dist/{chunk-XTN54NML.js.map → chunk-G3T6YMBO.js.map} +0 -0
- /package/dist/{chunk-CNG2XVZG.js.map → chunk-G3UUAQOD.js.map} +0 -0
- /package/dist/{chunk-2ZQJLBV6.js.map → chunk-GCVDFX66.js.map} +0 -0
- /package/dist/{chunk-ON4ILX3G.js.map → chunk-GFAM2LTC.js.map} +0 -0
- /package/dist/{chunk-2LUSQV4U.js.map → chunk-GKJJNO7C.js.map} +0 -0
- /package/dist/{chunk-T2YX56QI.js.map → chunk-GQJKVQJR.js.map} +0 -0
- /package/dist/{chunk-5AOAQR37.js.map → chunk-GWVNGDJW.js.map} +0 -0
- /package/dist/{chunk-YDH2FSDI.js.map → chunk-GZXXPCWJ.js.map} +0 -0
- /package/dist/{chunk-5JCLELOP.js.map → chunk-H5IUN433.js.map} +0 -0
- /package/dist/{chunk-IWHEJXR2.js.map → chunk-H6FREOYX.js.map} +0 -0
- /package/dist/{chunk-B7CANWCA.js.map → chunk-HBAOOSHU.js.map} +0 -0
- /package/dist/{chunk-T3FMRLWQ.js.map → chunk-HFSPY26A.js.map} +0 -0
- /package/dist/{chunk-B657ZGDH.js.map → chunk-HQSK2INQ.js.map} +0 -0
- /package/dist/{chunk-RT6D3WN7.js.map → chunk-IJMDBYCO.js.map} +0 -0
- /package/dist/{chunk-CS2JEHTB.js.map → chunk-IUCPLBDS.js.map} +0 -0
- /package/dist/{chunk-XRBHXUTQ.js.map → chunk-IWD33CF4.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-3I3U6FFT.js.map → chunk-K7BN34IA.js.map} +0 -0
- /package/dist/{chunk-4THZGKQ2.js.map → chunk-KLJVTZ3R.js.map} +0 -0
- /package/dist/{chunk-4G4B3Z2B.js.map → chunk-KW4AJ7T3.js.map} +0 -0
- /package/dist/{chunk-ZI7LMSNI.js.map → chunk-LLHZZOIB.js.map} +0 -0
- /package/dist/{chunk-LS2FHUML.js.map → chunk-LQ5SS4OP.js.map} +0 -0
- /package/dist/{chunk-NSFOERZQ.js.map → chunk-LWFWZTWX.js.map} +0 -0
- /package/dist/{chunk-BMWN7B3Y.js.map → chunk-LXATZLSC.js.map} +0 -0
- /package/dist/{chunk-OYKQ6T4V.js.map → chunk-MATDGSJ7.js.map} +0 -0
- /package/dist/{chunk-3NFN4Y4P.js.map → chunk-MGCKZWAE.js.map} +0 -0
- /package/dist/{chunk-O4KYRDRT.js.map → chunk-MJIOGYKX.js.map} +0 -0
- /package/dist/{chunk-6OMUHXHP.js.map → chunk-ML7ZJAKJ.js.map} +0 -0
- /package/dist/{chunk-GKIXBH7Y.js.map → chunk-MO6N4QYY.js.map} +0 -0
- /package/dist/{chunk-A2E4WNW4.js.map → chunk-MWWAQXZ6.js.map} +0 -0
- /package/dist/{chunk-VYPFEVOM.js.map → chunk-NHUX6GXA.js.map} +0 -0
- /package/dist/{chunk-AKREOU5F.js.map → chunk-NZCKG25S.js.map} +0 -0
- /package/dist/{chunk-4NDWE44P.js.map → chunk-NZFFGO5O.js.map} +0 -0
- /package/dist/{chunk-WWSRLS4M.js.map → chunk-O2YPCFJT.js.map} +0 -0
- /package/dist/{chunk-ZSJGYC3C.js.map → chunk-OQJKY3Z5.js.map} +0 -0
- /package/dist/{chunk-OFEHITAZ.js.map → chunk-OXNTOHL6.js.map} +0 -0
- /package/dist/{chunk-FQD2KPQH.js.map → chunk-P55FACBG.js.map} +0 -0
- /package/dist/{chunk-JYZSRNR7.js.map → chunk-PIITB2YZ.js.map} +0 -0
- /package/dist/{chunk-PBVNVKYN.js.map → chunk-PIN5OPBA.js.map} +0 -0
- /package/dist/{chunk-4TTGRETU.js.map → chunk-PRU7OF3Y.js.map} +0 -0
- /package/dist/{chunk-K2FSASGZ.js.map → chunk-PVHQSLNN.js.map} +0 -0
- /package/dist/{chunk-SVDU4OHO.js.map → chunk-Q35L7TYB.js.map} +0 -0
- /package/dist/{chunk-5VC7J76U.js.map → chunk-QPH52AZB.js.map} +0 -0
- /package/dist/{chunk-6T42L5FI.js.map → chunk-QS3OLP5I.js.map} +0 -0
- /package/dist/{chunk-P34FDDB5.js.map → chunk-QSEUUQUF.js.map} +0 -0
- /package/dist/{chunk-PAAJWQH5.js.map → chunk-QUMKDRCF.js.map} +0 -0
- /package/dist/{chunk-KZEMFD6E.js.map → chunk-R2H4ZFBJ.js.map} +0 -0
- /package/dist/{chunk-JFVCDEIC.js.map → chunk-RP7PQWZM.js.map} +0 -0
- /package/dist/{chunk-KC46VZR5.js.map → chunk-RTTPBBAN.js.map} +0 -0
- /package/dist/{chunk-ZQ3WU6JO.js.map → chunk-RXFCU3CY.js.map} +0 -0
- /package/dist/{chunk-CBP4HWCL.js.map → chunk-RYYVMZBR.js.map} +0 -0
- /package/dist/{chunk-2NCBDGND.js.map → chunk-SA6GMZJY.js.map} +0 -0
- /package/dist/{chunk-VFTK5WKI.js.map → chunk-STBX5X6B.js.map} +0 -0
- /package/dist/{chunk-WVHRNAXL.js.map → chunk-SWWHIJUJ.js.map} +0 -0
- /package/dist/{chunk-WADSXS4K.js.map → chunk-SX4QDWXK.js.map} +0 -0
- /package/dist/{chunk-WETFW255.js.map → chunk-T7ASDYNK.js.map} +0 -0
- /package/dist/{chunk-XZLWYZ7C.js.map → chunk-THEPGZBM.js.map} +0 -0
- /package/dist/{chunk-YEM7K3KD.js.map → chunk-TMC7HBED.js.map} +0 -0
- /package/dist/{chunk-RWRQ67OR.js.map → chunk-TPNCXSXP.js.map} +0 -0
- /package/dist/{chunk-LZKOVXMX.js.map → chunk-TRMJ6BYC.js.map} +0 -0
- /package/dist/{chunk-A6TVQ3QP.js.map → chunk-UGYUBENJ.js.map} +0 -0
- /package/dist/{chunk-AAM66QCP.js.map → chunk-UZRSI6NX.js.map} +0 -0
- /package/dist/{chunk-XHWJRUVP.js.map → chunk-V3TXIXXY.js.map} +0 -0
- /package/dist/{chunk-2CXQZXWM.js.map → chunk-V4MB5ONM.js.map} +0 -0
- /package/dist/{chunk-UOKPJFO3.js.map → chunk-VNZMZPAC.js.map} +0 -0
- /package/dist/{chunk-FZB4TS2W.js.map → chunk-VPXIKBPX.js.map} +0 -0
- /package/dist/{chunk-CYEK6Z3P.js.map → chunk-VW6VIJOS.js.map} +0 -0
- /package/dist/{chunk-QUA7RLK6.js.map → chunk-W3FVQBGF.js.map} +0 -0
- /package/dist/{chunk-6OQ6N5RP.js.map → chunk-WGTR573G.js.map} +0 -0
- /package/dist/{chunk-W3K3HITK.js.map → chunk-WLT6LTQP.js.map} +0 -0
- /package/dist/{chunk-6Z2AZ4AJ.js.map → chunk-XKRXN63M.js.map} +0 -0
- /package/dist/{chunk-FZVROZKC.js.map → chunk-XVZA6VXC.js.map} +0 -0
- /package/dist/{chunk-DA2INEB5.js.map → chunk-XYGQSDTH.js.map} +0 -0
- /package/dist/{chunk-RBJQYMMT.js.map → chunk-YRULQW5J.js.map} +0 -0
- /package/dist/{chunk-QUNDYIYZ.js.map → chunk-YYEOR4XN.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/{chunk-M7V65M6H.js.map → chunk-ZKHSAMTE.js.map} +0 -0
- /package/dist/{resolution-EKJHREVJ.js.map → dreams-ledger-UCHHRQ4R.js.map} +0 -0
|
@@ -14,13 +14,17 @@ import {
|
|
|
14
14
|
applyTombstoneResurrectionGate,
|
|
15
15
|
buildRetiredFactTombstoneInputs,
|
|
16
16
|
collectRetiredMemoriesForRebuild
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-TRMJ6BYC.js";
|
|
18
18
|
import {
|
|
19
19
|
normalizeQmdResultPath
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-MWWAQXZ6.js";
|
|
21
21
|
import {
|
|
22
22
|
withholdToolScopedFromSharedNamespace
|
|
23
23
|
} from "./chunk-S2V7RUCL.js";
|
|
24
|
+
import {
|
|
25
|
+
isMalformedEntityRecord,
|
|
26
|
+
isPopulatedUnnamedEntityRecord
|
|
27
|
+
} from "./chunk-PPUNC7UX.js";
|
|
24
28
|
import {
|
|
25
29
|
parseOfflineSyncDigestCache
|
|
26
30
|
} from "./chunk-X3724WL4.js";
|
|
@@ -31,6 +35,9 @@ import {
|
|
|
31
35
|
import {
|
|
32
36
|
createMemorySnapshot
|
|
33
37
|
} from "./chunk-S2HLHAZ4.js";
|
|
38
|
+
import {
|
|
39
|
+
rotateMarkdownFileToArchive
|
|
40
|
+
} from "./chunk-DM2T26WE.js";
|
|
34
41
|
import {
|
|
35
42
|
closeContinuityIncidentRecord,
|
|
36
43
|
createContinuityIncidentRecord,
|
|
@@ -41,30 +48,26 @@ import {
|
|
|
41
48
|
upsertContinuityLoopInMarkdown
|
|
42
49
|
} from "./chunk-LDXUBPMO.js";
|
|
43
50
|
import {
|
|
44
|
-
|
|
45
|
-
|
|
51
|
+
parseFaithfulnessField,
|
|
52
|
+
serializeFaithfulnessFields
|
|
53
|
+
} from "./chunk-2DT7PIDZ.js";
|
|
46
54
|
import {
|
|
47
55
|
parseProvenanceSources,
|
|
48
56
|
parseProvenanceTag,
|
|
49
57
|
reconcileProvenanceRead,
|
|
50
58
|
serializeProvenanceFields
|
|
51
59
|
} from "./chunk-FF6N7BXC.js";
|
|
52
|
-
import {
|
|
53
|
-
parseFaithfulnessField,
|
|
54
|
-
serializeFaithfulnessFields
|
|
55
|
-
} from "./chunk-2DT7PIDZ.js";
|
|
56
60
|
import {
|
|
57
61
|
CasRevisionHost,
|
|
58
62
|
DeletionRevisionStore,
|
|
59
63
|
TombstoneBlockedCaptureIndexHost,
|
|
60
|
-
buildCapturePathLockIdentity,
|
|
61
|
-
buildExplicitCaptureDedupKey,
|
|
62
64
|
invalidationCommitFingerprint,
|
|
63
|
-
isQueuedReviewMemory,
|
|
64
65
|
parseTombstoneBlockedOfflineSyncMemory,
|
|
65
|
-
tombstoneBlocked,
|
|
66
66
|
withCasCommitReceipt
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-JNIVZNIB.js";
|
|
68
|
+
import {
|
|
69
|
+
normalizeEntityName
|
|
70
|
+
} from "./chunk-YXZG5TVN.js";
|
|
68
71
|
import {
|
|
69
72
|
matchEntitySchemaSection,
|
|
70
73
|
normalizeEntityStructuredSection,
|
|
@@ -83,17 +86,18 @@ import {
|
|
|
83
86
|
normalizeProjectionTags
|
|
84
87
|
} from "./chunk-SCU65EZI.js";
|
|
85
88
|
import {
|
|
86
|
-
|
|
87
|
-
} from "./chunk-
|
|
89
|
+
checkCorpusReadAbort
|
|
90
|
+
} from "./chunk-6MKLMEBE.js";
|
|
88
91
|
import {
|
|
89
92
|
detectLanguageHint
|
|
90
93
|
} from "./chunk-3WU7XOFN.js";
|
|
91
94
|
import {
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
isConsolidationOperator,
|
|
96
|
+
isValidDerivedFromEntry
|
|
97
|
+
} from "./chunk-G7D6GZ5J.js";
|
|
94
98
|
import {
|
|
95
99
|
createVersion
|
|
96
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-3GYSZHMT.js";
|
|
97
101
|
import {
|
|
98
102
|
attachInFlightReader,
|
|
99
103
|
beginCoalescedScan,
|
|
@@ -115,7 +119,7 @@ import {
|
|
|
115
119
|
requestEntityCanonicalIdReconcileSync,
|
|
116
120
|
resolveHistoricalEntityCanonicalId,
|
|
117
121
|
withEntityCanonicalMutationLock
|
|
118
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-NZFFGO5O.js";
|
|
119
123
|
import {
|
|
120
124
|
computeSupersessionKey,
|
|
121
125
|
normalizeSupersessionKey,
|
|
@@ -125,12 +129,11 @@ import {
|
|
|
125
129
|
entityMentionEpoch
|
|
126
130
|
} from "./chunk-7CT3AI52.js";
|
|
127
131
|
import {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
} from "./chunk-23G5P7TA.js";
|
|
132
|
+
buildCapturePathLockIdentity,
|
|
133
|
+
buildExplicitCaptureDedupKey,
|
|
134
|
+
isQueuedReviewMemory,
|
|
135
|
+
tombstoneBlocked
|
|
136
|
+
} from "./chunk-6EDW54SQ.js";
|
|
134
137
|
import {
|
|
135
138
|
clearMemoryCache,
|
|
136
139
|
getCachedEntities,
|
|
@@ -144,6 +147,9 @@ import {
|
|
|
144
147
|
updateCacheOnDelete,
|
|
145
148
|
updateCacheOnWrite
|
|
146
149
|
} from "./chunk-C64XATK7.js";
|
|
150
|
+
import {
|
|
151
|
+
parseOriginClass
|
|
152
|
+
} from "./chunk-23G5P7TA.js";
|
|
147
153
|
import {
|
|
148
154
|
selectArtifactMatches
|
|
149
155
|
} from "./chunk-Z7L72ZHL.js";
|
|
@@ -156,12 +162,12 @@ import {
|
|
|
156
162
|
import {
|
|
157
163
|
SPECULATIVE_TTL_DAYS,
|
|
158
164
|
confidenceTier
|
|
159
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-3MO4LWYU.js";
|
|
160
166
|
import {
|
|
161
167
|
composeMemoryEnvelope,
|
|
162
168
|
isSealedMemoryEnvelope,
|
|
163
169
|
sealedWriteToLegacyArgs
|
|
164
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-5LRV557D.js";
|
|
165
171
|
import {
|
|
166
172
|
DEFAULT_CITATION_FORMAT,
|
|
167
173
|
hasCitationForTemplate,
|
|
@@ -182,7 +188,7 @@ import {
|
|
|
182
188
|
readMemoryActionEventRowsFromLines,
|
|
183
189
|
readProjectionRebuiltAt,
|
|
184
190
|
serializeLifecycleAppendPayload
|
|
185
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-P55FACBG.js";
|
|
186
192
|
import {
|
|
187
193
|
assertMemoryFrontmatterId,
|
|
188
194
|
warnProjectionFallback
|
|
@@ -211,7 +217,7 @@ import {
|
|
|
211
217
|
CONTENT_HASH_INDEX_RETRY_MAX_DELAY_MS,
|
|
212
218
|
ContentHashIndex,
|
|
213
219
|
FactHashIndexNotAuthoritativeError
|
|
214
|
-
} from "./chunk-
|
|
220
|
+
} from "./chunk-DEY7B77Y.js";
|
|
215
221
|
import {
|
|
216
222
|
computeLegacyContentHash
|
|
217
223
|
} from "./chunk-5FVVY2EB.js";
|
|
@@ -225,7 +231,7 @@ import {
|
|
|
225
231
|
} from "./chunk-5GKPFL3S.js";
|
|
226
232
|
import {
|
|
227
233
|
withHeldFileLock
|
|
228
|
-
} from "./chunk-
|
|
234
|
+
} from "./chunk-5B5WYAHQ.js";
|
|
229
235
|
import {
|
|
230
236
|
parseFlexibleIsoTimestamp
|
|
231
237
|
} from "./chunk-P7FMDTKL.js";
|
|
@@ -239,6 +245,11 @@ import {
|
|
|
239
245
|
isAbortError,
|
|
240
246
|
raceAbort
|
|
241
247
|
} from "./chunk-BTTPKDIL.js";
|
|
248
|
+
import {
|
|
249
|
+
isMacOsReplicationJunkBasename,
|
|
250
|
+
warnIgnoredMacOsReplicationJunk,
|
|
251
|
+
withoutMacOsReplicationJunk
|
|
252
|
+
} from "./chunk-QUIRIG2P.js";
|
|
242
253
|
import {
|
|
243
254
|
isPathInsideStorageRoot,
|
|
244
255
|
resolveSafeStoragePath
|
|
@@ -267,10 +278,10 @@ import {
|
|
|
267
278
|
|
|
268
279
|
// src/storage.ts
|
|
269
280
|
import {
|
|
270
|
-
lstat as
|
|
281
|
+
lstat as lstat4,
|
|
271
282
|
readdir as readdir6,
|
|
272
283
|
readFile as readFile2,
|
|
273
|
-
realpath as
|
|
284
|
+
realpath as realpath4,
|
|
274
285
|
stat as stat3,
|
|
275
286
|
writeFile as writeFile2,
|
|
276
287
|
mkdir,
|
|
@@ -436,6 +447,12 @@ function isPropagatableReadError(err) {
|
|
|
436
447
|
const code = err.code;
|
|
437
448
|
return typeof code === "string" && code !== "ENOENT";
|
|
438
449
|
}
|
|
450
|
+
function isStoreEntityMarkdown(baseDir, filePath) {
|
|
451
|
+
if (!filePath.endsWith(".md")) return false;
|
|
452
|
+
const relative2 = path3.relative(baseDir, filePath);
|
|
453
|
+
if (relative2.length === 0 || relative2.startsWith("..") || path3.isAbsolute(relative2)) return false;
|
|
454
|
+
return relative2.split(path3.sep)[0] === "entities";
|
|
455
|
+
}
|
|
439
456
|
var MemoryReadStore = class {
|
|
440
457
|
constructor(deps) {
|
|
441
458
|
this.deps = deps;
|
|
@@ -453,7 +470,7 @@ var MemoryReadStore = class {
|
|
|
453
470
|
} else {
|
|
454
471
|
try {
|
|
455
472
|
const entries = await readdir(this.deps.wearablesDir, { withFileTypes: true });
|
|
456
|
-
sources = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name);
|
|
473
|
+
sources = entries.filter((entry) => entry.isDirectory() && !isMacOsReplicationJunkBasename(entry.name)).map((entry) => entry.name);
|
|
457
474
|
} catch (err) {
|
|
458
475
|
if (err.code === "ENOENT") return [];
|
|
459
476
|
throw err;
|
|
@@ -469,7 +486,7 @@ var MemoryReadStore = class {
|
|
|
469
486
|
throw err;
|
|
470
487
|
}
|
|
471
488
|
for (const entry of entries) {
|
|
472
|
-
if (!entry.endsWith(".md")) continue;
|
|
489
|
+
if (isMacOsReplicationJunkBasename(entry) || !entry.endsWith(".md")) continue;
|
|
473
490
|
const date = entry.slice(0, -3);
|
|
474
491
|
if (!isValidTranscriptDate(date)) continue;
|
|
475
492
|
days.push({ source, date });
|
|
@@ -496,6 +513,7 @@ var MemoryReadStore = class {
|
|
|
496
513
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
497
514
|
for (const entry of entries) {
|
|
498
515
|
checkCorpusReadAbort(options);
|
|
516
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
499
517
|
const fullPath = path3.join(dir, entry.name);
|
|
500
518
|
if (entry.isDirectory()) {
|
|
501
519
|
await readDir(fullPath);
|
|
@@ -575,6 +593,7 @@ var MemoryReadStore = class {
|
|
|
575
593
|
for (const entry of entries) {
|
|
576
594
|
checkCorpusReadAbort(options);
|
|
577
595
|
if (entry.isSymbolicLink()) continue;
|
|
596
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
578
597
|
const fullPath = path3.join(dir, entry.name);
|
|
579
598
|
if (entry.isDirectory()) {
|
|
580
599
|
subdirs.push(fullPath);
|
|
@@ -706,6 +725,7 @@ var MemoryReadStore = class {
|
|
|
706
725
|
const entries = await readdir(dir, { withFileTypes: true });
|
|
707
726
|
const subdirs = [];
|
|
708
727
|
for (const entry of entries) {
|
|
728
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
709
729
|
const fullPath = path3.join(dir, entry.name);
|
|
710
730
|
if (entry.isDirectory()) {
|
|
711
731
|
subdirs.push(fullPath);
|
|
@@ -730,6 +750,9 @@ var MemoryReadStore = class {
|
|
|
730
750
|
async readMemoryByPath(filePath) {
|
|
731
751
|
try {
|
|
732
752
|
const raw = await readMaybeEncryptedFile(filePath, this.deps._secureStoreKey, this.deps.baseDir);
|
|
753
|
+
if (isStoreEntityMarkdown(this.deps.baseDir, filePath) && isPopulatedUnnamedEntityRecord(raw)) {
|
|
754
|
+
return null;
|
|
755
|
+
}
|
|
733
756
|
const parsed = parseFrontmatter(raw);
|
|
734
757
|
if (parsed) {
|
|
735
758
|
return rememberRawFrontmatter({
|
|
@@ -742,8 +765,7 @@ var MemoryReadStore = class {
|
|
|
742
765
|
content: parsed.content
|
|
743
766
|
}, raw);
|
|
744
767
|
}
|
|
745
|
-
|
|
746
|
-
if (normalizedPath.includes("/entities/") && filePath.endsWith(".md")) {
|
|
768
|
+
if (isStoreEntityMarkdown(this.deps.baseDir, filePath)) {
|
|
747
769
|
const entity = parseEntityFile(raw, this.deps.entitySchemas);
|
|
748
770
|
if (!entity.name) return null;
|
|
749
771
|
const nameWithoutExt = path3.basename(filePath, ".md");
|
|
@@ -929,7 +951,7 @@ var MemoryReadStore = class {
|
|
|
929
951
|
const files = await readdir(this.deps.questionsDir);
|
|
930
952
|
const questions = [];
|
|
931
953
|
for (const file of files) {
|
|
932
|
-
if (!file.endsWith(".md")) continue;
|
|
954
|
+
if (isMacOsReplicationJunkBasename(file) || !file.endsWith(".md")) continue;
|
|
933
955
|
const filePath = path3.join(this.deps.questionsDir, file);
|
|
934
956
|
const raw = await readMaybeEncryptedFile(filePath, this.deps._secureStoreKey, this.deps.baseDir);
|
|
935
957
|
const parsed = this.deps.parseQuestionFile(raw, filePath);
|
|
@@ -1733,13 +1755,15 @@ function selfDeps(self) {
|
|
|
1733
1755
|
}
|
|
1734
1756
|
|
|
1735
1757
|
// src/storage/entity-store.ts
|
|
1736
|
-
import { readdir as readdir2, unlink } from "fs/promises";
|
|
1758
|
+
import { lstat as lstat2, readdir as readdir2, realpath as realpath2, unlink } from "fs/promises";
|
|
1737
1759
|
import path5 from "path";
|
|
1738
1760
|
var EntityStore = class {
|
|
1739
1761
|
constructor(deps) {
|
|
1740
1762
|
this.deps = deps;
|
|
1741
1763
|
}
|
|
1742
1764
|
deps;
|
|
1765
|
+
/** Filename → file identity of the last indexable check. Unchanged files are not reread. */
|
|
1766
|
+
entityIndexableCache = /* @__PURE__ */ new Map();
|
|
1743
1767
|
/** Normalize an entity name using this store's alias table. */
|
|
1744
1768
|
normalizeEntityName(raw, type) {
|
|
1745
1769
|
return normalizeEntityName(raw, type, this.deps.userAliases);
|
|
@@ -1964,12 +1988,121 @@ var EntityStore = class {
|
|
|
1964
1988
|
return "";
|
|
1965
1989
|
}
|
|
1966
1990
|
}
|
|
1967
|
-
/**
|
|
1991
|
+
/**
|
|
1992
|
+
* True when `entities/` is a real directory inside this memory root.
|
|
1993
|
+
* `realpath` on a symlinked root would treat the link target as trusted,
|
|
1994
|
+
* so the check uses `lstat` first and refuses the scan when the root
|
|
1995
|
+
* itself is a symlink.
|
|
1996
|
+
*/
|
|
1997
|
+
async isTrustedEntitiesRoot() {
|
|
1998
|
+
let rootStat;
|
|
1999
|
+
try {
|
|
2000
|
+
rootStat = await lstat2(this.deps.entitiesDir);
|
|
2001
|
+
} catch (err) {
|
|
2002
|
+
if (isErrnoCode(err, "ENOENT")) return false;
|
|
2003
|
+
throw err;
|
|
2004
|
+
}
|
|
2005
|
+
if (rootStat.isSymbolicLink() || !rootStat.isDirectory()) return false;
|
|
2006
|
+
let memoryRoot;
|
|
2007
|
+
let entitiesReal;
|
|
2008
|
+
try {
|
|
2009
|
+
memoryRoot = await realpath2(this.deps.baseDir);
|
|
2010
|
+
entitiesReal = await realpath2(this.deps.entitiesDir);
|
|
2011
|
+
} catch (err) {
|
|
2012
|
+
if (isErrnoCode(err, "ENOENT")) return false;
|
|
2013
|
+
throw err;
|
|
2014
|
+
}
|
|
2015
|
+
return pathIsInside(memoryRoot, entitiesReal);
|
|
2016
|
+
}
|
|
2017
|
+
/**
|
|
2018
|
+
* Entity directory listing with macOS replication junk removed.
|
|
2019
|
+
* One summary warning per directory and count, shared with migration.
|
|
2020
|
+
* A symlinked entities root yields an empty list and is not read.
|
|
2021
|
+
*/
|
|
2022
|
+
async readEntityDirectoryNames() {
|
|
2023
|
+
if (!await this.isTrustedEntitiesRoot()) return [];
|
|
2024
|
+
const entries = await readdir2(this.deps.entitiesDir);
|
|
2025
|
+
const { kept, ignored } = withoutMacOsReplicationJunk(entries, (name) => name);
|
|
2026
|
+
warnIgnoredMacOsReplicationJunk(this.deps.entitiesDir, ignored, (message) => {
|
|
2027
|
+
log.warn(`entity load ${message}`);
|
|
2028
|
+
});
|
|
2029
|
+
return kept;
|
|
2030
|
+
}
|
|
2031
|
+
/**
|
|
2032
|
+
* A directory entry is readable only when it is a regular file.
|
|
2033
|
+
* Symlinks, FIFOs, and devices are skipped before any read. The entities
|
|
2034
|
+
* root is refused separately, before the directory is listed.
|
|
2035
|
+
*/
|
|
2036
|
+
async isContainedRegularEntityFile(file) {
|
|
2037
|
+
const filePath = path5.join(this.deps.entitiesDir, file);
|
|
2038
|
+
let entryStat;
|
|
2039
|
+
try {
|
|
2040
|
+
entryStat = await lstat2(filePath);
|
|
2041
|
+
} catch (err) {
|
|
2042
|
+
if (isErrnoCode(err, "ENOENT")) return false;
|
|
2043
|
+
throw err;
|
|
2044
|
+
}
|
|
2045
|
+
return !entryStat.isSymbolicLink() && entryStat.isFile();
|
|
2046
|
+
}
|
|
2047
|
+
/**
|
|
2048
|
+
* Malformed entity files stay on disk (startup must not relocate them)
|
|
2049
|
+
* and stay out of merge, so a fragment merge cannot delete them.
|
|
2050
|
+
* Unchanged files reuse the previous result so a name listing does not
|
|
2051
|
+
* reread the whole directory on every extraction write.
|
|
2052
|
+
*/
|
|
2053
|
+
async isIndexableEntityMarkdown(file) {
|
|
2054
|
+
const filePath = path5.join(this.deps.entitiesDir, file);
|
|
2055
|
+
let entryStat;
|
|
2056
|
+
try {
|
|
2057
|
+
entryStat = await lstat2(filePath);
|
|
2058
|
+
} catch (err) {
|
|
2059
|
+
if (isErrnoCode(err, "ENOENT")) return false;
|
|
2060
|
+
throw err;
|
|
2061
|
+
}
|
|
2062
|
+
if (entryStat.isSymbolicLink() || !entryStat.isFile()) return false;
|
|
2063
|
+
const identity = `${entryStat.dev}:${entryStat.ino}:${entryStat.mtimeMs}:${entryStat.size}`;
|
|
2064
|
+
const cached = this.entityIndexableCache.get(file);
|
|
2065
|
+
if (cached?.identity === identity) return cached.ok;
|
|
2066
|
+
try {
|
|
2067
|
+
const content = await this.deps.readStorageSecureFile(filePath);
|
|
2068
|
+
const parsed = parseEntityFile(content, this.deps.entitySchemas);
|
|
2069
|
+
const ok = parsed.name.trim().length > 0 && parsed.type.trim().length > 0;
|
|
2070
|
+
this.entityIndexableCache.set(file, { identity, ok });
|
|
2071
|
+
return ok;
|
|
2072
|
+
} catch (err) {
|
|
2073
|
+
if (err instanceof SecureStoreLockedError) throw err;
|
|
2074
|
+
if (!isErrnoCode(err, "ENOENT")) throw err;
|
|
2075
|
+
return false;
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
/**
|
|
2079
|
+
* Sorted entity filenames (without .md). Malformed records stay on disk
|
|
2080
|
+
* and are omitted, so extraction, matching, and entity list cannot reuse them.
|
|
2081
|
+
*/
|
|
1968
2082
|
async listEntityNames() {
|
|
1969
2083
|
try {
|
|
1970
|
-
const entries = await
|
|
1971
|
-
|
|
1972
|
-
|
|
2084
|
+
const entries = await this.readEntityDirectoryNames();
|
|
2085
|
+
const mdFiles = entries.filter((e) => e.endsWith(".md"));
|
|
2086
|
+
const names = [];
|
|
2087
|
+
const batchSize = 100;
|
|
2088
|
+
for (let i = 0; i < mdFiles.length; i += batchSize) {
|
|
2089
|
+
const resolved = await Promise.all(mdFiles.slice(i, i + batchSize).map(async (file) => {
|
|
2090
|
+
try {
|
|
2091
|
+
if (!await this.isIndexableEntityMarkdown(file)) return null;
|
|
2092
|
+
} catch (err) {
|
|
2093
|
+
if (err instanceof SecureStoreLockedError) throw err;
|
|
2094
|
+
return null;
|
|
2095
|
+
}
|
|
2096
|
+
return file.slice(0, -3);
|
|
2097
|
+
}));
|
|
2098
|
+
for (const name of resolved) {
|
|
2099
|
+
if (name) names.push(name);
|
|
2100
|
+
}
|
|
2101
|
+
}
|
|
2102
|
+
names.sort();
|
|
2103
|
+
return names;
|
|
2104
|
+
} catch (err) {
|
|
2105
|
+
if (err instanceof SecureStoreLockedError) throw err;
|
|
1973
2106
|
return [];
|
|
1974
2107
|
}
|
|
1975
2108
|
}
|
|
@@ -1981,8 +2114,10 @@ var EntityStore = class {
|
|
|
1981
2114
|
for (const entityName of entityNames) {
|
|
1982
2115
|
const wrote = await withEntityCanonicalMutationLock(stateDir, async () => {
|
|
1983
2116
|
const raw = await this.readEntity(entityName);
|
|
1984
|
-
if (!raw) return false;
|
|
1985
|
-
const
|
|
2117
|
+
if (!raw || isMalformedEntityRecord(raw)) return false;
|
|
2118
|
+
const parsed = parseEntityFile(raw, this.deps.entitySchemas);
|
|
2119
|
+
if (!parsed.name.trim() || !parsed.type.trim()) return false;
|
|
2120
|
+
const serialized = serializeEntityFile(parsed, this.deps.entitySchemas, this.deps.okfConformanceEnabled());
|
|
1986
2121
|
if (raw.trimEnd() === serialized.trimEnd()) return false;
|
|
1987
2122
|
const filePath = this.deps.resolveEntityFilePath(entityName);
|
|
1988
2123
|
if (filePath === null) return false;
|
|
@@ -2055,7 +2190,7 @@ var EntityStore = class {
|
|
|
2055
2190
|
const cached = getCachedEntities(this.deps.baseDir, currentVersion, cacheKey);
|
|
2056
2191
|
if (cached) return cached;
|
|
2057
2192
|
try {
|
|
2058
|
-
const entries = await
|
|
2193
|
+
const entries = await this.readEntityDirectoryNames();
|
|
2059
2194
|
const mdFiles = entries.filter((e) => e.endsWith(".md"));
|
|
2060
2195
|
if (mdFiles.length === 0) return [];
|
|
2061
2196
|
const BATCH_SIZE = 100;
|
|
@@ -2066,6 +2201,7 @@ var EntityStore = class {
|
|
|
2066
2201
|
const results = await Promise.all(
|
|
2067
2202
|
batch.map(async (entry) => {
|
|
2068
2203
|
try {
|
|
2204
|
+
if (!await this.isContainedRegularEntityFile(entry)) return null;
|
|
2069
2205
|
return await this.deps.readStorageSecureFile(path5.join(this.deps.entitiesDir, entry));
|
|
2070
2206
|
} catch (err) {
|
|
2071
2207
|
if (err instanceof SecureStoreLockedError) throw err;
|
|
@@ -2075,7 +2211,10 @@ var EntityStore = class {
|
|
|
2075
2211
|
})
|
|
2076
2212
|
);
|
|
2077
2213
|
for (const content of results) {
|
|
2078
|
-
if (content
|
|
2214
|
+
if (content === null) continue;
|
|
2215
|
+
const entity = parseEntityFile(content, this.deps.entitySchemas);
|
|
2216
|
+
if (!entity.name.trim() || !entity.type.trim()) continue;
|
|
2217
|
+
entities.push(entity);
|
|
2079
2218
|
}
|
|
2080
2219
|
}
|
|
2081
2220
|
checkCorpusReadAbort(options);
|
|
@@ -2148,8 +2287,13 @@ ${rows.join("\n")}
|
|
|
2148
2287
|
async mergeFragmentedEntitiesUnlocked() {
|
|
2149
2288
|
let merged = 0;
|
|
2150
2289
|
try {
|
|
2151
|
-
const entries = await
|
|
2152
|
-
const mdFiles =
|
|
2290
|
+
const entries = await this.readEntityDirectoryNames();
|
|
2291
|
+
const mdFiles = [];
|
|
2292
|
+
for (const file of entries) {
|
|
2293
|
+
if (!file.endsWith(".md")) continue;
|
|
2294
|
+
if (!await this.isIndexableEntityMarkdown(file)) continue;
|
|
2295
|
+
mdFiles.push(file);
|
|
2296
|
+
}
|
|
2153
2297
|
const groups = /* @__PURE__ */ new Map();
|
|
2154
2298
|
for (const file of mdFiles) {
|
|
2155
2299
|
const baseName = file.replace(".md", "");
|
|
@@ -2161,8 +2305,23 @@ ${rows.join("\n")}
|
|
|
2161
2305
|
if (!groups.has(canonical)) groups.set(canonical, []);
|
|
2162
2306
|
groups.get(canonical).push(file);
|
|
2163
2307
|
}
|
|
2308
|
+
const canonicalDestinationOccupied = async (canonicalName, members) => {
|
|
2309
|
+
if (members.includes(canonicalName)) return false;
|
|
2310
|
+
try {
|
|
2311
|
+
await lstat2(path5.join(this.deps.entitiesDir, canonicalName));
|
|
2312
|
+
return true;
|
|
2313
|
+
} catch (err) {
|
|
2314
|
+
if (isErrnoCode(err, "ENOENT")) return false;
|
|
2315
|
+
throw err;
|
|
2316
|
+
}
|
|
2317
|
+
};
|
|
2164
2318
|
for (const [canonical, files] of groups) {
|
|
2165
2319
|
if (files.length <= 1) continue;
|
|
2320
|
+
const canonicalName = `${canonical}.md`;
|
|
2321
|
+
if (await canonicalDestinationOccupied(canonicalName, files)) {
|
|
2322
|
+
log.warn(`skipped entity merge into occupied ${canonicalName}`);
|
|
2323
|
+
continue;
|
|
2324
|
+
}
|
|
2166
2325
|
const mergedEntity = {
|
|
2167
2326
|
name: "",
|
|
2168
2327
|
type: "other",
|
|
@@ -2339,7 +2498,11 @@ ${rows.join("\n")}
|
|
|
2339
2498
|
}
|
|
2340
2499
|
mergedEntity.created = mergedEntity.created || mergedEntity.updated || (/* @__PURE__ */ new Date()).toISOString();
|
|
2341
2500
|
mergedEntity.updated = mergedEntity.updated || (/* @__PURE__ */ new Date()).toISOString();
|
|
2342
|
-
const canonicalPath = path5.join(this.deps.entitiesDir,
|
|
2501
|
+
const canonicalPath = path5.join(this.deps.entitiesDir, canonicalName);
|
|
2502
|
+
if (await canonicalDestinationOccupied(canonicalName, files)) {
|
|
2503
|
+
log.warn(`skipped entity merge into occupied ${canonicalName}`);
|
|
2504
|
+
continue;
|
|
2505
|
+
}
|
|
2343
2506
|
await this.deps.writeStorageSecureFile(canonicalPath, serializeEntityFile(mergedEntity, this.deps.entitySchemas, this.deps.okfConformanceEnabled()));
|
|
2344
2507
|
this.deps.bumpEntityMutationVersion();
|
|
2345
2508
|
for (const file of files) {
|
|
@@ -2520,10 +2683,10 @@ var IdentityContinuityStore = class {
|
|
|
2520
2683
|
import { createHash, randomUUID } from "crypto";
|
|
2521
2684
|
import {
|
|
2522
2685
|
access,
|
|
2523
|
-
lstat as
|
|
2686
|
+
lstat as lstat3,
|
|
2524
2687
|
readFile,
|
|
2525
2688
|
readdir as readdir4,
|
|
2526
|
-
realpath as
|
|
2689
|
+
realpath as realpath3,
|
|
2527
2690
|
rename,
|
|
2528
2691
|
stat as statFile,
|
|
2529
2692
|
unlink as unlink2,
|
|
@@ -2554,7 +2717,7 @@ var EntityCanonicalIdMigrationStateSchema = z.object({
|
|
|
2554
2717
|
async function fingerprintPath(filePath) {
|
|
2555
2718
|
let fileStat;
|
|
2556
2719
|
try {
|
|
2557
|
-
fileStat = await
|
|
2720
|
+
fileStat = await lstat3(filePath);
|
|
2558
2721
|
} catch (error) {
|
|
2559
2722
|
if (!isErrnoCode(error, "ENOENT")) throw error;
|
|
2560
2723
|
}
|
|
@@ -2563,7 +2726,7 @@ async function fingerprintPath(filePath) {
|
|
|
2563
2726
|
async function fingerprintEntityEntries(entitiesDir) {
|
|
2564
2727
|
let names;
|
|
2565
2728
|
try {
|
|
2566
|
-
names = (await readdir4(entitiesDir)).filter((name) => path7.extname(name) === ".md").sort();
|
|
2729
|
+
names = (await readdir4(entitiesDir)).filter((name) => path7.extname(name) === ".md" && !isMacOsReplicationJunkBasename(name)).sort();
|
|
2567
2730
|
} catch (error) {
|
|
2568
2731
|
if (isErrnoCode(error, "ENOENT")) return "missing";
|
|
2569
2732
|
throw error;
|
|
@@ -2572,7 +2735,7 @@ async function fingerprintEntityEntries(entitiesDir) {
|
|
|
2572
2735
|
for (const name of names) {
|
|
2573
2736
|
hash.update(`${name.length}:${name}:`);
|
|
2574
2737
|
try {
|
|
2575
|
-
const entry = await
|
|
2738
|
+
const entry = await lstat3(path7.join(entitiesDir, name), { bigint: true });
|
|
2576
2739
|
hash.update(`${entry.dev}:${entry.ino}:${entry.size}:${entry.mtimeNs}:${entry.ctimeNs}`);
|
|
2577
2740
|
} catch (error) {
|
|
2578
2741
|
if (!isErrnoCode(error, "ENOENT")) throw error;
|
|
@@ -2608,7 +2771,7 @@ async function getFingerprint(baseDir, entitiesDir, getEntityMutationVersion) {
|
|
|
2608
2771
|
async function validateRoots(baseDir, entitiesDir, stateDir, archiveDir) {
|
|
2609
2772
|
let baseStat;
|
|
2610
2773
|
try {
|
|
2611
|
-
baseStat = await
|
|
2774
|
+
baseStat = await lstat3(baseDir);
|
|
2612
2775
|
} catch (error) {
|
|
2613
2776
|
if (isErrnoCode(error, "ENOENT")) return;
|
|
2614
2777
|
throw error;
|
|
@@ -2616,7 +2779,7 @@ async function validateRoots(baseDir, entitiesDir, stateDir, archiveDir) {
|
|
|
2616
2779
|
if (baseStat.isSymbolicLink() || !baseStat.isDirectory()) {
|
|
2617
2780
|
throw new Error(`Refusing entity canonical-id migration through unsafe memory root: ${baseDir}.`);
|
|
2618
2781
|
}
|
|
2619
|
-
const memoryRoot = await
|
|
2782
|
+
const memoryRoot = await realpath3(baseDir);
|
|
2620
2783
|
const roots = [
|
|
2621
2784
|
entitiesDir,
|
|
2622
2785
|
stateDir,
|
|
@@ -2627,7 +2790,7 @@ async function validateRoots(baseDir, entitiesDir, stateDir, archiveDir) {
|
|
|
2627
2790
|
for (const root of roots) {
|
|
2628
2791
|
let rootStat;
|
|
2629
2792
|
try {
|
|
2630
|
-
rootStat = await
|
|
2793
|
+
rootStat = await lstat3(root);
|
|
2631
2794
|
} catch (error) {
|
|
2632
2795
|
if (isErrnoCode(error, "ENOENT")) continue;
|
|
2633
2796
|
throw error;
|
|
@@ -2635,7 +2798,7 @@ async function validateRoots(baseDir, entitiesDir, stateDir, archiveDir) {
|
|
|
2635
2798
|
if (rootStat.isSymbolicLink() || !rootStat.isDirectory()) {
|
|
2636
2799
|
throw new Error(`Refusing entity canonical-id migration through unsafe memory root: ${root}.`);
|
|
2637
2800
|
}
|
|
2638
|
-
assertPathInsideRoot(memoryRoot, await
|
|
2801
|
+
assertPathInsideRoot(memoryRoot, await realpath3(root), root);
|
|
2639
2802
|
}
|
|
2640
2803
|
}
|
|
2641
2804
|
function statePath(deps) {
|
|
@@ -2645,7 +2808,7 @@ async function assertSafeMigrationStateFile(deps) {
|
|
|
2645
2808
|
const migrationStatePath = statePath(deps);
|
|
2646
2809
|
let fileStat;
|
|
2647
2810
|
try {
|
|
2648
|
-
fileStat = await
|
|
2811
|
+
fileStat = await lstat3(migrationStatePath);
|
|
2649
2812
|
} catch (error) {
|
|
2650
2813
|
if (isErrnoCode(error, "ENOENT")) return;
|
|
2651
2814
|
throw error;
|
|
@@ -2656,15 +2819,15 @@ async function assertSafeMigrationStateFile(deps) {
|
|
|
2656
2819
|
);
|
|
2657
2820
|
}
|
|
2658
2821
|
const [stateRoot, stateFile] = await Promise.all([
|
|
2659
|
-
|
|
2660
|
-
|
|
2822
|
+
realpath3(deps.stateDir),
|
|
2823
|
+
realpath3(migrationStatePath)
|
|
2661
2824
|
]);
|
|
2662
2825
|
assertPathInsideRoot(stateRoot, stateFile, migrationStatePath);
|
|
2663
2826
|
}
|
|
2664
2827
|
async function assertSafeTombstoneFile(deps, tombstonePath) {
|
|
2665
2828
|
let fileStat;
|
|
2666
2829
|
try {
|
|
2667
|
-
fileStat = await
|
|
2830
|
+
fileStat = await lstat3(tombstonePath);
|
|
2668
2831
|
} catch (error) {
|
|
2669
2832
|
if (isErrnoCode(error, "ENOENT")) return false;
|
|
2670
2833
|
throw error;
|
|
@@ -2675,8 +2838,8 @@ async function assertSafeTombstoneFile(deps, tombstonePath) {
|
|
|
2675
2838
|
);
|
|
2676
2839
|
}
|
|
2677
2840
|
const [stateRoot, tombstoneFile] = await Promise.all([
|
|
2678
|
-
|
|
2679
|
-
|
|
2841
|
+
realpath3(deps.stateDir),
|
|
2842
|
+
realpath3(tombstonePath)
|
|
2680
2843
|
]);
|
|
2681
2844
|
assertPathInsideRoot(stateRoot, tombstoneFile, tombstonePath);
|
|
2682
2845
|
return true;
|
|
@@ -2746,7 +2909,7 @@ async function sameFileIdentity(leftPath, rightPath) {
|
|
|
2746
2909
|
async function assertNotSymlink(filePath, label) {
|
|
2747
2910
|
let stat4;
|
|
2748
2911
|
try {
|
|
2749
|
-
stat4 = await
|
|
2912
|
+
stat4 = await lstat3(filePath);
|
|
2750
2913
|
} catch (error) {
|
|
2751
2914
|
if (isErrnoCode(error, "ENOENT")) return;
|
|
2752
2915
|
throw error;
|
|
@@ -2758,7 +2921,7 @@ async function assertNotSymlink(filePath, label) {
|
|
|
2758
2921
|
async function assertNotMemorySymlink(filePath) {
|
|
2759
2922
|
let stat4;
|
|
2760
2923
|
try {
|
|
2761
|
-
stat4 = await
|
|
2924
|
+
stat4 = await lstat3(filePath);
|
|
2762
2925
|
} catch (error) {
|
|
2763
2926
|
if (isErrnoCode(error, "ENOENT")) return;
|
|
2764
2927
|
throw error;
|
|
@@ -2774,7 +2937,7 @@ async function assertEntityContentUnchanged(deps, filePath, expectedContent, leg
|
|
|
2774
2937
|
}
|
|
2775
2938
|
}
|
|
2776
2939
|
async function readSafeEntityEntries(entitiesDir) {
|
|
2777
|
-
const rootStat = await
|
|
2940
|
+
const rootStat = await lstat3(entitiesDir);
|
|
2778
2941
|
if (rootStat.isSymbolicLink() || !rootStat.isDirectory()) {
|
|
2779
2942
|
throw new Error("Refusing entity canonical-id migration through a symlinked or non-directory entities root.");
|
|
2780
2943
|
}
|
|
@@ -2784,24 +2947,30 @@ async function readSafeEntityEntries(entitiesDir) {
|
|
|
2784
2947
|
}
|
|
2785
2948
|
return entries;
|
|
2786
2949
|
}
|
|
2787
|
-
async function discoverMappings(deps, knownMappings = {}, blocked = /* @__PURE__ */ new Map()) {
|
|
2950
|
+
async function discoverMappings(deps, knownMappings = {}, blocked = /* @__PURE__ */ new Map(), scanNotes) {
|
|
2788
2951
|
const mappings = {};
|
|
2789
2952
|
const canonicalOwners = /* @__PURE__ */ new Map();
|
|
2790
2953
|
blocked.clear();
|
|
2791
2954
|
const entityEntries = await readSafeEntityEntries(deps.entitiesDir);
|
|
2792
2955
|
for (const entry of entityEntries) {
|
|
2956
|
+
if (isMacOsReplicationJunkBasename(entry)) {
|
|
2957
|
+
scanNotes?.junk.add(entry);
|
|
2958
|
+
continue;
|
|
2959
|
+
}
|
|
2793
2960
|
if (!entry.endsWith(".md")) continue;
|
|
2794
2961
|
const legacyId = entry.slice(0, -".md".length);
|
|
2795
2962
|
assertSafeEntityId(legacyId);
|
|
2796
2963
|
const legacyPath = deps.resolveEntityFilePath(legacyId);
|
|
2797
2964
|
if (legacyPath === null) continue;
|
|
2798
2965
|
const entityContent = await deps.readStorageSecureFile(legacyPath);
|
|
2799
|
-
if (
|
|
2800
|
-
|
|
2966
|
+
if (isMalformedEntityRecord(entityContent)) {
|
|
2967
|
+
scanNotes?.malformed.add(entry);
|
|
2968
|
+
continue;
|
|
2801
2969
|
}
|
|
2802
2970
|
const entity = deps.parseEntityFile(entityContent);
|
|
2803
2971
|
if (!entity.name.trim() || !entity.type.trim()) {
|
|
2804
|
-
|
|
2972
|
+
scanNotes?.malformed.add(entry);
|
|
2973
|
+
continue;
|
|
2805
2974
|
}
|
|
2806
2975
|
const canonicalId = deps.normalizeEntityName(entity.name, entity.type);
|
|
2807
2976
|
assertSafeEntityId(canonicalId);
|
|
@@ -2950,12 +3119,14 @@ async function rewriteRelationshipTargets(deps, mappings, refreshLock) {
|
|
|
2950
3119
|
let rewritten = false;
|
|
2951
3120
|
const entries = await readSafeEntityEntries(deps.entitiesDir);
|
|
2952
3121
|
for (const entry of entries) {
|
|
2953
|
-
if (!entry.endsWith(".md")) continue;
|
|
3122
|
+
if (!entry.endsWith(".md") || isMacOsReplicationJunkBasename(entry)) continue;
|
|
2954
3123
|
const entityPath = deps.resolveEntityFilePath(entry.slice(0, -".md".length));
|
|
2955
3124
|
if (entityPath === null) continue;
|
|
2956
3125
|
const observedEntityFingerprint = await fingerprintPath(entityPath);
|
|
2957
3126
|
if (observedEntityFingerprint === "missing") continue;
|
|
2958
|
-
const
|
|
3127
|
+
const entityRaw = await deps.readStorageSecureFile(entityPath);
|
|
3128
|
+
if (isMalformedEntityRecord(entityRaw)) continue;
|
|
3129
|
+
const entity = deps.parseEntityFile(entityRaw);
|
|
2959
3130
|
const relationships = entity.relationships.map((relationship) => {
|
|
2960
3131
|
const target = mappings[relationship.target];
|
|
2961
3132
|
return target ? { ...relationship, target } : relationship;
|
|
@@ -2965,7 +3136,9 @@ async function rewriteRelationshipTargets(deps, mappings, refreshLock) {
|
|
|
2965
3136
|
deps.stateDir,
|
|
2966
3137
|
async (refreshEntityLock) => {
|
|
2967
3138
|
if (!await refreshLock()) throw new Error("Lost entity canonical-id migration lock.");
|
|
2968
|
-
const
|
|
3139
|
+
const latestRaw = await deps.readStorageSecureFile(entityPath);
|
|
3140
|
+
if (isMalformedEntityRecord(latestRaw)) return false;
|
|
3141
|
+
const latestEntity = deps.parseEntityFile(latestRaw);
|
|
2969
3142
|
if (await fingerprintPath(entityPath) !== observedEntityFingerprint) return false;
|
|
2970
3143
|
const latestRelationships = latestEntity.relationships.map((relationship) => {
|
|
2971
3144
|
const target = mappings[relationship.target];
|
|
@@ -3112,6 +3285,9 @@ async function migrateEntityFilePair(deps, legacyId, canonicalId, refreshMigrati
|
|
|
3112
3285
|
const entityContent = await deps.readStorageSecureFile(legacyPath);
|
|
3113
3286
|
await assertNotSymlink(legacyPath, legacyId);
|
|
3114
3287
|
await assertEntityContentUnchanged(deps, legacyPath, entityContent, legacyId);
|
|
3288
|
+
if (isMacOsReplicationJunkBasename(path7.basename(legacyPath)) || isMalformedEntityRecord(entityContent)) {
|
|
3289
|
+
return { deferred: false, progressed: false };
|
|
3290
|
+
}
|
|
3115
3291
|
let canonicalFingerprintAfterWrite = null;
|
|
3116
3292
|
try {
|
|
3117
3293
|
await deps.writeStorageSecureFile(canonicalPath, entityContent, entityEncrypted);
|
|
@@ -3172,6 +3348,7 @@ async function migrateLegacyEntityCanonicalIds(deps) {
|
|
|
3172
3348
|
};
|
|
3173
3349
|
}
|
|
3174
3350
|
const blocked = /* @__PURE__ */ new Map();
|
|
3351
|
+
const scanNotes = { junk: /* @__PURE__ */ new Set(), malformed: /* @__PURE__ */ new Set() };
|
|
3175
3352
|
const staleParked = /* @__PURE__ */ new Map();
|
|
3176
3353
|
const finish = async () => {
|
|
3177
3354
|
if (blocked.size > 0) {
|
|
@@ -3186,6 +3363,15 @@ async function migrateLegacyEntityCanonicalIds(deps) {
|
|
|
3186
3363
|
`entity canonical-id migration dropped ${staleParked.size} mapping(s) whose entity files are gone: ${pairs}. The stale journal entries were removed; references to those legacy ids do not resolve either way.`
|
|
3187
3364
|
);
|
|
3188
3365
|
}
|
|
3366
|
+
warnIgnoredMacOsReplicationJunk(deps.entitiesDir, scanNotes.junk.size, (message) => {
|
|
3367
|
+
log.warn(`entity canonical-id migration ${message}`);
|
|
3368
|
+
});
|
|
3369
|
+
if (scanNotes.malformed.size > 0) {
|
|
3370
|
+
const names = [...scanNotes.malformed].sort().join(", ");
|
|
3371
|
+
log.warn(
|
|
3372
|
+
`entity canonical-id migration skipped ${scanNotes.malformed.size} malformed entity file(s): ${names}. Each file was left in place; startup continues. Fix or remove the file to migrate it.`
|
|
3373
|
+
);
|
|
3374
|
+
}
|
|
3189
3375
|
if (reconcileRequested) {
|
|
3190
3376
|
await unlink2(consumingMarkerPath).catch((error) => {
|
|
3191
3377
|
if (!isErrnoCode(error, "ENOENT")) throw error;
|
|
@@ -3246,7 +3432,7 @@ async function migrateLegacyEntityCanonicalIds(deps) {
|
|
|
3246
3432
|
if (!await lock.refresh()) throw new Error("Lost entity canonical-id migration lock.");
|
|
3247
3433
|
const discoveredBefore = rejectMappingCycles(
|
|
3248
3434
|
state.mappings,
|
|
3249
|
-
await discoverMappings(deps, state.mappings, blocked)
|
|
3435
|
+
await discoverMappings(deps, state.mappings, blocked, scanNotes)
|
|
3250
3436
|
);
|
|
3251
3437
|
const revivedBefore = await pruneBlocked();
|
|
3252
3438
|
const mergedBefore = collapseMappings(mergeDiscoveredMappings(state.mappings, discoveredBefore));
|
|
@@ -3272,7 +3458,7 @@ async function migrateLegacyEntityCanonicalIds(deps) {
|
|
|
3272
3458
|
if (!await lock.refresh()) throw new Error("Lost entity canonical-id migration lock.");
|
|
3273
3459
|
const discoveredAfter2 = rejectMappingCycles(
|
|
3274
3460
|
state.mappings,
|
|
3275
|
-
await discoverMappings(deps, state.mappings, blocked)
|
|
3461
|
+
await discoverMappings(deps, state.mappings, blocked, scanNotes)
|
|
3276
3462
|
);
|
|
3277
3463
|
const revivedInRescan = await pruneBlocked();
|
|
3278
3464
|
if (Object.keys(discoveredAfter2).length === 0 && !revivedInRescan) {
|
|
@@ -3325,7 +3511,7 @@ async function migrateLegacyEntityCanonicalIds(deps) {
|
|
|
3325
3511
|
if (!await lock.refresh()) throw new Error("Lost entity canonical-id migration lock.");
|
|
3326
3512
|
const discoveredAfter = rejectMappingCycles(
|
|
3327
3513
|
state.mappings,
|
|
3328
|
-
await discoverMappings(deps, state.mappings, blocked)
|
|
3514
|
+
await discoverMappings(deps, state.mappings, blocked, scanNotes)
|
|
3329
3515
|
);
|
|
3330
3516
|
const revivedAfterRewrite = await pruneBlocked();
|
|
3331
3517
|
if (Object.keys(discoveredAfter).length === 0 && !revivedAfterRewrite) {
|
|
@@ -5388,6 +5574,7 @@ async function hasSupersessionAudit(lookup, oldMemoryId, newMemoryId, auditBody,
|
|
|
5388
5574
|
throw error;
|
|
5389
5575
|
}
|
|
5390
5576
|
for (const entry of entries) {
|
|
5577
|
+
if (isMacOsReplicationJunkBasename(entry.name)) continue;
|
|
5391
5578
|
if (!entry.isFile() || !entry.name.endsWith(".md")) continue;
|
|
5392
5579
|
const memory = await lookup.readMemoryByPath(path12.join(lookup.correctionsDir, entry.name));
|
|
5393
5580
|
if (memory?.frontmatter.category === "correction" && (memory.frontmatter.sourceMemoryId === oldMemoryId || memory.frontmatter.sourceMemoryId === void 0 && memory.frontmatter.lineage?.includes(oldMemoryId)) && memory.frontmatter.lineage?.includes(newMemoryId) && stripAttributesSuffix(memory.content) === auditBody && (structuredAttributes === void 0 || Object.entries(structuredAttributes).every(
|
|
@@ -7604,8 +7791,8 @@ var StorageManager3 = class _StorageManager extends TombstoneBlockedCaptureIndex
|
|
|
7604
7791
|
readFile: (p) => readMaybeEncryptedFile(p, this._secureStoreKey, this.baseDir),
|
|
7605
7792
|
readDir: (d) => readdir6(d),
|
|
7606
7793
|
deleteFile: (p) => unlink4(p),
|
|
7607
|
-
realpath: (p) =>
|
|
7608
|
-
lstat: (p) =>
|
|
7794
|
+
realpath: (p) => realpath4(p),
|
|
7795
|
+
lstat: (p) => lstat4(p).then((st) => ({ isSymbolicLink: st.isSymbolicLink() }))
|
|
7609
7796
|
});
|
|
7610
7797
|
}
|
|
7611
7798
|
_meetingRecordStore;
|
|
@@ -7622,8 +7809,8 @@ var StorageManager3 = class _StorageManager extends TombstoneBlockedCaptureIndex
|
|
|
7622
7809
|
readFile: (p) => readMaybeEncryptedFile(p, this._secureStoreKey, this.baseDir),
|
|
7623
7810
|
readDir: (d) => readdir6(d),
|
|
7624
7811
|
deleteFile: (p) => unlink4(p),
|
|
7625
|
-
realpath: (p) =>
|
|
7626
|
-
lstat: (p) =>
|
|
7812
|
+
realpath: (p) => realpath4(p),
|
|
7813
|
+
lstat: (p) => lstat4(p).then((st) => ({ isSymbolicLink: st.isSymbolicLink() }))
|
|
7627
7814
|
});
|
|
7628
7815
|
}
|
|
7629
7816
|
/**
|
|
@@ -8172,6 +8359,7 @@ var StorageManager3 = class _StorageManager extends TombstoneBlockedCaptureIndex
|
|
|
8172
8359
|
secureStoreKeyProvider: () => this._secureStoreKey,
|
|
8173
8360
|
secureStoreWriteKeyProvider: () => this.resolveWriteKey(),
|
|
8174
8361
|
lockOptions: () => this.factHashIndexLockOptions,
|
|
8362
|
+
captureLockLimitSource: () => this.captureLockLimitSource(),
|
|
8175
8363
|
parseMemory: (filePath, content) => parseTombstoneBlockedOfflineSyncMemory(
|
|
8176
8364
|
filePath,
|
|
8177
8365
|
content,
|
|
@@ -8184,6 +8372,16 @@ var StorageManager3 = class _StorageManager extends TombstoneBlockedCaptureIndex
|
|
|
8184
8372
|
readAllColdMemories: () => this.readAllColdMemories()
|
|
8185
8373
|
};
|
|
8186
8374
|
}
|
|
8375
|
+
/**
|
|
8376
|
+
* Lock-limit source for tombstone-blocked captures. Undefined until the
|
|
8377
|
+
* converge path installs capture-lock limits, so an ordinary capture
|
|
8378
|
+
* resolves to the legacy short bounds instead of the converge deadline.
|
|
8379
|
+
*/
|
|
8380
|
+
captureLockLimitSource() {
|
|
8381
|
+
const options = this.factHashIndexLockOptions;
|
|
8382
|
+
const keys = ["captureWriteLockInitialDelayMs", "captureWriteLockMaxDelayMs", "captureWriteLockDeadlineMs", "captureWriteLockSignal"];
|
|
8383
|
+
return keys.some((key) => options[key] !== void 0) ? options : void 0;
|
|
8384
|
+
}
|
|
8187
8385
|
async getFactHashIndex() {
|
|
8188
8386
|
if (this.factHashIndex) {
|
|
8189
8387
|
return this.factHashIndex;
|
|
@@ -9412,7 +9610,7 @@ ${sanitized.text}
|
|
|
9412
9610
|
const root = this.archiveDir;
|
|
9413
9611
|
const readDir = async (dir) => {
|
|
9414
9612
|
try {
|
|
9415
|
-
const entries = await readdir6(dir, { withFileTypes: true });
|
|
9613
|
+
const entries = (await readdir6(dir, { withFileTypes: true })).filter((e) => !isMacOsReplicationJunkBasename(e.name));
|
|
9416
9614
|
for (const entry of entries) {
|
|
9417
9615
|
checkCorpusReadAbort(options);
|
|
9418
9616
|
const fullPath = path13.join(dir, entry.name);
|
|
@@ -11182,7 +11380,7 @@ ${current.content}
|
|
|
11182
11380
|
const files = await readdir6(this.summariesDir);
|
|
11183
11381
|
const summaries = [];
|
|
11184
11382
|
for (const file of files) {
|
|
11185
|
-
if (!file.endsWith(".json")) continue;
|
|
11383
|
+
if (isMacOsReplicationJunkBasename(file) || !file.endsWith(".json")) continue;
|
|
11186
11384
|
const filePath = path13.join(this.summariesDir, file);
|
|
11187
11385
|
const raw = await this.readStorageSecureFile(filePath);
|
|
11188
11386
|
summaries.push(JSON.parse(raw));
|
|
@@ -11381,4 +11579,4 @@ export {
|
|
|
11381
11579
|
isValidBufferSurpriseEvent,
|
|
11382
11580
|
StorageManager3 as StorageManager
|
|
11383
11581
|
};
|
|
11384
|
-
//# sourceMappingURL=chunk-
|
|
11582
|
+
//# sourceMappingURL=chunk-4SCZZ3U7.js.map
|