@remnic/core 9.69.40 → 9.69.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +14 -13
- package/dist/access-admin-ops-surface.js +79 -78
- package/dist/access-audit.js +2 -2
- package/dist/access-authorization-probe.d.ts +14 -13
- package/dist/access-authorization-probe.js +80 -79
- package/dist/access-boundary.d.ts +14 -13
- package/dist/access-boundary.js +79 -78
- package/dist/access-cli.js +170 -168
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +1 -1
- package/dist/access-extraction-force-flush.d.ts +14 -13
- package/dist/access-extraction-force-flush.js +79 -78
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-briefing.d.ts +14 -13
- package/dist/access-http-briefing.js +80 -79
- package/dist/access-http-lcm-compaction.d.ts +14 -13
- package/dist/access-http-lifecycle-flush.d.ts +14 -13
- package/dist/access-http-offline-stream.d.ts +14 -13
- package/dist/access-http-query.d.ts +2 -2
- package/dist/access-http-query.js +81 -80
- package/dist/access-http.d.ts +15 -14
- package/dist/access-http.js +100 -97
- package/dist/access-identity-continuity-surface.d.ts +11 -11
- package/dist/access-identity-continuity-surface.js +79 -78
- package/dist/access-lcm-surface.d.ts +14 -13
- package/dist/access-lcm-surface.js +79 -78
- package/dist/access-mcp-shared-context-tools.d.ts +157 -0
- package/dist/access-mcp-shared-context-tools.js +8 -0
- package/dist/access-mcp.d.ts +14 -13
- package/dist/access-mcp.js +91 -88
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-CKBumJ8W.d.ts → access-namespace-preflight-ShnAJ9uL.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +79 -78
- package/dist/access-observe-transcript.d.ts +11 -11
- package/dist/access-observe-write-category.d.ts +17 -1
- package/dist/access-observe-write-category.js +21 -4
- package/dist/access-observe-write-surface.d.ts +14 -13
- package/dist/access-observe-write-surface.js +79 -78
- package/dist/access-offline-manifest.d.ts +11 -11
- package/dist/access-offline-manifest.js +14 -14
- package/dist/access-operations-batch.js +84 -82
- package/dist/access-operations.d.ts +14 -13
- package/dist/access-operations.js +89 -87
- package/dist/access-recall-concurrency.d.ts +14 -13
- package/dist/access-recall-concurrency.js +79 -78
- package/dist/access-recall-response.d.ts +14 -13
- package/dist/access-recall-response.js +79 -78
- package/dist/access-recall-surface.d.ts +14 -13
- package/dist/access-recall-surface.js +79 -78
- package/dist/access-schema.d.ts +117 -114
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-DJ3qogNt.d.ts → access-service-DjG_e2cM.d.ts} +81 -75
- package/dist/access-service-helpers.d.ts +14 -13
- package/dist/access-service.d.ts +14 -13
- package/dist/access-service.js +79 -78
- package/dist/access-surface-catalog.d.ts +14 -13
- package/dist/access-surface-catalog.js +81 -80
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +4 -4
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-memory-bridge.js +3 -3
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +10 -10
- package/dist/activity/digest.d.ts +1 -1
- package/dist/ambient-provenance.d.ts +1 -1
- package/dist/artifact-search.d.ts +1 -1
- package/dist/{auto-sync-D6BAPIJV.js → auto-sync-QZD4RD6H.js} +14 -10
- package/dist/{auto-sync-D6BAPIJV.js.map → auto-sync-QZD4RD6H.js.map} +1 -1
- package/dist/background-generation.d.ts +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +11 -11
- package/dist/briefing-window.d.ts +2 -2
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +22 -22
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer-turn-helpers.d.ts +1 -1
- package/dist/buffer.d.ts +2 -2
- package/dist/buffer.js +9 -9
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/calibration.js +2 -2
- package/dist/capabilities.d.ts +1 -1
- package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-YO5QJ6L3.js} +2 -2
- package/dist/{capsule-merge-IPG4IOFP.js → capsule-merge-3MNURAQ3.js} +2 -2
- package/dist/{catalog-BHXkBVhg.d.ts → catalog-BhuXaQHx.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +25 -25
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/{chunk-M6RORUO5.js → chunk-2EYZ32LH.js} +24 -2
- package/dist/{chunk-M6RORUO5.js.map → chunk-2EYZ32LH.js.map} +1 -1
- package/dist/{chunk-JAJIMTFB.js → chunk-2PDMIPMP.js} +9 -9
- package/dist/{chunk-5LYSEZOF.js → chunk-2UINSKQC.js} +12 -11
- package/dist/chunk-2UINSKQC.js.map +1 -0
- package/dist/{chunk-6L2II3KS.js → chunk-3D75XIYO.js} +2 -2
- package/dist/{chunk-XCPNH2MG.js → chunk-3KJTSCSX.js} +5 -5
- package/dist/{chunk-YTZN2UZO.js → chunk-3RLWUW7G.js} +2 -2
- package/dist/{chunk-J272ODKJ.js → chunk-42DJ235G.js} +2 -2
- package/dist/{chunk-NVVZPBKI.js → chunk-46FVFU7S.js} +2 -2
- package/dist/{chunk-JUDT33RX.js → chunk-4AX5OYKC.js} +2 -2
- package/dist/{chunk-GSSDHAYH.js → chunk-4IGOLIWM.js} +2 -2
- package/dist/{chunk-23HFXQ5J.js → chunk-6EGIQEKC.js} +4 -4
- package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
- package/dist/{chunk-GO5LOHCD.js → chunk-7L54ARML.js} +2 -2
- package/dist/{chunk-TEMKBSV6.js → chunk-7PSRCGWT.js} +3 -3
- package/dist/{chunk-ICNJ6J46.js → chunk-AAAFZW3U.js} +2 -2
- package/dist/{chunk-K4JKAXMO.js → chunk-AAX22E4K.js} +3 -3
- package/dist/{chunk-UZ6JYPJ6.js → chunk-ADARR5KF.js} +232 -171
- package/dist/chunk-ADARR5KF.js.map +1 -0
- package/dist/{chunk-KY236SP5.js → chunk-AHHFBJX7.js} +3 -3
- package/dist/{chunk-TZ44E732.js → chunk-AIVRD66I.js} +2 -2
- package/dist/{chunk-OEDW4ER7.js → chunk-AJBWVDRV.js} +2 -1
- package/dist/chunk-AJBWVDRV.js.map +1 -0
- package/dist/{chunk-YRIFXXMI.js → chunk-AOGICQMH.js} +6 -6
- package/dist/{chunk-KOTG3RXE.js → chunk-AUSRUOMQ.js} +2 -2
- package/dist/{chunk-C5R73BON.js → chunk-BIANISES.js} +2 -2
- package/dist/{chunk-IMBQFHRV.js → chunk-BPXJINHW.js} +8 -8
- package/dist/{chunk-2NLLXCJG.js → chunk-BXLOS5AJ.js} +2 -2
- package/dist/{chunk-2J3V5QEO.js → chunk-C3QXITIP.js} +4 -4
- package/dist/{chunk-2SNCQHJZ.js → chunk-CQ4BTPX6.js} +6 -6
- package/dist/{chunk-3QEVOQF5.js → chunk-CTETTVDN.js} +2 -2
- package/dist/{chunk-DFVSJFHK.js → chunk-DBB5JPSL.js} +2 -2
- package/dist/{chunk-W23JARAQ.js → chunk-DLPMOSNH.js} +2 -2
- package/dist/{chunk-BGRTZOJB.js → chunk-DMTSKY4W.js} +8 -8
- package/dist/{chunk-X7Y7WX73.js → chunk-DQEMWVMT.js} +1 -1
- package/dist/{chunk-QS5Q5RBV.js → chunk-E4FRR4MA.js} +8 -8
- package/dist/{chunk-NETQXOPY.js → chunk-EH3HNCAM.js} +12 -7
- package/dist/{chunk-NETQXOPY.js.map → chunk-EH3HNCAM.js.map} +1 -1
- package/dist/{chunk-RJQAP333.js → chunk-ETE3SGAH.js} +2 -2
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-RLU2Y5GV.js → chunk-F2FJTOV6.js} +4 -4
- package/dist/{chunk-V2ZA4YWE.js → chunk-F5H6YG5P.js} +2 -2
- package/dist/{chunk-K75A5XWU.js → chunk-F6PTJLEM.js} +4 -4
- package/dist/chunk-F6PTJLEM.js.map +1 -0
- package/dist/{chunk-4CMXI55L.js → chunk-FSUFKIFS.js} +2 -2
- package/dist/{chunk-ZAEPD4C2.js → chunk-G3NTZZWT.js} +2 -2
- package/dist/{chunk-ZMWSYUUL.js → chunk-GCBIXUPT.js} +2 -2
- package/dist/{chunk-WZYHPAG5.js → chunk-GIM2AGFL.js} +3 -3
- package/dist/{chunk-VKWFNPBH.js → chunk-GR76OKET.js} +14 -5
- package/dist/{chunk-VKWFNPBH.js.map → chunk-GR76OKET.js.map} +1 -1
- package/dist/{chunk-J7FVMLBR.js → chunk-GWEZNCGA.js} +2 -2
- package/dist/{chunk-LFVZD5EC.js → chunk-GWNSKQDA.js} +3 -3
- package/dist/{chunk-MJC7UKH7.js → chunk-H2N6SLTR.js} +2 -2
- package/dist/{chunk-J4WGTN2N.js → chunk-HK44SV6K.js} +4 -4
- package/dist/{chunk-JDX2OA4R.js → chunk-HNHIHXSD.js} +2 -2
- package/dist/{chunk-IS2IDFJP.js → chunk-HO2P3FAX.js} +22 -22
- package/dist/chunk-HO2P3FAX.js.map +1 -0
- package/dist/{chunk-VQYWKCDR.js → chunk-HPMCKAET.js} +3 -3
- package/dist/{chunk-ROEFLU37.js → chunk-HSJU6JFT.js} +16 -86
- package/dist/chunk-HSJU6JFT.js.map +1 -0
- package/dist/{chunk-MVG3KXON.js → chunk-I65KB36L.js} +25 -25
- package/dist/chunk-IFBSZGW3.js +42 -0
- package/dist/chunk-IFBSZGW3.js.map +1 -0
- package/dist/{chunk-SFHLQPBF.js → chunk-IUTYNDFS.js} +118 -112
- package/dist/chunk-IUTYNDFS.js.map +1 -0
- package/dist/{chunk-AEOOGXMQ.js → chunk-J2MGTGKC.js} +4 -4
- package/dist/chunk-JATHBCAV.js +94 -0
- package/dist/chunk-JATHBCAV.js.map +1 -0
- package/dist/{chunk-PKUJNICO.js → chunk-JC2OBYYD.js} +2 -2
- package/dist/{chunk-5U7K4W6K.js → chunk-JDOBQPJY.js} +3 -3
- package/dist/{chunk-TG3FAM2S.js → chunk-JL4TQYM5.js} +48 -1
- package/dist/{chunk-TG3FAM2S.js.map → chunk-JL4TQYM5.js.map} +1 -1
- package/dist/{chunk-VQWBUPSJ.js → chunk-JMAP6L6Q.js} +2 -2
- package/dist/{chunk-7Z54NXVS.js → chunk-K27INAPR.js} +2 -2
- package/dist/{chunk-YTK5MVNF.js → chunk-KCKXOS4Y.js} +14 -13
- package/dist/chunk-KCKXOS4Y.js.map +1 -0
- package/dist/{chunk-7D6SER6A.js → chunk-KJQ4Y2PY.js} +14 -14
- package/dist/{chunk-DAZANIYU.js → chunk-L732NBPR.js} +87 -88
- package/dist/{chunk-DAZANIYU.js.map → chunk-L732NBPR.js.map} +1 -1
- package/dist/{chunk-QPVNK2VE.js → chunk-LCVYO3ON.js} +2 -2
- package/dist/{chunk-HIP6DKJJ.js → chunk-LQVXSRAJ.js} +2 -2
- package/dist/{chunk-A7GQBJP5.js → chunk-LVFI5LG7.js} +7 -7
- package/dist/{chunk-TO36VPZI.js → chunk-LWF6GOII.js} +2 -2
- package/dist/{chunk-62HFZNCJ.js → chunk-N7B6V7SG.js} +13 -12
- package/dist/{chunk-62HFZNCJ.js.map → chunk-N7B6V7SG.js.map} +1 -1
- package/dist/{chunk-ES5BUPYB.js → chunk-OCWFKD5Q.js} +2 -2
- package/dist/{chunk-IOPIGX7Y.js → chunk-OP722LOG.js} +2 -2
- package/dist/{chunk-62D2PAAM.js → chunk-PAAJWQH5.js} +4 -4
- package/dist/{chunk-V6EGNVUT.js → chunk-PIWFNPQT.js} +4 -4
- package/dist/{chunk-JOP7W24J.js → chunk-PLJ2MQFT.js} +4 -4
- package/dist/{chunk-37CAEC7E.js → chunk-PWPIERBM.js} +4 -4
- package/dist/{chunk-BXIJSPCL.js → chunk-Q62GA5U2.js} +2 -2
- package/dist/{chunk-CC37E3QM.js → chunk-QKCXRS5A.js} +16 -1
- package/dist/chunk-QKCXRS5A.js.map +1 -0
- package/dist/{chunk-I3H5LFOI.js → chunk-QNJQCLI6.js} +4 -4
- package/dist/{chunk-BYQX4IOG.js → chunk-R45VFSEV.js} +2 -2
- package/dist/{chunk-XVDZFTN5.js → chunk-RFIJH2OE.js} +5 -5
- package/dist/{chunk-K4A6UVPB.js → chunk-RJ7Z7YXK.js} +11 -11
- package/dist/{chunk-ZZCR2QYL.js → chunk-RSSLDMFX.js} +2 -2
- package/dist/{chunk-ZZCR2QYL.js.map → chunk-RSSLDMFX.js.map} +1 -1
- package/dist/{chunk-QE6YVNP5.js → chunk-RTXHUVOD.js} +53 -19
- package/dist/chunk-RTXHUVOD.js.map +1 -0
- package/dist/{chunk-HJUP3K6L.js → chunk-RXYO6NA6.js} +2 -2
- package/dist/{chunk-TBXAY2SS.js → chunk-SGHGCFVV.js} +5 -5
- package/dist/{chunk-THTF2W7M.js → chunk-TRTLWUDD.js} +19 -18
- package/dist/chunk-TRTLWUDD.js.map +1 -0
- package/dist/{chunk-2SKMZUOW.js → chunk-U26LB4WA.js} +7 -7
- package/dist/{chunk-6P4REYKL.js → chunk-UDAUULK2.js} +28 -2
- package/dist/{chunk-6P4REYKL.js.map → chunk-UDAUULK2.js.map} +1 -1
- package/dist/{chunk-KTOXQMW3.js → chunk-UHSOPTNB.js} +14 -4
- package/dist/chunk-UHSOPTNB.js.map +1 -0
- package/dist/{chunk-VHKXRYQN.js → chunk-VBK6SRNE.js} +2 -2
- package/dist/{chunk-KQAFEZQX.js → chunk-VDX2J7OX.js} +2 -2
- package/dist/{chunk-Z4GUX2M6.js → chunk-VSN2DMQK.js} +2 -2
- package/dist/{chunk-ZHXSOMYH.js → chunk-VVX5PZFS.js} +2 -2
- package/dist/{chunk-G2XZFGYN.js → chunk-WGZHSQDV.js} +4 -4
- package/dist/{chunk-H3TKENU4.js → chunk-WIKO4SCR.js} +5 -5
- package/dist/{chunk-MDIEES23.js → chunk-WN2OXGGH.js} +1 -1
- package/dist/chunk-WN2OXGGH.js.map +1 -0
- package/dist/{chunk-LKFVVN7R.js → chunk-WNPRRBOE.js} +2 -2
- package/dist/{chunk-SV4Z2S67.js → chunk-WUUGE7QC.js} +54 -21
- package/dist/chunk-WUUGE7QC.js.map +1 -0
- package/dist/{chunk-ZZUVBZL2.js → chunk-X2QPKLPL.js} +2 -2
- package/dist/{chunk-RDLPFM7I.js → chunk-XJLTQTAO.js} +2 -2
- package/dist/{chunk-ZRMMXWYI.js → chunk-YR5QT4SR.js} +32 -9
- package/dist/chunk-YR5QT4SR.js.map +1 -0
- package/dist/{chunk-CARRTDKC.js → chunk-Z22M4JCY.js} +4 -3
- package/dist/chunk-Z22M4JCY.js.map +1 -0
- package/dist/{chunk-XM46Y66S.js → chunk-ZFU6QNRN.js} +7 -7
- package/dist/{chunk-SUEOG2S4.js → chunk-ZGXHTV5Y.js} +2 -2
- package/dist/{chunk-ZX3AYNNV.js → chunk-ZOGKZ2XT.js} +3 -2
- package/dist/chunk-ZOGKZ2XT.js.map +1 -0
- package/dist/{chunk-46Z3VGWF.js → chunk-ZYRAY5FL.js} +3 -3
- package/dist/{chunk-3XPN7AVY.js → chunk-ZYSOT6HD.js} +2 -2
- package/dist/{cli-BWri5-am.d.ts → cli-Cx9s_VRn.d.ts} +5 -5
- package/dist/cli.d.ts +16 -15
- package/dist/cli.js +129 -127
- package/dist/coding/export-okf-codegraph.d.ts +1 -1
- package/dist/coding/export-okf-codegraph.js +22 -22
- package/dist/coding/pre-action-gate.d.ts +1 -1
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +24 -24
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +10 -10
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +24 -24
- 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 +25 -25
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +4 -4
- package/dist/contradiction/index.js +7 -7
- package/dist/{contradiction-scan-BSGKZHYJ.js → contradiction-scan-GVD4JJ7B.js} +4 -4
- package/dist/converge-config.d.ts +1 -1
- package/dist/convergence-refresh.d.ts +2 -2
- package/dist/convergence-refresh.js +26 -26
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/corpus-watermark.d.ts +1 -1
- package/dist/corpus-watermark.js +25 -25
- package/dist/cross-lingual-recall.d.ts +1 -1
- package/dist/dashboard-runtime.js +2 -2
- package/dist/day-summary.d.ts +1 -1
- package/dist/deep-recall-config.d.ts +12 -1
- package/dist/deep-recall-config.js +5 -3
- package/dist/deep-recall-http-glue.d.ts +17 -14
- package/dist/deep-recall-http-glue.js +7 -4
- package/dist/deep-recall-mcp-tools.d.ts +14 -13
- package/dist/deep-recall-policy-llm.d.ts +12 -2
- package/dist/deep-recall-policy-llm.js +3 -3
- package/dist/deep-recall-seeds.d.ts +4 -1
- package/dist/deep-recall-seeds.js +1 -1
- package/dist/deep-recall.d.ts +12 -1
- package/dist/deep-recall.js +3 -2
- package/dist/delinearize.d.ts +1 -1
- package/dist/dependency-propagation-config.d.ts +1 -1
- package/dist/{dependency-propagation-delivery-ueZlKTQB.d.ts → dependency-propagation-delivery-C2QFQ97b.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/enrichment/index.d.ts +1 -1
- package/dist/entity-origin-fields.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +23 -23
- package/dist/entity-schema.d.ts +1 -1
- package/dist/episodic-context.d.ts +1 -1
- package/dist/eval-trajectory-contracts.d.ts +1 -1
- package/dist/eval-trajectory-store.d.ts +1 -1
- package/dist/eval-trajectory.d.ts +1 -1
- package/dist/explicit-capture.d.ts +11 -11
- package/dist/explicit-capture.js +6 -6
- package/dist/external-wiki-access.d.ts +14 -13
- package/dist/external-wiki-access.js +80 -79
- package/dist/external-wiki-collection-registration.d.ts +1 -1
- package/dist/external-wiki-collection.d.ts +1 -1
- package/dist/external-wiki-mcp-tools.d.ts +14 -13
- package/dist/extraction-error-classification.d.ts +1 -1
- package/dist/extraction-faithfulness.d.ts +2 -2
- package/dist/extraction-faithfulness.js +3 -3
- package/dist/extraction-judge-telemetry.d.ts +2 -2
- package/dist/extraction-judge-training.d.ts +2 -2
- package/dist/extraction-judge.d.ts +2 -2
- package/dist/extraction-judge.js +3 -3
- package/dist/extraction-liveness.d.ts +1 -1
- package/dist/extraction-normalization.d.ts +1 -1
- package/dist/extraction-prompt.d.ts +1 -1
- package/dist/extraction-source-grounding-rules.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction-span-config.d.ts +1 -1
- package/dist/extraction-span-materialize.d.ts +1 -1
- package/dist/extraction.d.ts +2 -2
- package/dist/extraction.js +38 -38
- package/dist/fallback-llm-codex-subscription.d.ts +15 -5
- package/dist/fallback-llm-codex-subscription.js +3 -1
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/fallback-llm.js +2 -2
- package/dist/{first-start-migration-ZWMV5CX4.js → first-start-migration-L3UFX5CU.js} +4 -4
- package/dist/{generic-recall-paths-CpyVmA88.d.ts → generic-recall-paths-CeKQsQEn.d.ts} +1 -1
- package/dist/graph-append-error.d.ts +1 -1
- package/dist/graph-dashboard-diff.d.ts +1 -1
- package/dist/graph-dashboard-key.d.ts +1 -1
- package/dist/graph-dashboard-parser.d.ts +1 -1
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-jsonl.d.ts +1 -1
- package/dist/graph-path-reconstruction.d.ts +1 -1
- package/dist/graph-path-scoring.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/harmonic-retrieval.js +3 -3
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/importers/test-utils.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/{index-BvUA4S7M.d.ts → index-Bau-Wl0H.d.ts} +3 -3
- package/dist/index.d.ts +703 -702
- package/dist/index.js +331 -327
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +8 -8
- 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-BsJGulur.d.ts → local-llm-Bj-m01Ro.d.ts} +1 -1
- package/dist/local-llm-helpers.d.ts +2 -2
- package/dist/local-llm.d.ts +2 -2
- package/dist/local-llm.js +2 -2
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/location/index.d.ts +6 -209
- package/dist/location/index.js +77 -71
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +23 -23
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +23 -23
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +25 -25
- package/dist/{maintenance-CYubtIRr.d.ts → maintenance-Ye-y-c7f.d.ts} +7 -6
- package/dist/mcp-memory-inspector-app.d.ts +14 -13
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-controller.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-snapshot.d.ts +1 -1
- package/dist/memory-subject-cli.d.ts +14 -13
- package/dist/memory-subject.d.ts +14 -13
- package/dist/memory-worth-outcomes.d.ts +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +23 -23
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +3 -3
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +22 -22
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/offline-sync-impression-drain.js +5 -5
- package/dist/operator-doctor-corpus.d.ts +1 -1
- package/dist/operator-doctor-corpus.js +26 -26
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +44 -44
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +39 -39
- package/dist/{orchestrator-BWDRJ_0d.d.ts → orchestrator-fFDDYUUV.d.ts} +20 -10
- package/dist/orchestrator.d.ts +11 -11
- package/dist/orchestrator.js +170 -168
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-7JMn2yMH.d.ts → pipeline-D_j5n_Ih.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/proactive-contention.d.ts +2 -2
- package/dist/provenance.d.ts +1 -1
- package/dist/{public-http-CJWs3mo9.d.ts → public-http-CjiSqxUx.d.ts} +1 -1
- package/dist/{qmd-CxCH9G9m.d.ts → qmd-CnxVjKrv.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/recall-concurrency-config.d.ts +1 -1
- 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-memory-map.d.ts +1 -1
- package/dist/recall-navigate-access.d.ts +1 -1
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.d.ts +1 -1
- package/dist/recall-navigate-disclosure.js +1 -1
- package/dist/recall-navigate.d.ts +1 -1
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-planner-llm.js +2 -2
- package/dist/recall-state-view-admission.d.ts +2 -2
- package/dist/recall-state-view-admission.js +8 -8
- package/dist/recall-state-view-anchors.d.ts +1 -1
- package/dist/recall-state-view-anchors.js +2 -2
- package/dist/recall-state-view-inject.js +2 -2
- package/dist/recall-state-view-render.js +2 -2
- package/dist/recall-state-view-widen.js +2 -2
- package/dist/recall-state-view-wire.js +3 -3
- package/dist/recall-state-view.d.ts +9 -1
- package/dist/recall-state-view.js +5 -3
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-timings.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/reconcile/cursor.d.ts +1 -1
- package/dist/reconcile/cursor.js +2 -2
- package/dist/reconcile/manifest.d.ts +1 -1
- package/dist/reconcile/manifest.js +4 -4
- package/dist/reconcile/plan.d.ts +1 -1
- package/dist/reconcile/plan.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +1 -1
- package/dist/replay/normalizers/claude.d.ts +1 -1
- package/dist/replay/normalizers/openclaw.d.ts +1 -1
- package/dist/replay/normalizers/shared.d.ts +1 -1
- package/dist/replay/runner.d.ts +1 -1
- package/dist/replay/types.d.ts +1 -1
- package/dist/replica-divergence.d.ts +1 -1
- package/dist/replica-peers-config.d.ts +1 -1
- package/dist/{resolution-4GG3QZRJ.js → resolution-LXFQQ4AE.js} +8 -8
- package/dist/resolution-LXFQQ4AE.js.map +1 -0
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +12 -12
- package/dist/retrieval-agents.d.ts +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/salvage-envelope.d.ts +1 -1
- package/dist/schemas.d.ts +160 -160
- package/dist/{scope-profiles-BGAUqhBR.d.ts → scope-profiles-BajH5zAT.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/factory.js +2 -2
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +4 -4
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-CCeRD9pV.d.ts → semantic-consolidation-Bu6d3O7R.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +25 -25
- package/dist/semantic-rule-promotion.js +22 -22
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +22 -22
- package/dist/{service-BwpzRduk.d.ts → service-ChFwWtLS.d.ts} +13 -2
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +7 -7
- package/dist/shared-context/manager.js +2 -2
- package/dist/shared-context/write-output-controls.d.ts +34 -0
- package/dist/shared-context/write-output-controls.js +10 -0
- package/dist/shared-context/write-output-controls.js.map +1 -0
- package/dist/signal.d.ts +1 -1
- package/dist/source-agent-qualifier.d.ts +1 -1
- package/dist/source-agent-qualifier.js +33 -33
- package/dist/source-attribution.d.ts +23 -1
- package/dist/source-attribution.js +13 -3
- package/dist/standup/build.js +23 -23
- package/dist/{storage-BprAGBG0.d.ts → storage-BDKQdsmB.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +21 -21
- package/dist/subject-config.d.ts +1 -1
- package/dist/subject-config.js +2 -2
- package/dist/summarizer.d.ts +1 -1
- package/dist/summarizer.js +6 -6
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/support-passport/index.d.ts +17 -16
- package/dist/support-passport/index.js +82 -81
- package/dist/tagging-CwK6um2q.d.ts +240 -0
- package/dist/temporal-supersession.d.ts +2 -2
- package/dist/temporal-timeline-recall.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-routing.d.ts +1 -1
- package/dist/tier-routing.js +3 -3
- package/dist/{tier-stats-LUSUUNU6.js → tier-stats-VK5PCO2L.js} +4 -4
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +3 -3
- package/dist/transfer/export-okf.d.ts +1 -1
- package/dist/transfer/export-okf.js +22 -22
- package/dist/transfer/types.d.ts +78 -78
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-nJV23pa3.d.ts → types-B65IoepH.d.ts} +6 -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 +22 -22
- package/dist/who-knows-cli.d.ts +14 -13
- package/dist/who-knows-cli.js +23 -23
- package/dist/who-knows.d.ts +14 -13
- package/dist/who-knows.js +22 -22
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +12 -2
- package/src/access-http.test.ts +1 -0
- package/src/access-http.ts +1 -1
- package/src/access-mcp-shared-context-tools.ts +103 -0
- package/src/access-mcp.ts +7 -80
- package/src/access-observe-write-category.ts +1 -0
- package/src/access-observe-write-surface.ts +3 -3
- package/src/access-operations-batch.ts +47 -4
- package/src/access-schema.ts +1 -0
- package/src/access-service.ts +18 -12
- package/src/activity/timeline/regenerate.test.ts +48 -0
- package/src/activity/timeline/regenerate.ts +7 -5
- package/src/cli/deep-recall-commands.ts +22 -10
- package/src/config.ts +5 -0
- package/src/dedup/merge.test.ts +283 -0
- package/src/deep-recall-boundary.test.ts +66 -0
- package/src/deep-recall-cli.test.ts +82 -0
- package/src/deep-recall-config.test.ts +56 -0
- package/src/deep-recall-config.ts +32 -0
- package/src/deep-recall-http-glue.ts +10 -10
- package/src/deep-recall-policy-llm.test.ts +242 -0
- package/src/deep-recall-policy-llm.ts +37 -7
- package/src/deep-recall-seeds.test.ts +53 -0
- package/src/deep-recall-seeds.ts +7 -1
- package/src/deep-recall-surface.test.ts +93 -0
- package/src/deep-recall.test.ts +121 -0
- package/src/deep-recall.ts +88 -28
- package/src/fallback-llm-codex-subscription.ts +27 -5
- package/src/fallback-llm.test.ts +120 -0
- package/src/fallback-llm.ts +17 -16
- package/src/location/phase5-wiring.test.ts +408 -0
- package/src/location/tagging.ts +58 -0
- package/src/meetings/config.test.ts +58 -0
- package/src/orchestration/extraction-persist.ts +1 -1
- package/src/orchestration/orchestrator-helpers.ts +2 -0
- package/src/orchestration/recall-entry.ts +15 -1
- package/src/orchestration/recall-internal.ts +1 -0
- package/src/orchestration/recall-section-coordinator.ts +65 -28
- package/src/orchestration/recall-state-view-pipeline.test.ts +8 -2
- package/src/orchestration/semantic-merge-commit-effects.ts +45 -16
- package/src/orchestration/semantic-merge-persist.ts +23 -36
- package/src/orchestration/workspace-ops.ts +14 -0
- package/src/providers/codex-subscription.test.ts +127 -0
- package/src/providers/codex-subscription.ts +1 -1
- package/src/recall-state-view-budget.test.ts +424 -0
- package/src/recall-state-view.ts +30 -16
- package/src/shared-context/envelope-io.ts +25 -0
- package/src/shared-context/envelope-wiring.test.ts +4 -2
- package/src/shared-context/manager.ts +1 -0
- package/src/shared-context/write-output-controls.test.ts +192 -0
- package/src/shared-context/write-output-controls.ts +72 -0
- package/src/source-attribution.test.ts +39 -0
- package/src/source-attribution.ts +72 -0
- package/src/types.ts +5 -0
- package/src/wearables/pipeline.ts +19 -0
- package/src/wearables/service.ts +8 -0
- package/dist/chunk-5LYSEZOF.js.map +0 -1
- package/dist/chunk-CARRTDKC.js.map +0 -1
- package/dist/chunk-CC37E3QM.js.map +0 -1
- package/dist/chunk-IS2IDFJP.js.map +0 -1
- package/dist/chunk-K75A5XWU.js.map +0 -1
- package/dist/chunk-KTOXQMW3.js.map +0 -1
- package/dist/chunk-MDIEES23.js.map +0 -1
- package/dist/chunk-OEDW4ER7.js.map +0 -1
- package/dist/chunk-QE6YVNP5.js.map +0 -1
- package/dist/chunk-ROEFLU37.js.map +0 -1
- package/dist/chunk-SFHLQPBF.js.map +0 -1
- package/dist/chunk-SV4Z2S67.js.map +0 -1
- package/dist/chunk-THTF2W7M.js.map +0 -1
- package/dist/chunk-UZ6JYPJ6.js.map +0 -1
- package/dist/chunk-YTK5MVNF.js.map +0 -1
- package/dist/chunk-ZRMMXWYI.js.map +0 -1
- package/dist/chunk-ZX3AYNNV.js.map +0 -1
- /package/dist/{capsule-crypto-7FJQINUR.js.map → access-mcp-shared-context-tools.js.map} +0 -0
- /package/dist/{contradiction-scan-BSGKZHYJ.js.map → capsule-crypto-YO5QJ6L3.js.map} +0 -0
- /package/dist/{capsule-merge-IPG4IOFP.js.map → capsule-merge-3MNURAQ3.js.map} +0 -0
- /package/dist/{chunk-JAJIMTFB.js.map → chunk-2PDMIPMP.js.map} +0 -0
- /package/dist/{chunk-6L2II3KS.js.map → chunk-3D75XIYO.js.map} +0 -0
- /package/dist/{chunk-XCPNH2MG.js.map → chunk-3KJTSCSX.js.map} +0 -0
- /package/dist/{chunk-YTZN2UZO.js.map → chunk-3RLWUW7G.js.map} +0 -0
- /package/dist/{chunk-J272ODKJ.js.map → chunk-42DJ235G.js.map} +0 -0
- /package/dist/{chunk-NVVZPBKI.js.map → chunk-46FVFU7S.js.map} +0 -0
- /package/dist/{chunk-JUDT33RX.js.map → chunk-4AX5OYKC.js.map} +0 -0
- /package/dist/{chunk-GSSDHAYH.js.map → chunk-4IGOLIWM.js.map} +0 -0
- /package/dist/{chunk-23HFXQ5J.js.map → chunk-6EGIQEKC.js.map} +0 -0
- /package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
- /package/dist/{chunk-GO5LOHCD.js.map → chunk-7L54ARML.js.map} +0 -0
- /package/dist/{chunk-TEMKBSV6.js.map → chunk-7PSRCGWT.js.map} +0 -0
- /package/dist/{chunk-ICNJ6J46.js.map → chunk-AAAFZW3U.js.map} +0 -0
- /package/dist/{chunk-K4JKAXMO.js.map → chunk-AAX22E4K.js.map} +0 -0
- /package/dist/{chunk-KY236SP5.js.map → chunk-AHHFBJX7.js.map} +0 -0
- /package/dist/{chunk-TZ44E732.js.map → chunk-AIVRD66I.js.map} +0 -0
- /package/dist/{chunk-YRIFXXMI.js.map → chunk-AOGICQMH.js.map} +0 -0
- /package/dist/{chunk-KOTG3RXE.js.map → chunk-AUSRUOMQ.js.map} +0 -0
- /package/dist/{chunk-C5R73BON.js.map → chunk-BIANISES.js.map} +0 -0
- /package/dist/{chunk-IMBQFHRV.js.map → chunk-BPXJINHW.js.map} +0 -0
- /package/dist/{chunk-2NLLXCJG.js.map → chunk-BXLOS5AJ.js.map} +0 -0
- /package/dist/{chunk-2J3V5QEO.js.map → chunk-C3QXITIP.js.map} +0 -0
- /package/dist/{chunk-2SNCQHJZ.js.map → chunk-CQ4BTPX6.js.map} +0 -0
- /package/dist/{chunk-3QEVOQF5.js.map → chunk-CTETTVDN.js.map} +0 -0
- /package/dist/{chunk-DFVSJFHK.js.map → chunk-DBB5JPSL.js.map} +0 -0
- /package/dist/{chunk-W23JARAQ.js.map → chunk-DLPMOSNH.js.map} +0 -0
- /package/dist/{chunk-BGRTZOJB.js.map → chunk-DMTSKY4W.js.map} +0 -0
- /package/dist/{chunk-X7Y7WX73.js.map → chunk-DQEMWVMT.js.map} +0 -0
- /package/dist/{chunk-QS5Q5RBV.js.map → chunk-E4FRR4MA.js.map} +0 -0
- /package/dist/{chunk-RJQAP333.js.map → chunk-ETE3SGAH.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-RLU2Y5GV.js.map → chunk-F2FJTOV6.js.map} +0 -0
- /package/dist/{chunk-V2ZA4YWE.js.map → chunk-F5H6YG5P.js.map} +0 -0
- /package/dist/{chunk-4CMXI55L.js.map → chunk-FSUFKIFS.js.map} +0 -0
- /package/dist/{chunk-ZAEPD4C2.js.map → chunk-G3NTZZWT.js.map} +0 -0
- /package/dist/{chunk-ZMWSYUUL.js.map → chunk-GCBIXUPT.js.map} +0 -0
- /package/dist/{chunk-WZYHPAG5.js.map → chunk-GIM2AGFL.js.map} +0 -0
- /package/dist/{chunk-J7FVMLBR.js.map → chunk-GWEZNCGA.js.map} +0 -0
- /package/dist/{chunk-LFVZD5EC.js.map → chunk-GWNSKQDA.js.map} +0 -0
- /package/dist/{chunk-MJC7UKH7.js.map → chunk-H2N6SLTR.js.map} +0 -0
- /package/dist/{chunk-J4WGTN2N.js.map → chunk-HK44SV6K.js.map} +0 -0
- /package/dist/{chunk-JDX2OA4R.js.map → chunk-HNHIHXSD.js.map} +0 -0
- /package/dist/{chunk-VQYWKCDR.js.map → chunk-HPMCKAET.js.map} +0 -0
- /package/dist/{chunk-MVG3KXON.js.map → chunk-I65KB36L.js.map} +0 -0
- /package/dist/{chunk-AEOOGXMQ.js.map → chunk-J2MGTGKC.js.map} +0 -0
- /package/dist/{chunk-PKUJNICO.js.map → chunk-JC2OBYYD.js.map} +0 -0
- /package/dist/{chunk-5U7K4W6K.js.map → chunk-JDOBQPJY.js.map} +0 -0
- /package/dist/{chunk-VQWBUPSJ.js.map → chunk-JMAP6L6Q.js.map} +0 -0
- /package/dist/{chunk-7Z54NXVS.js.map → chunk-K27INAPR.js.map} +0 -0
- /package/dist/{chunk-7D6SER6A.js.map → chunk-KJQ4Y2PY.js.map} +0 -0
- /package/dist/{chunk-QPVNK2VE.js.map → chunk-LCVYO3ON.js.map} +0 -0
- /package/dist/{chunk-HIP6DKJJ.js.map → chunk-LQVXSRAJ.js.map} +0 -0
- /package/dist/{chunk-A7GQBJP5.js.map → chunk-LVFI5LG7.js.map} +0 -0
- /package/dist/{chunk-TO36VPZI.js.map → chunk-LWF6GOII.js.map} +0 -0
- /package/dist/{chunk-ES5BUPYB.js.map → chunk-OCWFKD5Q.js.map} +0 -0
- /package/dist/{chunk-IOPIGX7Y.js.map → chunk-OP722LOG.js.map} +0 -0
- /package/dist/{chunk-62D2PAAM.js.map → chunk-PAAJWQH5.js.map} +0 -0
- /package/dist/{chunk-V6EGNVUT.js.map → chunk-PIWFNPQT.js.map} +0 -0
- /package/dist/{chunk-JOP7W24J.js.map → chunk-PLJ2MQFT.js.map} +0 -0
- /package/dist/{chunk-37CAEC7E.js.map → chunk-PWPIERBM.js.map} +0 -0
- /package/dist/{chunk-BXIJSPCL.js.map → chunk-Q62GA5U2.js.map} +0 -0
- /package/dist/{chunk-I3H5LFOI.js.map → chunk-QNJQCLI6.js.map} +0 -0
- /package/dist/{chunk-BYQX4IOG.js.map → chunk-R45VFSEV.js.map} +0 -0
- /package/dist/{chunk-XVDZFTN5.js.map → chunk-RFIJH2OE.js.map} +0 -0
- /package/dist/{chunk-K4A6UVPB.js.map → chunk-RJ7Z7YXK.js.map} +0 -0
- /package/dist/{chunk-HJUP3K6L.js.map → chunk-RXYO6NA6.js.map} +0 -0
- /package/dist/{chunk-TBXAY2SS.js.map → chunk-SGHGCFVV.js.map} +0 -0
- /package/dist/{chunk-2SKMZUOW.js.map → chunk-U26LB4WA.js.map} +0 -0
- /package/dist/{chunk-VHKXRYQN.js.map → chunk-VBK6SRNE.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-VDX2J7OX.js.map} +0 -0
- /package/dist/{chunk-Z4GUX2M6.js.map → chunk-VSN2DMQK.js.map} +0 -0
- /package/dist/{chunk-ZHXSOMYH.js.map → chunk-VVX5PZFS.js.map} +0 -0
- /package/dist/{chunk-G2XZFGYN.js.map → chunk-WGZHSQDV.js.map} +0 -0
- /package/dist/{chunk-H3TKENU4.js.map → chunk-WIKO4SCR.js.map} +0 -0
- /package/dist/{chunk-LKFVVN7R.js.map → chunk-WNPRRBOE.js.map} +0 -0
- /package/dist/{chunk-ZZUVBZL2.js.map → chunk-X2QPKLPL.js.map} +0 -0
- /package/dist/{chunk-RDLPFM7I.js.map → chunk-XJLTQTAO.js.map} +0 -0
- /package/dist/{chunk-XM46Y66S.js.map → chunk-ZFU6QNRN.js.map} +0 -0
- /package/dist/{chunk-SUEOG2S4.js.map → chunk-ZGXHTV5Y.js.map} +0 -0
- /package/dist/{chunk-46Z3VGWF.js.map → chunk-ZYRAY5FL.js.map} +0 -0
- /package/dist/{chunk-3XPN7AVY.js.map → chunk-ZYSOT6HD.js.map} +0 -0
- /package/dist/{resolution-4GG3QZRJ.js.map → contradiction-scan-GVD4JJ7B.js.map} +0 -0
- /package/dist/{first-start-migration-ZWMV5CX4.js.map → first-start-migration-L3UFX5CU.js.map} +0 -0
- /package/dist/{tier-stats-LUSUUNU6.js.map → tier-stats-VK5PCO2L.js.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.69.
|
|
3
|
+
"version": "9.69.42",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -2680,6 +2680,16 @@
|
|
|
2680
2680
|
"remnic-source": "./src/shared-context/manager.ts",
|
|
2681
2681
|
"import": "./dist/shared-context/manager.js"
|
|
2682
2682
|
},
|
|
2683
|
+
"./shared-context/write-output-controls": {
|
|
2684
|
+
"types": "./dist/shared-context/write-output-controls.d.ts",
|
|
2685
|
+
"remnic-source": "./src/shared-context/write-output-controls.ts",
|
|
2686
|
+
"import": "./dist/shared-context/write-output-controls.js"
|
|
2687
|
+
},
|
|
2688
|
+
"./shared-context/write-output-controls.js": {
|
|
2689
|
+
"types": "./dist/shared-context/write-output-controls.d.ts",
|
|
2690
|
+
"remnic-source": "./src/shared-context/write-output-controls.ts",
|
|
2691
|
+
"import": "./dist/shared-context/write-output-controls.js"
|
|
2692
|
+
},
|
|
2683
2693
|
"./signal": {
|
|
2684
2694
|
"types": "./dist/signal.d.ts",
|
|
2685
2695
|
"remnic-source": "./src/signal.ts",
|
|
@@ -3297,7 +3307,7 @@
|
|
|
3297
3307
|
"core"
|
|
3298
3308
|
],
|
|
3299
3309
|
"peerDependencies": {
|
|
3300
|
-
"@remnic/coding-graph": "^9.69.
|
|
3310
|
+
"@remnic/coding-graph": "^9.69.42"
|
|
3301
3311
|
},
|
|
3302
3312
|
"peerDependenciesMeta": {
|
|
3303
3313
|
"@remnic/coding-graph": {
|
package/src/access-http.test.ts
CHANGED
package/src/access-http.ts
CHANGED
|
@@ -1753,7 +1753,7 @@ export class EngramAccessHttpServer extends ReviewDeckAccessHttpBase {
|
|
|
1753
1753
|
if (req.method === "GET" && meetingGetEngram) { this.enforceTokenOp("meetings_get"); await respondMeetingsGet(res, this.respondJson.bind(this), this.service, meetingGetEngram[1] ?? "", this.wearablesScope(req, parsed.searchParams.get("namespace") ?? undefined, parsed.searchParams.get("sessionKey") ?? undefined)); return; }
|
|
1754
1754
|
const meetingGetRemnic = /^\/remnic\/v1\/meetings\/([^/]+)$/.exec(pathname); if (req.method === "GET" && meetingGetRemnic) { this.enforceTokenOp("meetings_get"); await respondMeetingsGet(res, this.respondJson.bind(this), this.service, meetingGetRemnic[1] ?? "", this.wearablesScope(req, parsed.searchParams.get("namespace") ?? undefined, parsed.searchParams.get("sessionKey") ?? undefined)); return; }
|
|
1755
1755
|
if (req.method === "POST" && (pathname === "/engram/v1/recall/deep" || pathname === "/remnic/v1/recall/deep")) {
|
|
1756
|
-
this.enforceTokenOp("deep_recall"); await respondDeepRecall(req, res, this.respondJson.bind(this), this.readJsonBody.bind(this), this.service, (ns, sk) => this.wearablesScope(req, ns ?? parsed.searchParams.get("namespace") ?? undefined, sk ?? parsed.searchParams.get("sessionKey") ?? undefined)); return; }
|
|
1756
|
+
this.enforceTokenOp("deep_recall"); await respondDeepRecall(req, res, this.respondJson.bind(this), this.readJsonBody.bind(this), this.service, (ns, sk) => this.wearablesScope(req, ns ?? parsed.searchParams.get("namespace") ?? undefined, sk ?? parsed.searchParams.get("sessionKey") ?? undefined), abortSignal); return; }
|
|
1757
1757
|
// Location sync surfaces (issue #2047): thin branches; bodies + boundary dispatch live in location/http-glue.ts.
|
|
1758
1758
|
if (req.method === "GET" && (pathname === "/engram/v1/location/status" || pathname === "/remnic/v1/location/status")) {
|
|
1759
1759
|
this.enforceTokenOp("location_status"); await respondLocationStatus(res, this.respondJson.bind(this), this.service); return; }
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared-context MCP tool descriptors (issue #2920).
|
|
3
|
+
*
|
|
4
|
+
* Extracted from access-mcp.ts (at its fileSizeGrandfather ceiling) so the
|
|
5
|
+
* write-output tool could gain the governed envelope controls without
|
|
6
|
+
* growing the god file. Content is identical to the previously inline
|
|
7
|
+
* entries except for the new `authority`/`expiresAt`/`supersedes` properties
|
|
8
|
+
* on `engram.shared_context_write_output`, which mirror the canonical
|
|
9
|
+
* validation in shared-context/write-output-controls.ts and
|
|
10
|
+
* composeWriteEnvelope.
|
|
11
|
+
*/
|
|
12
|
+
import type { McpTool } from "./access-mcp.js";
|
|
13
|
+
|
|
14
|
+
export const sharedContextMcpTools: McpTool[] = [
|
|
15
|
+
{
|
|
16
|
+
name: "engram.shared_context_write_output",
|
|
17
|
+
description: "Write agent work product into shared-context directory for cross-agent coordination.",
|
|
18
|
+
inputSchema: {
|
|
19
|
+
type: "object",
|
|
20
|
+
properties: {
|
|
21
|
+
agentId: { type: "string", description: "Agent ID producing this output." },
|
|
22
|
+
title: { type: "string", description: "Short title for the output." },
|
|
23
|
+
content: { type: "string", description: "Markdown content to write." },
|
|
24
|
+
authority: {
|
|
25
|
+
type: "string",
|
|
26
|
+
enum: ["informational", "advisory", "binding"],
|
|
27
|
+
description:
|
|
28
|
+
"Envelope authority class. `binding` additionally requires the operator config `sharedContextAllowBindingAuthority: true`.",
|
|
29
|
+
},
|
|
30
|
+
expiresAt: {
|
|
31
|
+
type: "string",
|
|
32
|
+
description:
|
|
33
|
+
"ISO-8601 instant strictly after the write time and at most 10 years out. Past, invalid, or over-bound values are rejected.",
|
|
34
|
+
},
|
|
35
|
+
supersedes: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Id of the shared item this output supersedes (non-empty, single line).",
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
required: ["agentId", "title", "content"],
|
|
41
|
+
additionalProperties: false,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "engram.shared_feedback_record",
|
|
46
|
+
description: "Append approval/rejection decision into shared-context feedback inbox for compounding learning.",
|
|
47
|
+
inputSchema: {
|
|
48
|
+
type: "object",
|
|
49
|
+
properties: {
|
|
50
|
+
agent: { type: "string", description: "Agent name that produced the output." },
|
|
51
|
+
decision: { type: "string", enum: ["approved", "approved_with_feedback", "rejected"] },
|
|
52
|
+
reason: { type: "string" },
|
|
53
|
+
date: { type: "string", description: "ISO timestamp. Defaults to now." },
|
|
54
|
+
learning: { type: "string" },
|
|
55
|
+
outcome: { type: "string" },
|
|
56
|
+
severity: { type: "string", enum: ["low", "medium", "high"] },
|
|
57
|
+
confidence: { type: "number", description: "Confidence 0-1." },
|
|
58
|
+
workflow: { type: "string" },
|
|
59
|
+
tags: { type: "array", items: { type: "string" } },
|
|
60
|
+
evidenceWindowStart: { type: "string" },
|
|
61
|
+
evidenceWindowEnd: { type: "string" },
|
|
62
|
+
refs: { type: "array", items: { type: "string" } },
|
|
63
|
+
},
|
|
64
|
+
required: ["agent", "decision", "reason"],
|
|
65
|
+
additionalProperties: false,
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "engram.shared_priorities_append",
|
|
70
|
+
description: "Append priorities text into shared-context inbox for curator merge.",
|
|
71
|
+
inputSchema: {
|
|
72
|
+
type: "object",
|
|
73
|
+
properties: {
|
|
74
|
+
agentId: { type: "string" },
|
|
75
|
+
text: { type: "string", description: "Priority notes (markdown)." },
|
|
76
|
+
},
|
|
77
|
+
required: ["agentId", "text"],
|
|
78
|
+
additionalProperties: false,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "engram.shared_context_cross_signals_run",
|
|
83
|
+
description: "Generate cross-signal markdown + JSON artifacts from agent outputs and feedback.",
|
|
84
|
+
inputSchema: {
|
|
85
|
+
type: "object",
|
|
86
|
+
properties: {
|
|
87
|
+
date: { type: "string", description: "YYYY-MM-DD. Defaults to today." },
|
|
88
|
+
},
|
|
89
|
+
additionalProperties: false,
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "engram.shared_context_curate_daily",
|
|
94
|
+
description: "Generate daily roundtable summary (deterministic baseline aggregation).",
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: "object",
|
|
97
|
+
properties: {
|
|
98
|
+
date: { type: "string", description: "YYYY-MM-DD. Defaults to today." },
|
|
99
|
+
},
|
|
100
|
+
additionalProperties: false,
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
];
|
package/src/access-mcp.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { sharedContextMcpTools } from "./access-mcp-shared-context-tools.js";
|
|
1
2
|
import { randomUUID } from "node:crypto";
|
|
2
3
|
import {
|
|
3
4
|
MCP_ADMIN_OPS_MIGRATED_OPERATIONS, MCP_ADMIN_OPS_TOOLS,
|
|
@@ -260,7 +261,7 @@ function resolveChatGptInspectorRecallSessionKey(
|
|
|
260
261
|
}
|
|
261
262
|
|
|
262
263
|
const STRICT_MCP_SCHEMA_KEYS: Partial<Record<SchemaName, readonly string[]>> = {
|
|
263
|
-
daySummary: ["memories", "sessionKey", "namespace", "timeZone", "cwd", "projectTag"],
|
|
264
|
+
daySummary: ["memories", "includeLocation", "sessionKey", "namespace", "timeZone", "cwd", "projectTag"],
|
|
264
265
|
memoryStore: [
|
|
265
266
|
"schemaVersion",
|
|
266
267
|
"idempotencyKey",
|
|
@@ -1301,80 +1302,9 @@ export class EngramMcpServer {
|
|
|
1301
1302
|
additionalProperties: false,
|
|
1302
1303
|
},
|
|
1303
1304
|
},
|
|
1304
|
-
// ── Shared Context
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
description: "Write agent work product into shared-context directory for cross-agent coordination.",
|
|
1308
|
-
inputSchema: {
|
|
1309
|
-
type: "object",
|
|
1310
|
-
properties: {
|
|
1311
|
-
agentId: { type: "string", description: "Agent ID producing this output." },
|
|
1312
|
-
title: { type: "string", description: "Short title for the output." },
|
|
1313
|
-
content: { type: "string", description: "Markdown content to write." },
|
|
1314
|
-
},
|
|
1315
|
-
required: ["agentId", "title", "content"],
|
|
1316
|
-
additionalProperties: false,
|
|
1317
|
-
},
|
|
1318
|
-
},
|
|
1319
|
-
{
|
|
1320
|
-
name: "engram.shared_feedback_record",
|
|
1321
|
-
description: "Append approval/rejection decision into shared-context feedback inbox for compounding learning.",
|
|
1322
|
-
inputSchema: {
|
|
1323
|
-
type: "object",
|
|
1324
|
-
properties: {
|
|
1325
|
-
agent: { type: "string", description: "Agent name that produced the output." },
|
|
1326
|
-
decision: { type: "string", enum: ["approved", "approved_with_feedback", "rejected"] },
|
|
1327
|
-
reason: { type: "string" },
|
|
1328
|
-
date: { type: "string", description: "ISO timestamp. Defaults to now." },
|
|
1329
|
-
learning: { type: "string" },
|
|
1330
|
-
outcome: { type: "string" },
|
|
1331
|
-
severity: { type: "string", enum: ["low", "medium", "high"] },
|
|
1332
|
-
confidence: { type: "number", description: "Confidence 0-1." },
|
|
1333
|
-
workflow: { type: "string" },
|
|
1334
|
-
tags: { type: "array", items: { type: "string" } },
|
|
1335
|
-
evidenceWindowStart: { type: "string" },
|
|
1336
|
-
evidenceWindowEnd: { type: "string" },
|
|
1337
|
-
refs: { type: "array", items: { type: "string" } },
|
|
1338
|
-
},
|
|
1339
|
-
required: ["agent", "decision", "reason"],
|
|
1340
|
-
additionalProperties: false,
|
|
1341
|
-
},
|
|
1342
|
-
},
|
|
1343
|
-
{
|
|
1344
|
-
name: "engram.shared_priorities_append",
|
|
1345
|
-
description: "Append priorities text into shared-context inbox for curator merge.",
|
|
1346
|
-
inputSchema: {
|
|
1347
|
-
type: "object",
|
|
1348
|
-
properties: {
|
|
1349
|
-
agentId: { type: "string" },
|
|
1350
|
-
text: { type: "string", description: "Priority notes (markdown)." },
|
|
1351
|
-
},
|
|
1352
|
-
required: ["agentId", "text"],
|
|
1353
|
-
additionalProperties: false,
|
|
1354
|
-
},
|
|
1355
|
-
},
|
|
1356
|
-
{
|
|
1357
|
-
name: "engram.shared_context_cross_signals_run",
|
|
1358
|
-
description: "Generate cross-signal markdown + JSON artifacts from agent outputs and feedback.",
|
|
1359
|
-
inputSchema: {
|
|
1360
|
-
type: "object",
|
|
1361
|
-
properties: {
|
|
1362
|
-
date: { type: "string", description: "YYYY-MM-DD. Defaults to today." },
|
|
1363
|
-
},
|
|
1364
|
-
additionalProperties: false,
|
|
1365
|
-
},
|
|
1366
|
-
},
|
|
1367
|
-
{
|
|
1368
|
-
name: "engram.shared_context_curate_daily",
|
|
1369
|
-
description: "Generate daily roundtable summary (deterministic baseline aggregation).",
|
|
1370
|
-
inputSchema: {
|
|
1371
|
-
type: "object",
|
|
1372
|
-
properties: {
|
|
1373
|
-
date: { type: "string", description: "YYYY-MM-DD. Defaults to today." },
|
|
1374
|
-
},
|
|
1375
|
-
additionalProperties: false,
|
|
1376
|
-
},
|
|
1377
|
-
},
|
|
1305
|
+
// ── Shared Context tools (extracted; access-mcp.ts is at its ratchet
|
|
1306
|
+
// ceiling — issue #2920) ─────────────────────────────────────────
|
|
1307
|
+
...sharedContextMcpTools,
|
|
1378
1308
|
{
|
|
1379
1309
|
name: "engram.compounding_weekly_synthesize",
|
|
1380
1310
|
description:
|
|
@@ -1654,12 +1584,9 @@ export class EngramMcpServer {
|
|
|
1654
1584
|
type: "object",
|
|
1655
1585
|
properties: {
|
|
1656
1586
|
since: { type: "string", description: "Lookback window (e.g. 'yesterday', '3d', '1w', '24h')." },
|
|
1657
|
-
focus: {
|
|
1658
|
-
type: "string",
|
|
1659
|
-
description:
|
|
1660
|
-
"Optional focus filter (e.g. 'person:Jane Doe', 'project:remnic-core', 'topic:retrieval').",
|
|
1661
|
-
},
|
|
1587
|
+
focus: { type: "string", description: "Optional focus filter (e.g. 'person:Jane Doe', 'project:remnic-core', 'topic:retrieval')." },
|
|
1662
1588
|
namespace: { type: "string" },
|
|
1589
|
+
includeLocation: { type: "boolean", description: "Opt-in: append matched location place names (location gates apply)." },
|
|
1663
1590
|
format: { type: "string", enum: ["markdown", "json"] },
|
|
1664
1591
|
maxFollowups: {
|
|
1665
1592
|
type: "number",
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
type MemoryScopePlan,
|
|
30
30
|
NamespaceNotWritableError,
|
|
31
31
|
} from "./access-service.js";
|
|
32
|
-
import { reapplyCategoryCoercion, splitCanonicalWriteRequest } from "./access-observe-write-category.js";
|
|
32
|
+
import { applyBriefingLocationContext, reapplyCategoryCoercion, splitCanonicalWriteRequest } from "./access-observe-write-category.js";
|
|
33
33
|
import { extractionForceFlush } from "./access-extraction-force-flush.js";
|
|
34
34
|
import { ObserveTranscriptPersister, observeTranscriptSessionKey } from "./access-observe-transcript.js";
|
|
35
35
|
import { FileCalendarSource, buildBriefing, parseBriefingFocus, parseBriefingWindow } from "./briefing.js";
|
|
@@ -454,7 +454,7 @@ export class AccessObserveWriteSurface {
|
|
|
454
454
|
? new FileCalendarSource(config.briefing.calendarSource)
|
|
455
455
|
: undefined;
|
|
456
456
|
|
|
457
|
-
const result = await buildBriefing({
|
|
457
|
+
const result = await applyBriefingLocationContext(await buildBriefing({
|
|
458
458
|
storage,
|
|
459
459
|
namespace,
|
|
460
460
|
window,
|
|
@@ -470,7 +470,7 @@ export class AccessObserveWriteSurface {
|
|
|
470
470
|
// other LLM feature uses. A configured key keeps its precedence so
|
|
471
471
|
// existing deployments are unchanged.
|
|
472
472
|
followupGenerator: config.openaiApiKey ? undefined : this.deps.orchestrator.briefingChainFollowupGenerator,
|
|
473
|
-
});
|
|
473
|
+
}), request.includeLocation, storage.dir, window.from.toISOString(), config.location);
|
|
474
474
|
|
|
475
475
|
return {
|
|
476
476
|
format,
|
|
@@ -33,7 +33,12 @@ import {
|
|
|
33
33
|
} from "./access-namespace-preflight.js";
|
|
34
34
|
import { expandTildePath } from "./utils/path.js";
|
|
35
35
|
import { resolvePrincipal } from "./namespaces/principal.js";
|
|
36
|
+
import {
|
|
37
|
+
parseSharedWriteOutputControls,
|
|
38
|
+
type SharedWriteOutputControls,
|
|
39
|
+
} from "./shared-context/write-output-controls.js";
|
|
36
40
|
import { getRecallTimingStatus, isRecallTimingsOperator } from "./recall-timings.js";
|
|
41
|
+
import { parseDeepRecallMaxSteps } from "./deep-recall-config.js";
|
|
37
42
|
import { validateBriefingFormat } from "./briefing.js";
|
|
38
43
|
import {
|
|
39
44
|
buildChatGptMemoryInspectorActionRequest,
|
|
@@ -195,7 +200,19 @@ defineOperation({ name: "meetings_list", description: "List stored meeting recor
|
|
|
195
200
|
defineOperation({ name: "meetings_get", description: "Get a stored meeting record by id.", schema: strictSchema({ id: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.meetingsGet(reqStr(input.id, "id"), { authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }) });
|
|
196
201
|
defineOperation({ name: "meetings_build", description: "Detect + fuse + store a day's meetings.", schema: strictSchema({ date: S.str, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.meetingsBuild(reqStr(input.date, "date"), { authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey) }) }) });
|
|
197
202
|
// === DEEP RECALL (issue #2332) — budgeted REFINE/EXPAND/STOP retrieval ===
|
|
198
|
-
defineOperation({ name: "deep_recall", description: "Budgeted multi-hop deep recall over the anchor graph.", schema: strictSchema({ query: S.str, maxSteps: S.flexNum, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => {
|
|
203
|
+
defineOperation({ name: "deep_recall", description: "Budgeted multi-hop deep recall over the anchor graph.", schema: strictSchema({ query: S.str, maxSteps: S.flexNum, namespace: S.str, sessionKey: S.str }), handler: async (input, ctx) => {
|
|
204
|
+
const q = defStr(input.query, "");
|
|
205
|
+
if (q.trim().length === 0) throw new EngramAccessInputError("deep_recall: query is required");
|
|
206
|
+
// Strict boundary parse (issue #2915): `"abc"` must NOT silently become the
|
|
207
|
+
// configured default and `""` must NOT become 0 — both are rejected.
|
|
208
|
+
let maxSteps: number | undefined;
|
|
209
|
+
try {
|
|
210
|
+
maxSteps = parseDeepRecallMaxSteps(input.maxSteps);
|
|
211
|
+
} catch (err) {
|
|
212
|
+
throw new EngramAccessInputError(`deep_recall: ${err instanceof Error ? err.message : String(err)}`);
|
|
213
|
+
}
|
|
214
|
+
return { result: await ctx.service.deepRecall({ query: q, maxSteps, authenticatedPrincipal: ctx.authenticatedPrincipal, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}) }) };
|
|
215
|
+
} });
|
|
199
216
|
|
|
200
217
|
// === ACTION CONFIDENCE + INSPECTOR + CAPSULE ===
|
|
201
218
|
defineOperation({ name: "action_confidence", description: "Action confidence.", schema: strictSchema({ intendedAction: S.str, confidence: S.num, risk: S.str, contextReadiness: S.str, currentContextScopes: S.strArr, userRules: z.array(z.unknown()).optional(), retrievedMemories: z.array(z.unknown()).optional() }), handler: async (input, ctx) => { const req: Record<string, unknown> = {}; if (input.intendedAction !== undefined) req.intendedAction = optStr(input.intendedAction); if (input.confidence !== undefined) req.confidence = optNum(input.confidence); if (input.risk !== undefined) req.risk = optStr(input.risk) as "low" | "medium" | "high" | "irreversible" | "restricted" | undefined; if (input.contextReadiness !== undefined) req.contextReadiness = optStr(input.contextReadiness) as "none" | "partial" | "sufficient" | undefined; if (input.currentContextScopes !== undefined) req.currentContextScopes = optStrArr(input.currentContextScopes); if (input.userRules !== undefined) req.userRules = input.userRules; if (input.retrievedMemories !== undefined) req.retrievedMemories = input.retrievedMemories; return { result: await ctx.service.actionConfidence(req) }; } });
|
|
@@ -216,7 +233,7 @@ defineOperation({ name: "chatgpt_memory_inspector", description: "Memory inspect
|
|
|
216
233
|
return { result: buildChatGptMemoryInspectorResult(ii, r, x, ac) };
|
|
217
234
|
},
|
|
218
235
|
});
|
|
219
|
-
defineOperation({ name: "day_summary", description: "Day summary.", schema: strictSchema({ memories: S.str, sessionKey: S.str, namespace: S.str, timeZone: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => { const req: Record<string, unknown> = {}; if (input.memories !== undefined) req.memories = optStr(input.memories); if (input.sessionKey !== undefined) req.sessionKey = optStr(input.sessionKey); if (input.namespace !== undefined) req.namespace = optStr(input.namespace); if (input.timeZone !== undefined) req.timeZone = optStr(input.timeZone); const summary = await ctx.service.daySummary(req); return { result: summary ?? {} }; } });
|
|
236
|
+
defineOperation({ name: "day_summary", description: "Day summary.", schema: strictSchema({ memories: S.str, includeLocation: S.bool, sessionKey: S.str, namespace: S.str, timeZone: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => { const req: Record<string, unknown> = {}; if (input.memories !== undefined) req.memories = optStr(input.memories); if (input.includeLocation !== undefined) req.includeLocation = optBool(input.includeLocation); if (input.sessionKey !== undefined) req.sessionKey = optStr(input.sessionKey); if (input.namespace !== undefined) req.namespace = optStr(input.namespace); if (input.timeZone !== undefined) req.timeZone = optStr(input.timeZone); const summary = await ctx.service.daySummary(req); return { result: summary ?? {} }; } });
|
|
220
237
|
defineOperation({ name: "capsule_export", description: "Export capsule.", schema: strictSchema({ name: S.str, namespace: S.str, since: S.str, includeKinds: S.strArr, peerIds: S.strArr, includeTranscripts: S.bool, encrypt: S.bool, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.capsuleExport({ name: optStr(input.name) ?? "", namespace: optStr(input.namespace), since: optStr(input.since), includeKinds: optStrArr(input.includeKinds), peerIds: optStrArr(input.peerIds), includeTranscripts: optBool(input.includeTranscripts as unknown), encrypt: optBool(input.encrypt as unknown), principal: ctx.authenticatedPrincipal } as unknown as Parameters<EngramAccessService["capsuleExport"]>[0]) }) });
|
|
221
238
|
defineOperation({ name: "capsule_import", description: "Import capsule.", schema: strictSchema({ archivePath: S.str, namespace: S.str, mode: S.str, passphrase: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.capsuleImport({ archivePath: expandTildePath(optStr(input.archivePath) ?? ""), namespace: optStr(input.namespace), mode: optStr(input.mode) as "skip" | "overwrite" | "fork" | undefined, passphrase: optStr(input.passphrase), principal: ctx.authenticatedPrincipal }) }) });
|
|
222
239
|
defineOperation({ name: "capsule_list", description: "List capsules.", schema: strictSchema({ namespace: S.str, sessionKey: S.str, cwd: S.str, projectTag: S.str }), handler: async (input, ctx) => {
|
|
@@ -306,7 +323,33 @@ defineOperation({ name: "memory_identity", description: "Memory identity.", sche
|
|
|
306
323
|
defineOperation({ name: "work_task", description: "Manage work task.", schema: strictSchema({ action: S.str, id: S.str, title: S.str, description: S.str, status: S.str, priority: S.str, owner: S.str, assignee: S.str, projectId: S.str, tags: S.strArr, dueAt: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.workTask({ action: (optStr(input.action) as "update" | "list" | "get" | "create" | "delete" | "transition") ?? "list", id: optStr(input.id), title: optStr(input.title), description: optStr(input.description), status: optStr(input.status), priority: optStr(input.priority), owner: optStr(input.owner), assignee: optStr(input.assignee), projectId: optStr(input.projectId), tags: optStrArr(input.tags), dueAt: optStr(input.dueAt) }) }) });
|
|
307
324
|
defineOperation({ name: "work_project", description: "Manage work project.", schema: strictSchema({ action: S.str, id: S.str, name: S.str, description: S.str, status: S.str, owner: S.str, tags: S.strArr, taskId: S.str, projectId: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.workProject({ action: (optStr(input.action) as "update" | "list" | "get" | "create" | "delete" | "link_task") ?? "list", id: optStr(input.id), name: optStr(input.name), description: optStr(input.description), status: optStr(input.status), owner: optStr(input.owner), tags: optStrArr(input.tags), taskId: optStr(input.taskId), projectId: optStr(input.projectId) }) }) });
|
|
308
325
|
defineOperation({ name: "work_board", description: "Manage work board.", schema: strictSchema({ action: S.str, projectId: S.str, snapshotJson: S.str, linkToMemory: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.workBoard({ action: (optStr(input.action) as "export_markdown" | "export_snapshot" | "import_snapshot") ?? "export_markdown", projectId: optStr(input.projectId) ?? "", snapshotJson: optStr(input.snapshotJson) ?? "", linkToMemory: input.linkToMemory === true }) }) });
|
|
309
|
-
|
|
326
|
+
// Issue #2920: the envelope controls (authority/expiresAt/supersedes) are
|
|
327
|
+
// parsed by the ONE canonical surface module shared with the OpenClaw tool
|
|
328
|
+
// (write-output-controls.ts); semantics stay in composeWriteEnvelope. A
|
|
329
|
+
// client-supplied principal/namespace is rejected here — identity and
|
|
330
|
+
// scoping are server-resolved (ctx.authenticatedPrincipal).
|
|
331
|
+
defineOperation({
|
|
332
|
+
name: "shared_context_write_output",
|
|
333
|
+
description: "Write shared output.",
|
|
334
|
+
schema: strictSchema({ agentId: S.str, title: S.str, content: S.str, authority: S.str, expiresAt: S.str, supersedes: S.str }),
|
|
335
|
+
handler: async (input, ctx) => {
|
|
336
|
+
let controls: SharedWriteOutputControls;
|
|
337
|
+
try {
|
|
338
|
+
controls = parseSharedWriteOutputControls(input);
|
|
339
|
+
} catch (error) {
|
|
340
|
+
throw new EngramAccessInputError(error instanceof Error ? error.message : String(error));
|
|
341
|
+
}
|
|
342
|
+
return {
|
|
343
|
+
result: await ctx.service.sharedContextWriteOutput({
|
|
344
|
+
agentId: optStr(input.agentId) ?? "",
|
|
345
|
+
title: optStr(input.title) ?? "",
|
|
346
|
+
content: optStr(input.content) ?? "",
|
|
347
|
+
...controls,
|
|
348
|
+
principal: ctx.authenticatedPrincipal,
|
|
349
|
+
}),
|
|
350
|
+
};
|
|
351
|
+
},
|
|
352
|
+
});
|
|
310
353
|
defineOperation({ name: "shared_feedback_record", description: "Record shared feedback.", schema: strictSchema({ agent: S.str, decision: S.str, reason: S.str, date: S.str, learning: S.str, outcome: S.str, severity: S.str, confidence: S.num, workflow: S.str, tags: S.strArr, evidenceWindowStart: S.str, evidenceWindowEnd: S.str, refs: S.strArr }), handler: async (input, ctx) => { const sv = optStr(input.severity); return { result: await ctx.service.sharedFeedbackRecord({ agent: optStr(input.agent) ?? "", decision: (optStr(input.decision) as "rejected" | "approved" | "approved_with_feedback") ?? "approved", reason: optStr(input.reason) ?? "", date: optStr(input.date), learning: optStr(input.learning), outcome: optStr(input.outcome), severity: sv === "low" || sv === "medium" || sv === "high" ? sv as "low" | "medium" | "high" : undefined, confidence: optNum(input.confidence), workflow: optStr(input.workflow), tags: optStrArr(input.tags), evidenceWindowStart: optStr(input.evidenceWindowStart), evidenceWindowEnd: optStr(input.evidenceWindowEnd), refs: optStrArr(input.refs) }) }; } });
|
|
311
354
|
defineOperation({ name: "shared_priorities_append", description: "Append priorities.", schema: strictSchema({ agentId: S.str, text: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedPrioritiesAppend({ agentId: optStr(input.agentId) ?? "", text: optStr(input.text) ?? "" }) }) });
|
|
312
355
|
defineOperation({ name: "shared_context_cross_signals_run", description: "Run cross signals.", fleetWide: true, schema: strictSchema({ date: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.sharedContextCrossSignalsRun({ date: optStr(input.date) }) }) });
|
|
@@ -330,7 +373,7 @@ defineOperation({ name: "memory_promote", description: "Promote memory.", schema
|
|
|
330
373
|
defineOperation({ name: "memory_outcome", description: "Record outcome.", schema: strictSchema({ memoryId: S.str, outcome: S.str, namespace: S.str, sessionKey: S.str, timestamp: S.str }), handler: async (input, ctx) => { const o = optStr(input.outcome); if (o !== "success" && o !== "failure") throw new EngramAccessInputError("memory_outcome: outcome must be \"success\" or \"failure\"; got " + JSON.stringify(o)); return { result: await ctx.service.memoryOutcome({ memoryId: optStr(input.memoryId) ?? "", outcome: o, namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), timestamp: optStr(input.timestamp), principal: ctx.authenticatedPrincipal }) }; } });
|
|
331
374
|
defineOperation({ name: "memory_action_apply", description: "Apply action.", schema: strictSchema({ action: S.str, outcome: S.str, reason: S.str, memoryId: S.str, namespace: S.str, sessionKey: S.str, content: S.str, category: S.str, linkTargetId: S.str, linkType: S.str, linkStrength: S.num, artifactType: S.str, execute: S.bool, sourcePrompt: S.str, dryRun: S.bool }), handler: async (input, ctx) => ({ result: await ctx.service.memoryActionApply({ action: optStr(input.action) ?? "", outcome: optStr(input.outcome), reason: optStr(input.reason), memoryId: optStr(input.memoryId) ?? "", namespace: optStr(input.namespace), sessionKey: optStr(input.sessionKey), content: optStr(input.content), category: optStr(input.category), linkTargetId: optStr(input.linkTargetId), linkType: optStr(input.linkType), linkStrength: optNum(input.linkStrength), artifactType: optStr(input.artifactType), execute: optBool(input.execute), sourcePrompt: optStr(input.sourcePrompt), dryRun: input.dryRun === true, principal: ctx.authenticatedPrincipal }) }) });
|
|
332
375
|
defineOperation({ name: "context_checkpoint", description: "Context checkpoint.", schema: strictSchema({ sessionKey: S.str, context: S.str, namespace: S.str }), handler: async (input, ctx) => ({ result: await ctx.service.contextCheckpoint({ sessionKey: optStr(input.sessionKey) ?? "", context: optStr(input.context) ?? "", namespace: optStr(input.namespace), principal: ctx.authenticatedPrincipal }) }) });
|
|
333
|
-
defineOperation({ name: "briefing", description: "Daily briefing.", schema: strictSchema({ since: S.str, focus: S.str, namespace: S.str, format: S.str, maxFollowups: S.num }), handler: async (input, ctx) => { const rf = optStr(input.format); const fe = validateBriefingFormat(rf); if (fe) throw new EngramAccessInputError(fe); return { result: await ctx.service.briefing({ since: optStr(input.since), focus: optStr(input.focus), namespace: optStr(input.namespace), format: rf as "json" | "markdown" | undefined, maxFollowups: optNum(input.maxFollowups), principal: ctx.authenticatedPrincipal }) }; } });
|
|
376
|
+
defineOperation({ name: "briefing", description: "Daily briefing.", schema: strictSchema({ since: S.str, focus: S.str, namespace: S.str, includeLocation: S.bool, format: S.str, maxFollowups: S.num }), handler: async (input, ctx) => { const rf = optStr(input.format); const fe = validateBriefingFormat(rf); if (fe) throw new EngramAccessInputError(fe); return { result: await ctx.service.briefing({ since: optStr(input.since), focus: optStr(input.focus), namespace: optStr(input.namespace), includeLocation: optBool(input.includeLocation), format: rf as "json" | "markdown" | undefined, maxFollowups: optNum(input.maxFollowups), principal: ctx.authenticatedPrincipal }) }; } });
|
|
334
377
|
|
|
335
378
|
// === CONTRADICTION/REVIEW ===
|
|
336
379
|
defineOperation({ name: "review_list", description: "List review pairs.", schema: strictSchema({ filter: S.str, namespace: S.str, limit: S.num }),
|
package/src/access-schema.ts
CHANGED
|
@@ -529,6 +529,7 @@ export const lcmCompactionRecordRequestSchema = z.object({
|
|
|
529
529
|
|
|
530
530
|
export const daySummaryRequestSchema = z.object({
|
|
531
531
|
memories: z.string().max(100000).optional(),
|
|
532
|
+
includeLocation: z.boolean().optional(),
|
|
532
533
|
sessionKey: sessionKeySchema,
|
|
533
534
|
namespace: namespaceSchema,
|
|
534
535
|
timeZone: timeZoneSchema.optional(),
|
package/src/access-service.ts
CHANGED
|
@@ -35,6 +35,8 @@ import { ReplicaDivergenceMonitor } from "./replica-divergence.js";
|
|
|
35
35
|
import type { ResolveSecretRefFn } from "./resolve-auth-token.js";
|
|
36
36
|
import { buildAccessWriteRequestFingerprint, buildObserveRequestFingerprint } from "./write-envelope.js";
|
|
37
37
|
import { UNATTRIBUTED_ACCESS_WRITE_ORIGIN } from "./shared-context/envelope-io.js";
|
|
38
|
+
import { isSharedContextWriteInputError } from "./shared-context/write-output-controls.js";
|
|
39
|
+
import { daySummaryAutoOptions, type LocationContextRequestOptions } from "./location/tagging.js";
|
|
38
40
|
export type { EngramAccessHealthResponse, EngramAccessQmdCollectionState, EngramAccessQmdHealthResponse };
|
|
39
41
|
import { AccessAuditAdapter, type AccessAuditConfig, type AccessAuditResult } from "./access-audit.js";
|
|
40
42
|
import {
|
|
@@ -480,7 +482,7 @@ export interface EngramAccessRecallExplainResponse {
|
|
|
480
482
|
graph?: GraphRecallSnapshot | null;
|
|
481
483
|
}
|
|
482
484
|
|
|
483
|
-
export interface EngramAccessDaySummaryRequest {
|
|
485
|
+
export interface EngramAccessDaySummaryRequest extends LocationContextRequestOptions {
|
|
484
486
|
memories?: string;
|
|
485
487
|
sessionKey?: string;
|
|
486
488
|
namespace?: string;
|
|
@@ -488,7 +490,7 @@ export interface EngramAccessDaySummaryRequest {
|
|
|
488
490
|
}
|
|
489
491
|
|
|
490
492
|
/** Inputs accepted by the `remnic_briefing` MCP tool. */
|
|
491
|
-
export interface EngramAccessBriefingRequest {
|
|
493
|
+
export interface EngramAccessBriefingRequest extends LocationContextRequestOptions {
|
|
492
494
|
since?: string;
|
|
493
495
|
focus?: string;
|
|
494
496
|
namespace?: string;
|
|
@@ -2475,9 +2477,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
2475
2477
|
|
|
2476
2478
|
if (memories.length === 0) {
|
|
2477
2479
|
// Auto-gather today's facts from the resolved namespace
|
|
2478
|
-
return this.orchestrator.generateDaySummaryAuto(namespace,
|
|
2479
|
-
timeZone: request.timeZone,
|
|
2480
|
-
});
|
|
2480
|
+
return this.orchestrator.generateDaySummaryAuto(namespace, daySummaryAutoOptions(request));
|
|
2481
2481
|
}
|
|
2482
2482
|
return this.orchestrator.generateDaySummary(memories);
|
|
2483
2483
|
}
|
|
@@ -2726,6 +2726,8 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
2726
2726
|
sessionKey?: string;
|
|
2727
2727
|
authenticatedPrincipal?: string;
|
|
2728
2728
|
maxSteps?: number;
|
|
2729
|
+
/** Transport cancellation (issue #2915): MCP tools/call cancelled, HTTP disconnect. */
|
|
2730
|
+
abortSignal?: AbortSignal;
|
|
2729
2731
|
}): Promise<DeepRecallResult & { rendered: string }> {
|
|
2730
2732
|
const cfg = this.orchestrator.config.deepRecall;
|
|
2731
2733
|
if (!cfg.enabled) {
|
|
@@ -2787,14 +2789,18 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
2787
2789
|
// (which also decodes the raw collection-qualified path forms the
|
|
2788
2790
|
// namespaces-disabled fanout returns), so no invocation pre-scans the
|
|
2789
2791
|
// namespace corpus.
|
|
2792
|
+
// The transport cancellation signal reaches the seed router, the graph
|
|
2793
|
+
// read, and the policy legs (issue #2915).
|
|
2790
2794
|
const result = await runBudgetedDeepRecall(
|
|
2791
2795
|
{
|
|
2792
2796
|
config: effective,
|
|
2797
|
+
...(request.abortSignal ? { signal: request.abortSignal } : {}),
|
|
2793
2798
|
searchSeed: createDeepRecallSeedSearch({
|
|
2794
2799
|
namespace: resolvedNamespace,
|
|
2795
2800
|
storage,
|
|
2796
2801
|
router: this.orchestrator,
|
|
2797
2802
|
resolver: this.orchestrator.qmdResultResolver,
|
|
2803
|
+
...(request.abortSignal ? { signal: request.abortSignal } : {}),
|
|
2798
2804
|
}),
|
|
2799
2805
|
// Nodes and anchors are projected against the namespace's CURRENT
|
|
2800
2806
|
// active memories through the SAME helper searchHarmonicRetrieval
|
|
@@ -2807,6 +2813,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
2807
2813
|
memoryDir: storage.dir,
|
|
2808
2814
|
abstractionNodeStoreDir: graphStoreDir,
|
|
2809
2815
|
anchorsEnabled: true,
|
|
2816
|
+
...(request.abortSignal ? { abortSignal: request.abortSignal } : {}),
|
|
2810
2817
|
}),
|
|
2811
2818
|
loadMemory: async (memoryId) => {
|
|
2812
2819
|
const memory = await storage.getMemoryById(memoryId);
|
|
@@ -2829,6 +2836,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
2829
2836
|
localLlm: this.orchestrator.localLlm ?? null,
|
|
2830
2837
|
fallbackLlm: this.orchestrator.fastGatewayLlm ?? null,
|
|
2831
2838
|
timeoutMs,
|
|
2839
|
+
...(request.abortSignal ? { signal: request.abortSignal } : {}),
|
|
2832
2840
|
}),
|
|
2833
2841
|
},
|
|
2834
2842
|
query
|
|
@@ -4595,6 +4603,7 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
4595
4603
|
agentId: string;
|
|
4596
4604
|
title: string;
|
|
4597
4605
|
content: string;
|
|
4606
|
+
authority?: string; expiresAt?: string; supersedes?: string;
|
|
4598
4607
|
/** Authenticated principal resolved by the surface, never client-supplied. */
|
|
4599
4608
|
principal?: string;
|
|
4600
4609
|
}): Promise<unknown> {
|
|
@@ -4607,19 +4616,16 @@ export class EngramAccessService extends SupportPassportAccessServiceBase {
|
|
|
4607
4616
|
agentId: request.agentId,
|
|
4608
4617
|
title: request.title,
|
|
4609
4618
|
content: request.content,
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
// authenticated request must never stamp the client's `agentId`
|
|
4614
|
-
// as audit metadata. The client label survives only as the
|
|
4615
|
-
// producer, which feeds grouping and display, never authority.
|
|
4619
|
+
authority: request.authority,
|
|
4620
|
+
expiresAt: request.expiresAt,
|
|
4621
|
+
supersedes: request.supersedes,
|
|
4616
4622
|
...(request.principal
|
|
4617
4623
|
? { authenticatedIdentity: request.principal }
|
|
4618
4624
|
: { unattributedOrigin: UNATTRIBUTED_ACCESS_WRITE_ORIGIN }),
|
|
4619
4625
|
});
|
|
4620
4626
|
} catch (error) {
|
|
4621
4627
|
const message = error instanceof Error ? error.message : String(error);
|
|
4622
|
-
if (message
|
|
4628
|
+
if (isSharedContextWriteInputError(message)) {
|
|
4623
4629
|
throw new EngramAccessInputError(message);
|
|
4624
4630
|
}
|
|
4625
4631
|
throw error;
|
|
@@ -386,6 +386,54 @@ test("resolveTimelineLoadDates keeps a bounded window and expands an unbounded o
|
|
|
386
386
|
assert.deepEqual(empty, ["2026-08-23"]);
|
|
387
387
|
});
|
|
388
388
|
|
|
389
|
+
test("resolveTimelineLoadDates loads the local day of a lone bound, never today (#2931)", () => {
|
|
390
|
+
const store = { snapshotCaptureExtent: () => null };
|
|
391
|
+
const base = { timezone: "UTC" as const, today: "2026-08-23", store, persistedDates: [] as string[] };
|
|
392
|
+
|
|
393
|
+
const loneTo = resolveTimelineLoadDates({
|
|
394
|
+
...base,
|
|
395
|
+
window: { to: "2026-05-02T12:00:00.000Z" },
|
|
396
|
+
});
|
|
397
|
+
assert.deepEqual(loneTo, ["2026-05-02"], "a lone --to must load the day of the to instant, not today");
|
|
398
|
+
|
|
399
|
+
const loneFrom = resolveTimelineLoadDates({
|
|
400
|
+
...base,
|
|
401
|
+
window: { from: "2026-05-02T12:00:00.000Z" },
|
|
402
|
+
});
|
|
403
|
+
assert.deepEqual(loneFrom, ["2026-05-02"], "a lone --from keeps loading its own day");
|
|
404
|
+
|
|
405
|
+
const futureTo = resolveTimelineLoadDates({
|
|
406
|
+
...base,
|
|
407
|
+
window: { to: "2026-09-01T12:00:00.000Z" },
|
|
408
|
+
});
|
|
409
|
+
assert.deepEqual(futureTo, ["2026-09-01"], "a lone future --to loads that future day, not today");
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
test("resolveTimelineLoadDates resolves a lone --to day through the configured timezone (#2931)", () => {
|
|
413
|
+
const store = { snapshotCaptureExtent: () => null };
|
|
414
|
+
// 2026-08-20T23:30Z is 2026-08-21 13:30 in Kiritimati (UTC+14) but still
|
|
415
|
+
// 2026-08-20 in Adak (UTC-10): the same instant must load different local
|
|
416
|
+
// days under the two configured zones, proving the configured timezone —
|
|
417
|
+
// not UTC and not today — drives the resolution.
|
|
418
|
+
const east = resolveTimelineLoadDates({
|
|
419
|
+
window: { to: "2026-08-20T23:30:00.000Z" },
|
|
420
|
+
timezone: "Pacific/Kiritimati",
|
|
421
|
+
today: "2026-08-23",
|
|
422
|
+
store,
|
|
423
|
+
persistedDates: [],
|
|
424
|
+
});
|
|
425
|
+
assert.deepEqual(east, ["2026-08-21"]);
|
|
426
|
+
|
|
427
|
+
const west = resolveTimelineLoadDates({
|
|
428
|
+
window: { to: "2026-08-20T23:30:00.000Z" },
|
|
429
|
+
timezone: "America/Adak",
|
|
430
|
+
today: "2026-08-23",
|
|
431
|
+
store,
|
|
432
|
+
persistedDates: [],
|
|
433
|
+
});
|
|
434
|
+
assert.deepEqual(west, ["2026-08-20"]);
|
|
435
|
+
});
|
|
436
|
+
|
|
389
437
|
test("localDatesForUtcRange covers a multi-year span for unbounded search", () => {
|
|
390
438
|
const dates = localDatesForUtcRange(
|
|
391
439
|
Date.parse("2020-01-01T00:00:00.000Z"),
|
|
@@ -143,9 +143,10 @@ export function listPersistedTimelineDates(memoryDir: string): string[] {
|
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
145
|
* Local days a CLI window must load. Bounded windows keep the explicit
|
|
146
|
-
* from/to span
|
|
147
|
-
*
|
|
148
|
-
*
|
|
146
|
+
* from/to span; a window with a single bound loads the local day containing
|
|
147
|
+
* that instant (never today). An unbounded search loads every day the
|
|
148
|
+
* snapshot store or a persisted day file covers (plus today), so historical
|
|
149
|
+
* cards enter the search pool instead of only the current day.
|
|
149
150
|
*/
|
|
150
151
|
export function resolveTimelineLoadDates(input: {
|
|
151
152
|
window: { from?: string; to?: string };
|
|
@@ -156,8 +157,9 @@ export function resolveTimelineLoadDates(input: {
|
|
|
156
157
|
}): string[] {
|
|
157
158
|
const { window, timezone, today, store, persistedDates } = input;
|
|
158
159
|
if (window.from !== undefined || window.to !== undefined) {
|
|
159
|
-
const
|
|
160
|
-
const
|
|
160
|
+
const parsedTo = window.to === undefined ? Number.NaN : Date.parse(window.to);
|
|
161
|
+
const fromMs = window.from === undefined ? parsedTo : Date.parse(window.from);
|
|
162
|
+
const toMs = window.to === undefined ? fromMs + 1 : parsedTo;
|
|
161
163
|
if (!Number.isFinite(fromMs) || !Number.isFinite(toMs)) return [];
|
|
162
164
|
return localDatesForUtcRange(fromMs, toMs > fromMs ? toMs : fromMs + 1, timezone);
|
|
163
165
|
}
|