@remnic/core 9.3.712 → 9.3.714
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-boundary.d.ts +6 -6
- package/dist/access-boundary.js +17 -16
- package/dist/access-cli.js +40 -39
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +5 -5
- package/dist/access-http.js +24 -23
- package/dist/access-mcp.d.ts +18 -5
- package/dist/access-mcp.js +21 -20
- package/dist/access-operations-batch.js +18 -17
- package/dist/access-operations.d.ts +6 -5
- package/dist/access-operations.js +20 -19
- package/dist/access-schema.d.ts +10 -0
- package/dist/access-schema.js +1 -1
- package/dist/{access-service-Dx2rSJjH.d.ts → access-service-lddjZoRh.d.ts} +20 -5
- package/dist/access-service.d.ts +5 -5
- package/dist/access-service.js +16 -15
- package/dist/access-surface-catalog.d.ts +5 -5
- package/dist/access-surface-catalog.js +6 -1
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +3 -1
- package/dist/active-memory-bridge.js +2 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/active-recall.js +4 -3
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +4 -4
- package/dist/briefing.d.ts +1 -1
- package/dist/briefing.js +8 -7
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer.d.ts +1 -1
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{catalog-CadPvH29.d.ts → catalog-CbR0CsUw.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 +9 -8
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/{chunk-OMSTU233.js → chunk-2KAYTPPT.js} +4 -4
- package/dist/{chunk-VYZNWH4J.js → chunk-2SXMCQEQ.js} +3 -3
- package/dist/{chunk-NXL5CVE7.js → chunk-2Y6LMOQQ.js} +2 -2
- package/dist/{chunk-AMXOCZHE.js → chunk-3VUPWDSE.js} +15 -3
- package/dist/{chunk-AMXOCZHE.js.map → chunk-3VUPWDSE.js.map} +1 -1
- package/dist/{chunk-FVQJYWH7.js → chunk-5GKPFL3S.js} +1 -1
- package/dist/{chunk-FVQJYWH7.js.map → chunk-5GKPFL3S.js.map} +1 -1
- package/dist/{chunk-LQ4J7ELC.js → chunk-67HG7KFE.js} +2 -2
- package/dist/{chunk-ZBG4K36I.js → chunk-6FUJ2VYY.js} +3 -3
- package/dist/{chunk-GMRNKPWO.js → chunk-6QUPUTT7.js} +2 -2
- package/dist/{chunk-Z56IHRVV.js → chunk-6UU43ZGD.js} +2 -2
- package/dist/{chunk-APJQ6UEA.js → chunk-AGNBY3VG.js} +4 -4
- package/dist/{chunk-OWOKOFXK.js → chunk-AJOIM6UR.js} +2 -2
- package/dist/{chunk-JBPKEARU.js → chunk-AU7Q3LSC.js} +4 -4
- package/dist/{chunk-YVWZW37D.js → chunk-BNOAB5HH.js} +62 -12
- package/dist/{chunk-YVWZW37D.js.map → chunk-BNOAB5HH.js.map} +1 -1
- package/dist/{chunk-A2R5NV6O.js → chunk-CTAHKIG6.js} +205 -29
- package/dist/chunk-CTAHKIG6.js.map +1 -0
- package/dist/{chunk-K22IJO4R.js → chunk-CTOQEZSN.js} +2 -2
- package/dist/{chunk-SINGJCUR.js → chunk-CX77GNMB.js} +14 -3
- package/dist/chunk-CX77GNMB.js.map +1 -0
- package/dist/{chunk-HSDJCT3V.js → chunk-DXGS5YOQ.js} +3 -3
- package/dist/{chunk-HV57RHMD.js → chunk-EH5ED3C6.js} +2 -2
- package/dist/{chunk-NUWZFSKC.js → chunk-FVZ2ISIX.js} +9 -1
- package/dist/chunk-FVZ2ISIX.js.map +1 -0
- package/dist/{chunk-GKPIY7EQ.js → chunk-FXZKXW7C.js} +117 -46
- package/dist/chunk-FXZKXW7C.js.map +1 -0
- package/dist/{chunk-7NDYFAJS.js → chunk-GM3BMWKR.js} +2 -2
- package/dist/{chunk-ZVDRL6SK.js → chunk-HHLWSWWF.js} +2 -2
- package/dist/chunk-HHLWSWWF.js.map +1 -0
- package/dist/{chunk-5QUS24F7.js → chunk-I56LKMF7.js} +2 -2
- package/dist/{chunk-Z3B2YW56.js → chunk-IHMT6XTY.js} +9 -5
- package/dist/chunk-IHMT6XTY.js.map +1 -0
- package/dist/chunk-JAKIDQB2.js +173 -0
- package/dist/chunk-JAKIDQB2.js.map +1 -0
- package/dist/{chunk-35YJ6KCV.js → chunk-JEIROMLX.js} +2 -2
- package/dist/{chunk-SKQCFAYU.js → chunk-JVEMUX6L.js} +2 -2
- package/dist/{chunk-CXMXAC5R.js → chunk-K44MIN6D.js} +3 -3
- package/dist/{chunk-5KQCOIPW.js → chunk-MECU6WSH.js} +188 -31
- package/dist/chunk-MECU6WSH.js.map +1 -0
- package/dist/{chunk-BQCFXAMN.js → chunk-MPHDVHIB.js} +2 -2
- package/dist/{chunk-BOGENF7P.js → chunk-MSVSP5VO.js} +1 -1
- package/dist/chunk-MSVSP5VO.js.map +1 -0
- package/dist/{chunk-QXNFQKWU.js → chunk-MTHNJCOJ.js} +2 -2
- package/dist/{chunk-3TCRU4JA.js → chunk-O62P2LFL.js} +2 -2
- package/dist/{chunk-JSDZMOT7.js → chunk-OC56UWV5.js} +11 -11
- package/dist/{chunk-7IBEWQLG.js → chunk-QOIONSOI.js} +2 -2
- package/dist/{chunk-4P5UAL3C.js → chunk-RBHANGVX.js} +6 -6
- package/dist/{chunk-SK2CR6MW.js → chunk-RVLB4E6N.js} +2 -2
- package/dist/{chunk-I3BT2IDW.js → chunk-SYDHFFAW.js} +1110 -28
- package/dist/chunk-SYDHFFAW.js.map +1 -0
- package/dist/{chunk-VILEUJXC.js → chunk-UC4YOAC2.js} +74 -2
- package/dist/{chunk-VILEUJXC.js.map → chunk-UC4YOAC2.js.map} +1 -1
- package/dist/{chunk-CNVIWMQI.js → chunk-UY4JMEAK.js} +2 -2
- package/dist/{chunk-S6FQLQGH.js → chunk-V7GDTQ6I.js} +2 -2
- package/dist/{chunk-JNOYYWCA.js → chunk-VO4UICII.js} +3 -3
- package/dist/{chunk-54TI5GLV.js → chunk-WI4QX7GH.js} +3 -3
- package/dist/{chunk-3XHD3XGK.js → chunk-XCTDHF7U.js} +30 -2
- package/dist/chunk-XCTDHF7U.js.map +1 -0
- package/dist/{chunk-XKU4YE6Z.js → chunk-XZTUMWKQ.js} +2 -2
- package/dist/{cli-DTWRoJEI.d.ts → cli-iAiVkbYJ.d.ts} +3 -3
- package/dist/cli.d.ts +6 -6
- package/dist/cli.js +43 -42
- package/dist/compounding/engine.d.ts +1 -1
- package/dist/compounding/engine.js +8 -7
- 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 +4 -3
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +8 -7
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +9 -8
- package/dist/consolidation-provenance-check.d.ts +1 -1
- package/dist/consolidation-undo.d.ts +1 -1
- package/dist/contradiction/index.d.ts +1 -1
- package/dist/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/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +1 -1
- package/dist/entity-retrieval.js +8 -7
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +4 -4
- package/dist/explicit-capture.js +3 -2
- package/dist/extraction-faithfulness.d.ts +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +4 -3
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/index.d.ts +9 -9
- package/dist/index.js +62 -61
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +3 -3
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +8 -7
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -7
- package/dist/maintenance/rebuild-memory-projection.js +9 -8
- package/dist/mcp-memory-inspector-app.d.ts +5 -5
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +1 -1
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +2 -2
- package/dist/namespaces/migrate.js +12 -11
- 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 +2 -2
- package/dist/namespaces/storage.js +8 -7
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +1 -1
- package/dist/operator-toolkit.js +17 -16
- package/dist/orchestration/maintenance.d.ts +2 -2
- package/dist/orchestration/maintenance.js +10 -9
- package/dist/{orchestrator-B1iVjEyc.d.ts → orchestrator-iVZWi8aW.d.ts} +21 -4
- package/dist/orchestrator.d.ts +4 -4
- package/dist/orchestrator.js +32 -31
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/provenance.js +3 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.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-handles.d.ts +228 -0
- package/dist/recall-handles.js +42 -0
- package/dist/recall-handles.js.map +1 -0
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +40 -2
- package/dist/recall-state.js +3 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +5 -4
- package/dist/retrieval-agents.d.ts +1 -1
- 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/sanitize.d.ts +2 -0
- package/dist/sanitize.js +6 -2
- 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-CY8uVRNJ.d.ts → semantic-consolidation-DSjMDZ1u.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +9 -8
- package/dist/semantic-rule-promotion.js +8 -7
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +8 -7
- 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 +3 -3
- package/dist/signal.d.ts +1 -1
- package/dist/storage.d.ts +1 -1
- package/dist/storage.js +7 -6
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.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 +1 -1
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transfer/import-sqlite.js +2 -2
- package/dist/{types-Dr0Cw3L9.d.ts → types-D9dwzU_x.d.ts} +25 -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 +8 -7
- package/package.json +2 -2
- package/src/access-boundary.ts +4 -1
- package/src/access-http.ts +78 -20
- package/src/access-mcp.test.ts +29 -0
- package/src/access-mcp.ts +99 -17
- package/src/access-operations-batch.ts +14 -0
- package/src/access-operations.ts +5 -0
- package/src/access-schema.ts +8 -0
- package/src/access-service-observe-idempotency.test.ts +308 -0
- package/src/access-service.ts +106 -5
- package/src/access-surface-catalog.test.ts +4 -2
- package/src/access-surface-catalog.ts +5 -0
- package/src/active-memory-bridge.test.ts +72 -0
- package/src/active-memory-bridge.ts +21 -2
- package/src/chat/chat-cli.test.ts +142 -0
- package/src/chat/chat-cli.ts +206 -0
- package/src/chat/chat-config.ts +57 -0
- package/src/chat/chat-engine.test.ts +272 -0
- package/src/chat/chat-engine.ts +518 -0
- package/src/chat/chat-executor.ts +133 -0
- package/src/chat/chat-factory.ts +161 -0
- package/src/chat/chat-http.test.ts +197 -0
- package/src/chat/chat-http.ts +222 -0
- package/src/chat/chat-llm.ts +229 -0
- package/src/chat/chat-mcp.test.ts +135 -0
- package/src/chat/chat-security.test.ts +491 -0
- package/src/chat/chat-session.ts +296 -0
- package/src/chat/chat-system-prompt.ts +76 -0
- package/src/chat/chat-tools.ts +255 -0
- package/src/chat/chat-types.ts +167 -0
- package/src/cli.ts +20 -0
- package/src/config.ts +9 -0
- package/src/orchestrator.ts +106 -5
- package/src/recall-handles-wiring.test.ts +477 -0
- package/src/recall-handles.test.ts +283 -0
- package/src/recall-handles.ts +414 -0
- package/src/recall-state.ts +99 -0
- package/src/sanitize.ts +6 -0
- package/src/types.ts +29 -0
- package/dist/chunk-3XHD3XGK.js.map +0 -1
- package/dist/chunk-5KQCOIPW.js.map +0 -1
- package/dist/chunk-A2R5NV6O.js.map +0 -1
- package/dist/chunk-BOGENF7P.js.map +0 -1
- package/dist/chunk-GKPIY7EQ.js.map +0 -1
- package/dist/chunk-I3BT2IDW.js.map +0 -1
- package/dist/chunk-NUWZFSKC.js.map +0 -1
- package/dist/chunk-SINGJCUR.js.map +0 -1
- package/dist/chunk-Z3B2YW56.js.map +0 -1
- package/dist/chunk-ZVDRL6SK.js.map +0 -1
- /package/dist/{chunk-OMSTU233.js.map → chunk-2KAYTPPT.js.map} +0 -0
- /package/dist/{chunk-VYZNWH4J.js.map → chunk-2SXMCQEQ.js.map} +0 -0
- /package/dist/{chunk-NXL5CVE7.js.map → chunk-2Y6LMOQQ.js.map} +0 -0
- /package/dist/{chunk-LQ4J7ELC.js.map → chunk-67HG7KFE.js.map} +0 -0
- /package/dist/{chunk-ZBG4K36I.js.map → chunk-6FUJ2VYY.js.map} +0 -0
- /package/dist/{chunk-GMRNKPWO.js.map → chunk-6QUPUTT7.js.map} +0 -0
- /package/dist/{chunk-Z56IHRVV.js.map → chunk-6UU43ZGD.js.map} +0 -0
- /package/dist/{chunk-APJQ6UEA.js.map → chunk-AGNBY3VG.js.map} +0 -0
- /package/dist/{chunk-OWOKOFXK.js.map → chunk-AJOIM6UR.js.map} +0 -0
- /package/dist/{chunk-JBPKEARU.js.map → chunk-AU7Q3LSC.js.map} +0 -0
- /package/dist/{chunk-K22IJO4R.js.map → chunk-CTOQEZSN.js.map} +0 -0
- /package/dist/{chunk-HSDJCT3V.js.map → chunk-DXGS5YOQ.js.map} +0 -0
- /package/dist/{chunk-HV57RHMD.js.map → chunk-EH5ED3C6.js.map} +0 -0
- /package/dist/{chunk-7NDYFAJS.js.map → chunk-GM3BMWKR.js.map} +0 -0
- /package/dist/{chunk-5QUS24F7.js.map → chunk-I56LKMF7.js.map} +0 -0
- /package/dist/{chunk-35YJ6KCV.js.map → chunk-JEIROMLX.js.map} +0 -0
- /package/dist/{chunk-SKQCFAYU.js.map → chunk-JVEMUX6L.js.map} +0 -0
- /package/dist/{chunk-CXMXAC5R.js.map → chunk-K44MIN6D.js.map} +0 -0
- /package/dist/{chunk-BQCFXAMN.js.map → chunk-MPHDVHIB.js.map} +0 -0
- /package/dist/{chunk-QXNFQKWU.js.map → chunk-MTHNJCOJ.js.map} +0 -0
- /package/dist/{chunk-3TCRU4JA.js.map → chunk-O62P2LFL.js.map} +0 -0
- /package/dist/{chunk-JSDZMOT7.js.map → chunk-OC56UWV5.js.map} +0 -0
- /package/dist/{chunk-7IBEWQLG.js.map → chunk-QOIONSOI.js.map} +0 -0
- /package/dist/{chunk-4P5UAL3C.js.map → chunk-RBHANGVX.js.map} +0 -0
- /package/dist/{chunk-SK2CR6MW.js.map → chunk-RVLB4E6N.js.map} +0 -0
- /package/dist/{chunk-CNVIWMQI.js.map → chunk-UY4JMEAK.js.map} +0 -0
- /package/dist/{chunk-S6FQLQGH.js.map → chunk-V7GDTQ6I.js.map} +0 -0
- /package/dist/{chunk-JNOYYWCA.js.map → chunk-VO4UICII.js.map} +0 -0
- /package/dist/{chunk-54TI5GLV.js.map → chunk-WI4QX7GH.js.map} +0 -0
- /package/dist/{chunk-XKU4YE6Z.js.map → chunk-XZTUMWKQ.js.map} +0 -0
package/dist/threading.d.ts
CHANGED
package/dist/tier-migration.d.ts
CHANGED
package/dist/tier-routing.d.ts
CHANGED
package/dist/topics.d.ts
CHANGED
package/dist/transcript.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PluginConfig, T as TranscriptEntry, v as Checkpoint } from './types-
|
|
1
|
+
import { P as PluginConfig, T as TranscriptEntry, v as Checkpoint } from './types-D9dwzU_x.js';
|
|
2
2
|
import { SessionIntegrityReport } from './session-integrity.js';
|
|
3
3
|
import './types-gb_SNtjR.js';
|
|
4
4
|
import './message-parts/index.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
importSqlite
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-G4IAEX6D.js";
|
|
3
|
+
} from "../chunk-AGNBY3VG.js";
|
|
5
4
|
import "../chunk-Z734BLO3.js";
|
|
5
|
+
import "../chunk-G4IAEX6D.js";
|
|
6
6
|
import "../chunk-6KYMPV2O.js";
|
|
7
7
|
import "../chunk-GCGJW34D.js";
|
|
8
8
|
import "../chunk-PZ5AY32C.js";
|
|
@@ -806,6 +806,16 @@ interface CodingKnowledgeConfig {
|
|
|
806
806
|
*/
|
|
807
807
|
codegraphDbDir: string;
|
|
808
808
|
}
|
|
809
|
+
interface ChatConfig {
|
|
810
|
+
/** Master gate. Off = no tools/endpoints/CLI registered (byte-identical, rule 39). */
|
|
811
|
+
enabled: boolean;
|
|
812
|
+
/** Routing override for the chat LLM (empty = use the default chain). */
|
|
813
|
+
model: string;
|
|
814
|
+
/** Max tool calls per user turn before partial-reply fallback (rule 34). */
|
|
815
|
+
maxToolCallsPerTurn: number;
|
|
816
|
+
/** Hours after which idle chat session state is cleaned up. */
|
|
817
|
+
sessionTtlHours: number;
|
|
818
|
+
}
|
|
809
819
|
/**
|
|
810
820
|
* Session-scoped coding context. Produced by `resolveGitContext()` in the
|
|
811
821
|
* connector layer and attached to a session so that recall + write paths can
|
|
@@ -1348,6 +1358,7 @@ interface PluginConfig {
|
|
|
1348
1358
|
codingMode: CodingModeConfig;
|
|
1349
1359
|
codingKnowledge: CodingKnowledgeConfig;
|
|
1350
1360
|
heartbeat: HeartbeatConfig;
|
|
1361
|
+
chat: ChatConfig;
|
|
1351
1362
|
slotBehavior: SlotBehaviorConfig;
|
|
1352
1363
|
codexCompat: CodexCompatConfig;
|
|
1353
1364
|
/**
|
|
@@ -1868,6 +1879,19 @@ interface PluginConfig {
|
|
|
1868
1879
|
* benchmarking (issue #564 PR 3).
|
|
1869
1880
|
*/
|
|
1870
1881
|
recallReasoningTraceBoostEnabled: boolean;
|
|
1882
|
+
/**
|
|
1883
|
+
* Issue #1582 — append stable short handles (`[m:4f2a]`) to injected memory
|
|
1884
|
+
* lines at recall render time. Default false: off = byte-identical injection
|
|
1885
|
+
* (rule 39). Token cost ~9 chars/memory; flip the default only with #1574
|
|
1886
|
+
* evidence that answer quality is unaffected (rule 55).
|
|
1887
|
+
*/
|
|
1888
|
+
recallMemoryHandles: boolean;
|
|
1889
|
+
/**
|
|
1890
|
+
* Issue #1582 — how many recent per-session recall snapshots (newest first)
|
|
1891
|
+
* handle resolution searches. Older-than-N snapshots are not searched and a
|
|
1892
|
+
* miss is tagged rather than widening the window.
|
|
1893
|
+
*/
|
|
1894
|
+
recallHandleSnapshotDepth: number;
|
|
1871
1895
|
qmdRecallCacheTtlMs: number;
|
|
1872
1896
|
qmdRecallCacheStaleTtlMs: number;
|
|
1873
1897
|
qmdRecallCacheMaxEntries: number;
|
|
@@ -3516,4 +3540,4 @@ interface HourlySummary {
|
|
|
3516
3540
|
generatedAt: string;
|
|
3517
3541
|
}
|
|
3518
3542
|
|
|
3519
|
-
export { type EntityStructuredSection as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CalendarSource as C, type SecretRef as D, type EntityFile as E, type FaithfulnessFrontmatter as F, type GatewayConfig as G, type HourlySummary as H, type IdentityInjectionMode as I, type AgentAccessAuthToken as J, type CompressionGuidelineOptimizerEventCounts as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type CompressionGuidelineOptimizerActionSummary as N, type CompressionGuidelineOptimizerRuleUpdate as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type SessionObserverBandConfig as S, type TranscriptEntry as T, type MemoryActionType as U, type VerificationState as V, type MemoryActionEvent as W, type CompressionGuidelineOptimizerState as X, type EntityMention as Y, type EntitySchemaDefinition as Z, type EntitySchemaSectionDefinition as _, type ActiveRecallQueryMode as a, type MemoryObservation as a$, type ExtractionResult as a0, type ConsolidationResult as a1, type DaySummaryResult as a2, type ContinuityIncidentRecord as a3, type ContinuityIncidentCloseInput as a4, type ContinuityIncidentOpenInput as a5, type ContinuityImprovementLoop as a6, type ContinuityLoopReviewInput as a7, type ContinuityLoopUpsertInput as a8, type ImportanceScore as a9, type WearableSourceConnector as aA, type WearablesConfig as aB, type WearableSyncSummary as aC, type WearableSourceStatus as aD, type WearableDayTranscript as aE, type WearableCorrectionRule as aF, type CodingContext as aG, type BootstrapOptions as aH, type BootstrapResult as aI, type ConsolidationObservation as aJ, type EntityTimelineEntry as aK, type ScopeProfileLayerId as aL, type ScopeProfilePromotionTarget as aM, type ScopeProfileConfig as aN, type DreamsStatusResult as aO, type DreamsPhase as aP, type DreamsRunResult as aQ, type CodingModeConfig as aR, type WearableCleanupSettings as aS, type WearableDayTranscriptMeta as aT, type BriefingConfig as aU, type BriefingOpenCommitment as aV, type BriefingWindow as aW, type CodexCompatConfig as aX, DEFAULT_RECALL_DISCLOSURE as aY, type ExtractedFact as aZ, type MemoryActionEligibilitySource as a_, type MemoryIntent as aa, type QmdSearchExplain as ab, type MemoryActionEligibilityContext as ac, type MemoryActionPolicyResult as ad, type MemoryLifecycleEventType as ae, type MemoryLifecycleStateSummary as af, type ModelProviderConfig as ag, type NativeKnowledgeConfig as ah, type ProvenanceSource as ai, type ProvenanceConfig as aj, type RetrievalTier as ak, type SignalScanResult as al, type ConversationThread as am, type TopicScore as an, type MemoryLink as ao, type BufferState as ap, type MetaState as aq, type FileHygieneConfig as ar, type EntityRelationship as as, type EntityActivityEntry as at, type AccessTrackingEntry as au, type MemorySummary as av, type WearableConversation as aw, type WearableSourceSettings as ax, type WearableNativeMemory as ay, type WearableMemoryMode as az, type ActiveRecallPromptStyle as b, type
|
|
3543
|
+
export { type EntityStructuredSection as $, type ActiveRecallChatType as A, type BehaviorSignalEvent as B, type CalendarSource as C, type SecretRef as D, type EntityFile as E, type FaithfulnessFrontmatter as F, type GatewayConfig as G, type HourlySummary as H, type IdentityInjectionMode as I, type AgentAccessAuthToken as J, type CompressionGuidelineOptimizerEventCounts as K, type LiveConnectorsConfig as L, type MemoryCategory as M, type CompressionGuidelineOptimizerActionSummary as N, type CompressionGuidelineOptimizerRuleUpdate as O, type PluginConfig as P, type QmdSearchResult as Q, type RecallTierExplain as R, type SessionObserverBandConfig as S, type TranscriptEntry as T, type MemoryActionType as U, type VerificationState as V, type MemoryActionEvent as W, type CompressionGuidelineOptimizerState as X, type EntityMention as Y, type EntitySchemaDefinition as Z, type EntitySchemaSectionDefinition as _, type ActiveRecallQueryMode as a, type MemoryObservation as a$, type ExtractionResult as a0, type ConsolidationResult as a1, type DaySummaryResult as a2, type ContinuityIncidentRecord as a3, type ContinuityIncidentCloseInput as a4, type ContinuityIncidentOpenInput as a5, type ContinuityImprovementLoop as a6, type ContinuityLoopReviewInput as a7, type ContinuityLoopUpsertInput as a8, type ImportanceScore as a9, type WearableSourceConnector as aA, type WearablesConfig as aB, type WearableSyncSummary as aC, type WearableSourceStatus as aD, type WearableDayTranscript as aE, type WearableCorrectionRule as aF, type CodingContext as aG, type BootstrapOptions as aH, type BootstrapResult as aI, type ConsolidationObservation as aJ, type EntityTimelineEntry as aK, type ScopeProfileLayerId as aL, type ScopeProfilePromotionTarget as aM, type ScopeProfileConfig as aN, type DreamsStatusResult as aO, type DreamsPhase as aP, type DreamsRunResult as aQ, type CodingModeConfig as aR, type WearableCleanupSettings as aS, type WearableDayTranscriptMeta as aT, type BriefingConfig as aU, type BriefingOpenCommitment as aV, type BriefingWindow as aW, type CodexCompatConfig as aX, DEFAULT_RECALL_DISCLOSURE as aY, type ExtractedFact as aZ, type MemoryActionEligibilitySource as a_, type MemoryIntent as aa, type QmdSearchExplain as ab, type MemoryActionEligibilityContext as ac, type MemoryActionPolicyResult as ad, type MemoryLifecycleEventType as ae, type MemoryLifecycleStateSummary as af, type ModelProviderConfig as ag, type NativeKnowledgeConfig as ah, type ProvenanceSource as ai, type ProvenanceConfig as aj, type RetrievalTier as ak, type SignalScanResult as al, type ConversationThread as am, type TopicScore as an, type MemoryLink as ao, type BufferState as ap, type MetaState as aq, type FileHygieneConfig as ar, type EntityRelationship as as, type EntityActivityEntry as at, type AccessTrackingEntry as au, type MemorySummary as av, type WearableConversation as aw, type WearableSourceSettings as ax, type WearableNativeMemory as ay, type WearableMemoryMode as az, type ActiveRecallPromptStyle as b, type NativeKnowledgeFolderRuleConfig as b$, type MemoryScope as b0, RECALL_DISCLOSURE_LEVELS as b1, type WearableAuthCheck as b2, type WearableFetchOptions as b3, type WearableFetchPage as b4, type WearableNativeMemoryPage as b5, type WearableTranscriptSegment as b6, isRecallDisclosure as b7, type AgentAccessHttpConfig as b8, type AgentDefaultsConfig as b9, type DreamsLightSleepConfig as bA, type DreamsPhaseStatus as bB, type DreamsPhasesConfig as bC, type DreamsRemConfig as bD, type EngramTraceEvent as bE, type ExtractedProcedureStep as bF, type ExtractedQuestion as bG, type ExtractedReasoningTrace as bH, type ExtractedReasoningTraceStep as bI, type ExtractedRelationship as bJ, type ExtractionPassSource as bK, type GitHubLiveConnectorConfig as bL, type GmailLiveConnectorConfig as bM, type GoogleDriveLiveConnectorConfig as bN, type HeartbeatConfig as bO, type HeartbeatDetectionMode as bP, type LlmTraceCallback as bQ, type LlmTraceEvent as bR, type MemoryActionOutcome as bS, type MemoryActionPolicyDecision as bT, type MemoryActionStatus as bU, type MemoryLinkType as bV, type MemoryOsPresetName as bW, type ModelApi as bX, type ModelDefinitionConfig as bY, type ModelProviderAuthMode as bZ, type NamespacePolicy as b_, type AgentPersona as ba, type BehaviorLoopAdjustment as bb, type BehaviorSignalDirection as bc, type BehaviorSignalType as bd, type BriefingCalendarSourceError as be, type BufferEntryState as bf, type CaptureMode as bg, type ChatConfig as bh, type CodexCliReasoningEffort as bi, type CodexCompactionFlushMode as bj, type CodexConnectorConfig as bk, type CodingKnowledgeConfig as bl, type CompressionGuidelineActivationState as bm, type CompressionGuidelineOptimizerSourceWindow as bn, type ConfidenceTier as bo, type ConsolidationAction as bp, type ConsolidationItem as bq, type ContinuityIncidentState as br, type ContinuityLoopCadence as bs, type ContinuityLoopStatus as bt, type ContradictionScanConfig as bu, type CronConversationRecallMode as bv, type CronRecallMode as bw, type DreamingConfig as bx, type DreamingNarrativePromptStyle as by, type DreamsDeepSleepConfig as bz, type ActiveRecallThinking as c, type NativeKnowledgeObsidianVaultConfig as c0, type NativeKnowledgeOpenClawWorkspaceConfig as c1, type NotionLiveConnectorConfig as c2, type PrincipalFromSessionKeyMode as c3, type PrincipalRule as c4, type ProceduralConfig as c5, type QuestionEntry as c6, type ReasoningEffort as c7, type RecallPipelineConfig as c8, type RecallSectionConfig as c9, type RecallTraceEvent as ca, type RelevanceFeedback as cb, SPECULATIVE_TTL_DAYS as cc, type ScopeProfileAutoPromoteConfig as cd, type ScopeProfileTeamProjectConfig as ce, type ScopeTeamConfig as cf, type ScoredEntity as cg, type SemanticChunkingConfigShape as ch, type SignalLevel as ci, type SlotBehaviorConfig as cj, type SlotMismatchMode as ck, type TriggerMode as cl, confidenceTier as cm, type ActiveRecallModelFallbackPolicy as d, type BehaviorLoopPolicyState as e, type MemoryStatus as f, type MemoryFile as g, type RecallPlanMode as h, type RecallDisclosure as i, type AgentPersonaModelConfig as j, type MemoryFrontmatter as k, type MemoryProjectionCurrentState as l, type MemoryLifecycleEvent as m, type BriefingSections as n, type BriefingFollowup as o, type BriefingFocus as p, type CalendarEvent as q, type BriefingActiveThread as r, type BriefingResult as s, type BriefingRecentEntity as t, type BufferTurn as u, type Checkpoint as v, type LifecycleState as w, type PolicyClass as x, type ImportanceLevel as y, type BufferSurpriseEvent as z };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './types-gb_SNtjR.js';
|
|
2
2
|
import './message-parts/index.js';
|
|
3
|
-
export { au as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, J as AgentAccessAuthToken, b8 as AgentAccessHttpConfig, b9 as AgentDefaultsConfig, ba as AgentPersona, j as AgentPersonaModelConfig, bb as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, bc as BehaviorSignalDirection, B as BehaviorSignalEvent, bd as BehaviorSignalType, aH as BootstrapOptions, aI as BootstrapResult, r as BriefingActiveThread, be as BriefingCalendarSourceError, aU as BriefingConfig, p as BriefingFocus, o as BriefingFollowup, aV as BriefingOpenCommitment, t as BriefingRecentEntity, s as BriefingResult, n as BriefingSections, aW as BriefingWindow, bf as BufferEntryState, ap as BufferState, z as BufferSurpriseEvent, u as BufferTurn, q as CalendarEvent, C as CalendarSource, bg as CaptureMode, v as Checkpoint,
|
|
3
|
+
export { au as AccessTrackingEntry, A as ActiveRecallChatType, d as ActiveRecallModelFallbackPolicy, b as ActiveRecallPromptStyle, a as ActiveRecallQueryMode, c as ActiveRecallThinking, J as AgentAccessAuthToken, b8 as AgentAccessHttpConfig, b9 as AgentDefaultsConfig, ba as AgentPersona, j as AgentPersonaModelConfig, bb as BehaviorLoopAdjustment, e as BehaviorLoopPolicyState, bc as BehaviorSignalDirection, B as BehaviorSignalEvent, bd as BehaviorSignalType, aH as BootstrapOptions, aI as BootstrapResult, r as BriefingActiveThread, be as BriefingCalendarSourceError, aU as BriefingConfig, p as BriefingFocus, o as BriefingFollowup, aV as BriefingOpenCommitment, t as BriefingRecentEntity, s as BriefingResult, n as BriefingSections, aW as BriefingWindow, bf as BufferEntryState, ap as BufferState, z as BufferSurpriseEvent, u as BufferTurn, q as CalendarEvent, C as CalendarSource, bg as CaptureMode, bh as ChatConfig, v as Checkpoint, bi as CodexCliReasoningEffort, bj as CodexCompactionFlushMode, aX as CodexCompatConfig, bk as CodexConnectorConfig, aG as CodingContext, bl as CodingKnowledgeConfig, aR as CodingModeConfig, bm as CompressionGuidelineActivationState, N as CompressionGuidelineOptimizerActionSummary, K as CompressionGuidelineOptimizerEventCounts, O as CompressionGuidelineOptimizerRuleUpdate, bn as CompressionGuidelineOptimizerSourceWindow, X as CompressionGuidelineOptimizerState, bo as ConfidenceTier, bp as ConsolidationAction, bq as ConsolidationItem, aJ as ConsolidationObservation, a1 as ConsolidationResult, a6 as ContinuityImprovementLoop, a4 as ContinuityIncidentCloseInput, a5 as ContinuityIncidentOpenInput, a3 as ContinuityIncidentRecord, br as ContinuityIncidentState, bs as ContinuityLoopCadence, a7 as ContinuityLoopReviewInput, bt as ContinuityLoopStatus, a8 as ContinuityLoopUpsertInput, bu as ContradictionScanConfig, am as ConversationThread, bv as CronConversationRecallMode, bw as CronRecallMode, aY as DEFAULT_RECALL_DISCLOSURE, a2 as DaySummaryResult, bx as DreamingConfig, by as DreamingNarrativePromptStyle, bz as DreamsDeepSleepConfig, bA as DreamsLightSleepConfig, aP as DreamsPhase, bB as DreamsPhaseStatus, bC as DreamsPhasesConfig, bD as DreamsRemConfig, aQ as DreamsRunResult, aO as DreamsStatusResult, bE as EngramTraceEvent, at as EntityActivityEntry, E as EntityFile, Y as EntityMention, as as EntityRelationship, Z as EntitySchemaDefinition, _ as EntitySchemaSectionDefinition, $ as EntityStructuredSection, aK as EntityTimelineEntry, aZ as ExtractedFact, bF as ExtractedProcedureStep, bG as ExtractedQuestion, bH as ExtractedReasoningTrace, bI as ExtractedReasoningTraceStep, bJ as ExtractedRelationship, bK as ExtractionPassSource, a0 as ExtractionResult, F as FaithfulnessFrontmatter, ar as FileHygieneConfig, G as GatewayConfig, bL as GitHubLiveConnectorConfig, bM as GmailLiveConnectorConfig, bN as GoogleDriveLiveConnectorConfig, bO as HeartbeatConfig, bP as HeartbeatDetectionMode, H as HourlySummary, I as IdentityInjectionMode, y as ImportanceLevel, a9 as ImportanceScore, w as LifecycleState, L as LiveConnectorsConfig, bQ as LlmTraceCallback, bR as LlmTraceEvent, ac as MemoryActionEligibilityContext, a_ as MemoryActionEligibilitySource, W as MemoryActionEvent, bS as MemoryActionOutcome, bT as MemoryActionPolicyDecision, ad as MemoryActionPolicyResult, bU as MemoryActionStatus, U as MemoryActionType, M as MemoryCategory, g as MemoryFile, k as MemoryFrontmatter, aa as MemoryIntent, m as MemoryLifecycleEvent, ae as MemoryLifecycleEventType, af as MemoryLifecycleStateSummary, ao as MemoryLink, bV as MemoryLinkType, a$ as MemoryObservation, bW as MemoryOsPresetName, l as MemoryProjectionCurrentState, b0 as MemoryScope, f as MemoryStatus, av as MemorySummary, aq as MetaState, bX as ModelApi, bY as ModelDefinitionConfig, bZ as ModelProviderAuthMode, ag as ModelProviderConfig, b_ as NamespacePolicy, ah as NativeKnowledgeConfig, b$ as NativeKnowledgeFolderRuleConfig, c0 as NativeKnowledgeObsidianVaultConfig, c1 as NativeKnowledgeOpenClawWorkspaceConfig, c2 as NotionLiveConnectorConfig, P as PluginConfig, x as PolicyClass, c3 as PrincipalFromSessionKeyMode, c4 as PrincipalRule, c5 as ProceduralConfig, aj as ProvenanceConfig, ai as ProvenanceSource, ab as QmdSearchExplain, Q as QmdSearchResult, c6 as QuestionEntry, b1 as RECALL_DISCLOSURE_LEVELS, c7 as ReasoningEffort, i as RecallDisclosure, c8 as RecallPipelineConfig, h as RecallPlanMode, c9 as RecallSectionConfig, R as RecallTierExplain, ca as RecallTraceEvent, cb as RelevanceFeedback, ak as RetrievalTier, cc as SPECULATIVE_TTL_DAYS, cd as ScopeProfileAutoPromoteConfig, aN as ScopeProfileConfig, aL as ScopeProfileLayerId, aM as ScopeProfilePromotionTarget, ce as ScopeProfileTeamProjectConfig, cf as ScopeTeamConfig, cg as ScoredEntity, D as SecretRef, ch as SemanticChunkingConfigShape, S as SessionObserverBandConfig, ci as SignalLevel, al as SignalScanResult, cj as SlotBehaviorConfig, ck as SlotMismatchMode, an as TopicScore, T as TranscriptEntry, cl as TriggerMode, V as VerificationState, cm as confidenceTier, b7 as isRecallDisclosure } from './types-D9dwzU_x.js';
|
package/dist/types.js
CHANGED
package/dist/verified-recall.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-V7GDTQ6I.js";
|
|
5
5
|
import "./chunk-7FL4CNPV.js";
|
|
6
6
|
import "./chunk-ZBJMUXZH.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-M7XQSUBB.js";
|
|
7
|
+
import "./chunk-OC56UWV5.js";
|
|
9
8
|
import "./chunk-3JJWNZTT.js";
|
|
9
|
+
import "./chunk-M7XQSUBB.js";
|
|
10
10
|
import "./chunk-5UZXUTVO.js";
|
|
11
11
|
import "./chunk-5GPPACXK.js";
|
|
12
12
|
import "./chunk-TKZ3AL5V.js";
|
|
13
13
|
import "./chunk-6CIAGZ6X.js";
|
|
14
|
+
import "./chunk-J6A3CX5N.js";
|
|
14
15
|
import "./chunk-SVOZFLIQ.js";
|
|
15
16
|
import "./chunk-LTJAMRGI.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-BOGENF7P.js";
|
|
17
|
+
import "./chunk-MSVSP5VO.js";
|
|
18
18
|
import "./chunk-RULE4VG5.js";
|
|
19
19
|
import "./chunk-SCU65EZI.js";
|
|
20
20
|
import "./chunk-MB5RSUW6.js";
|
|
@@ -36,13 +36,14 @@ import "./chunk-J2HSAU72.js";
|
|
|
36
36
|
import "./chunk-A6XUJE5D.js";
|
|
37
37
|
import "./chunk-P7FMDTKL.js";
|
|
38
38
|
import "./chunk-VS2IYZRU.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-RVLB4E6N.js";
|
|
40
|
+
import "./chunk-5GKPFL3S.js";
|
|
41
41
|
import "./chunk-4DJQYKMN.js";
|
|
42
42
|
import "./chunk-EYIEWJNI.js";
|
|
43
43
|
import "./chunk-JUC24CTX.js";
|
|
44
44
|
import "./chunk-NU3CSQ4H.js";
|
|
45
45
|
import "./chunk-6MKAMLQL.js";
|
|
46
|
+
import "./chunk-JAKIDQB2.js";
|
|
46
47
|
import "./chunk-PZ5AY32C.js";
|
|
47
48
|
export {
|
|
48
49
|
compareVerifiedEpisodeResults,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.714",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -2966,7 +2966,7 @@
|
|
|
2966
2966
|
"core"
|
|
2967
2967
|
],
|
|
2968
2968
|
"peerDependencies": {
|
|
2969
|
-
"@remnic/coding-graph": "^9.3.
|
|
2969
|
+
"@remnic/coding-graph": "^9.3.714"
|
|
2970
2970
|
},
|
|
2971
2971
|
"peerDependenciesMeta": {
|
|
2972
2972
|
"@remnic/coding-graph": {
|
package/src/access-boundary.ts
CHANGED
|
@@ -156,7 +156,10 @@ export type OperationName =
|
|
|
156
156
|
| "trust_zones_demo_seed"
|
|
157
157
|
| "citations_observed"
|
|
158
158
|
| "contradiction_detail"
|
|
159
|
-
| "graph_events"
|
|
159
|
+
| "graph_events"
|
|
160
|
+
// Chat surface — conversational memory inspection/correction (issue #1583).
|
|
161
|
+
| "chat_message"
|
|
162
|
+
| "chat_events";
|
|
160
163
|
|
|
161
164
|
// ---------------------------------------------------------------------------
|
|
162
165
|
// Operation context — what every handler receives
|
package/src/access-http.ts
CHANGED
|
@@ -33,6 +33,7 @@ import { getOperation } from "./access-boundary.js";
|
|
|
33
33
|
// (memory_get / memory_store) as a side effect; the HTTP handlers below
|
|
34
34
|
// dispatch the migrated routes through the registry (issue #1525).
|
|
35
35
|
import "./access-operations.js";
|
|
36
|
+
import { handleChatMessage, handleChatEventsSSE } from "./chat/chat-http.js";
|
|
36
37
|
|
|
37
38
|
export interface EngramAccessHttpServerOptions {
|
|
38
39
|
service: EngramAccessService;
|
|
@@ -320,6 +321,7 @@ export class EngramAccessHttpServer {
|
|
|
320
321
|
architectureCardVisible: this.service.architectureCardSurfaceVisible,
|
|
321
322
|
codegraphVisible: this.service.codegraphSurfaceVisible,
|
|
322
323
|
sessionDeltaVisible: this.service.sessionDeltaSurfaceVisible,
|
|
324
|
+
chatVisible: this.service.configRef?.chat?.enabled === true,
|
|
323
325
|
correctionVisible: this.service.correctionSurfaceVisible,
|
|
324
326
|
});
|
|
325
327
|
}
|
|
@@ -1257,24 +1259,39 @@ export class EngramAccessHttpServer {
|
|
|
1257
1259
|
if (req.method === "POST" && pathname === "/engram/v1/observe") {
|
|
1258
1260
|
void getOperation("observe"); // boundary dispatch (issue #1525)
|
|
1259
1261
|
const body = await this.readValidatedBody(req, "observe");
|
|
1260
|
-
this.
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1262
|
+
const response = await this.service.observe(
|
|
1263
|
+
{
|
|
1264
|
+
sessionKey: body.sessionKey,
|
|
1265
|
+
messages: body.messages.map((message) => ({
|
|
1266
|
+
role: message.role,
|
|
1267
|
+
content: message.content,
|
|
1268
|
+
sourceFormat: message.sourceFormat ?? undefined,
|
|
1269
|
+
rawContent: message.rawContent ?? undefined,
|
|
1270
|
+
parts: message.parts ?? undefined,
|
|
1271
|
+
})),
|
|
1272
|
+
namespace: this.resolveNamespace(req, body.namespace),
|
|
1273
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
1274
|
+
skipExtraction: body.skipExtraction === true,
|
|
1275
|
+
// Issue #1649: optional server-side dedup key for retried POSTs.
|
|
1276
|
+
idempotencyKey: body.idempotencyKey,
|
|
1277
|
+
// Forward cwd/projectTag for auto git-context resolution (issue #569).
|
|
1278
|
+
cwd: body.cwd,
|
|
1279
|
+
projectTag: body.projectTag,
|
|
1280
|
+
},
|
|
1281
|
+
// Enforce the write-quota INSIDE the service's idempotency lock
|
|
1282
|
+
// (beforeExecute, only on a real miss). A retried observe that hits the
|
|
1283
|
+
// replay path must NOT be rejected with 429 — that is exactly the
|
|
1284
|
+
// response-lost-after-process case the dedup exists for. The original
|
|
1285
|
+
// attempt may have consumed the last quota slot; the retry returns the
|
|
1286
|
+
// cached response without requiring another. Matches memory_store's
|
|
1287
|
+
// hook-in-the-lock pattern (#1434 invariant).
|
|
1288
|
+
{ enforceWriteQuota: () => this.ensureWriteRateLimitAvailable() },
|
|
1289
|
+
);
|
|
1290
|
+
// A replayed (deduplicated) observe must not consume a second write-quota
|
|
1291
|
+
// slot — same invariant as memory_store/suggestion_submit (#1434).
|
|
1292
|
+
if (this.shouldCountWriteRateLimit(response as { dryRun?: boolean; idempotencyReplay?: boolean })) {
|
|
1293
|
+
this.recordWriteRateLimitHit();
|
|
1294
|
+
}
|
|
1278
1295
|
this.respondJson(res, 202, response);
|
|
1279
1296
|
return;
|
|
1280
1297
|
}
|
|
@@ -1546,6 +1563,14 @@ export class EngramAccessHttpServer {
|
|
|
1546
1563
|
if (req.method === "GET" && memoryMatch) {
|
|
1547
1564
|
const memoryId = decodeURIComponent(memoryMatch[1] ?? "");
|
|
1548
1565
|
const namespace = parsed.searchParams.get("namespace") ?? undefined;
|
|
1566
|
+
// Issue #1582 — thread the transport session key so a `[m:xxxx]` handle in
|
|
1567
|
+
// the path resolves against this session's recall history (codex review).
|
|
1568
|
+
// resolveRequestIdentity reads it from adapter identity / request headers.
|
|
1569
|
+
const sessionKey =
|
|
1570
|
+
this.resolveRequestIdentity(req).sessionKey
|
|
1571
|
+
?? parsed.searchParams.get("session")
|
|
1572
|
+
?? parsed.searchParams.get("sessionKey")
|
|
1573
|
+
?? undefined;
|
|
1549
1574
|
// Migrated through the access boundary (issue #1525): the registry
|
|
1550
1575
|
// entry owns memoryId presence/shape validation (rule 51: reject empty
|
|
1551
1576
|
// ids loudly instead of silently passing "" into the service) and the
|
|
@@ -1555,7 +1580,7 @@ export class EngramAccessHttpServer {
|
|
|
1555
1580
|
throw new EngramAccessInputError("access-boundary: operation not registered: memory_get");
|
|
1556
1581
|
}
|
|
1557
1582
|
const output = (await op.run(
|
|
1558
|
-
{ memoryId, namespace: namespace ?? null },
|
|
1583
|
+
{ memoryId, namespace: namespace ?? null, sessionKey: sessionKey ?? null },
|
|
1559
1584
|
{ service: this.service, authenticatedPrincipal: this.resolveRequestPrincipal(req) },
|
|
1560
1585
|
)) as { result: EngramAccessMemoryResponse };
|
|
1561
1586
|
const response = output.result;
|
|
@@ -2033,6 +2058,28 @@ export class EngramAccessHttpServer {
|
|
|
2033
2058
|
return;
|
|
2034
2059
|
}
|
|
2035
2060
|
|
|
2061
|
+
// ── Chat endpoints (issue #1583) ────────────────────────────────────────
|
|
2062
|
+
if (req.method === "POST" && pathname === "/engram/v1/chat/message") {
|
|
2063
|
+
void getOperation("chat_message"); // boundary dispatch (issue #1525)
|
|
2064
|
+
const body = await this.readJsonBody(req) as Record<string, unknown>;
|
|
2065
|
+
await handleChatMessage(
|
|
2066
|
+
req, res, body,
|
|
2067
|
+
{ service: this.service, config: this.service.configRef?.chat, memoryDir: this.service.memoryDir },
|
|
2068
|
+
this.resolveRequestPrincipal(req),
|
|
2069
|
+
);
|
|
2070
|
+
return;
|
|
2071
|
+
}
|
|
2072
|
+
const chatEventsMatch = /^\/engram\/v1\/chat\/events\/([^/]+)$/.exec(pathname);
|
|
2073
|
+
if (req.method === "GET" && chatEventsMatch) {
|
|
2074
|
+
void getOperation("chat_events"); // boundary dispatch (issue #1525)
|
|
2075
|
+
await handleChatEventsSSE(
|
|
2076
|
+
req, res, chatEventsMatch[1] ?? "",
|
|
2077
|
+
{ service: this.service, config: this.service.configRef?.chat, memoryDir: this.service.memoryDir },
|
|
2078
|
+
this.resolveRequestPrincipal(req),
|
|
2079
|
+
);
|
|
2080
|
+
return;
|
|
2081
|
+
}
|
|
2082
|
+
|
|
2036
2083
|
// ── Peer Registry endpoints (issue #679) ─────────────────────────────────
|
|
2037
2084
|
// GET /engram/v1/console/state — operator console engine-state snapshot (issue #688 PR 2/3).
|
|
2038
2085
|
// Read-only; namespace-aware via resolveRequestPrincipal so cross-tenant
|
|
@@ -2595,7 +2642,15 @@ export class EngramAccessHttpServer {
|
|
|
2595
2642
|
codingArchitectureWrite ||
|
|
2596
2643
|
codegraphWrite
|
|
2597
2644
|
);
|
|
2598
|
-
|
|
2645
|
+
// observe self-enforces quota INSIDE its idempotency lock via the
|
|
2646
|
+
// enforceWriteQuota hook (issue #1649) — mirroring the direct
|
|
2647
|
+
// /engram/v1/observe route — so it must NOT be pre-checked here: a
|
|
2648
|
+
// pre-check would 429 a response-lost replay. It still counts as a write
|
|
2649
|
+
// for post-recording (the replay guard in shouldCountWriteRateLimit skips
|
|
2650
|
+
// the record). Other write tools keep the coarse pre-check.
|
|
2651
|
+
const observeSelfEnforcesQuota =
|
|
2652
|
+
toolName === "engram.observe" || toolName === "remnic.observe";
|
|
2653
|
+
if (isMcpWrite && !observeSelfEnforcesQuota) {
|
|
2599
2654
|
this.ensureWriteRateLimitAvailable();
|
|
2600
2655
|
}
|
|
2601
2656
|
|
|
@@ -2611,6 +2666,9 @@ export class EngramAccessHttpServer {
|
|
|
2611
2666
|
sessionKeyOverride: requestIdentity.sessionKey,
|
|
2612
2667
|
sessionId,
|
|
2613
2668
|
correlationId: mcpCorrelationId,
|
|
2669
|
+
enforceWriteQuota: observeSelfEnforcesQuota
|
|
2670
|
+
? () => this.ensureWriteRateLimitAvailable()
|
|
2671
|
+
: undefined,
|
|
2614
2672
|
});
|
|
2615
2673
|
|
|
2616
2674
|
if (isMcpWrite && response !== null) {
|
package/src/access-mcp.test.ts
CHANGED
|
@@ -477,6 +477,7 @@ test("MCP session override is injected only into tools that accept sessionKey",
|
|
|
477
477
|
namespace: undefined,
|
|
478
478
|
authenticatedPrincipal: undefined,
|
|
479
479
|
skipExtraction: false,
|
|
480
|
+
idempotencyKey: undefined,
|
|
480
481
|
cwd: undefined,
|
|
481
482
|
projectTag: undefined,
|
|
482
483
|
});
|
|
@@ -484,6 +485,34 @@ test("MCP session override is injected only into tools that accept sessionKey",
|
|
|
484
485
|
assert.equal((observeResponse as Record<string, unknown> & { result?: { isError?: boolean } }).result?.isError, false);
|
|
485
486
|
});
|
|
486
487
|
|
|
488
|
+
test("MCP memory_get advertises sessionKey so the override reaches the resolver (#1582)", async () => {
|
|
489
|
+
// The engram.memory_get inputSchema must advertise sessionKey, otherwise
|
|
490
|
+
// toolAcceptsArgument skips the override injection and an MCP caller citing a
|
|
491
|
+
// [m:xxxx] handle gets "cannot be resolved without a session key" (codex
|
|
492
|
+
// review). With the field advertised, the transport session key flows through
|
|
493
|
+
// the registry op into service.memoryGet as the 4th positional arg.
|
|
494
|
+
let receivedSessionKey: string | undefined;
|
|
495
|
+
const service = {
|
|
496
|
+
...makeMockService(),
|
|
497
|
+
memoryGet: (_id: string, _ns?: string, _principal?: string, sessionKey?: string) => {
|
|
498
|
+
receivedSessionKey = sessionKey;
|
|
499
|
+
return Promise.resolve({ found: false, namespace: "default" });
|
|
500
|
+
},
|
|
501
|
+
} as unknown as EngramAccessService;
|
|
502
|
+
const server = new EngramMcpServer(service);
|
|
503
|
+
|
|
504
|
+
const response = await server.handleRequest(
|
|
505
|
+
makeToolRequest("engram.memory_get", { memoryId: "[m:4f2a]" }),
|
|
506
|
+
{ sessionKeyOverride: "adapter-session" },
|
|
507
|
+
);
|
|
508
|
+
|
|
509
|
+
assert.equal(receivedSessionKey, "adapter-session");
|
|
510
|
+
assert.equal(
|
|
511
|
+
(response as Record<string, unknown> & { result?: { isError?: boolean } }).result?.isError,
|
|
512
|
+
false,
|
|
513
|
+
);
|
|
514
|
+
});
|
|
515
|
+
|
|
487
516
|
test("MCP capsule import forwards encrypted archive passphrase", async () => {
|
|
488
517
|
let received: Record<string, unknown> | undefined;
|
|
489
518
|
const service = {
|