@remnic/core 9.3.683 → 9.3.685
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-boundary.d.ts +5 -4
- package/dist/access-boundary.js +27 -26
- package/dist/access-cli.js +75 -75
- package/dist/access-http.d.ts +5 -4
- package/dist/access-http.js +32 -31
- package/dist/access-mcp.d.ts +5 -4
- package/dist/access-mcp.js +29 -28
- package/dist/access-operations.d.ts +5 -4
- package/dist/access-operations.js +28 -27
- package/dist/{access-service-DvA6jyHL.d.ts → access-service-DeKrlYU_.d.ts} +2 -11
- package/dist/access-service.d.ts +5 -4
- package/dist/access-service.js +26 -25
- package/dist/access-surface-catalog.d.ts +5 -4
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +3 -3
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/{auto-sync-5CJBJMPZ.js → auto-sync-NUQWSFQD.js} +7 -7
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -3
- package/dist/bootstrap.js +2 -2
- package/dist/boxes.js +2 -2
- package/dist/briefing.d.ts +1 -1
- package/dist/briefing.js +5 -4
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer.d.ts +1 -1
- package/dist/buffer.js +2 -2
- package/dist/calibration.d.ts +1 -1
- package/dist/calibration.js +4 -4
- package/dist/capabilities.d.ts +1 -1
- package/dist/catalog-COqWZlZ6.d.ts +456 -0
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-behavior.js +4 -4
- package/dist/causal-chain.js +4 -4
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +13 -12
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +4 -4
- package/dist/causal-trajectory-graph.js +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-UJDV2NLT.js → chunk-2KAYTPPT.js} +12 -12
- package/dist/{chunk-QUA2JPH2.js → chunk-2SJCWLQD.js} +3 -3
- package/dist/{chunk-YTWNKQ2G.js → chunk-3FC6LW6T.js} +2 -2
- package/dist/{chunk-I75DF4FZ.js → chunk-4FE2K57M.js} +3 -3
- package/dist/{chunk-L5MUA6Q7.js → chunk-4N3TFFPH.js} +2 -2
- package/dist/{chunk-BTVX7ZXZ.js → chunk-4NFVPDIL.js} +4 -4
- package/dist/{chunk-OUWAQVDJ.js → chunk-5CEJH5ZN.js} +2 -2
- package/dist/{chunk-IUZWBCJX.js → chunk-6GJS4BFH.js} +10 -7
- package/dist/chunk-6GJS4BFH.js.map +1 -0
- package/dist/{chunk-UAODC6GJ.js → chunk-6O6A6YUO.js} +4 -4
- package/dist/{chunk-HQ6NIBL6.js → chunk-7FL4CNPV.js} +2 -2
- package/dist/{chunk-5VDJMYTF.js → chunk-7WWURLG6.js} +3 -3
- package/dist/{chunk-QWRC7GIO.js → chunk-A4HH2EWA.js} +5 -5
- package/dist/{chunk-4SKKVWLQ.js → chunk-AGJH5ISO.js} +2 -2
- package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
- package/dist/{chunk-I3HSKQT7.js → chunk-B43NZNMG.js} +68 -106
- package/dist/chunk-B43NZNMG.js.map +1 -0
- package/dist/{chunk-NQMBSSWW.js → chunk-B4XVLHJA.js} +3 -3
- package/dist/{chunk-GSTYVG5L.js → chunk-BFVPIKDY.js} +3 -3
- package/dist/{chunk-TY5NT3T3.js → chunk-BLIWOONZ.js} +51 -43
- package/dist/chunk-BLIWOONZ.js.map +1 -0
- package/dist/{chunk-AJU4PJGY.js → chunk-BVKCV2ZY.js} +2 -2
- package/dist/{chunk-QVWM4C24.js → chunk-BZISAF67.js} +9 -10
- package/dist/chunk-BZISAF67.js.map +1 -0
- package/dist/{chunk-EG4TCVMU.js → chunk-CTOQEZSN.js} +2 -2
- package/dist/{chunk-7OGJQP7T.js → chunk-DCWIQFNA.js} +4 -4
- package/dist/{chunk-MHQC2WU2.js → chunk-DKTSR7EK.js} +2 -2
- package/dist/{chunk-RN7MUWON.js → chunk-EHISUJFN.js} +2 -2
- package/dist/{chunk-WLEB7WCG.js → chunk-EO5QWINU.js} +2 -2
- package/dist/{chunk-XKXKSQU7.js → chunk-EXM3CQTZ.js} +2 -2
- package/dist/{chunk-TOQEZ63C.js → chunk-FE6DQUNJ.js} +9 -9
- package/dist/{chunk-LCC5EZTT.js → chunk-FIVDN2SM.js} +4 -4
- package/dist/{chunk-452WDNFO.js → chunk-GG6AJN7A.js} +2 -2
- package/dist/{chunk-O2WELT5C.js → chunk-GS55WYRL.js} +3 -3
- package/dist/{chunk-OHX52AOS.js → chunk-GTDH3IUH.js} +2 -2
- package/dist/{chunk-IBTZEBUD.js → chunk-HYNHLBKA.js} +2 -2
- package/dist/{chunk-V254FAT5.js → chunk-IIDSFFE5.js} +2 -2
- package/dist/{chunk-EVWIEEKZ.js → chunk-IQ7WCZRW.js} +2 -2
- package/dist/{chunk-B5XMS73R.js → chunk-IQVQJJL7.js} +2 -2
- package/dist/{chunk-M4I3TREG.js → chunk-JPCKLFWK.js} +29 -30
- package/dist/{chunk-M4I3TREG.js.map → chunk-JPCKLFWK.js.map} +1 -1
- package/dist/{chunk-6RHNCKHG.js → chunk-K43PI6DQ.js} +2 -2
- package/dist/{chunk-OIF36KGD.js → chunk-KCQA46NR.js} +2 -2
- package/dist/{chunk-2LDBXPLB.js → chunk-KF74X62T.js} +1 -1
- package/dist/{chunk-MAV46GWQ.js → chunk-KYYL4U6X.js} +2 -2
- package/dist/{chunk-6GC5SGFE.js → chunk-L24JROPR.js} +2 -2
- package/dist/{chunk-6VP3YUCS.js → chunk-LLONI6PY.js} +2 -2
- package/dist/{chunk-Q5ZU3RNY.js → chunk-LQ6JI4VH.js} +2 -2
- package/dist/{chunk-ODWI5XU2.js → chunk-MCQDSY4G.js} +3 -3
- package/dist/{chunk-HP5FMB6L.js → chunk-MDJURR27.js} +2 -2
- package/dist/{chunk-FMSDA2D3.js → chunk-NGFEWFNK.js} +1 -1
- package/dist/chunk-NGFEWFNK.js.map +1 -0
- package/dist/{chunk-2ODBA7MQ.js → chunk-NU3CSQ4H.js} +5 -5
- package/dist/chunk-NU3CSQ4H.js.map +1 -0
- package/dist/{chunk-T2PO5MUF.js → chunk-O7GOFAM3.js} +2 -2
- package/dist/{chunk-Z2OXSMZK.js → chunk-OBXTMFZQ.js} +3 -3
- package/dist/{chunk-FDSOMA6M.js → chunk-OFUULUSY.js} +8 -9
- package/dist/{chunk-FDSOMA6M.js.map → chunk-OFUULUSY.js.map} +1 -1
- package/dist/{chunk-KV6CX4ON.js → chunk-OV4D5T7V.js} +3 -3
- package/dist/{chunk-KACIOX42.js → chunk-PH3HOKYW.js} +2 -2
- package/dist/{chunk-NHFXF4ZO.js → chunk-PK6RGRSD.js} +2 -2
- package/dist/{chunk-C3IW2F5Z.js → chunk-PLBIPT6I.js} +2 -2
- package/dist/{chunk-QY7YA7OL.js → chunk-PNLCEFE4.js} +2 -2
- package/dist/{chunk-AGRPGAKR.js → chunk-PONNZ54D.js} +2 -2
- package/dist/{chunk-XZ4WBBB5.js → chunk-PWFWCGOO.js} +2 -2
- package/dist/{chunk-G7Z3C2X6.js → chunk-QANVLERJ.js} +4 -4
- package/dist/{chunk-W4RVMTHR.js → chunk-QRDOSYOR.js} +2 -2
- package/dist/{chunk-6IMKOIZ6.js → chunk-R6OVFAX6.js} +2 -2
- package/dist/{chunk-2QSZNTDO.js → chunk-RKNJBZ55.js} +4 -4
- package/dist/{chunk-JOASJWQR.js → chunk-SANZHXY2.js} +2 -2
- package/dist/{chunk-7DTASS5T.js → chunk-SJHM6I4J.js} +2 -2
- package/dist/{chunk-H4BDNIKQ.js → chunk-SQGPGC76.js} +14 -24
- package/dist/{chunk-H4BDNIKQ.js.map → chunk-SQGPGC76.js.map} +1 -1
- package/dist/{chunk-B2B2IHUH.js → chunk-STOEE37X.js} +4 -4
- package/dist/{chunk-GKKAXVAJ.js → chunk-U33LWTQQ.js} +1 -7
- package/dist/chunk-U33LWTQQ.js.map +1 -0
- package/dist/{chunk-GNAMDNGT.js → chunk-U7D7NP4J.js} +5 -5
- package/dist/{chunk-DRD2Q7HQ.js → chunk-UFS7OXGL.js} +2 -2
- package/dist/{chunk-H3HDXD3U.js → chunk-UPTZYUYJ.js} +2 -2
- package/dist/{chunk-3IND7N4X.js → chunk-UTYBJR7M.js} +2 -2
- package/dist/{chunk-LN4YGHTM.js → chunk-UUH4YQOF.js} +2 -2
- package/dist/{chunk-6VF75M3X.js → chunk-VGUOEDTU.js} +2 -2
- package/dist/{chunk-44VFF3BB.js → chunk-VILEUJXC.js} +2 -2
- package/dist/{chunk-7SI52C65.js → chunk-VL7DP3OW.js} +2 -2
- package/dist/{chunk-7DHTMOND.js → chunk-VQ34TERH.js} +2 -2
- package/dist/{chunk-H6PMGMNP.js → chunk-VX6OBUDW.js} +2 -2
- package/dist/{chunk-EW5KFXHL.js → chunk-WDXCNJSF.js} +7 -7
- package/dist/{chunk-ARLRTZZZ.js → chunk-WIHPNY65.js} +79 -3
- package/dist/chunk-WIHPNY65.js.map +1 -0
- package/dist/{chunk-X6IRLNOO.js → chunk-WIWPSQYU.js} +2 -2
- package/dist/{chunk-DOCTITOP.js → chunk-WRFKZEO6.js} +2 -2
- package/dist/{chunk-E6ZDCOHM.js → chunk-XBZQRZ6G.js} +2 -2
- package/dist/{chunk-7YX23JBA.js → chunk-XHYGJVXL.js} +2 -2
- package/dist/{chunk-JD4SCARD.js → chunk-YN4ZT4CW.js} +1 -1
- package/dist/{chunk-YXWAILM4.js → chunk-YOI3ELXF.js} +2 -2
- package/dist/{chunk-XCAZF7KQ.js → chunk-ZA2S2VLL.js} +2 -2
- package/dist/{chunk-BEUDU7Y4.js → chunk-ZCWIH4LH.js} +2 -2
- package/dist/chunk-ZPQVJEVQ.js +184 -0
- package/dist/chunk-ZPQVJEVQ.js.map +1 -0
- package/dist/{chunk-WEPMT6SC.js → chunk-ZPTISBQU.js} +8 -8
- package/dist/{cli-feUe-x3I.d.ts → cli-D3-Q5Uod.d.ts} +3 -3
- package/dist/cli.d.ts +6 -5
- package/dist/cli.js +54 -54
- package/dist/compounding/engine.d.ts +1 -1
- package/dist/compounding/engine.js +6 -5
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compounding/preference-consolidator.js +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +3 -3
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +6 -5
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/codex-materialize.js +2 -2
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +9 -9
- package/dist/consolidation-provenance-check.d.ts +1 -1
- package/dist/consolidation-undo.d.ts +1 -1
- package/dist/contradiction/index.d.ts +1 -1
- package/dist/contradiction/index.js +3 -3
- package/dist/{contradiction-scan-AZTGFMPY.js → contradiction-scan-HWGEOUDS.js} +3 -3
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/backend.js +5 -5
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/cleanup.js +2 -2
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.js +2 -2
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/indexer.js +2 -2
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/conversation-index/search.js +2 -2
- package/dist/day-summary.d.ts +1 -1
- package/dist/day-summary.js +2 -2
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/embedding-fallback.js +2 -2
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +1 -1
- package/dist/entity-retrieval.js +7 -5
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +4 -3
- package/dist/explicit-capture.js +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-telemetry.js +2 -2
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge-training.js +2 -2
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction-judge.js +5 -5
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +9 -9
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/fallback-llm.js +4 -4
- package/dist/{first-start-migration-FF7YFGRP.js → first-start-migration-PG5HBC3K.js} +4 -4
- package/dist/{graph-edge-decay-KSVJGCZW.js → graph-edge-decay-D7OESCBR.js} +2 -2
- package/dist/graph-snapshot.js +2 -2
- package/dist/graph.js +1 -1
- package/dist/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.js +112 -112
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/archive.js +2 -2
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +5 -5
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +8 -8
- package/dist/lcm/schema.js +2 -2
- package/dist/lcm/summarizer.js +3 -3
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/local-llm.js +2 -2
- package/dist/logger.js +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +6 -4
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +6 -4
- package/dist/maintenance/rebuild-memory-projection.js +8 -6
- package/dist/mcp-memory-inspector-app.d.ts +5 -4
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +1 -1
- package/dist/model-registry.js +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/models-json.js +2 -2
- package/dist/namespaces/migrate.d.ts +2 -1
- package/dist/namespaces/migrate.js +18 -17
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +13 -13
- package/dist/namespaces/storage.d.ts +43 -2
- package/dist/namespaces/storage.js +6 -4
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/native-knowledge.js +2 -2
- package/dist/negative.js +2 -2
- package/dist/operator-toolkit.d.ts +1 -1
- package/dist/operator-toolkit.js +24 -24
- package/dist/{orchestrator-7zPqGupX.d.ts → orchestrator-CA6ouzBn.d.ts} +5 -466
- package/dist/orchestrator.d.ts +4 -3
- package/dist/orchestrator.js +68 -67
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/profiling.js +2 -2
- package/dist/provenance.d.ts +94 -0
- package/dist/provenance.js +17 -0
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +1 -1
- package/dist/qmd.js +2 -2
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +1 -1
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-planner-llm.js +4 -4
- package/dist/recall-qos.js +2 -2
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-state.js +2 -2
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- package/dist/relevance.js +2 -2
- package/dist/{resolution-IDTEBJFS.js → resolution-MN36NW5P.js} +3 -3
- package/dist/resolution-MN36NW5P.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resolve-provider-secret.js +2 -2
- package/dist/resume-bundles.js +5 -5
- package/dist/retrieval-agents.d.ts +1 -1
- package/dist/retrieval-agents.js +2 -2
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/routing/store.js +2 -2
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/embed-helper.js +2 -2
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/factory.js +12 -12
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +14 -14
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/search/remote-backend.js +2 -2
- package/dist/{semantic-consolidation-BX9Z9_aK.d.ts → semantic-consolidation-CWch5uM7.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +7 -6
- package/dist/semantic-rule-promotion.js +6 -4
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +6 -4
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/session-observer-state.js +2 -2
- package/dist/session-transcript-migration.js +2 -2
- package/dist/shared-context/manager.d.ts +1 -1
- package/dist/shared-context/manager.js +2 -2
- package/dist/signal.d.ts +1 -1
- package/dist/storage.d.ts +5 -1
- package/dist/storage.js +5 -3
- package/dist/summarizer.d.ts +1 -1
- package/dist/summarizer.js +7 -7
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.d.ts +1 -1
- package/dist/temporal-supersession.js +2 -2
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/threading.js +2 -2
- package/dist/tier-migration.d.ts +1 -1
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transcript.js +2 -2
- package/dist/transfer/import-sqlite.js +2 -2
- package/dist/{types-D3pm4NhH.d.ts → types-Dm5xxVrr.d.ts} +61 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +7 -5
- package/package.json +2 -2
- package/src/access-http.ts +1 -1
- package/src/access-mcp.ts +1 -1
- package/src/access-service.ts +1 -11
- package/src/cli.ts +1 -1
- package/src/config.test.ts +112 -0
- package/src/config.ts +5 -5
- package/src/explicit-capture.ts +3 -12
- package/src/logger.ts +13 -4
- package/src/namespaces/catalog.test.ts +2 -2
- package/src/namespaces/storage.ts +81 -0
- package/src/orchestrator.ts +22 -64
- package/src/provenance-frontmatter.test.ts +596 -0
- package/src/provenance.ts +305 -0
- package/src/storage.ts +41 -41
- package/src/types.ts +76 -0
- package/dist/chunk-2ODBA7MQ.js.map +0 -1
- package/dist/chunk-ARLRTZZZ.js.map +0 -1
- package/dist/chunk-FMSDA2D3.js.map +0 -1
- package/dist/chunk-GKKAXVAJ.js.map +0 -1
- package/dist/chunk-I3HSKQT7.js.map +0 -1
- package/dist/chunk-IUZWBCJX.js.map +0 -1
- package/dist/chunk-PHK3HARR.js +0 -32
- package/dist/chunk-PHK3HARR.js.map +0 -1
- package/dist/chunk-QVWM4C24.js.map +0 -1
- package/dist/chunk-TY5NT3T3.js.map +0 -1
- /package/dist/{auto-sync-5CJBJMPZ.js.map → auto-sync-NUQWSFQD.js.map} +0 -0
- /package/dist/{chunk-UJDV2NLT.js.map → chunk-2KAYTPPT.js.map} +0 -0
- /package/dist/{chunk-QUA2JPH2.js.map → chunk-2SJCWLQD.js.map} +0 -0
- /package/dist/{chunk-YTWNKQ2G.js.map → chunk-3FC6LW6T.js.map} +0 -0
- /package/dist/{chunk-I75DF4FZ.js.map → chunk-4FE2K57M.js.map} +0 -0
- /package/dist/{chunk-L5MUA6Q7.js.map → chunk-4N3TFFPH.js.map} +0 -0
- /package/dist/{chunk-BTVX7ZXZ.js.map → chunk-4NFVPDIL.js.map} +0 -0
- /package/dist/{chunk-OUWAQVDJ.js.map → chunk-5CEJH5ZN.js.map} +0 -0
- /package/dist/{chunk-UAODC6GJ.js.map → chunk-6O6A6YUO.js.map} +0 -0
- /package/dist/{chunk-HQ6NIBL6.js.map → chunk-7FL4CNPV.js.map} +0 -0
- /package/dist/{chunk-5VDJMYTF.js.map → chunk-7WWURLG6.js.map} +0 -0
- /package/dist/{chunk-QWRC7GIO.js.map → chunk-A4HH2EWA.js.map} +0 -0
- /package/dist/{chunk-4SKKVWLQ.js.map → chunk-AGJH5ISO.js.map} +0 -0
- /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
- /package/dist/{chunk-NQMBSSWW.js.map → chunk-B4XVLHJA.js.map} +0 -0
- /package/dist/{chunk-GSTYVG5L.js.map → chunk-BFVPIKDY.js.map} +0 -0
- /package/dist/{chunk-AJU4PJGY.js.map → chunk-BVKCV2ZY.js.map} +0 -0
- /package/dist/{chunk-EG4TCVMU.js.map → chunk-CTOQEZSN.js.map} +0 -0
- /package/dist/{chunk-7OGJQP7T.js.map → chunk-DCWIQFNA.js.map} +0 -0
- /package/dist/{chunk-MHQC2WU2.js.map → chunk-DKTSR7EK.js.map} +0 -0
- /package/dist/{chunk-RN7MUWON.js.map → chunk-EHISUJFN.js.map} +0 -0
- /package/dist/{chunk-WLEB7WCG.js.map → chunk-EO5QWINU.js.map} +0 -0
- /package/dist/{chunk-XKXKSQU7.js.map → chunk-EXM3CQTZ.js.map} +0 -0
- /package/dist/{chunk-TOQEZ63C.js.map → chunk-FE6DQUNJ.js.map} +0 -0
- /package/dist/{chunk-LCC5EZTT.js.map → chunk-FIVDN2SM.js.map} +0 -0
- /package/dist/{chunk-452WDNFO.js.map → chunk-GG6AJN7A.js.map} +0 -0
- /package/dist/{chunk-O2WELT5C.js.map → chunk-GS55WYRL.js.map} +0 -0
- /package/dist/{chunk-OHX52AOS.js.map → chunk-GTDH3IUH.js.map} +0 -0
- /package/dist/{chunk-IBTZEBUD.js.map → chunk-HYNHLBKA.js.map} +0 -0
- /package/dist/{chunk-V254FAT5.js.map → chunk-IIDSFFE5.js.map} +0 -0
- /package/dist/{chunk-EVWIEEKZ.js.map → chunk-IQ7WCZRW.js.map} +0 -0
- /package/dist/{chunk-B5XMS73R.js.map → chunk-IQVQJJL7.js.map} +0 -0
- /package/dist/{chunk-6RHNCKHG.js.map → chunk-K43PI6DQ.js.map} +0 -0
- /package/dist/{chunk-OIF36KGD.js.map → chunk-KCQA46NR.js.map} +0 -0
- /package/dist/{chunk-2LDBXPLB.js.map → chunk-KF74X62T.js.map} +0 -0
- /package/dist/{chunk-MAV46GWQ.js.map → chunk-KYYL4U6X.js.map} +0 -0
- /package/dist/{chunk-6GC5SGFE.js.map → chunk-L24JROPR.js.map} +0 -0
- /package/dist/{chunk-6VP3YUCS.js.map → chunk-LLONI6PY.js.map} +0 -0
- /package/dist/{chunk-Q5ZU3RNY.js.map → chunk-LQ6JI4VH.js.map} +0 -0
- /package/dist/{chunk-ODWI5XU2.js.map → chunk-MCQDSY4G.js.map} +0 -0
- /package/dist/{chunk-HP5FMB6L.js.map → chunk-MDJURR27.js.map} +0 -0
- /package/dist/{chunk-T2PO5MUF.js.map → chunk-O7GOFAM3.js.map} +0 -0
- /package/dist/{chunk-Z2OXSMZK.js.map → chunk-OBXTMFZQ.js.map} +0 -0
- /package/dist/{chunk-KV6CX4ON.js.map → chunk-OV4D5T7V.js.map} +0 -0
- /package/dist/{chunk-KACIOX42.js.map → chunk-PH3HOKYW.js.map} +0 -0
- /package/dist/{chunk-NHFXF4ZO.js.map → chunk-PK6RGRSD.js.map} +0 -0
- /package/dist/{chunk-C3IW2F5Z.js.map → chunk-PLBIPT6I.js.map} +0 -0
- /package/dist/{chunk-QY7YA7OL.js.map → chunk-PNLCEFE4.js.map} +0 -0
- /package/dist/{chunk-AGRPGAKR.js.map → chunk-PONNZ54D.js.map} +0 -0
- /package/dist/{chunk-XZ4WBBB5.js.map → chunk-PWFWCGOO.js.map} +0 -0
- /package/dist/{chunk-G7Z3C2X6.js.map → chunk-QANVLERJ.js.map} +0 -0
- /package/dist/{chunk-W4RVMTHR.js.map → chunk-QRDOSYOR.js.map} +0 -0
- /package/dist/{chunk-6IMKOIZ6.js.map → chunk-R6OVFAX6.js.map} +0 -0
- /package/dist/{chunk-2QSZNTDO.js.map → chunk-RKNJBZ55.js.map} +0 -0
- /package/dist/{chunk-JOASJWQR.js.map → chunk-SANZHXY2.js.map} +0 -0
- /package/dist/{chunk-7DTASS5T.js.map → chunk-SJHM6I4J.js.map} +0 -0
- /package/dist/{chunk-B2B2IHUH.js.map → chunk-STOEE37X.js.map} +0 -0
- /package/dist/{chunk-GNAMDNGT.js.map → chunk-U7D7NP4J.js.map} +0 -0
- /package/dist/{chunk-DRD2Q7HQ.js.map → chunk-UFS7OXGL.js.map} +0 -0
- /package/dist/{chunk-H3HDXD3U.js.map → chunk-UPTZYUYJ.js.map} +0 -0
- /package/dist/{chunk-3IND7N4X.js.map → chunk-UTYBJR7M.js.map} +0 -0
- /package/dist/{chunk-LN4YGHTM.js.map → chunk-UUH4YQOF.js.map} +0 -0
- /package/dist/{chunk-6VF75M3X.js.map → chunk-VGUOEDTU.js.map} +0 -0
- /package/dist/{chunk-44VFF3BB.js.map → chunk-VILEUJXC.js.map} +0 -0
- /package/dist/{chunk-7SI52C65.js.map → chunk-VL7DP3OW.js.map} +0 -0
- /package/dist/{chunk-7DHTMOND.js.map → chunk-VQ34TERH.js.map} +0 -0
- /package/dist/{chunk-H6PMGMNP.js.map → chunk-VX6OBUDW.js.map} +0 -0
- /package/dist/{chunk-EW5KFXHL.js.map → chunk-WDXCNJSF.js.map} +0 -0
- /package/dist/{chunk-X6IRLNOO.js.map → chunk-WIWPSQYU.js.map} +0 -0
- /package/dist/{chunk-DOCTITOP.js.map → chunk-WRFKZEO6.js.map} +0 -0
- /package/dist/{chunk-E6ZDCOHM.js.map → chunk-XBZQRZ6G.js.map} +0 -0
- /package/dist/{chunk-7YX23JBA.js.map → chunk-XHYGJVXL.js.map} +0 -0
- /package/dist/{chunk-JD4SCARD.js.map → chunk-YN4ZT4CW.js.map} +0 -0
- /package/dist/{chunk-YXWAILM4.js.map → chunk-YOI3ELXF.js.map} +0 -0
- /package/dist/{chunk-XCAZF7KQ.js.map → chunk-ZA2S2VLL.js.map} +0 -0
- /package/dist/{chunk-BEUDU7Y4.js.map → chunk-ZCWIH4LH.js.map} +0 -0
- /package/dist/{chunk-WEPMT6SC.js.map → chunk-ZPTISBQU.js.map} +0 -0
- /package/dist/{contradiction-scan-AZTGFMPY.js.map → contradiction-scan-HWGEOUDS.js.map} +0 -0
- /package/dist/{first-start-migration-FF7YFGRP.js.map → first-start-migration-PG5HBC3K.js.map} +0 -0
- /package/dist/{graph-edge-decay-KSVJGCZW.js.map → graph-edge-decay-D7OESCBR.js.map} +0 -0
- /package/dist/{resolution-IDTEBJFS.js.map → provenance.js.map} +0 -0
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
shouldFilterSupersededFromRecall,
|
|
7
7
|
shouldSupersedeExisting,
|
|
8
8
|
supersessionKeysForFact
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3FC6LW6T.js";
|
|
10
10
|
import "./chunk-MDYG7VI7.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-NU3CSQ4H.js";
|
|
12
12
|
import "./chunk-PZ5AY32C.js";
|
|
13
13
|
export {
|
|
14
14
|
applyTemporalSupersession,
|
package/dist/threading.d.ts
CHANGED
package/dist/threading.js
CHANGED
package/dist/tier-migration.d.ts
CHANGED
package/dist/tier-routing.d.ts
CHANGED
package/dist/topics.d.ts
CHANGED
package/dist/transcript.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PluginConfig, _ as TranscriptEntry, $ as Checkpoint } from './types-
|
|
1
|
+
import { P as PluginConfig, _ as TranscriptEntry, $ as Checkpoint } from './types-Dm5xxVrr.js';
|
|
2
2
|
import { SessionIntegrityReport } from './session-integrity.js';
|
|
3
3
|
import './types-ByK7T3L6.js';
|
|
4
4
|
import './index-DJ9QWMw-.js';
|
package/dist/transcript.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TranscriptManager,
|
|
3
3
|
utcDayRange
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PONNZ54D.js";
|
|
5
5
|
import "./chunk-S4DDLTPX.js";
|
|
6
6
|
import "./chunk-KFY3SGN7.js";
|
|
7
7
|
import "./chunk-FF4KLI5W.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-NU3CSQ4H.js";
|
|
9
9
|
import "./chunk-PZ5AY32C.js";
|
|
10
10
|
export {
|
|
11
11
|
TranscriptManager,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
importSqlite
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-G4IAEX6D.js";
|
|
3
|
+
} from "../chunk-AGNBY3VG.js";
|
|
5
4
|
import "../chunk-Z734BLO3.js";
|
|
5
|
+
import "../chunk-G4IAEX6D.js";
|
|
6
6
|
import "../chunk-6KYMPV2O.js";
|
|
7
7
|
import "../chunk-GCGJW34D.js";
|
|
8
8
|
import "../chunk-PZ5AY32C.js";
|
|
@@ -704,6 +704,28 @@ interface ProceduralConfig {
|
|
|
704
704
|
/** Max procedure memories to inject on task-initiation recall (1–10). */
|
|
705
705
|
recallMaxProcedures: number;
|
|
706
706
|
}
|
|
707
|
+
/**
|
|
708
|
+
* Claim-level provenance spans (issue #1575). Controls whether extracted
|
|
709
|
+
* facts carry verbatim source-utterance excerpts and the strength tag that
|
|
710
|
+
* downstream features (faithfulness gate #1576, correction UX #1580/#1583,
|
|
711
|
+
* tombstone matching #1579, TrustScore #1577) consume.
|
|
712
|
+
*
|
|
713
|
+
* PR 1 parses the block + schema only; the extraction prompt and validator
|
|
714
|
+
* land in PR 2. When `enabled` is false, extraction prompt/output are
|
|
715
|
+
* byte-identical to pre-feature behavior (rule 39).
|
|
716
|
+
*/
|
|
717
|
+
interface ProvenanceConfig {
|
|
718
|
+
/** Emit provenance spans on new extractions. Default true. */
|
|
719
|
+
enabled: boolean;
|
|
720
|
+
/** Maximum characters stored per quote; longer quotes truncate at a word boundary. Default 300. */
|
|
721
|
+
maxQuoteChars: number;
|
|
722
|
+
/**
|
|
723
|
+
* When true, facts whose quote cannot be located are routed to
|
|
724
|
+
* `pending_review` instead of `active`. Stays false until #1576 lands and
|
|
725
|
+
* the bench shows the gate is safe (rule 48).
|
|
726
|
+
*/
|
|
727
|
+
requireSpans: boolean;
|
|
728
|
+
}
|
|
707
729
|
/**
|
|
708
730
|
* Coding-agent mode config (issue #569).
|
|
709
731
|
*
|
|
@@ -1214,6 +1236,12 @@ interface PluginConfig {
|
|
|
1214
1236
|
*/
|
|
1215
1237
|
dreamsPhases: DreamsPhasesConfig;
|
|
1216
1238
|
procedural: ProceduralConfig;
|
|
1239
|
+
/**
|
|
1240
|
+
* Claim-level provenance spans (issue #1575). Parsed from the
|
|
1241
|
+
* `provenance` config block; see `ProvenanceConfig` for the documented
|
|
1242
|
+
* defaults. PR 1 parses + persists only; extraction wiring lands in PR 2.
|
|
1243
|
+
*/
|
|
1244
|
+
provenance: ProvenanceConfig;
|
|
1217
1245
|
/**
|
|
1218
1246
|
* Wearable transcript ingestion (Limitless / Bee / Omi connectors).
|
|
1219
1247
|
* Disabled by default; see docs/wearables.md.
|
|
@@ -2646,6 +2674,14 @@ interface MemoryFrontmatter {
|
|
|
2646
2674
|
* is absent.
|
|
2647
2675
|
*/
|
|
2648
2676
|
last_reinforced_at?: string;
|
|
2677
|
+
/** Literal source-utterance excerpts backing this fact (issue #1575). */
|
|
2678
|
+
sources?: ProvenanceSource[];
|
|
2679
|
+
/**
|
|
2680
|
+
* Coarse provenance strength: `"verified"` (span located in source text),
|
|
2681
|
+
* `"unverified"` (span present but not locatable), or `"none"` (no span
|
|
2682
|
+
* recorded). Readers treat absent as `"none"` for legacy memories.
|
|
2683
|
+
*/
|
|
2684
|
+
provenance?: "verified" | "unverified" | "none";
|
|
2649
2685
|
}
|
|
2650
2686
|
/** Memory link relationship types */
|
|
2651
2687
|
type MemoryLinkType = "follows" | "references" | "contradicts" | "supports" | "related";
|
|
@@ -2656,6 +2692,30 @@ interface MemoryLink {
|
|
|
2656
2692
|
strength: number;
|
|
2657
2693
|
reason?: string;
|
|
2658
2694
|
}
|
|
2695
|
+
/**
|
|
2696
|
+
* A verbatim source-utterance excerpt that grounds an extracted fact
|
|
2697
|
+
* (issue #1575). Emitted by the PR 2 extraction validator; round-tripped
|
|
2698
|
+
* through storage in PR 1.
|
|
2699
|
+
*
|
|
2700
|
+
* `quote` is the only strictly-required field — without it the entry is
|
|
2701
|
+
* meaningless and is dropped on read. `charStart` / `charEnd` are
|
|
2702
|
+
* best-effort offsets within the buffered turn text at write time and
|
|
2703
|
+
* form a half-open interval [charStart, charEnd) (rule 35).
|
|
2704
|
+
*/
|
|
2705
|
+
interface ProvenanceSource {
|
|
2706
|
+
/** Session key of the source turn (e.g. `project/<name>/<ts>`). */
|
|
2707
|
+
sessionKey: string;
|
|
2708
|
+
/** Host-supplied turn identifier, when one was provided. */
|
|
2709
|
+
turnId?: string;
|
|
2710
|
+
/** ISO 8601 timestamp of the source turn. */
|
|
2711
|
+
observedAt: string;
|
|
2712
|
+
/** Verbatim utterance excerpt, capped at `provenance.maxQuoteChars`. */
|
|
2713
|
+
quote: string;
|
|
2714
|
+
/** Offset within the buffered turn text where the quote begins, when located. */
|
|
2715
|
+
charStart?: number;
|
|
2716
|
+
/** Half-open end offset within the buffered turn text (rule 35). */
|
|
2717
|
+
charEnd?: number;
|
|
2718
|
+
}
|
|
2659
2719
|
interface ConversationThread {
|
|
2660
2720
|
id: string;
|
|
2661
2721
|
title: string;
|
|
@@ -3274,4 +3334,4 @@ interface HourlySummary {
|
|
|
3274
3334
|
generatedAt: string;
|
|
3275
3335
|
}
|
|
3276
3336
|
|
|
3277
|
-
export { type Checkpoint as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CompressionGuidelineOptimizerState as C, type MemorySummary as D, type EntityStructuredSection as E, type FileHygieneConfig as F, type GatewayConfig as G, type RecallPlanMode as H, type ImportanceScore as I, type IdentityInjectionMode as J, type RecallDisclosure as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type BriefingSections as N, type BriefingFollowup as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type BriefingFocus as S, type TopicScore as T, type CalendarSource as U, type CalendarEvent as V, type BriefingActiveThread as W, type BriefingResult as X, type BriefingRecentEntity as Y, type BufferTurn as Z, type TranscriptEntry as _, type ActiveRecallQueryMode as a,
|
|
3337
|
+
export { type Checkpoint as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CompressionGuidelineOptimizerState as C, type MemorySummary as D, type EntityStructuredSection as E, type FileHygieneConfig as F, type GatewayConfig as G, type RecallPlanMode as H, type ImportanceScore as I, type IdentityInjectionMode as J, type RecallDisclosure as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type BriefingSections as N, type BriefingFollowup as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type BriefingFocus as S, type TopicScore as T, type CalendarSource as U, type CalendarEvent as V, type BriefingActiveThread as W, type BriefingResult as X, type BriefingRecentEntity as Y, type BufferTurn as Z, type TranscriptEntry as _, type ActiveRecallQueryMode as a, RECALL_DISCLOSURE_LEVELS as a$, type HourlySummary as a0, type SessionObserverBandConfig as a1, type LifecycleState as a2, type VerificationState as a3, type PolicyClass as a4, type ImportanceLevel as a5, type SecretRef as a6, type AgentAccessAuthToken as a7, type CompressionGuidelineOptimizerEventCounts as a8, type CompressionGuidelineOptimizerActionSummary as a9, type WearableConversation as aA, type WearableSourceSettings as aB, type WearableNativeMemory as aC, type WearableMemoryMode as aD, type WearableSourceConnector as aE, type WearablesConfig as aF, type WearableSyncSummary as aG, type WearableSourceStatus as aH, type WearableDayTranscript as aI, type WearableCorrectionRule as aJ, type CodingContext as aK, type BootstrapOptions as aL, type BootstrapResult as aM, type ConsolidationObservation as aN, type EntityTimelineEntry as aO, type CodingModeConfig as aP, type WearableCleanupSettings as aQ, type WearableDayTranscriptMeta as aR, type BriefingConfig as aS, type BriefingOpenCommitment as aT, type BriefingWindow as aU, type CodexCompatConfig as aV, DEFAULT_RECALL_DISCLOSURE as aW, type ExtractedFact as aX, type MemoryActionEligibilitySource as aY, type MemoryObservation as aZ, type MemoryScope as a_, type CompressionGuidelineOptimizerRuleUpdate as aa, type MemoryActionType as ab, type EntityMention as ac, type EntitySchemaDefinition as ad, type EntitySchemaSectionDefinition as ae, type ExtractionResult as af, type ConsolidationResult as ag, type DaySummaryResult as ah, type MemoryIntent as ai, type QmdSearchExplain as aj, type MemoryActionEligibilityContext as ak, type MemoryActionPolicyResult as al, type MemoryLifecycleEventType as am, type MemoryLifecycleStateSummary as an, type ModelProviderConfig as ao, type NativeKnowledgeConfig as ap, type ProvenanceConfig as aq, type ProvenanceSource as ar, type RetrievalTier as as, type SignalScanResult as at, type ConversationThread as au, type ScopeProfileLayerId as av, type ScopeProfilePromotionTarget as aw, type DreamsStatusResult as ax, type DreamsPhase as ay, type DreamsRunResult as az, type ActiveRecallPromptStyle as b, type NotionLiveConnectorConfig as b$, type WearableAuthCheck as b0, type WearableFetchOptions as b1, type WearableFetchPage as b2, type WearableNativeMemoryPage as b3, type WearableTranscriptSegment as b4, isRecallDisclosure as b5, type AgentAccessHttpConfig as b6, type AgentDefaultsConfig as b7, type AgentPersona as b8, type BehaviorLoopAdjustment as b9, type DreamsRemConfig as bA, type EngramTraceEvent as bB, type ExtractedProcedureStep as bC, type ExtractedQuestion as bD, type ExtractedReasoningTrace as bE, type ExtractedReasoningTraceStep as bF, type ExtractedRelationship as bG, type ExtractionPassSource as bH, type GitHubLiveConnectorConfig as bI, type GmailLiveConnectorConfig as bJ, type GoogleDriveLiveConnectorConfig as bK, type HeartbeatConfig as bL, type HeartbeatDetectionMode as bM, type LlmTraceCallback as bN, type LlmTraceEvent as bO, type MemoryActionOutcome as bP, type MemoryActionPolicyDecision as bQ, type MemoryActionStatus as bR, type MemoryLinkType as bS, type MemoryOsPresetName as bT, type ModelApi as bU, type ModelDefinitionConfig as bV, type ModelProviderAuthMode as bW, type NamespacePolicy as bX, type NativeKnowledgeFolderRuleConfig as bY, type NativeKnowledgeObsidianVaultConfig as bZ, type NativeKnowledgeOpenClawWorkspaceConfig as b_, type BehaviorSignalDirection as ba, type BehaviorSignalType as bb, type BriefingCalendarSourceError as bc, type BufferEntryState as bd, type CaptureMode as be, type CodexCliReasoningEffort as bf, type CodexCompactionFlushMode as bg, type CodexConnectorConfig as bh, type CodingKnowledgeConfig as bi, type CompressionGuidelineActivationState as bj, type CompressionGuidelineOptimizerSourceWindow as bk, type ConfidenceTier as bl, type ConsolidationAction as bm, type ConsolidationItem as bn, type ContinuityIncidentState as bo, type ContinuityLoopCadence as bp, type ContinuityLoopStatus as bq, type ContradictionScanConfig as br, type CronConversationRecallMode as bs, type CronRecallMode as bt, type DreamingConfig as bu, type DreamingNarrativePromptStyle as bv, type DreamsDeepSleepConfig as bw, type DreamsLightSleepConfig as bx, type DreamsPhaseStatus as by, type DreamsPhasesConfig as bz, type ActiveRecallThinking as c, type PrincipalFromSessionKeyMode as c0, type PrincipalRule as c1, type ProceduralConfig as c2, type QuestionEntry as c3, type ReasoningEffort as c4, type RecallPipelineConfig as c5, type RecallSectionConfig as c6, type RecallTraceEvent as c7, type RelevanceFeedback as c8, SPECULATIVE_TTL_DAYS as c9, type ScopeProfileAutoPromoteConfig as ca, type ScopeProfileConfig as cb, type ScopeProfileTeamProjectConfig as cc, type ScopeTeamConfig as cd, type ScoredEntity as ce, type SemanticChunkingConfigShape as cf, type SignalLevel as cg, type SlotBehaviorConfig as ch, type SlotMismatchMode as ci, type TriggerMode as cj, confidenceTier as ck, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type AgentPersonaModelConfig as f, type MemoryFile as g, type MemoryStatus as h, type MemoryLink as i, type MemoryFrontmatter as j, type BufferState as k, type MetaState as l, type MemoryActionEvent as m, type MemoryLifecycleEvent as n, type BufferSurpriseEvent as o, type ContinuityIncidentOpenInput as p, type ContinuityIncidentRecord as q, type ContinuityIncidentCloseInput as r, type ContinuityImprovementLoop as s, type ContinuityLoopUpsertInput as t, type ContinuityLoopReviewInput as u, type EntityRelationship as v, type EntityActivityEntry as w, type EntityFile as x, type AccessTrackingEntry as y, type MemoryProjectionCurrentState as z };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './types-ByK7T3L6.js';
|
|
2
2
|
import './index-DJ9QWMw-.js';
|
|
3
|
-
export { y as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, a7 as AgentAccessAuthToken,
|
|
3
|
+
export { y as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, a7 as AgentAccessAuthToken, b6 as AgentAccessHttpConfig, b7 as AgentDefaultsConfig, b8 as AgentPersona, f as AgentPersonaModelConfig, b9 as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, ba as BehaviorSignalDirection, B as BehaviorSignalEvent, bb as BehaviorSignalType, aL as BootstrapOptions, aM as BootstrapResult, W as BriefingActiveThread, bc as BriefingCalendarSourceError, aS as BriefingConfig, S as BriefingFocus, O as BriefingFollowup, aT as BriefingOpenCommitment, Y as BriefingRecentEntity, X as BriefingResult, N as BriefingSections, aU as BriefingWindow, bd as BufferEntryState, k as BufferState, o as BufferSurpriseEvent, Z as BufferTurn, V as CalendarEvent, U as CalendarSource, be as CaptureMode, $ as Checkpoint, bf as CodexCliReasoningEffort, bg as CodexCompactionFlushMode, aV as CodexCompatConfig, bh as CodexConnectorConfig, aK as CodingContext, bi as CodingKnowledgeConfig, aP as CodingModeConfig, bj as CompressionGuidelineActivationState, a9 as CompressionGuidelineOptimizerActionSummary, a8 as CompressionGuidelineOptimizerEventCounts, aa as CompressionGuidelineOptimizerRuleUpdate, bk as CompressionGuidelineOptimizerSourceWindow, C as CompressionGuidelineOptimizerState, bl as ConfidenceTier, bm as ConsolidationAction, bn as ConsolidationItem, aN as ConsolidationObservation, ag as ConsolidationResult, s as ContinuityImprovementLoop, r as ContinuityIncidentCloseInput, p as ContinuityIncidentOpenInput, q as ContinuityIncidentRecord, bo as ContinuityIncidentState, bp as ContinuityLoopCadence, u as ContinuityLoopReviewInput, bq as ContinuityLoopStatus, t as ContinuityLoopUpsertInput, br as ContradictionScanConfig, au as ConversationThread, bs as CronConversationRecallMode, bt as CronRecallMode, aW as DEFAULT_RECALL_DISCLOSURE, ah as DaySummaryResult, bu as DreamingConfig, bv as DreamingNarrativePromptStyle, bw as DreamsDeepSleepConfig, bx as DreamsLightSleepConfig, ay as DreamsPhase, by as DreamsPhaseStatus, bz as DreamsPhasesConfig, bA as DreamsRemConfig, az as DreamsRunResult, ax as DreamsStatusResult, bB as EngramTraceEvent, w as EntityActivityEntry, x as EntityFile, ac as EntityMention, v as EntityRelationship, ad as EntitySchemaDefinition, ae as EntitySchemaSectionDefinition, E as EntityStructuredSection, aO as EntityTimelineEntry, aX as ExtractedFact, bC as ExtractedProcedureStep, bD as ExtractedQuestion, bE as ExtractedReasoningTrace, bF as ExtractedReasoningTraceStep, bG as ExtractedRelationship, bH as ExtractionPassSource, af as ExtractionResult, F as FileHygieneConfig, G as GatewayConfig, bI as GitHubLiveConnectorConfig, bJ as GmailLiveConnectorConfig, bK as GoogleDriveLiveConnectorConfig, bL as HeartbeatConfig, bM as HeartbeatDetectionMode, a0 as HourlySummary, J as IdentityInjectionMode, a5 as ImportanceLevel, I as ImportanceScore, a2 as LifecycleState, L as LiveConnectorsConfig, bN as LlmTraceCallback, bO as LlmTraceEvent, ak as MemoryActionEligibilityContext, aY as MemoryActionEligibilitySource, m as MemoryActionEvent, bP as MemoryActionOutcome, bQ as MemoryActionPolicyDecision, al as MemoryActionPolicyResult, bR as MemoryActionStatus, ab as MemoryActionType, M as MemoryCategory, g as MemoryFile, j as MemoryFrontmatter, ai as MemoryIntent, n as MemoryLifecycleEvent, am as MemoryLifecycleEventType, an as MemoryLifecycleStateSummary, i as MemoryLink, bS as MemoryLinkType, aZ as MemoryObservation, bT as MemoryOsPresetName, z as MemoryProjectionCurrentState, a_ as MemoryScope, h as MemoryStatus, D as MemorySummary, l as MetaState, bU as ModelApi, bV as ModelDefinitionConfig, bW as ModelProviderAuthMode, ao as ModelProviderConfig, bX as NamespacePolicy, ap as NativeKnowledgeConfig, bY as NativeKnowledgeFolderRuleConfig, bZ as NativeKnowledgeObsidianVaultConfig, b_ as NativeKnowledgeOpenClawWorkspaceConfig, b$ as NotionLiveConnectorConfig, P as PluginConfig, a4 as PolicyClass, c0 as PrincipalFromSessionKeyMode, c1 as PrincipalRule, c2 as ProceduralConfig, aq as ProvenanceConfig, ar as ProvenanceSource, aj as QmdSearchExplain, Q as QmdSearchResult, c3 as QuestionEntry, a$ as RECALL_DISCLOSURE_LEVELS, c4 as ReasoningEffort, K as RecallDisclosure, c5 as RecallPipelineConfig, H as RecallPlanMode, c6 as RecallSectionConfig, R as RecallTierExplain, c7 as RecallTraceEvent, c8 as RelevanceFeedback, as as RetrievalTier, c9 as SPECULATIVE_TTL_DAYS, ca as ScopeProfileAutoPromoteConfig, cb as ScopeProfileConfig, av as ScopeProfileLayerId, aw as ScopeProfilePromotionTarget, cc as ScopeProfileTeamProjectConfig, cd as ScopeTeamConfig, ce as ScoredEntity, a6 as SecretRef, cf as SemanticChunkingConfigShape, a1 as SessionObserverBandConfig, cg as SignalLevel, at as SignalScanResult, ch as SlotBehaviorConfig, ci as SlotMismatchMode, T as TopicScore, _ as TranscriptEntry, cj as TriggerMode, a3 as VerificationState, ck as confidenceTier, b5 as isRecallDisclosure } from './types-Dm5xxVrr.js';
|
package/dist/types.js
CHANGED
package/dist/verified-recall.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-4FE2K57M.js";
|
|
5
|
+
import "./chunk-7FL4CNPV.js";
|
|
6
|
+
import "./chunk-BLIWOONZ.js";
|
|
7
7
|
import "./chunk-M7XQSUBB.js";
|
|
8
8
|
import "./chunk-5UZXUTVO.js";
|
|
9
9
|
import "./chunk-5GPPACXK.js";
|
|
10
10
|
import "./chunk-J6A3CX5N.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-NGFEWFNK.js";
|
|
12
12
|
import "./chunk-MB5RSUW6.js";
|
|
13
13
|
import "./chunk-6KYMPV2O.js";
|
|
14
14
|
import "./chunk-AWJ2FHCF.js";
|
|
@@ -24,8 +24,10 @@ import "./chunk-J2HSAU72.js";
|
|
|
24
24
|
import "./chunk-A6XUJE5D.js";
|
|
25
25
|
import "./chunk-P7FMDTKL.js";
|
|
26
26
|
import "./chunk-VS2IYZRU.js";
|
|
27
|
+
import "./chunk-ZPQVJEVQ.js";
|
|
27
28
|
import "./chunk-4DJQYKMN.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-JUC24CTX.js";
|
|
30
|
+
import "./chunk-NU3CSQ4H.js";
|
|
29
31
|
import "./chunk-ZBJMUXZH.js";
|
|
30
32
|
import "./chunk-PZ5AY32C.js";
|
|
31
33
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.685",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -2931,7 +2931,7 @@
|
|
|
2931
2931
|
"core"
|
|
2932
2932
|
],
|
|
2933
2933
|
"peerDependencies": {
|
|
2934
|
-
"@remnic/coding-graph": "^9.3.
|
|
2934
|
+
"@remnic/coding-graph": "^9.3.685"
|
|
2935
2935
|
},
|
|
2936
2936
|
"peerDependenciesMeta": {
|
|
2937
2937
|
"@remnic/coding-graph": {
|
package/src/access-http.ts
CHANGED
|
@@ -1707,7 +1707,7 @@ export class EngramAccessHttpServer {
|
|
|
1707
1707
|
// extraction write path. Record it so QMD maintenance / writtenSince
|
|
1708
1708
|
// don't miss the write. Best-effort and failure-tolerant.
|
|
1709
1709
|
onMergedMemoryWritten: (namespace, storageDir) => {
|
|
1710
|
-
|
|
1710
|
+
// #1522: catalog touch handled at the storage chokepoint.
|
|
1711
1711
|
},
|
|
1712
1712
|
});
|
|
1713
1713
|
this.respondJson(res, 200, result);
|
package/src/access-mcp.ts
CHANGED
|
@@ -3231,7 +3231,7 @@ export class EngramMcpServer {
|
|
|
3231
3231
|
// extraction write path. Record it so QMD maintenance / writtenSince
|
|
3232
3232
|
// don't miss the write. Best-effort and failure-tolerant.
|
|
3233
3233
|
onMergedMemoryWritten: (namespace, storageDir) => {
|
|
3234
|
-
|
|
3234
|
+
// #1522: catalog touch handled at the storage chokepoint.
|
|
3235
3235
|
},
|
|
3236
3236
|
});
|
|
3237
3237
|
}
|
package/src/access-service.ts
CHANGED
|
@@ -7646,17 +7646,7 @@ export class EngramAccessService {
|
|
|
7646
7646
|
return this.orchestrator.storage;
|
|
7647
7647
|
}
|
|
7648
7648
|
|
|
7649
|
-
|
|
7650
|
-
* Best-effort catalog write touch delegate (issue #1499 sweep). HTTP/MCP
|
|
7651
|
-
* surfaces resolve a per-namespace storage and write through it directly (e.g.
|
|
7652
|
-
* a contradiction merge), bypassing the extraction write path that owns
|
|
7653
|
-
* `markCatalogWrite`. They call this to record the write so a (possibly
|
|
7654
|
-
* dynamic) namespace's `lastWriteAt` stays accurate and QMD maintenance does
|
|
7655
|
-
* not miss it. Fire-and-forget and failure-tolerant on the orchestrator side.
|
|
7656
|
-
*/
|
|
7657
|
-
recordCatalogWrite(namespace?: string, storageDir?: string): void {
|
|
7658
|
-
this.orchestrator.recordCatalogWrite(namespace, storageDir);
|
|
7659
|
-
}
|
|
7649
|
+
// #1522: recordCatalogWrite removed — catalog touch handled at the storage chokepoint.
|
|
7660
7650
|
|
|
7661
7651
|
get configRef(): PluginConfig {
|
|
7662
7652
|
return this.orchestrator.config;
|
package/src/cli.ts
CHANGED
|
@@ -8999,7 +8999,7 @@ export function registerCli(
|
|
|
8999
8999
|
// bypassing the extraction write path. Record it so QMD maintenance /
|
|
9000
9000
|
// writtenSince don't miss the write. Best-effort and failure-tolerant.
|
|
9001
9001
|
onMergedMemoryWritten: (namespace, storageDir) => {
|
|
9002
|
-
|
|
9002
|
+
// #1522: catalog touch handled at the storage chokepoint.
|
|
9003
9003
|
},
|
|
9004
9004
|
});
|
|
9005
9005
|
console.log(result.message);
|
package/src/config.test.ts
CHANGED
|
@@ -1920,3 +1920,115 @@ test("parseConfig schema-default-detection round-4 contract (round 8: runtimeSet
|
|
|
1920
1920
|
);
|
|
1921
1921
|
});
|
|
1922
1922
|
});
|
|
1923
|
+
|
|
1924
|
+
// ---------------------------------------------------------------------------
|
|
1925
|
+
// Issue #1575 PR 1 — provenance config block: defaults + coercion.
|
|
1926
|
+
//
|
|
1927
|
+
// The characterization test pins the documented defaults table from the issue
|
|
1928
|
+
// so a future edit to the parsing defaults is caught here rather than in a
|
|
1929
|
+
// downstream extraction test. Env-var reads are isolated so the REMNIC_/
|
|
1930
|
+
// ENGRAM_ override path is exercised deterministically.
|
|
1931
|
+
// ---------------------------------------------------------------------------
|
|
1932
|
+
|
|
1933
|
+
test("parseConfig provenance defaults deep-equal the documented table (issue #1575)", () => {
|
|
1934
|
+
const prevEnabled = process.env.REMNIC_PROVENANCE_ENABLED;
|
|
1935
|
+
const prevEngram = process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
1936
|
+
delete process.env.REMNIC_PROVENANCE_ENABLED;
|
|
1937
|
+
delete process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
1938
|
+
try {
|
|
1939
|
+
const result = parseConfig({ openaiApiKey: "sk-test" });
|
|
1940
|
+
assert.deepEqual(result.provenance, {
|
|
1941
|
+
enabled: true,
|
|
1942
|
+
maxQuoteChars: 300,
|
|
1943
|
+
requireSpans: false,
|
|
1944
|
+
});
|
|
1945
|
+
} finally {
|
|
1946
|
+
if (prevEnabled !== undefined) process.env.REMNIC_PROVENANCE_ENABLED = prevEnabled;
|
|
1947
|
+
if (prevEngram !== undefined) process.env.ENGRAM_PROVENANCE_ENABLED = prevEngram;
|
|
1948
|
+
}
|
|
1949
|
+
});
|
|
1950
|
+
|
|
1951
|
+
test("parseConfig provenance.enabled coerces boolean-like strings and rejects garbage (issue #1575)", () => {
|
|
1952
|
+
for (const v of [true, "true", "1", "yes", "on"] as const) {
|
|
1953
|
+
const result = parseConfig({ provenance: { enabled: v } });
|
|
1954
|
+
assert.equal(result.provenance.enabled, true, `enabled ${JSON.stringify(v)} -> true`);
|
|
1955
|
+
}
|
|
1956
|
+
for (const v of [false, "false", "0", "no", "off"] as const) {
|
|
1957
|
+
const result = parseConfig({ provenance: { enabled: v } });
|
|
1958
|
+
assert.equal(result.provenance.enabled, false, `enabled ${JSON.stringify(v)} -> false`);
|
|
1959
|
+
}
|
|
1960
|
+
assert.throws(
|
|
1961
|
+
() => parseConfig({ provenance: { enabled: "definitely" } }),
|
|
1962
|
+
/provenance\.enabled/,
|
|
1963
|
+
);
|
|
1964
|
+
});
|
|
1965
|
+
|
|
1966
|
+
test("parseConfig provenance.maxQuoteChars rejects present-but-invalid (issue #1575)", () => {
|
|
1967
|
+
assert.equal(parseConfig({ provenance: { maxQuoteChars: 500 } }).provenance.maxQuoteChars, 500);
|
|
1968
|
+
// String coercion (CLI --config style).
|
|
1969
|
+
assert.equal(parseConfig({ provenance: { maxQuoteChars: "150" } }).provenance.maxQuoteChars, 150);
|
|
1970
|
+
// Omitted key uses the documented default.
|
|
1971
|
+
assert.equal(parseConfig({}).provenance.maxQuoteChars, 300);
|
|
1972
|
+
// Present-but-invalid values are rejected loudly (review thread 3 / AGENTS.md input-validation).
|
|
1973
|
+
for (const v of [0, -5, "garbage", 3.7, Infinity, null] as unknown[]) {
|
|
1974
|
+
assert.throws(
|
|
1975
|
+
() => parseConfig({ provenance: { maxQuoteChars: v } }),
|
|
1976
|
+
/provenance\.maxQuoteChars must be a positive integer/,
|
|
1977
|
+
);
|
|
1978
|
+
}
|
|
1979
|
+
});
|
|
1980
|
+
|
|
1981
|
+
test("parseConfig provenance.requireSpans defaults false and coerces (issue #1575)", () => {
|
|
1982
|
+
assert.equal(parseConfig({}).provenance.requireSpans, false);
|
|
1983
|
+
assert.equal(parseConfig({ provenance: { requireSpans: true } }).provenance.requireSpans, true);
|
|
1984
|
+
assert.equal(parseConfig({ provenance: { requireSpans: "true" } }).provenance.requireSpans, true);
|
|
1985
|
+
assert.equal(parseConfig({ provenance: { requireSpans: "no" } }).provenance.requireSpans, false);
|
|
1986
|
+
// Present-but-invalid values are rejected loudly (review thread 2 / AGENTS.md input-validation).
|
|
1987
|
+
assert.throws(
|
|
1988
|
+
() => parseConfig({ provenance: { requireSpans: "treu" } }),
|
|
1989
|
+
/provenance\.requireSpans must be a boolean/,
|
|
1990
|
+
);
|
|
1991
|
+
});
|
|
1992
|
+
|
|
1993
|
+
test("parseConfig provenance non-object shape rejects loudly (issue #1575)", () => {
|
|
1994
|
+
for (const v of [false, null, "true", 0, []] as unknown[]) {
|
|
1995
|
+
assert.throws(
|
|
1996
|
+
() => parseConfig({ provenance: v } as Record<string, unknown>),
|
|
1997
|
+
/provenance must be an object/,
|
|
1998
|
+
);
|
|
1999
|
+
}
|
|
2000
|
+
});
|
|
2001
|
+
|
|
2002
|
+
test("parseConfig provenance.enabled honors REMNIC_/ENGRAM_ env fallback (issue #1575)", () => {
|
|
2003
|
+
const prevR = process.env.REMNIC_PROVENANCE_ENABLED;
|
|
2004
|
+
const prevE = process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
2005
|
+
delete process.env.REMNIC_PROVENANCE_ENABLED;
|
|
2006
|
+
delete process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
2007
|
+
try {
|
|
2008
|
+
process.env.ENGRAM_PROVENANCE_ENABLED = "off";
|
|
2009
|
+
assert.equal(parseConfig({}).provenance.enabled, false, "ENGRAM_ fallback flips to false");
|
|
2010
|
+
delete process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
2011
|
+
process.env.REMNIC_PROVENANCE_ENABLED = "yes";
|
|
2012
|
+
assert.equal(parseConfig({}).provenance.enabled, true, "REMNIC_ takes precedence");
|
|
2013
|
+
process.env.ENGRAM_PROVENANCE_ENABLED = "off";
|
|
2014
|
+
assert.equal(
|
|
2015
|
+
parseConfig({}).provenance.enabled,
|
|
2016
|
+
true,
|
|
2017
|
+
"REMNIC_ wins over ENGRAM_ when both set",
|
|
2018
|
+
);
|
|
2019
|
+
delete process.env.REMNIC_PROVENANCE_ENABLED;
|
|
2020
|
+
delete process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
2021
|
+
// Explicit config wins over env.
|
|
2022
|
+
process.env.REMNIC_PROVENANCE_ENABLED = "off";
|
|
2023
|
+
assert.equal(
|
|
2024
|
+
parseConfig({ provenance: { enabled: true } }).provenance.enabled,
|
|
2025
|
+
true,
|
|
2026
|
+
"explicit config beats env",
|
|
2027
|
+
);
|
|
2028
|
+
} finally {
|
|
2029
|
+
if (prevR !== undefined) process.env.REMNIC_PROVENANCE_ENABLED = prevR;
|
|
2030
|
+
else delete process.env.REMNIC_PROVENANCE_ENABLED;
|
|
2031
|
+
if (prevE !== undefined) process.env.ENGRAM_PROVENANCE_ENABLED = prevE;
|
|
2032
|
+
else delete process.env.ENGRAM_PROVENANCE_ENABLED;
|
|
2033
|
+
}
|
|
2034
|
+
});
|
package/src/config.ts
CHANGED
|
@@ -45,6 +45,7 @@ import {
|
|
|
45
45
|
resolveNamespaceCatalogEnabled,
|
|
46
46
|
} from "./emit-legacy-tools.js";
|
|
47
47
|
import { parseWearablesConfig } from "./wearables/config.js";
|
|
48
|
+
import { parseProvenanceConfig } from "./provenance.js";
|
|
48
49
|
import { parseCodingKnowledgeConfig } from "./coding/coding-knowledge-config.js";
|
|
49
50
|
const DEFAULT_MEMORY_DIR = path.join(
|
|
50
51
|
resolveHomeDir(),
|
|
@@ -1471,18 +1472,16 @@ export function parseConfig(
|
|
|
1471
1472
|
recallMaxProcedures,
|
|
1472
1473
|
};
|
|
1473
1474
|
|
|
1474
|
-
// Wearable transcript ingestion (Limitless / Bee / Omi)
|
|
1475
|
-
// delegated to the wearables module; it follows the same loud-reject
|
|
1476
|
-
// conventions as the `procedural` block above.
|
|
1475
|
+
// Wearable transcript ingestion (Limitless / Bee / Omi) — delegated to the wearables module.
|
|
1477
1476
|
const wearables = parseWearablesConfig(cfg.wearables);
|
|
1478
1477
|
|
|
1478
|
+
const provenance = parseProvenanceConfig(cfg.provenance);
|
|
1479
1479
|
// Coding-agent project/branch scoping (issue #569)
|
|
1480
1480
|
const rawCodingMode =
|
|
1481
1481
|
cfg.codingMode && typeof cfg.codingMode === "object" && !Array.isArray(cfg.codingMode)
|
|
1482
1482
|
? (cfg.codingMode as Record<string, unknown>)
|
|
1483
1483
|
: {};
|
|
1484
|
-
// Default: projectScope=true
|
|
1485
|
-
// `coerceBool` treats "false"/"0"/"no"/"off" as false (CLAUDE.md #36).
|
|
1484
|
+
// Default: projectScope=true, branchScope=false (opt-in; CLAUDE.md #36).
|
|
1486
1485
|
const codingProjectScopeRaw = coerceBool(rawCodingMode.projectScope);
|
|
1487
1486
|
const codingBranchScopeRaw = coerceBool(rawCodingMode.branchScope);
|
|
1488
1487
|
const codingGlobalFallbackRaw = coerceBool(rawCodingMode.globalFallback);
|
|
@@ -2431,6 +2430,7 @@ export function parseConfig(
|
|
|
2431
2430
|
dreamsPhases,
|
|
2432
2431
|
procedural,
|
|
2433
2432
|
wearables,
|
|
2433
|
+
provenance,
|
|
2434
2434
|
// At-rest encryption (issue #690 PR 3/4)
|
|
2435
2435
|
// coerceBool handles CLI string inputs: `--config secureStoreEnabled=true`
|
|
2436
2436
|
// arrives as the string "true" which `=== true` would reject (CLAUDE.md #36).
|
package/src/explicit-capture.ts
CHANGED
|
@@ -435,15 +435,8 @@ export async function persistExplicitCapture(
|
|
|
435
435
|
expiresAt: candidate.expiresAt,
|
|
436
436
|
source: source === "inline" ? "explicit-inline" : "explicit",
|
|
437
437
|
});
|
|
438
|
-
//
|
|
439
|
-
//
|
|
440
|
-
// never updates `lastWriteAt`. An undefined namespace means the DEFAULT root
|
|
441
|
-
// (round 6, codex P2), which recordCatalogWrite resolves. The method is an
|
|
442
|
-
// optional best-effort hook — guard so Orchestrator-like callers without it
|
|
443
|
-
// don't break (rule #33). Best-effort and failure-tolerant.
|
|
444
|
-
if (typeof orchestrator.recordCatalogWrite === "function") {
|
|
445
|
-
orchestrator.recordCatalogWrite(resolvedNamespace, storage.dir);
|
|
446
|
-
}
|
|
438
|
+
// #1522: catalog touch handled at the storage chokepoint — the StorageManager's
|
|
439
|
+
// post-write hook records the namespace touch automatically.
|
|
447
440
|
|
|
448
441
|
const created = new Date().toISOString();
|
|
449
442
|
const event: MemoryLifecycleEvent = {
|
|
@@ -559,9 +552,7 @@ export async function queueExplicitCaptureForReview(
|
|
|
559
552
|
// `writeMemory` returns an id. If the later pending-review frontmatter update
|
|
560
553
|
// fails, the memory file is still durable and must not disappear from
|
|
561
554
|
// writtenSince/maintenance scheduling. Guarded optional hook (rule #33).
|
|
562
|
-
|
|
563
|
-
orchestrator.recordCatalogWrite(queueNamespace, storage.dir);
|
|
564
|
-
}
|
|
555
|
+
// #1522: catalog touch handled at the storage chokepoint.
|
|
565
556
|
}
|
|
566
557
|
const event: MemoryLifecycleEvent = {
|
|
567
558
|
eventId: `mle-${randomUUID()}`,
|
package/src/logger.ts
CHANGED
|
@@ -15,11 +15,20 @@ const NOOP_LOGGER: LoggerBackend = {
|
|
|
15
15
|
let _backend: LoggerBackend = NOOP_LOGGER;
|
|
16
16
|
let _debug = false;
|
|
17
17
|
|
|
18
|
+
// Late-bind console.* rather than capturing references at module import
|
|
19
|
+
// time. In production this is behaviour-identical to the pre-bound
|
|
20
|
+
// `.bind(console)` form — `console.info(msg, ...)` resolves `this` to
|
|
21
|
+
// `console` whether called directly or via an arrow wrapper — but it lets
|
|
22
|
+
// harnesses that swap console methods (e.g. runCli in @remnic/cli) route
|
|
23
|
+
// logger output through their capture sinks. With the old pre-bound form,
|
|
24
|
+
// any command that called initLogger() pinned the logger to the original
|
|
25
|
+
// console methods before the harness could swap them, so log.warn /
|
|
26
|
+
// log.info output escaped the capture buffer.
|
|
18
27
|
const CONSOLE_LOGGER: LoggerBackend = {
|
|
19
|
-
info: console.info
|
|
20
|
-
warn: console.warn
|
|
21
|
-
error: console.error
|
|
22
|
-
debug: console.debug
|
|
28
|
+
info: (msg, ...args) => console.info(msg, ...args),
|
|
29
|
+
warn: (msg, ...args) => console.warn(msg, ...args),
|
|
30
|
+
error: (msg, ...args) => console.error(msg, ...args),
|
|
31
|
+
debug: (msg, ...args) => console.debug(msg, ...args),
|
|
23
32
|
};
|
|
24
33
|
|
|
25
34
|
export function initLogger(backend?: LoggerBackend, debug?: boolean): void {
|
|
@@ -539,7 +539,7 @@ test("register does not overwrite prior discoveredBy on an existing record", asy
|
|
|
539
539
|
|
|
540
540
|
// A record first PRE-REGISTERED via the router's onResolve hook (config) is
|
|
541
541
|
// UPGRADED to "write" by a later real write touch (round 6, codex P2 — NBPmT):
|
|
542
|
-
// `storageFor()` fires registerResolved (config) before
|
|
542
|
+
// `storageFor()` fires registerResolved (config) before the storage chokepoint runs,
|
|
543
543
|
// so without the upgrade `listNamespaces({ discoveredBy: "write" })` would miss a
|
|
544
544
|
// genuinely-written namespace. A non-write touch (read/register) still preserves
|
|
545
545
|
// provenance.
|
|
@@ -689,7 +689,7 @@ test("chunked write path contract: markWrite updates lastWriteAt for the namespa
|
|
|
689
689
|
const ns = "project-origin-chunked";
|
|
690
690
|
const storageDir = path.join(memoryDir, "namespaces", namespaceIdentityToken(ns));
|
|
691
691
|
// This is exactly the call the orchestrator chunked branch now makes
|
|
692
|
-
// (
|
|
692
|
+
// (storage chokepoint -> markWrite with discoveredBy "write" + storageDir).
|
|
693
693
|
await catalog.markWrite(ns, { discoveredBy: "write", storageDir });
|
|
694
694
|
const record = await catalog.getNamespaceRecord(ns);
|
|
695
695
|
assert.ok(record?.lastWriteAt, "chunked write must update lastWriteAt");
|