@remnic/core 1.0.2 → 1.1.0
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/LICENSE +21 -0
- package/README.md +1 -0
- package/dist/abort-error.d.ts +32 -0
- package/dist/abort-error.js +11 -0
- package/dist/access-cli.d.ts +13 -3
- package/dist/access-cli.js +96 -80
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +12 -4
- package/dist/access-http.js +25 -18
- package/dist/access-mcp.d.ts +32 -4
- package/dist/access-mcp.js +16 -1
- package/dist/access-schema.d.ts +28 -28
- package/dist/access-schema.js +1 -1
- package/dist/access-service-HmO1Trrx.d.ts +732 -0
- package/dist/access-service.d.ts +15 -601
- package/dist/access-service.js +21 -15
- package/dist/active-memory-bridge.d.ts +66 -0
- package/dist/active-memory-bridge.js +11 -0
- package/dist/active-memory-bridge.js.map +1 -0
- package/dist/active-recall.d.ts +96 -0
- package/dist/active-recall.js +308 -0
- package/dist/active-recall.js.map +1 -0
- package/dist/behavior-learner.js +1 -1
- package/dist/bootstrap.d.ts +6 -3
- package/dist/bootstrap.js +2 -2
- package/dist/boxes.js +2 -2
- package/dist/briefing.d.ts +169 -0
- package/dist/briefing.js +52 -0
- package/dist/briefing.js.map +1 -0
- package/dist/buffer.d.ts +19 -5
- package/dist/buffer.js +2 -2
- package/dist/calibration.js +6 -6
- package/dist/causal-behavior.js +5 -5
- package/dist/causal-chain.js +3 -3
- package/dist/causal-consolidation.d.ts +22 -2
- package/dist/causal-consolidation.js +36 -9
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +6 -6
- package/dist/causal-trajectory-graph.js +1 -1
- package/dist/causal-trajectory.d.ts +14 -1
- package/dist/causal-trajectory.js +5 -1
- package/dist/{chunk-KWBU5S5U.js → chunk-2ODBA7MQ.js} +9 -3
- package/dist/chunk-2ODBA7MQ.js.map +1 -0
- package/dist/{chunk-ZJLY4QSU.js → chunk-37UIFYWO.js} +130 -6
- package/dist/chunk-37UIFYWO.js.map +1 -0
- package/dist/chunk-3PG3H5TD.js +7 -0
- package/dist/chunk-3PG3H5TD.js.map +1 -0
- package/dist/{chunk-NTTLPF7F.js → chunk-3QFQGRHO.js} +5 -5
- package/dist/{chunk-QDOSNLB4.js → chunk-3QHL5ABG.js} +17 -15
- package/dist/chunk-3QHL5ABG.js.map +1 -0
- package/dist/{chunk-6UJQNRIO.js → chunk-3SV6CQHO.js} +92 -33
- package/dist/chunk-3SV6CQHO.js.map +1 -0
- package/dist/{chunk-U4PV25RD.js → chunk-3WHVNEN7.js} +1 -1
- package/dist/chunk-3WHVNEN7.js.map +1 -0
- package/dist/{chunk-XUHI52HK.js → chunk-44ICJRF3.js} +98 -10
- package/dist/chunk-44ICJRF3.js.map +1 -0
- package/dist/{chunk-HG2NKWR2.js → chunk-47UU5PU2.js} +49 -10
- package/dist/chunk-47UU5PU2.js.map +1 -0
- package/dist/chunk-4DJQYKMN.js +187 -0
- package/dist/chunk-4DJQYKMN.js.map +1 -0
- package/dist/chunk-4KAN3GZ3.js +225 -0
- package/dist/chunk-4KAN3GZ3.js.map +1 -0
- package/dist/chunk-4LACOVZX.js +813 -0
- package/dist/chunk-4LACOVZX.js.map +1 -0
- package/dist/{chunk-ORZMT74A.js → chunk-4NRAJUDS.js} +11 -1
- package/dist/chunk-4NRAJUDS.js.map +1 -0
- package/dist/{chunk-B7LOFDVE.js → chunk-4WMCPJWX.js} +8 -3
- package/dist/chunk-4WMCPJWX.js.map +1 -0
- package/dist/{chunk-G3AG3KZN.js → chunk-5IZL4DCV.js} +2 -2
- package/dist/{chunk-BRK4ODMI.js → chunk-5NPGSAVB.js} +2 -2
- package/dist/{chunk-QANCTXQF.js → chunk-6LX5ORAS.js} +3 -3
- package/dist/chunk-6MKAMLQL.js +16 -0
- package/dist/chunk-6MKAMLQL.js.map +1 -0
- package/dist/{chunk-ESSMF2FR.js → chunk-6PFRXT4K.js} +15 -6
- package/dist/chunk-6PFRXT4K.js.map +1 -0
- package/dist/{chunk-UIYZ5T3I.js → chunk-6UJ47TVX.js} +8 -8
- package/dist/chunk-6ZH4TU6I.js +245 -0
- package/dist/chunk-6ZH4TU6I.js.map +1 -0
- package/dist/{chunk-L5RPWGFK.js → chunk-7DHTMOND.js} +2 -2
- package/dist/{chunk-L7WO3MZ4.js → chunk-7ECD5ATE.js} +2 -2
- package/dist/{chunk-Q6FETXJA.js → chunk-7SEAZFFB.js} +2 -2
- package/dist/{chunk-V4YC4LUK.js → chunk-7WQ6SLIE.js} +175 -63
- package/dist/chunk-7WQ6SLIE.js.map +1 -0
- package/dist/chunk-ALXMCZEU.js +332 -0
- package/dist/chunk-ALXMCZEU.js.map +1 -0
- package/dist/{chunk-TVVVQQAK.js → chunk-BLKTA7MM.js} +58 -24
- package/dist/chunk-BLKTA7MM.js.map +1 -0
- package/dist/{chunk-SCHEKPYH.js → chunk-C2EFFULQ.js} +1 -1
- package/dist/{chunk-GJR6D6KC.js → chunk-D654IBA6.js} +2 -2
- package/dist/{chunk-OTFNI3OO.js → chunk-DEPL3635.js} +1828 -401
- package/dist/chunk-DEPL3635.js.map +1 -0
- package/dist/{chunk-UYSKNO6E.js → chunk-DHHP2Z4X.js} +15 -4
- package/dist/chunk-DHHP2Z4X.js.map +1 -0
- package/dist/{chunk-UV2FO7J4.js → chunk-E6K4NIEU.js} +2 -2
- package/dist/{chunk-T4WRIV2C.js → chunk-EABGC2TL.js} +2 -2
- package/dist/chunk-EJI5XIBB.js +232 -0
- package/dist/chunk-EJI5XIBB.js.map +1 -0
- package/dist/{chunk-ONRU4L2N.js → chunk-FEMOX5AD.js} +2 -2
- package/dist/{chunk-IFFFR3MR.js → chunk-FSFEQI74.js} +3 -3
- package/dist/chunk-G4SK7DSQ.js +121 -0
- package/dist/chunk-G4SK7DSQ.js.map +1 -0
- package/dist/{chunk-WWIQTB2Y.js → chunk-GGD5W7TB.js} +9 -2
- package/dist/chunk-GGD5W7TB.js.map +1 -0
- package/dist/{chunk-QWUUMMIK.js → chunk-GV6NLQ4X.js} +1355 -80
- package/dist/chunk-GV6NLQ4X.js.map +1 -0
- package/dist/{chunk-2PO5ZRKV.js → chunk-GZCUW5IC.js} +16 -3
- package/dist/chunk-GZCUW5IC.js.map +1 -0
- package/dist/{chunk-AAI7JARD.js → chunk-HMDCOMYU.js} +8 -11
- package/dist/chunk-HMDCOMYU.js.map +1 -0
- package/dist/chunk-IQT3XTKW.js +121 -0
- package/dist/chunk-IQT3XTKW.js.map +1 -0
- package/dist/{chunk-J3BT33K7.js → chunk-ITRLGI2T.js} +5 -5
- package/dist/{chunk-BDFZXRSO.js → chunk-J4IYOZZ5.js} +15 -2
- package/dist/chunk-J4IYOZZ5.js.map +1 -0
- package/dist/{chunk-J47FNDR7.js → chunk-JIU55F3X.js} +7 -7
- package/dist/{chunk-MDDAA2AO.js → chunk-JL2PU6AI.js} +17 -6
- package/dist/chunk-JL2PU6AI.js.map +1 -0
- package/dist/{chunk-ZKYI7UVO.js → chunk-JR4ZC3G4.js} +2 -2
- package/dist/{chunk-UCYSTFZR.js → chunk-JRNQ3RNA.js} +2 -2
- package/dist/{chunk-GPGBSNKM.js → chunk-K4FLSOR5.js} +2 -2
- package/dist/chunk-KVE7R4CG.js +320 -0
- package/dist/chunk-KVE7R4CG.js.map +1 -0
- package/dist/chunk-LAYN4LDC.js +267 -0
- package/dist/chunk-LAYN4LDC.js.map +1 -0
- package/dist/{chunk-ISY75RLM.js → chunk-MBJHSA7F.js} +344 -7
- package/dist/chunk-MBJHSA7F.js.map +1 -0
- package/dist/{chunk-PGK3VUHN.js → chunk-MTLYEMJB.js} +3 -2
- package/dist/chunk-MTLYEMJB.js.map +1 -0
- package/dist/{chunk-QY2BHY5O.js → chunk-MVTHXUBX.js} +297 -34
- package/dist/chunk-MVTHXUBX.js.map +1 -0
- package/dist/{chunk-LP47L3ZX.js → chunk-N42IWANG.js} +5 -5
- package/dist/{chunk-YNI4S5WT.js → chunk-N53K2EXC.js} +2 -2
- package/dist/{chunk-763GUIOU.js → chunk-NBNN5GOB.js} +2 -2
- package/dist/{chunk-CXWFUJR2.js → chunk-NQEVYWX6.js} +195 -5
- package/dist/chunk-NQEVYWX6.js.map +1 -0
- package/dist/{chunk-KL4CP4SB.js → chunk-O5ETUNBT.js} +17 -5
- package/dist/chunk-O5ETUNBT.js.map +1 -0
- package/dist/{chunk-OOSWAUYB.js → chunk-ODWDQNRE.js} +2 -2
- package/dist/chunk-OIT5QGG4.js +80 -0
- package/dist/chunk-OIT5QGG4.js.map +1 -0
- package/dist/{chunk-HLBYLYRD.js → chunk-PAORGQRI.js} +70 -13
- package/dist/chunk-PAORGQRI.js.map +1 -0
- package/dist/chunk-PVGDJXVK.js +21 -0
- package/dist/chunk-PVGDJXVK.js.map +1 -0
- package/dist/{chunk-OTAVQCSF.js → chunk-PYXS46O7.js} +2 -2
- package/dist/chunk-QDW3E4RD.js +108 -0
- package/dist/chunk-QDW3E4RD.js.map +1 -0
- package/dist/{chunk-YNCQ7E4M.js → chunk-QDYXG4CS.js} +4 -3
- package/dist/chunk-QDYXG4CS.js.map +1 -0
- package/dist/{chunk-HLXVTBF3.js → chunk-QNJMBKFK.js} +3 -2
- package/dist/chunk-QNJMBKFK.js.map +1 -0
- package/dist/{chunk-4A24LIM2.js → chunk-S75M5ZRK.js} +2 -2
- package/dist/chunk-SYUK3VLY.js +789 -0
- package/dist/chunk-SYUK3VLY.js.map +1 -0
- package/dist/{chunk-QCCCQT3O.js → chunk-TBBDFYXW.js} +2 -2
- package/dist/chunk-TBBDFYXW.js.map +1 -0
- package/dist/chunk-U66YHYC7.js +31 -0
- package/dist/chunk-U66YHYC7.js.map +1 -0
- package/dist/{chunk-MWGVGUIS.js → chunk-UEYA6UC7.js} +36 -4
- package/dist/chunk-UEYA6UC7.js.map +1 -0
- package/dist/{chunk-M5KEYE5E.js → chunk-URB2WSKZ.js} +2 -2
- package/dist/chunk-UVJFDP7P.js +202 -0
- package/dist/chunk-UVJFDP7P.js.map +1 -0
- package/dist/chunk-W6SL7OFG.js +180 -0
- package/dist/chunk-W6SL7OFG.js.map +1 -0
- package/dist/chunk-WBSAYXVI.js +7945 -0
- package/dist/chunk-WBSAYXVI.js.map +1 -0
- package/dist/{chunk-M5ZBBBJI.js → chunk-XZ2TIKGC.js} +39 -9
- package/dist/chunk-XZ2TIKGC.js.map +1 -0
- package/dist/chunk-Y4FHOFJ2.js +140 -0
- package/dist/chunk-Y4FHOFJ2.js.map +1 -0
- package/dist/chunk-YDBIWGNI.js +298 -0
- package/dist/chunk-YDBIWGNI.js.map +1 -0
- package/dist/chunk-YNB73F22.js +137 -0
- package/dist/chunk-YNB73F22.js.map +1 -0
- package/dist/{chunk-IZME7KW2.js → chunk-ZVBB3T7V.js} +31 -12
- package/dist/chunk-ZVBB3T7V.js.map +1 -0
- package/dist/chunking.js +1 -1
- package/dist/citations.d.ts +67 -0
- package/dist/citations.js +13 -0
- package/dist/citations.js.map +1 -0
- package/dist/cli-BneVIEvh.d.ts +1240 -0
- package/dist/cli.d.ts +32 -1147
- package/dist/cli.js +150 -7092
- package/dist/cli.js.map +1 -1
- package/dist/codex-materialize-CQlLTzke.d.ts +139 -0
- package/dist/codex-thread-key.d.ts +3 -0
- package/dist/codex-thread-key.js +7 -0
- package/dist/codex-thread-key.js.map +1 -0
- package/dist/config.js +3 -2
- package/dist/connectors/codex/instructions.md +160 -0
- package/dist/connectors/codex/resources/namespace-cheatsheet.md +48 -0
- package/dist/contradiction-review-WIUBAR52.js +21 -0
- package/dist/contradiction-review-WIUBAR52.js.map +1 -0
- package/dist/contradiction-scan-GR33PONM.js +376 -0
- package/dist/contradiction-scan-GR33PONM.js.map +1 -0
- package/dist/day-summary.d.ts +7 -2
- package/dist/day-summary.js +5 -2
- package/dist/direct-answer-wiring.d.ts +77 -0
- package/dist/direct-answer-wiring.js +75 -0
- package/dist/direct-answer-wiring.js.map +1 -0
- package/dist/direct-answer.d.ts +106 -0
- package/dist/direct-answer.js +10 -0
- package/dist/direct-answer.js.map +1 -0
- package/dist/embedding-fallback.d.ts +96 -2
- package/dist/embedding-fallback.js +6 -4
- package/dist/{engine-2A6J4XEX.js → engine-5TIQBYZR.js} +10 -7
- package/dist/engine-5TIQBYZR.js.map +1 -0
- package/dist/entity-retrieval.d.ts +3 -2
- package/dist/entity-retrieval.js +10 -7
- package/dist/entity-schema.d.ts +11 -0
- package/dist/entity-schema.js +19 -0
- package/dist/entity-schema.js.map +1 -0
- package/dist/explicit-capture.d.ts +6 -3
- package/dist/explicit-capture.js +2 -2
- package/dist/extraction-judge.d.ts +66 -0
- package/dist/extraction-judge.js +18 -0
- package/dist/extraction-judge.js.map +1 -0
- package/dist/extraction.d.ts +1 -0
- package/dist/extraction.js +12 -10
- package/dist/fallback-llm.d.ts +11 -2
- package/dist/fallback-llm.js +4 -4
- package/dist/graph.js +1 -1
- package/dist/harmonic-retrieval.js +2 -1
- package/dist/importance.d.ts +11 -1
- package/dist/importance.js +3 -1
- package/dist/index.d.ts +1027 -9
- package/dist/index.js +3303 -349
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +2 -1
- package/dist/intent.js +3 -1
- package/dist/lifecycle.js +1 -1
- package/dist/local-llm.d.ts +10 -3
- package/dist/local-llm.js +2 -2
- package/dist/logger.d.ts +1 -1
- package/dist/logger.js +1 -1
- package/dist/memory-cache.d.ts +2 -2
- package/dist/memory-cache.js +1 -1
- package/dist/{memory-projection-store-NxMkbocT.d.ts → memory-projection-store-DeSXPh1j.d.ts} +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/model-registry.js +2 -2
- package/dist/models-json.js +2 -2
- package/dist/native-knowledge.js +2 -2
- package/dist/negative.js +2 -2
- package/dist/operator-toolkit.js +20 -15
- package/dist/{orchestrator-zTa-Qo-1.d.ts → orchestrator-DRYA6_lW.d.ts} +273 -9
- package/dist/orchestrator.d.ts +6 -3
- package/dist/orchestrator.js +76 -63
- package/dist/page-versioning.d.ts +77 -0
- package/dist/page-versioning.js +15 -0
- package/dist/page-versioning.js.map +1 -0
- package/dist/plugin-id.d.ts +37 -0
- package/dist/plugin-id.js +11 -0
- package/dist/plugin-id.js.map +1 -0
- package/dist/policy-runtime.js +2 -2
- package/dist/profiling.js +2 -2
- package/dist/qmd.d.ts +5 -2
- package/dist/qmd.js +4 -3
- package/dist/recall-audit.d.ts +20 -0
- package/dist/recall-audit.js +50 -0
- package/dist/recall-audit.js.map +1 -0
- package/dist/recall-mmr.d.ts +152 -0
- package/dist/recall-mmr.js +17 -0
- package/dist/recall-mmr.js.map +1 -0
- package/dist/recall-qos.js +2 -2
- package/dist/recall-state.d.ts +28 -1
- package/dist/recall-state.js +2 -2
- package/dist/relevance.js +2 -2
- package/dist/resolution-QBTDHTG7.js +100 -0
- package/dist/resolution-QBTDHTG7.js.map +1 -0
- package/dist/resolve-provider-secret.d.ts +24 -1
- package/dist/resolve-provider-secret.js +4 -2
- package/dist/resume-bundles.js +6 -5
- package/dist/retrieval-agents.js +2 -2
- package/dist/retrieval.js +2 -2
- package/dist/schemas.d.ts +412 -54
- package/dist/schemas.js +3 -1
- package/dist/sdk-compat.d.ts +2 -0
- package/dist/sdk-compat.js +6 -3
- package/dist/sdk-compat.js.map +1 -1
- package/dist/semantic-chunking.d.ts +87 -0
- package/dist/semantic-chunking.js +20 -0
- package/dist/semantic-chunking.js.map +1 -0
- package/dist/semantic-consolidation-DrvSYRdB.d.ts +119 -0
- package/dist/semantic-consolidation.d.ts +4 -42
- package/dist/semantic-consolidation.js +23 -2
- package/dist/semantic-rule-promotion.js +9 -6
- package/dist/semantic-rule-verifier.js +10 -7
- package/dist/session-observer-state.js +2 -2
- package/dist/session-toggles.d.ts +22 -0
- package/dist/session-toggles.js +116 -0
- package/dist/session-toggles.js.map +1 -0
- package/dist/skills-registry.d.ts +47 -0
- package/dist/skills-registry.js +48 -0
- package/dist/skills-registry.js.map +1 -0
- package/dist/source-attribution.d.ts +169 -0
- package/dist/source-attribution.js +27 -0
- package/dist/source-attribution.js.map +1 -0
- package/dist/storage.d.ts +171 -10
- package/dist/storage.js +16 -5
- package/dist/summarizer.js +7 -7
- package/dist/temporal-supersession.d.ts +127 -0
- package/dist/temporal-supersession.js +20 -0
- package/dist/temporal-supersession.js.map +1 -0
- package/dist/threading.js +2 -2
- package/dist/tier-migration.d.ts +2 -1
- package/dist/tier-routing.js +2 -2
- package/dist/tokens.d.ts +21 -1
- package/dist/tokens.js +5 -1
- package/dist/transcript.js +2 -2
- package/dist/types-DJhqDJUV.d.ts +50 -0
- package/dist/types.d.ts +529 -3
- package/dist/types.js +1 -1
- package/dist/utility-learner.js +2 -2
- package/dist/utility-runtime.js +3 -3
- package/dist/verified-recall.js +11 -8
- package/dist/whitespace.d.ts +4 -0
- package/dist/whitespace.js +9 -0
- package/dist/whitespace.js.map +1 -0
- package/package.json +14 -8
- package/dist/chunk-2CJCWDMR.js +0 -87
- package/dist/chunk-2CJCWDMR.js.map +0 -1
- package/dist/chunk-2PO5ZRKV.js.map +0 -1
- package/dist/chunk-6UJQNRIO.js.map +0 -1
- package/dist/chunk-AAI7JARD.js.map +0 -1
- package/dist/chunk-B7LOFDVE.js.map +0 -1
- package/dist/chunk-BDFZXRSO.js.map +0 -1
- package/dist/chunk-CXWFUJR2.js.map +0 -1
- package/dist/chunk-DORBM6OB.js +0 -81
- package/dist/chunk-DORBM6OB.js.map +0 -1
- package/dist/chunk-ESSMF2FR.js.map +0 -1
- package/dist/chunk-HG2NKWR2.js.map +0 -1
- package/dist/chunk-HLBYLYRD.js.map +0 -1
- package/dist/chunk-HLXVTBF3.js.map +0 -1
- package/dist/chunk-ISY75RLM.js.map +0 -1
- package/dist/chunk-IZME7KW2.js.map +0 -1
- package/dist/chunk-KL4CP4SB.js.map +0 -1
- package/dist/chunk-KWBU5S5U.js.map +0 -1
- package/dist/chunk-M5ZBBBJI.js.map +0 -1
- package/dist/chunk-MDDAA2AO.js.map +0 -1
- package/dist/chunk-MWGVGUIS.js.map +0 -1
- package/dist/chunk-ORZMT74A.js.map +0 -1
- package/dist/chunk-OTFNI3OO.js.map +0 -1
- package/dist/chunk-PGK3VUHN.js.map +0 -1
- package/dist/chunk-QCCCQT3O.js.map +0 -1
- package/dist/chunk-QDOSNLB4.js.map +0 -1
- package/dist/chunk-QPKFPHOO.js +0 -178
- package/dist/chunk-QPKFPHOO.js.map +0 -1
- package/dist/chunk-QWUUMMIK.js.map +0 -1
- package/dist/chunk-QY2BHY5O.js.map +0 -1
- package/dist/chunk-TVVVQQAK.js.map +0 -1
- package/dist/chunk-U4PV25RD.js.map +0 -1
- package/dist/chunk-UYSKNO6E.js.map +0 -1
- package/dist/chunk-V4YC4LUK.js.map +0 -1
- package/dist/chunk-WWIQTB2Y.js.map +0 -1
- package/dist/chunk-XUHI52HK.js.map +0 -1
- package/dist/chunk-YNCQ7E4M.js.map +0 -1
- package/dist/chunk-ZJLY4QSU.js.map +0 -1
- /package/dist/{engine-2A6J4XEX.js.map → abort-error.js.map} +0 -0
- /package/dist/{chunk-NTTLPF7F.js.map → chunk-3QFQGRHO.js.map} +0 -0
- /package/dist/{chunk-G3AG3KZN.js.map → chunk-5IZL4DCV.js.map} +0 -0
- /package/dist/{chunk-BRK4ODMI.js.map → chunk-5NPGSAVB.js.map} +0 -0
- /package/dist/{chunk-QANCTXQF.js.map → chunk-6LX5ORAS.js.map} +0 -0
- /package/dist/{chunk-UIYZ5T3I.js.map → chunk-6UJ47TVX.js.map} +0 -0
- /package/dist/{chunk-L5RPWGFK.js.map → chunk-7DHTMOND.js.map} +0 -0
- /package/dist/{chunk-L7WO3MZ4.js.map → chunk-7ECD5ATE.js.map} +0 -0
- /package/dist/{chunk-Q6FETXJA.js.map → chunk-7SEAZFFB.js.map} +0 -0
- /package/dist/{chunk-SCHEKPYH.js.map → chunk-C2EFFULQ.js.map} +0 -0
- /package/dist/{chunk-GJR6D6KC.js.map → chunk-D654IBA6.js.map} +0 -0
- /package/dist/{chunk-UV2FO7J4.js.map → chunk-E6K4NIEU.js.map} +0 -0
- /package/dist/{chunk-T4WRIV2C.js.map → chunk-EABGC2TL.js.map} +0 -0
- /package/dist/{chunk-ONRU4L2N.js.map → chunk-FEMOX5AD.js.map} +0 -0
- /package/dist/{chunk-IFFFR3MR.js.map → chunk-FSFEQI74.js.map} +0 -0
- /package/dist/{chunk-J3BT33K7.js.map → chunk-ITRLGI2T.js.map} +0 -0
- /package/dist/{chunk-J47FNDR7.js.map → chunk-JIU55F3X.js.map} +0 -0
- /package/dist/{chunk-ZKYI7UVO.js.map → chunk-JR4ZC3G4.js.map} +0 -0
- /package/dist/{chunk-UCYSTFZR.js.map → chunk-JRNQ3RNA.js.map} +0 -0
- /package/dist/{chunk-GPGBSNKM.js.map → chunk-K4FLSOR5.js.map} +0 -0
- /package/dist/{chunk-LP47L3ZX.js.map → chunk-N42IWANG.js.map} +0 -0
- /package/dist/{chunk-YNI4S5WT.js.map → chunk-N53K2EXC.js.map} +0 -0
- /package/dist/{chunk-763GUIOU.js.map → chunk-NBNN5GOB.js.map} +0 -0
- /package/dist/{chunk-OOSWAUYB.js.map → chunk-ODWDQNRE.js.map} +0 -0
- /package/dist/{chunk-OTAVQCSF.js.map → chunk-PYXS46O7.js.map} +0 -0
- /package/dist/{chunk-4A24LIM2.js.map → chunk-S75M5ZRK.js.map} +0 -0
- /package/dist/{chunk-M5KEYE5E.js.map → chunk-URB2WSKZ.js.map} +0 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
buildProposedActions,
|
|
3
|
+
buildQualityScore,
|
|
4
|
+
groupActionsByStatus,
|
|
5
|
+
listMemoryGovernanceRuns,
|
|
6
|
+
readMemoryGovernanceRunArtifact,
|
|
7
|
+
runMemoryGovernance
|
|
8
|
+
} from "./chunk-ITRLGI2T.js";
|
|
6
9
|
import {
|
|
7
10
|
getTrustZoneStoreStatus,
|
|
8
11
|
isTrustZoneName,
|
|
@@ -13,23 +16,39 @@ import {
|
|
|
13
16
|
summarizeTrustZonePromotionReadiness
|
|
14
17
|
} from "./chunk-EQINRHYR.js";
|
|
15
18
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
readMemoryGovernanceRunArtifact,
|
|
21
|
-
runMemoryGovernance
|
|
22
|
-
} from "./chunk-J3BT33K7.js";
|
|
19
|
+
persistExplicitCapture,
|
|
20
|
+
queueExplicitCaptureForReview,
|
|
21
|
+
validateExplicitCaptureInput
|
|
22
|
+
} from "./chunk-QDYXG4CS.js";
|
|
23
23
|
import {
|
|
24
24
|
wrapWorkLayerContext
|
|
25
25
|
} from "./chunk-EEQLFRUM.js";
|
|
26
26
|
import {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
buildProcedurePersistBody,
|
|
28
|
+
normalizeProcedureSteps
|
|
29
|
+
} from "./chunk-QDW3E4RD.js";
|
|
29
30
|
import {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
} from "./chunk-
|
|
31
|
+
filterTrajectoriesByLookbackDays,
|
|
32
|
+
readCausalTrajectoryRecords
|
|
33
|
+
} from "./chunk-4NRAJUDS.js";
|
|
34
|
+
import {
|
|
35
|
+
canReadNamespace,
|
|
36
|
+
canWriteNamespace,
|
|
37
|
+
resolvePrincipal
|
|
38
|
+
} from "./chunk-N5AKDXAI.js";
|
|
39
|
+
import {
|
|
40
|
+
AccessIdempotencyStore,
|
|
41
|
+
hashAccessIdempotencyPayload
|
|
42
|
+
} from "./chunk-XKECPATV.js";
|
|
43
|
+
import {
|
|
44
|
+
FileCalendarSource,
|
|
45
|
+
buildBriefing,
|
|
46
|
+
parseBriefingFocus,
|
|
47
|
+
parseBriefingWindow
|
|
48
|
+
} from "./chunk-4LACOVZX.js";
|
|
49
|
+
import {
|
|
50
|
+
parseEntityFile
|
|
51
|
+
} from "./chunk-GV6NLQ4X.js";
|
|
33
52
|
import {
|
|
34
53
|
normalizeProjectionPreview,
|
|
35
54
|
normalizeProjectionTags
|
|
@@ -38,17 +57,12 @@ import {
|
|
|
38
57
|
getMemoryProjectionPath
|
|
39
58
|
} from "./chunk-BOUYNNYD.js";
|
|
40
59
|
import {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
} from "./chunk-YNCQ7E4M.js";
|
|
60
|
+
inferMemoryStatus,
|
|
61
|
+
toMemoryPathRel
|
|
62
|
+
} from "./chunk-TP4FZJIZ.js";
|
|
45
63
|
import {
|
|
46
64
|
log
|
|
47
|
-
} from "./chunk-
|
|
48
|
-
import {
|
|
49
|
-
AccessIdempotencyStore,
|
|
50
|
-
hashAccessIdempotencyPayload
|
|
51
|
-
} from "./chunk-XKECPATV.js";
|
|
65
|
+
} from "./chunk-2ODBA7MQ.js";
|
|
52
66
|
|
|
53
67
|
// src/access-service.ts
|
|
54
68
|
import { stat } from "fs/promises";
|
|
@@ -662,6 +676,102 @@ async function importWorkBoardSnapshot(options) {
|
|
|
662
676
|
return { created, updated };
|
|
663
677
|
}
|
|
664
678
|
|
|
679
|
+
// src/procedural/procedure-miner.ts
|
|
680
|
+
var PROCEDURE_CLUSTER_ATTR_MAX = 500;
|
|
681
|
+
function clusterKey(record) {
|
|
682
|
+
const goal = record.goal.trim().toLowerCase().replace(/\s+/g, " ").slice(0, 120);
|
|
683
|
+
const refs = [...record.entityRefs ?? []].map((r) => r.trim().toLowerCase()).sort();
|
|
684
|
+
return `${goal}|${refs.join(",")}`;
|
|
685
|
+
}
|
|
686
|
+
function successRate(group) {
|
|
687
|
+
if (group.length === 0) return 0;
|
|
688
|
+
const ok = group.filter((g) => g.outcomeKind === "success" || g.outcomeKind === "partial").length;
|
|
689
|
+
return ok / group.length;
|
|
690
|
+
}
|
|
691
|
+
function pseudoStepsFromCluster(group) {
|
|
692
|
+
const sentences = [];
|
|
693
|
+
const pushUnique = (raw) => {
|
|
694
|
+
const t = raw.trim();
|
|
695
|
+
if (t.length < 8) return;
|
|
696
|
+
if (!sentences.includes(t)) sentences.push(t);
|
|
697
|
+
};
|
|
698
|
+
for (const g of group) {
|
|
699
|
+
const parts = [g.actionSummary, g.observationSummary, g.outcomeSummary].join(" ").split(/[.!?]\s+|;|\n+/).map((s) => s.trim()).filter((s) => s.length > 12);
|
|
700
|
+
for (const p of parts) pushUnique(p);
|
|
701
|
+
if (sentences.length >= 5) break;
|
|
702
|
+
}
|
|
703
|
+
if (sentences.length < 2 && group[0]) {
|
|
704
|
+
pushUnique(`${group[0].goal.trim()} \u2014 confirm prerequisites and context.`);
|
|
705
|
+
pushUnique("Execute the planned actions, then record the outcome.");
|
|
706
|
+
}
|
|
707
|
+
return sentences.slice(0, 6).map((intent, i) => ({
|
|
708
|
+
order: i + 1,
|
|
709
|
+
intent
|
|
710
|
+
}));
|
|
711
|
+
}
|
|
712
|
+
async function hasExistingClusterWrite(storage, cluster) {
|
|
713
|
+
const clusterKey2 = cluster.slice(0, PROCEDURE_CLUSTER_ATTR_MAX);
|
|
714
|
+
const memories = await storage.readAllMemories();
|
|
715
|
+
for (const m of memories) {
|
|
716
|
+
if (m.frontmatter.category !== "procedure") continue;
|
|
717
|
+
const c = m.frontmatter.structuredAttributes?.procedure_cluster;
|
|
718
|
+
if (c === clusterKey2) return true;
|
|
719
|
+
}
|
|
720
|
+
return false;
|
|
721
|
+
}
|
|
722
|
+
async function runProcedureMining(options) {
|
|
723
|
+
const cfg = options.config.procedural;
|
|
724
|
+
if (!cfg?.enabled) {
|
|
725
|
+
return { clustersProcessed: 0, proceduresWritten: 0, skippedReason: "procedural_disabled" };
|
|
726
|
+
}
|
|
727
|
+
if (cfg.minOccurrences <= 0) {
|
|
728
|
+
return { clustersProcessed: 0, proceduresWritten: 0, skippedReason: "minOccurrences_zero" };
|
|
729
|
+
}
|
|
730
|
+
const trajectoryDir = typeof options.config.causalTrajectoryStoreDir === "string" && options.config.causalTrajectoryStoreDir.trim().length > 0 ? options.config.causalTrajectoryStoreDir.trim() : void 0;
|
|
731
|
+
const { trajectories } = await readCausalTrajectoryRecords({
|
|
732
|
+
memoryDir: options.memoryDir,
|
|
733
|
+
causalTrajectoryStoreDir: trajectoryDir
|
|
734
|
+
});
|
|
735
|
+
const recent = filterTrajectoriesByLookbackDays(trajectories, cfg.lookbackDays);
|
|
736
|
+
const clusters = /* @__PURE__ */ new Map();
|
|
737
|
+
for (const t of recent) {
|
|
738
|
+
const key = clusterKey(t);
|
|
739
|
+
const arr = clusters.get(key) ?? [];
|
|
740
|
+
arr.push(t);
|
|
741
|
+
clusters.set(key, arr);
|
|
742
|
+
}
|
|
743
|
+
let clustersProcessed = 0;
|
|
744
|
+
let proceduresWritten = 0;
|
|
745
|
+
for (const [key, group] of clusters) {
|
|
746
|
+
if (group.length < cfg.minOccurrences) continue;
|
|
747
|
+
const rate = successRate(group);
|
|
748
|
+
if (rate < cfg.successFloor) continue;
|
|
749
|
+
clustersProcessed += 1;
|
|
750
|
+
if (await hasExistingClusterWrite(options.storage, key)) {
|
|
751
|
+
log.debug(`procedure-miner: skip duplicate cluster key=${key.slice(0, 40)}\u2026`);
|
|
752
|
+
continue;
|
|
753
|
+
}
|
|
754
|
+
const steps = normalizeProcedureSteps(pseudoStepsFromCluster(group));
|
|
755
|
+
if (steps.length < 2) continue;
|
|
756
|
+
const title = `When you work on goals like: ${group[0].goal.trim().slice(0, 140)}`;
|
|
757
|
+
const body = buildProcedurePersistBody(title, steps);
|
|
758
|
+
const promote = cfg.autoPromoteEnabled === true && group.length >= cfg.autoPromoteOccurrences && rate >= cfg.successFloor;
|
|
759
|
+
await options.storage.writeMemory("procedure", body, {
|
|
760
|
+
source: "procedure-miner",
|
|
761
|
+
status: promote ? "active" : "pending_review",
|
|
762
|
+
tags: ["procedure-miner", "causal-trajectory"],
|
|
763
|
+
structuredAttributes: {
|
|
764
|
+
procedure_cluster: key.slice(0, PROCEDURE_CLUSTER_ATTR_MAX),
|
|
765
|
+
trajectory_ids: group.map((g) => g.trajectoryId).join(",").slice(0, 1900),
|
|
766
|
+
trajectory_count: String(group.length),
|
|
767
|
+
success_rate: rate.toFixed(4)
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
proceduresWritten += 1;
|
|
771
|
+
}
|
|
772
|
+
return { clustersProcessed, proceduresWritten };
|
|
773
|
+
}
|
|
774
|
+
|
|
665
775
|
// src/access-service.ts
|
|
666
776
|
var EngramAccessInputError = class extends Error {
|
|
667
777
|
};
|
|
@@ -785,6 +895,9 @@ var EngramAccessService = class {
|
|
|
785
895
|
orchestrator;
|
|
786
896
|
idempotency;
|
|
787
897
|
idempotencyLocks = /* @__PURE__ */ new Map();
|
|
898
|
+
get briefingEnabled() {
|
|
899
|
+
return this.orchestrator.config.briefing?.enabled === true;
|
|
900
|
+
}
|
|
788
901
|
resolveNamespace(namespace) {
|
|
789
902
|
const requested = namespace?.trim();
|
|
790
903
|
if (!requested) return this.orchestrator.config.defaultNamespace;
|
|
@@ -825,7 +938,16 @@ var EngramAccessService = class {
|
|
|
825
938
|
}
|
|
826
939
|
resolveReadableNamespace(namespace, principal) {
|
|
827
940
|
const resolved = this.resolveNamespace(namespace);
|
|
828
|
-
|
|
941
|
+
const namespacesEnabled = this.orchestrator.config.namespacesEnabled;
|
|
942
|
+
if (!namespacesEnabled) {
|
|
943
|
+
return resolved;
|
|
944
|
+
}
|
|
945
|
+
if (!principal) {
|
|
946
|
+
throw new EngramAccessInputError(
|
|
947
|
+
"authentication required: namespaces are enabled and no principal was supplied"
|
|
948
|
+
);
|
|
949
|
+
}
|
|
950
|
+
if (!canReadNamespace(principal, resolved, this.orchestrator.config)) {
|
|
829
951
|
throw new EngramAccessInputError(`namespace is not readable: ${resolved}`);
|
|
830
952
|
}
|
|
831
953
|
return resolved;
|
|
@@ -969,6 +1091,62 @@ var EngramAccessService = class {
|
|
|
969
1091
|
}
|
|
970
1092
|
return this.orchestrator.generateDaySummary(memories);
|
|
971
1093
|
}
|
|
1094
|
+
/**
|
|
1095
|
+
* Build a daily context briefing. Gracefully degrades when the OpenAI key
|
|
1096
|
+
* or Responses API is unavailable — never throws for LLM-related problems.
|
|
1097
|
+
*/
|
|
1098
|
+
async briefing(request) {
|
|
1099
|
+
const config = this.orchestrator.config;
|
|
1100
|
+
if (!config.briefing.enabled) {
|
|
1101
|
+
throw new EngramAccessInputError("briefing is disabled");
|
|
1102
|
+
}
|
|
1103
|
+
const namespace = this.resolveReadableNamespace(request.namespace, request.principal);
|
|
1104
|
+
const storage = await this.orchestrator.getStorage(namespace);
|
|
1105
|
+
const token = typeof request.since === "string" && request.since.trim().length > 0 ? request.since.trim() : config.briefing.defaultWindow;
|
|
1106
|
+
const window = parseBriefingWindow(token);
|
|
1107
|
+
if (!window) {
|
|
1108
|
+
throw new EngramAccessInputError(`invalid briefing window: ${token}`);
|
|
1109
|
+
}
|
|
1110
|
+
const rawFocus = typeof request.focus === "string" ? request.focus.trim() : "";
|
|
1111
|
+
let focus = null;
|
|
1112
|
+
if (rawFocus.length > 0) {
|
|
1113
|
+
focus = parseBriefingFocus(rawFocus);
|
|
1114
|
+
if (!focus) {
|
|
1115
|
+
throw new EngramAccessInputError(
|
|
1116
|
+
`invalid briefing focus filter: ${request.focus}`
|
|
1117
|
+
);
|
|
1118
|
+
}
|
|
1119
|
+
}
|
|
1120
|
+
const SUPPORTED_FORMATS = ["markdown", "json"];
|
|
1121
|
+
if (typeof request.format === "string" && !SUPPORTED_FORMATS.includes(request.format)) {
|
|
1122
|
+
throw new EngramAccessInputError(
|
|
1123
|
+
`unsupported briefing format: "${request.format}". Accepted: ${SUPPORTED_FORMATS.join(", ")}.`
|
|
1124
|
+
);
|
|
1125
|
+
}
|
|
1126
|
+
const format = request.format === "json" ? "json" : request.format === "markdown" ? "markdown" : config.briefing.defaultFormat;
|
|
1127
|
+
const maxFollowups = typeof request.maxFollowups === "number" && Number.isFinite(request.maxFollowups) ? Math.max(0, Math.min(10, Math.floor(request.maxFollowups))) : config.briefing.maxFollowups;
|
|
1128
|
+
const calendarSource = config.briefing.calendarSource ? new FileCalendarSource(config.briefing.calendarSource) : void 0;
|
|
1129
|
+
const result = await buildBriefing({
|
|
1130
|
+
storage,
|
|
1131
|
+
namespace,
|
|
1132
|
+
window,
|
|
1133
|
+
focus,
|
|
1134
|
+
calendarSource,
|
|
1135
|
+
maxFollowups,
|
|
1136
|
+
allowLlm: config.briefing.llmFollowups,
|
|
1137
|
+
openaiApiKey: config.openaiApiKey,
|
|
1138
|
+
openaiBaseUrl: config.openaiBaseUrl,
|
|
1139
|
+
model: config.model
|
|
1140
|
+
});
|
|
1141
|
+
return {
|
|
1142
|
+
format,
|
|
1143
|
+
window: result.window,
|
|
1144
|
+
namespace,
|
|
1145
|
+
markdown: result.markdown,
|
|
1146
|
+
json: result.json,
|
|
1147
|
+
followupsUnavailableReason: result.followupsUnavailableReason
|
|
1148
|
+
};
|
|
1149
|
+
}
|
|
972
1150
|
async recall(request) {
|
|
973
1151
|
const query = request.query.trim();
|
|
974
1152
|
if (query.length === 0) {
|
|
@@ -1320,14 +1498,15 @@ var EngramAccessService = class {
|
|
|
1320
1498
|
for (const name of names) {
|
|
1321
1499
|
const raw = await storage.readEntity(name);
|
|
1322
1500
|
if (!raw) continue;
|
|
1323
|
-
const entity = parseEntityFile(raw);
|
|
1501
|
+
const entity = parseEntityFile(raw, this.orchestrator.config.entitySchemas);
|
|
1324
1502
|
if (query) {
|
|
1325
1503
|
const haystack = [
|
|
1326
1504
|
entity.name,
|
|
1327
1505
|
entity.type,
|
|
1328
|
-
entity.summary
|
|
1506
|
+
entity.synthesis || entity.summary || "",
|
|
1329
1507
|
...entity.aliases,
|
|
1330
|
-
...entity.facts
|
|
1508
|
+
...entity.facts,
|
|
1509
|
+
...(entity.structuredSections ?? []).flatMap((section) => [section.title, ...section.facts])
|
|
1331
1510
|
].join("\n").toLowerCase();
|
|
1332
1511
|
if (!haystack.includes(query)) continue;
|
|
1333
1512
|
}
|
|
@@ -1335,7 +1514,7 @@ var EngramAccessService = class {
|
|
|
1335
1514
|
name: entity.name,
|
|
1336
1515
|
type: entity.type,
|
|
1337
1516
|
updated: entity.updated,
|
|
1338
|
-
summary: entity.summary,
|
|
1517
|
+
summary: entity.synthesis || entity.summary,
|
|
1339
1518
|
aliases: entity.aliases
|
|
1340
1519
|
});
|
|
1341
1520
|
}
|
|
@@ -1358,7 +1537,7 @@ var EngramAccessService = class {
|
|
|
1358
1537
|
return {
|
|
1359
1538
|
found: true,
|
|
1360
1539
|
namespace: resolvedNamespace,
|
|
1361
|
-
entity: parseEntityFile(raw)
|
|
1540
|
+
entity: parseEntityFile(raw, this.orchestrator.config.entitySchemas)
|
|
1362
1541
|
};
|
|
1363
1542
|
}
|
|
1364
1543
|
async reviewQueue(runId, namespace, principal) {
|
|
@@ -1502,13 +1681,25 @@ var EngramAccessService = class {
|
|
|
1502
1681
|
request.authenticatedPrincipal ?? principal
|
|
1503
1682
|
);
|
|
1504
1683
|
const storage = await this.orchestrator.getStorage(resolvedNamespace);
|
|
1684
|
+
const mode = request.mode === "apply" ? "apply" : "shadow";
|
|
1685
|
+
const boundedBatchSize = typeof request.batchSize === "number" && Number.isFinite(request.batchSize) ? Math.max(1, Math.floor(request.batchSize)) : void 0;
|
|
1505
1686
|
const result = await runMemoryGovernance({
|
|
1506
1687
|
memoryDir: storage.dir,
|
|
1507
|
-
mode
|
|
1688
|
+
mode,
|
|
1508
1689
|
recentDays: typeof request.recentDays === "number" && Number.isFinite(request.recentDays) ? Math.max(1, Math.floor(request.recentDays)) : void 0,
|
|
1509
1690
|
maxMemories: typeof request.maxMemories === "number" && Number.isFinite(request.maxMemories) ? Math.max(1, Math.floor(request.maxMemories)) : void 0,
|
|
1510
|
-
batchSize:
|
|
1691
|
+
batchSize: boundedBatchSize
|
|
1511
1692
|
});
|
|
1693
|
+
if (mode === "apply") {
|
|
1694
|
+
try {
|
|
1695
|
+
await this.orchestrator.processEntitySynthesisQueue(
|
|
1696
|
+
resolvedNamespace,
|
|
1697
|
+
Math.min(boundedBatchSize ?? 5, 5)
|
|
1698
|
+
);
|
|
1699
|
+
} catch (error) {
|
|
1700
|
+
log.debug(`governanceRun: entity synthesis refresh failed after governance apply: ${error}`);
|
|
1701
|
+
}
|
|
1702
|
+
}
|
|
1512
1703
|
return {
|
|
1513
1704
|
namespace: resolvedNamespace,
|
|
1514
1705
|
runId: result.runId,
|
|
@@ -1521,6 +1712,25 @@ var EngramAccessService = class {
|
|
|
1521
1712
|
reportPath: result.reportPath
|
|
1522
1713
|
};
|
|
1523
1714
|
}
|
|
1715
|
+
async procedureMiningRun(request, principal) {
|
|
1716
|
+
const resolvedNamespace = this.resolveWritableNamespace(
|
|
1717
|
+
request.namespace,
|
|
1718
|
+
void 0,
|
|
1719
|
+
request.authenticatedPrincipal ?? principal
|
|
1720
|
+
);
|
|
1721
|
+
const storage = await this.orchestrator.getStorage(resolvedNamespace);
|
|
1722
|
+
const result = await runProcedureMining({
|
|
1723
|
+
memoryDir: storage.dir,
|
|
1724
|
+
storage,
|
|
1725
|
+
config: this.orchestrator.config
|
|
1726
|
+
});
|
|
1727
|
+
return {
|
|
1728
|
+
namespace: resolvedNamespace,
|
|
1729
|
+
clustersProcessed: result.clustersProcessed,
|
|
1730
|
+
proceduresWritten: result.proceduresWritten,
|
|
1731
|
+
skippedReason: result.skippedReason
|
|
1732
|
+
};
|
|
1733
|
+
}
|
|
1524
1734
|
async trustZoneStatus(namespace, principal) {
|
|
1525
1735
|
const resolvedNamespace = this.resolveReadableNamespace(namespace, principal);
|
|
1526
1736
|
const storage = await this.orchestrator.getStorage(resolvedNamespace);
|
|
@@ -2367,6 +2577,59 @@ ${next}`);
|
|
|
2367
2577
|
}
|
|
2368
2578
|
};
|
|
2369
2579
|
}
|
|
2580
|
+
/**
|
|
2581
|
+
* Record citation usage from an observed oai-mem-citation block.
|
|
2582
|
+
* For each citation entry, extract the memory ID from the path and
|
|
2583
|
+
* increment its access tracking via the orchestrator. Returns the
|
|
2584
|
+
* count of submitted IDs and the count of IDs that matched real memories.
|
|
2585
|
+
*/
|
|
2586
|
+
async recordCitationUsage(request) {
|
|
2587
|
+
if (request.entries.length === 0) return { submitted: 0, matched: 0 };
|
|
2588
|
+
const resolvedNamespace = this.resolveWritableNamespace(
|
|
2589
|
+
request.namespace,
|
|
2590
|
+
request.sessionId,
|
|
2591
|
+
request.authenticatedPrincipal
|
|
2592
|
+
);
|
|
2593
|
+
const memoryIds = [];
|
|
2594
|
+
for (const entry of request.entries) {
|
|
2595
|
+
const basename = entry.path.split("/").pop() ?? entry.path;
|
|
2596
|
+
const id = basename.endsWith(".md") ? basename.slice(0, -3) : basename;
|
|
2597
|
+
if (id.length > 0) {
|
|
2598
|
+
memoryIds.push(id);
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
if (memoryIds.length === 0) return { submitted: 0, matched: 0 };
|
|
2602
|
+
const storage = await this.orchestrator.getStorage(resolvedNamespace);
|
|
2603
|
+
const existingIds = await storage.filterExistingMemoryIds(memoryIds);
|
|
2604
|
+
const matchedIds = memoryIds.filter((id) => existingIds.has(id));
|
|
2605
|
+
if (matchedIds.length > 0) {
|
|
2606
|
+
try {
|
|
2607
|
+
this.orchestrator.trackMemoryAccess(matchedIds);
|
|
2608
|
+
} catch {
|
|
2609
|
+
log.debug("citation usage tracking: failed to record access for cited memories");
|
|
2610
|
+
}
|
|
2611
|
+
}
|
|
2612
|
+
return { submitted: memoryIds.length, matched: matchedIds.length };
|
|
2613
|
+
}
|
|
2614
|
+
// ── Contradiction Review (issue #520) ──────────────────────────────────────
|
|
2615
|
+
get memoryDir() {
|
|
2616
|
+
return this.orchestrator.config.memoryDir;
|
|
2617
|
+
}
|
|
2618
|
+
get storageRef() {
|
|
2619
|
+
return this.orchestrator.storage;
|
|
2620
|
+
}
|
|
2621
|
+
get configRef() {
|
|
2622
|
+
return this.orchestrator.config;
|
|
2623
|
+
}
|
|
2624
|
+
get localLlmRef() {
|
|
2625
|
+
return this.orchestrator.localLlm ?? null;
|
|
2626
|
+
}
|
|
2627
|
+
get fallbackLlmRef() {
|
|
2628
|
+
return null;
|
|
2629
|
+
}
|
|
2630
|
+
get embeddingLookupRef() {
|
|
2631
|
+
return void 0;
|
|
2632
|
+
}
|
|
2370
2633
|
};
|
|
2371
2634
|
|
|
2372
2635
|
export {
|
|
@@ -2375,4 +2638,4 @@ export {
|
|
|
2375
2638
|
ENGRAM_ACCESS_WRITE_SCHEMA_VERSION,
|
|
2376
2639
|
EngramAccessService
|
|
2377
2640
|
};
|
|
2378
|
-
//# sourceMappingURL=chunk-
|
|
2641
|
+
//# sourceMappingURL=chunk-MVTHXUBX.js.map
|