@remnic/core 9.32.0 → 9.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +10 -10
- package/dist/access-admin-ops-surface.js +29 -28
- package/dist/access-authorization-probe.d.ts +10 -10
- package/dist/access-authorization-probe.js +30 -29
- package/dist/access-boundary.d.ts +10 -10
- package/dist/access-boundary.js +29 -28
- package/dist/access-cli.js +71 -68
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.d.ts +10 -10
- package/dist/access-extraction-force-flush.js +29 -28
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-lcm-compaction.d.ts +10 -10
- package/dist/access-http-lifecycle-flush.d.ts +10 -10
- package/dist/access-http.d.ts +10 -10
- package/dist/access-http.js +41 -40
- package/dist/access-identity-continuity-surface.d.ts +8 -8
- package/dist/access-identity-continuity-surface.js +29 -28
- package/dist/access-lcm-surface.d.ts +10 -10
- package/dist/access-lcm-surface.js +29 -28
- package/dist/access-mcp.d.ts +10 -10
- package/dist/access-mcp.js +35 -34
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-COhbXBqS.d.ts → access-namespace-preflight-CWyL4Zai.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +29 -28
- package/dist/access-observe-write-surface.d.ts +10 -10
- package/dist/access-observe-write-surface.js +29 -28
- package/dist/access-operations-batch.js +32 -31
- package/dist/access-operations.d.ts +10 -10
- package/dist/access-operations.js +34 -33
- package/dist/access-recall-concurrency.d.ts +10 -10
- package/dist/access-recall-concurrency.js +29 -28
- package/dist/access-recall-response.d.ts +10 -10
- package/dist/access-recall-response.js +29 -28
- package/dist/access-recall-surface.d.ts +10 -10
- package/dist/access-recall-surface.js +29 -28
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-BmBTtEKO.d.ts → access-service-D9zIBlpp.d.ts} +7 -7
- package/dist/access-service-helpers.d.ts +10 -10
- package/dist/access-service.d.ts +10 -10
- package/dist/access-service.js +29 -28
- package/dist/access-surface-catalog.d.ts +10 -10
- package/dist/access-wearables-meetings-surface.d.ts +3 -3
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/registry.js +3 -3
- package/dist/auto-sync-UPTUVE4X.js +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +8 -8
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +7 -7
- 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 +2 -2
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{capsule-crypto-7FJQINUR.js → capsule-crypto-GWVG7LGC.js} +2 -2
- package/dist/{catalog-Dm-DvNBY.d.ts → catalog-Du4bpZWM.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 +8 -8
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/{chunk-FHBITMRY.js → chunk-4TGZCYHH.js} +15 -15
- package/dist/{chunk-KQAFEZQX.js → chunk-5W7CTZ2E.js} +4 -4
- package/dist/{chunk-ODGOP7P2.js → chunk-6HXQ2YO5.js} +2 -2
- package/dist/{chunk-65ZPVYTA.js → chunk-7CCVK67W.js} +5 -5
- package/dist/{chunk-2QIMTVEJ.js → chunk-7TWUCYER.js} +3 -1
- package/dist/chunk-7TWUCYER.js.map +1 -0
- package/dist/{chunk-UORKJ34C.js → chunk-7ZHGPX56.js} +2 -2
- package/dist/{chunk-G2YQ57YO.js → chunk-AEPYA55F.js} +2 -2
- package/dist/chunk-B6XHIBIB.js +111 -0
- package/dist/chunk-B6XHIBIB.js.map +1 -0
- package/dist/{chunk-AJL6NNX6.js → chunk-BIXWNHIL.js} +2 -2
- package/dist/{chunk-TGTTESJS.js → chunk-CMQZNEIF.js} +2 -2
- package/dist/chunk-CMQZNEIF.js.map +1 -0
- package/dist/{chunk-J3ZGPYXB.js → chunk-DG2R7M7K.js} +34 -36
- package/dist/chunk-DG2R7M7K.js.map +1 -0
- package/dist/{chunk-QDTZ2HF7.js → chunk-DMT2RGAZ.js} +3 -3
- package/dist/{chunk-QIHIHZYC.js → chunk-DP7ZV2II.js} +42 -89
- package/dist/chunk-DP7ZV2II.js.map +1 -0
- package/dist/{chunk-5WZVQRHV.js → chunk-EO7X2LDK.js} +2 -2
- package/dist/{chunk-TL4TO3EA.js → chunk-F3BNEYX2.js} +2 -2
- package/dist/{chunk-AQEJE3WO.js → chunk-FL3AM5KE.js} +3 -3
- package/dist/{chunk-3F2LKUMU.js → chunk-FYO2GAZJ.js} +2 -2
- package/dist/{chunk-2Q4JJ3FZ.js → chunk-HULSU7PS.js} +2 -2
- package/dist/{chunk-VVDPPDDF.js → chunk-HXDWZFNP.js} +1 -1
- package/dist/chunk-HXDWZFNP.js.map +1 -0
- package/dist/{chunk-3EQ2XB3W.js → chunk-IZXTZ7BF.js} +5 -5
- package/dist/{chunk-THCPRMRF.js → chunk-J6SLNQRO.js} +2 -2
- package/dist/{chunk-IGWFKW4B.js → chunk-KEWUNL7P.js} +2 -2
- package/dist/{chunk-27HHNYSQ.js → chunk-KJT3PZAR.js} +3 -3
- package/dist/chunk-KWMXR7XS.js +138 -0
- package/dist/chunk-KWMXR7XS.js.map +1 -0
- package/dist/{chunk-OPBTPRGY.js → chunk-KWU6MAD4.js} +2 -2
- package/dist/{chunk-227UFSEQ.js → chunk-LEPOP46W.js} +4 -4
- package/dist/{chunk-HFQQWAMS.js → chunk-LRYAQGDR.js} +38 -38
- package/dist/{chunk-VMZ56EE3.js → chunk-MYXWPG5O.js} +2 -2
- package/dist/{chunk-YX5LN6JR.js → chunk-OPRP6Q4Z.js} +3 -3
- package/dist/{chunk-2NLLXCJG.js → chunk-OWHERGF2.js} +2 -2
- package/dist/{chunk-2NTGBZLZ.js → chunk-OXBPHIKH.js} +8 -8
- package/dist/{chunk-QMWFQBIL.js → chunk-QEPNZBBC.js} +3 -3
- package/dist/{chunk-CE5355TT.js → chunk-QHYB4MJV.js} +2 -2
- package/dist/{chunk-AU7Q3LSC.js → chunk-RKNJBZ55.js} +7 -7
- package/dist/{chunk-FMFLGS5Z.js → chunk-RLOVRJZN.js} +8 -8
- package/dist/{chunk-CJDNT45S.js → chunk-RQBF54FC.js} +6 -6
- package/dist/{chunk-LUQ443JP.js → chunk-RSFWAI4D.js} +68 -48
- package/dist/chunk-RSFWAI4D.js.map +1 -0
- package/dist/{chunk-YPC7W6GA.js → chunk-RYMPLSIT.js} +3 -2
- package/dist/{chunk-YPC7W6GA.js.map → chunk-RYMPLSIT.js.map} +1 -1
- package/dist/{chunk-E6BMSH7U.js → chunk-SUZI6BHQ.js} +2 -2
- package/dist/chunk-T2TTP3KU.js +28 -0
- package/dist/chunk-T2TTP3KU.js.map +1 -0
- package/dist/{chunk-35IVNNRK.js → chunk-TCIWHK3N.js} +2 -2
- package/dist/{chunk-X7Y7WX73.js → chunk-UVYI6VIX.js} +1 -1
- package/dist/{chunk-6P7MTSU5.js → chunk-WFYWGDM6.js} +2 -2
- package/dist/{chunk-HKPJPOW7.js → chunk-XABS455Y.js} +2 -2
- package/dist/{chunk-U7QYBSQJ.js → chunk-XWDZQIYU.js} +2 -2
- package/dist/{chunk-Z7XKUWYS.js → chunk-Y2ZD2RVG.js} +2 -2
- package/dist/{chunk-AQWVJURR.js → chunk-Y6OWJ3V5.js} +2 -2
- package/dist/{chunk-J7WZUL2K.js → chunk-Y6XRTQMV.js} +8 -8
- package/dist/{chunk-MAXVH44E.js → chunk-Z54EM5YZ.js} +7 -7
- package/dist/{cli-DRJLv1Xt.d.ts → cli-mFX-QQvx.d.ts} +5 -5
- package/dist/cli.d.ts +12 -12
- package/dist/cli.js +57 -56
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +7 -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/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +7 -7
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +4 -2
- package/dist/connectors/index.js +12 -8
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +2 -2
- package/dist/contradiction/index.js +4 -4
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/backend.js +2 -2
- 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 +15 -15
- 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 +2 -2
- package/dist/entity-retrieval.js +7 -7
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +8 -8
- package/dist/explicit-capture.js +3 -3
- package/dist/extraction-error-classification.d.ts +1 -1
- 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-liveness.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.d.ts +1 -2
- package/dist/extraction.js +63 -2
- package/dist/fallback-llm.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-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/index.d.ts +19 -19
- package/dist/index.js +115 -112
- 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 +6 -6
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +7 -7
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +7 -7
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +8 -8
- package/dist/{maintenance-C6Pffz30.d.ts → maintenance-70Wq118b.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +10 -10
- 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 +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +14 -14
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +6 -6
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +7 -7
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/operator-doctor-corpus.d.ts +1 -1
- package/dist/operator-doctor-corpus.js +16 -16
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +19 -19
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +12 -12
- package/dist/{orchestrator-eQlmasno.d.ts → orchestrator-BH8LT-NX.d.ts} +7 -7
- package/dist/orchestrator.d.ts +8 -8
- package/dist/orchestrator.js +72 -69
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-CZGmAMQ2.d.ts → pipeline-DSLWFeHz.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/proactive-contention.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{qmd-DBj4MF8T.d.ts → qmd-BSDGyr0H.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-planner-llm.d.ts +1 -1
- 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/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/resolve-auth-token.d.ts +1 -1
- 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.js +1 -1
- package/dist/{scope-profiles-S85lrsUn.d.ts → scope-profiles-C4zY-a2K.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 +5 -5
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +9 -9
- 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-DVzDcV6x.d.ts → semantic-consolidation-ChKRYpRO.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +8 -8
- package/dist/semantic-rule-promotion.js +7 -7
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +7 -7
- package/dist/{service-C2M-wD4W.d.ts → service-CrxXHz5T.d.ts} +2 -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 +1 -1
- package/dist/signal.d.ts +1 -1
- package/dist/source-agent-qualifier.d.ts +24 -0
- package/dist/source-agent-qualifier.js +98 -0
- package/dist/source-agent-qualifier.js.map +1 -0
- package/dist/{storage-dyBC3Q84.d.ts → storage-CyWa1Jm6.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +6 -6
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- 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/tool-scoped-memory.d.ts +47 -0
- package/dist/tool-scoped-memory.js +12 -0
- package/dist/tool-scoped-memory.js.map +1 -0
- 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 +2 -2
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-D63ZI--P.d.ts → types-5398p7Zm.d.ts} +7 -8
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +7 -7
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +2 -2
- package/src/connector-provenance-lifecycle.test.ts +86 -3
- package/src/connectors/index.ts +2 -2
- package/src/connectors/label.ts +18 -0
- package/src/extraction-redaction-rules.test.ts +53 -0
- package/src/extraction-scope-source-agent.test.ts +513 -0
- package/src/extraction.ts +45 -98
- package/src/index.ts +1 -1
- package/src/orchestration/extraction-persist.ts +31 -32
- package/src/orchestration/extraction-run.ts +1 -1
- package/src/orchestration/recall-result-formatter.ts +2 -1
- package/src/schemas.ts +1 -1
- package/src/source-agent-qualifier.ts +156 -0
- package/src/tool-scoped-memory.test.ts +199 -0
- package/src/tool-scoped-memory.ts +190 -0
- package/src/types.ts +7 -8
- package/dist/chunk-2QIMTVEJ.js.map +0 -1
- package/dist/chunk-J3ZGPYXB.js.map +0 -1
- package/dist/chunk-LUQ443JP.js.map +0 -1
- package/dist/chunk-QIHIHZYC.js.map +0 -1
- package/dist/chunk-TGTTESJS.js.map +0 -1
- package/dist/chunk-VVDPPDDF.js.map +0 -1
- /package/dist/{capsule-crypto-7FJQINUR.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
- /package/dist/{chunk-FHBITMRY.js.map → chunk-4TGZCYHH.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-5W7CTZ2E.js.map} +0 -0
- /package/dist/{chunk-ODGOP7P2.js.map → chunk-6HXQ2YO5.js.map} +0 -0
- /package/dist/{chunk-65ZPVYTA.js.map → chunk-7CCVK67W.js.map} +0 -0
- /package/dist/{chunk-UORKJ34C.js.map → chunk-7ZHGPX56.js.map} +0 -0
- /package/dist/{chunk-G2YQ57YO.js.map → chunk-AEPYA55F.js.map} +0 -0
- /package/dist/{chunk-AJL6NNX6.js.map → chunk-BIXWNHIL.js.map} +0 -0
- /package/dist/{chunk-QDTZ2HF7.js.map → chunk-DMT2RGAZ.js.map} +0 -0
- /package/dist/{chunk-5WZVQRHV.js.map → chunk-EO7X2LDK.js.map} +0 -0
- /package/dist/{chunk-TL4TO3EA.js.map → chunk-F3BNEYX2.js.map} +0 -0
- /package/dist/{chunk-AQEJE3WO.js.map → chunk-FL3AM5KE.js.map} +0 -0
- /package/dist/{chunk-3F2LKUMU.js.map → chunk-FYO2GAZJ.js.map} +0 -0
- /package/dist/{chunk-2Q4JJ3FZ.js.map → chunk-HULSU7PS.js.map} +0 -0
- /package/dist/{chunk-3EQ2XB3W.js.map → chunk-IZXTZ7BF.js.map} +0 -0
- /package/dist/{chunk-THCPRMRF.js.map → chunk-J6SLNQRO.js.map} +0 -0
- /package/dist/{chunk-IGWFKW4B.js.map → chunk-KEWUNL7P.js.map} +0 -0
- /package/dist/{chunk-27HHNYSQ.js.map → chunk-KJT3PZAR.js.map} +0 -0
- /package/dist/{chunk-OPBTPRGY.js.map → chunk-KWU6MAD4.js.map} +0 -0
- /package/dist/{chunk-227UFSEQ.js.map → chunk-LEPOP46W.js.map} +0 -0
- /package/dist/{chunk-HFQQWAMS.js.map → chunk-LRYAQGDR.js.map} +0 -0
- /package/dist/{chunk-VMZ56EE3.js.map → chunk-MYXWPG5O.js.map} +0 -0
- /package/dist/{chunk-YX5LN6JR.js.map → chunk-OPRP6Q4Z.js.map} +0 -0
- /package/dist/{chunk-2NLLXCJG.js.map → chunk-OWHERGF2.js.map} +0 -0
- /package/dist/{chunk-2NTGBZLZ.js.map → chunk-OXBPHIKH.js.map} +0 -0
- /package/dist/{chunk-QMWFQBIL.js.map → chunk-QEPNZBBC.js.map} +0 -0
- /package/dist/{chunk-CE5355TT.js.map → chunk-QHYB4MJV.js.map} +0 -0
- /package/dist/{chunk-AU7Q3LSC.js.map → chunk-RKNJBZ55.js.map} +0 -0
- /package/dist/{chunk-FMFLGS5Z.js.map → chunk-RLOVRJZN.js.map} +0 -0
- /package/dist/{chunk-CJDNT45S.js.map → chunk-RQBF54FC.js.map} +0 -0
- /package/dist/{chunk-E6BMSH7U.js.map → chunk-SUZI6BHQ.js.map} +0 -0
- /package/dist/{chunk-35IVNNRK.js.map → chunk-TCIWHK3N.js.map} +0 -0
- /package/dist/{chunk-X7Y7WX73.js.map → chunk-UVYI6VIX.js.map} +0 -0
- /package/dist/{chunk-6P7MTSU5.js.map → chunk-WFYWGDM6.js.map} +0 -0
- /package/dist/{chunk-HKPJPOW7.js.map → chunk-XABS455Y.js.map} +0 -0
- /package/dist/{chunk-U7QYBSQJ.js.map → chunk-XWDZQIYU.js.map} +0 -0
- /package/dist/{chunk-Z7XKUWYS.js.map → chunk-Y2ZD2RVG.js.map} +0 -0
- /package/dist/{chunk-AQWVJURR.js.map → chunk-Y6OWJ3V5.js.map} +0 -0
- /package/dist/{chunk-J7WZUL2K.js.map → chunk-Y6XRTQMV.js.map} +0 -0
- /package/dist/{chunk-MAXVH44E.js.map → chunk-Z54EM5YZ.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { aF as FusedWearableConversation, aG as FusedDayMeta, aH as FusedDayFile, aI as MeetingRecord, aJ as MeetingDetectionSource, aK as FusedMeeting, M as MemoryFile, l as MemoryFrontmatter, aL as EntityTimelineEntry, al as EntityStructuredSection, E as EntityFile, P as PluginConfig, x as MemoryStatus, v as MemoryCategory, an as ImportanceScore, aM as MemoryLink, F as FaithfulnessFrontmatter, O as ProvenanceSource, aN as BufferState, aO as MetaState, ag as MemoryActionEvent, z as MemoryLifecycleEvent, a7 as BufferSurpriseEvent, a6 as BehaviorSignalEvent, ah as CompressionGuidelineOptimizerState, aP as FileHygieneConfig, aQ as EntityRelationship, aR as EntityActivityEntry, aS as AccessTrackingEntry, y as MemoryProjectionCurrentState, aT as MemorySummary, az as TopicScore } from './types-
|
|
1
|
+
import { aF as FusedWearableConversation, aG as FusedDayMeta, aH as FusedDayFile, aI as MeetingRecord, aJ as MeetingDetectionSource, aK as FusedMeeting, M as MemoryFile, l as MemoryFrontmatter, aL as EntityTimelineEntry, al as EntityStructuredSection, E as EntityFile, P as PluginConfig, x as MemoryStatus, v as MemoryCategory, an as ImportanceScore, aM as MemoryLink, F as FaithfulnessFrontmatter, O as ProvenanceSource, aN as BufferState, aO as MetaState, ag as MemoryActionEvent, z as MemoryLifecycleEvent, a7 as BufferSurpriseEvent, a6 as BehaviorSignalEvent, ah as CompressionGuidelineOptimizerState, aP as FileHygieneConfig, aQ as EntityRelationship, aR as EntityActivityEntry, aS as AccessTrackingEntry, y as MemoryProjectionCurrentState, aT as MemorySummary, az as TopicScore } from './types-5398p7Zm.js';
|
|
2
2
|
import './entity-id-normalization.js';
|
|
3
3
|
import { VersioningConfig } from './page-versioning.js';
|
|
4
4
|
import { ConsolidationOperator } from './consolidation-operator.js';
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import './types-
|
|
2
|
-
export { C as ContentHashIndex, t as ContentHashIndexLockOptions, u as FactHashIndexNotAuthoritativeError, v as MemoryLifecycleEventWriteOptions, M as MemoryWriteResult, R as ReextractJobRequest, w as SealedWriteExtras, S as StorageManager, W as WriteMemoryOptions, x as buildEntitySchemaCacheKey, y as compareEntityTimestamps, z as compileEntityFacts, A as countEntityStructuredFacts, B as fingerprintEntityStructuredFacts, D as isEntitySynthesisStale, E as isValidBufferSurpriseEvent, G as normalizeFrontmatterForPath, H as normalizeStructuredSectionFacts, p as parseEntityFile, I as parseFrontmatter, J as parseFrontmatterStringValue, s as serializeEntityFile } from './storage-
|
|
1
|
+
import './types-5398p7Zm.js';
|
|
2
|
+
export { C as ContentHashIndex, t as ContentHashIndexLockOptions, u as FactHashIndexNotAuthoritativeError, v as MemoryLifecycleEventWriteOptions, M as MemoryWriteResult, R as ReextractJobRequest, w as SealedWriteExtras, S as StorageManager, W as WriteMemoryOptions, x as buildEntitySchemaCacheKey, y as compareEntityTimestamps, z as compileEntityFacts, A as countEntityStructuredFacts, B as fingerprintEntityStructuredFacts, D as isEntitySynthesisStale, E as isValidBufferSurpriseEvent, G as normalizeFrontmatterForPath, H as normalizeStructuredSectionFacts, p as parseEntityFile, I as parseFrontmatter, J as parseFrontmatterStringValue, s as serializeEntityFile } from './storage-CyWa1Jm6.js';
|
|
3
3
|
export { normalizeEntityName } from './entity-id-normalization.js';
|
|
4
4
|
import './page-versioning.js';
|
|
5
5
|
import './consolidation-operator.js';
|
package/dist/storage.js
CHANGED
|
@@ -13,15 +13,15 @@ import {
|
|
|
13
13
|
parseFrontmatter,
|
|
14
14
|
parseFrontmatterStringValue,
|
|
15
15
|
serializeEntityFile
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4TGZCYHH.js";
|
|
17
17
|
import "./chunk-UHVXE24Y.js";
|
|
18
18
|
import "./chunk-QNWXCJ76.js";
|
|
19
19
|
import "./chunk-WIPEXG6R.js";
|
|
20
20
|
import "./chunk-DNHVPZOD.js";
|
|
21
21
|
import "./chunk-6CIAGZ6X.js";
|
|
22
|
-
import "./chunk-J6A3CX5N.js";
|
|
23
22
|
import "./chunk-HKF5VASQ.js";
|
|
24
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-J6A3CX5N.js";
|
|
24
|
+
import "./chunk-HXDWZFNP.js";
|
|
25
25
|
import "./chunk-7VUAG236.js";
|
|
26
26
|
import "./chunk-EGGE52UU.js";
|
|
27
27
|
import "./chunk-ILGC6JH6.js";
|
|
@@ -34,15 +34,15 @@ import {
|
|
|
34
34
|
ContentHashIndex,
|
|
35
35
|
FactHashIndexNotAuthoritativeError
|
|
36
36
|
} from "./chunk-FBUE6PD3.js";
|
|
37
|
-
import "./chunk-FFAZ2XFU.js";
|
|
38
|
-
import "./chunk-3CSX3ETE.js";
|
|
39
|
-
import "./chunk-RL6NEVXT.js";
|
|
40
37
|
import "./chunk-CGASUJVP.js";
|
|
41
38
|
import {
|
|
42
39
|
normalizeAttributePairs,
|
|
43
40
|
stripAttributesSuffix
|
|
44
41
|
} from "./chunk-R3DJVOSM.js";
|
|
45
42
|
import "./chunk-BT7NVCML.js";
|
|
43
|
+
import "./chunk-FFAZ2XFU.js";
|
|
44
|
+
import "./chunk-3CSX3ETE.js";
|
|
45
|
+
import "./chunk-RL6NEVXT.js";
|
|
46
46
|
import "./chunk-JYIJNNN3.js";
|
|
47
47
|
import "./chunk-AAD2ZS6P.js";
|
|
48
48
|
import {
|
package/dist/summarizer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ModelRegistry } from './model-registry.js';
|
|
2
|
-
import { P as PluginConfig, G as GatewayConfig, T as TranscriptEntry, H as HourlySummary } from './types-
|
|
2
|
+
import { P as PluginConfig, G as GatewayConfig, T as TranscriptEntry, H as HourlySummary } from './types-5398p7Zm.js';
|
|
3
3
|
import { TranscriptManager } from './transcript.js';
|
|
4
4
|
import './message-parts/index.js';
|
|
5
5
|
import './bounded-jsonl-state.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as MemoryFrontmatter } from './types-
|
|
2
|
-
import { S as StorageManager } from './storage-
|
|
1
|
+
import { l as MemoryFrontmatter } from './types-5398p7Zm.js';
|
|
2
|
+
import { S as StorageManager } from './storage-CyWa1Jm6.js';
|
|
3
3
|
import './message-parts/index.js';
|
|
4
4
|
import './bounded-jsonl-state.js';
|
|
5
5
|
import './operator-doctor-types.js';
|
package/dist/threading.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { j as BufferTurn, V as ConversationThread } from './types-
|
|
1
|
+
import { j as BufferTurn, V as ConversationThread } from './types-5398p7Zm.js';
|
|
2
2
|
import './message-parts/index.js';
|
|
3
3
|
import './bounded-jsonl-state.js';
|
|
4
4
|
import './operator-doctor-types.js';
|
package/dist/tier-migration.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { M as MemoryFile } from './types-
|
|
2
|
-
import { S as StorageManager } from './storage-
|
|
1
|
+
import { M as MemoryFile } from './types-5398p7Zm.js';
|
|
2
|
+
import { S as StorageManager } from './storage-CyWa1Jm6.js';
|
|
3
3
|
import { MemoryTier } from './tier-routing.js';
|
|
4
4
|
import { SearchBackend } from './search/port.js';
|
|
5
5
|
import './message-parts/index.js';
|
package/dist/tier-routing.d.ts
CHANGED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-scoped memory guard (issue #2183).
|
|
3
|
+
*
|
|
4
|
+
* A tool-related fact extracted from a specific agent integration carries an
|
|
5
|
+
* UNQUALIFIED tool name — "use the search tool" — with no agent identity
|
|
6
|
+
* attached (the conversation handed to the extraction LLM is rendered as
|
|
7
|
+
* `[role] content` only). Promoting such a fact to the shared namespace lets a
|
|
8
|
+
* DIFFERENT integration that exposes a same-named but incompatible tool (Pi
|
|
9
|
+
* `search` = repo code search vs OpenClaw `search` = web search) consume it.
|
|
10
|
+
*
|
|
11
|
+
* `referencesAgentSpecificTool` flags fact text that references a specific
|
|
12
|
+
* tool/command invocation rather than portable knowledge. The promotion guard
|
|
13
|
+
* in `orchestration/extraction-persist.ts` uses it — when the producing
|
|
14
|
+
* integration is known (`sourceConnector`) — to keep such a fact in that
|
|
15
|
+
* integration's own namespace.
|
|
16
|
+
*
|
|
17
|
+
* Tuning bias: a FALSE POSITIVE is cheap — the fact stays in the narrower
|
|
18
|
+
* namespace, the documented safe default. A FALSE NEGATIVE is the actual
|
|
19
|
+
* cross-integration collision bug, so detection leans permissive — but it must
|
|
20
|
+
* not fire on ordinary prose.
|
|
21
|
+
*/
|
|
22
|
+
declare function referencesAgentSpecificTool(content: string): boolean;
|
|
23
|
+
interface ToolScopeWithholdInputs {
|
|
24
|
+
content: string;
|
|
25
|
+
sourceConnector?: string;
|
|
26
|
+
procedureSteps?: ReadonlyArray<{
|
|
27
|
+
intent?: string;
|
|
28
|
+
expectedOutcome?: string;
|
|
29
|
+
toolCall?: {
|
|
30
|
+
kind?: string;
|
|
31
|
+
};
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
declare function withholdToolScopedFromSharedNamespace({ content, sourceConnector, procedureSteps, }: ToolScopeWithholdInputs): boolean;
|
|
35
|
+
interface GlobalFactPromotionInputs {
|
|
36
|
+
scope: string | null | undefined;
|
|
37
|
+
content: string;
|
|
38
|
+
sourceConnector?: string;
|
|
39
|
+
procedureSteps?: ReadonlyArray<{
|
|
40
|
+
toolCall?: {
|
|
41
|
+
kind?: string;
|
|
42
|
+
};
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
declare function shouldPromoteGlobalFactToShared(inputs: GlobalFactPromotionInputs): boolean;
|
|
46
|
+
|
|
47
|
+
export { type GlobalFactPromotionInputs, type ToolScopeWithholdInputs, referencesAgentSpecificTool, shouldPromoteGlobalFactToShared, withholdToolScopedFromSharedNamespace };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
referencesAgentSpecificTool,
|
|
3
|
+
shouldPromoteGlobalFactToShared,
|
|
4
|
+
withholdToolScopedFromSharedNamespace
|
|
5
|
+
} from "./chunk-KWMXR7XS.js";
|
|
6
|
+
import "./chunk-PZ5AY32C.js";
|
|
7
|
+
export {
|
|
8
|
+
referencesAgentSpecificTool,
|
|
9
|
+
shouldPromoteGlobalFactToShared,
|
|
10
|
+
withholdToolScopedFromSharedNamespace
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=tool-scoped-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/topics.d.ts
CHANGED
package/dist/transcript.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as PluginConfig, T as TranscriptEntry, m as Checkpoint } from './types-
|
|
1
|
+
import { P as PluginConfig, T as TranscriptEntry, m as Checkpoint } from './types-5398p7Zm.js';
|
|
2
2
|
import { SessionIntegrityReport } from './session-integrity.js';
|
|
3
3
|
import './message-parts/index.js';
|
|
4
4
|
import './bounded-jsonl-state.js';
|
package/dist/transfer/backup.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
backupMemoryDir
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-OWHERGF2.js";
|
|
4
4
|
import "../chunk-765K3SAT.js";
|
|
5
|
-
import "../chunk-
|
|
5
|
+
import "../chunk-UVYI6VIX.js";
|
|
6
6
|
import "../chunk-J4EB7DNW.js";
|
|
7
7
|
import "../chunk-BJMBJZ2Y.js";
|
|
8
8
|
import "../chunk-UKJAGEXH.js";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
exportCapsule,
|
|
3
3
|
isValidCapsuleSince
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-5W7CTZ2E.js";
|
|
5
|
+
import "../chunk-UVYI6VIX.js";
|
|
5
6
|
import "../chunk-WEHSQBFR.js";
|
|
6
|
-
import "../chunk-X7Y7WX73.js";
|
|
7
7
|
import "../chunk-J4EB7DNW.js";
|
|
8
8
|
import "../chunk-BJMBJZ2Y.js";
|
|
9
9
|
import "../chunk-UKJAGEXH.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
importCapsule
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-7CCVK67W.js";
|
|
4
4
|
import "../chunk-6TAUHL33.js";
|
|
5
5
|
import "../chunk-IJ7HK452.js";
|
|
6
6
|
import "../chunk-PDJTHRAW.js";
|
|
7
7
|
import "../chunk-XMMESCPD.js";
|
|
8
8
|
import "../chunk-42JKGUFJ.js";
|
|
9
|
+
import "../chunk-UVYI6VIX.js";
|
|
9
10
|
import "../chunk-WEHSQBFR.js";
|
|
10
|
-
import "../chunk-X7Y7WX73.js";
|
|
11
11
|
import "../chunk-BJMBJZ2Y.js";
|
|
12
12
|
import "../chunk-UKJAGEXH.js";
|
|
13
13
|
import "../chunk-FP2373TW.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as FaithfulnessFrontmatter, O as ProvenanceSource, U as TrustWeights, Q as QmdSearchResult } from './types-
|
|
1
|
+
import { F as FaithfulnessFrontmatter, O as ProvenanceSource, U as TrustWeights, Q as QmdSearchResult } from './types-5398p7Zm.js';
|
|
2
2
|
import { TrustScoreResult, TrustSignals, TrustBand, TrustScoreComponent } from './trust-score.js';
|
|
3
3
|
import './message-parts/index.js';
|
|
4
4
|
import './bounded-jsonl-state.js';
|
package/dist/trust-score.d.ts
CHANGED
|
@@ -1260,15 +1260,12 @@ type ExtractionPassSource = "base" | "proactive";
|
|
|
1260
1260
|
/**
|
|
1261
1261
|
* Scope classification for extracted facts (issue #XXX).
|
|
1262
1262
|
*
|
|
1263
|
-
* - `"project"` —
|
|
1264
|
-
*
|
|
1265
|
-
*
|
|
1266
|
-
*
|
|
1267
|
-
* library behavior, API patterns, user preferences, tool configurations,
|
|
1268
|
-
* general coding patterns, infrastructure knowledge.
|
|
1263
|
+
* - `"project"` — one codebase (paths, env configs, deployment, stakeholders);
|
|
1264
|
+
* also tool/command or CLI-flag instructions tied to one agent.
|
|
1265
|
+
* - `"global"` — across projects: framework bugs, library/API behavior,
|
|
1266
|
+
* user preferences, coding patterns, infrastructure.
|
|
1269
1267
|
*
|
|
1270
|
-
* Default is `"project"`
|
|
1271
|
-
* coding context is present.
|
|
1268
|
+
* Default is `"project"` with a coding context active, else `"global"`.
|
|
1272
1269
|
*/
|
|
1273
1270
|
type MemoryScope = "project" | "global";
|
|
1274
1271
|
type SlotMismatchMode = "error" | "warn" | "silent";
|
|
@@ -4277,6 +4274,8 @@ interface ExtractionResult {
|
|
|
4277
4274
|
extractionFailure?: string;
|
|
4278
4275
|
/** Coarse class used by the retry/backoff + circuit-breaker layer (extraction hot loop). */
|
|
4279
4276
|
extractionFailureClass?: ExtractionFailureClass;
|
|
4277
|
+
/** Trusted source connector resolved over boundedTurns; persisted verbatim by the orchestrator so it is not recomputed (#2183). */
|
|
4278
|
+
sourceConnector?: string;
|
|
4280
4279
|
}
|
|
4281
4280
|
interface EntityMention {
|
|
4282
4281
|
name: string;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { aS as AccessTrackingEntry, a1 as ActiveRecallChatType, a5 as ActiveRecallModelFallbackPolicy, a3 as ActiveRecallPromptStyle, a2 as ActiveRecallQueryMode, a4 as ActiveRecallThinking, t as AgentAccessAuthToken, ck as AgentAccessHttpConfig, cl as AgentDefaultsConfig, cm as AgentPersona, A as AgentPersonaModelConfig, cn as BehaviorLoopAdjustment, r as BehaviorLoopPolicyState, co as BehaviorSignalDirection, a6 as BehaviorSignalEvent, cp as BehaviorSignalType, bb as BootstrapOptions, bc as BootstrapResult, g as BriefingActiveThread, cq as BriefingCalendarSourceError, bw as BriefingConfig, e as BriefingFocus, d as BriefingFollowup, bx as BriefingOpenCommitment, i as BriefingRecentEntity, h as BriefingResult, B as BriefingSections, by as BriefingWindow, cr as BufferEntryState, aN as BufferState, a7 as BufferSurpriseEvent, j as BufferTurn, f as CalendarEvent, C as CalendarSource, w as CaptureMode, cs as ChatConfig, m as Checkpoint, ct as CodexCliReasoningEffort, cu as CodexCompactionFlushMode, bB as CodexCompatConfig, cv as CodexConnectorConfig, b8 as CodingContext, cw as CodingGraphLspConfig, bk as CodingKnowledgeConfig, be as CodingModeConfig, cx as CompressionGuidelineActivationState, ad as CompressionGuidelineOptimizerActionSummary, ac as CompressionGuidelineOptimizerEventCounts, ae as CompressionGuidelineOptimizerRuleUpdate, cy as CompressionGuidelineOptimizerSourceWindow, ah as CompressionGuidelineOptimizerState, cz as ConfidenceTier, cA as ConsolidationAction, cB as ConsolidationItem, bd as ConsolidationObservation, K as ConsolidationResult, cC as ContradictionScanConfig, V as ConversationThread, cD as CronConversationRecallMode, cE as CronRecallMode, bC as DEFAULT_RECALL_DISCLOSURE, N as DaySummaryResult, cF as DreamingConfig, cG as DreamingNarrativePromptStyle, cH as DreamsDeepSleepConfig, cI as DreamsLightSleepConfig, D as DreamsPhase, cJ as DreamsPhaseStatus, cK as DreamsPhasesConfig, cL as DreamsRemConfig, a as DreamsRunResult, b9 as DreamsStatusResult, cM as EngramTraceEvent, aR as EntityActivityEntry, E as EntityFile, ai as EntityMention, aQ as EntityRelationship, aj as EntitySchemaDefinition, ak as EntitySchemaSectionDefinition, al as EntityStructuredSection, aL as EntityTimelineEntry, bE as ExtractedFact, cN as ExtractedProcedureStep, cO as ExtractedQuestion, cP as ExtractedReasoningTrace, cQ as ExtractedReasoningTraceStep, cR as ExtractedRelationship, $ as ExtractionFailureClass, cS as ExtractionPassSource, J as ExtractionResult, F as FaithfulnessFrontmatter, aP as FileHygieneConfig, G as GatewayConfig, cT as GitHubLiveConnectorConfig, cU as GmailLiveConnectorConfig, cV as GoogleDriveLiveConnectorConfig, cW as HeartbeatConfig, cX as HeartbeatDetectionMode, H as HourlySummary, I as IdentityInjectionMode, a0 as ImportanceLevel, an as ImportanceScore, W as LifecycleState, L as LiveConnectorsConfig, cY as LlmTraceCallback, cZ as LlmTraceEvent, ap as MemoryActionEligibilityContext, bN as MemoryActionEligibilitySource, ag as MemoryActionEvent, c_ as MemoryActionOutcome, c$ as MemoryActionPolicyDecision, aq as MemoryActionPolicyResult, d0 as MemoryActionStatus, af as MemoryActionType, v as MemoryCategory, M as MemoryFile, l as MemoryFrontmatter, ao as MemoryIntent, z as MemoryLifecycleEvent, ar as MemoryLifecycleEventType, as as MemoryLifecycleStateSummary, aM as MemoryLink, d1 as MemoryLinkType, bO as MemoryObservation, d2 as MemoryOsPresetName, y as MemoryProjectionCurrentState, bP as MemoryScope, x as MemoryStatus, aT as MemorySummary, aO as MetaState, d3 as ModelApi, d4 as ModelDefinitionConfig, d5 as ModelProviderAuthMode, at as ModelProviderConfig, d6 as NamespacePolicy, au as NativeKnowledgeConfig, d7 as NativeKnowledgeFolderRuleConfig, d8 as NativeKnowledgeObsidianVaultConfig, d9 as NativeKnowledgeOpenClawWorkspaceConfig, da as NotionLiveConnectorConfig, P as PluginConfig, Y as PolicyClass, db as PrincipalFromSessionKeyMode, dc as PrincipalRule, dd as ProceduralConfig, am as ProvenanceConfig, O as ProvenanceSource, aA as QmdSearchExplain, Q as QmdSearchResult, de as QuestionEntry, bQ as RECALL_DISCLOSURE_LEVELS, df as ReasoningEffort, b as RecallDisclosure, dg as RecallPipelineConfig, R as RecallPlanMode, ba as RecallSectionConfig, c as RecallTierExplain, dh as RecallTraceEvent, di as RelevanceFeedback, ax as RetrievalTier, dj as SPECULATIVE_TTL_DAYS, dk as ScopeProfileAutoPromoteConfig, o as ScopeProfileConfig, p as ScopeProfileLayerId, q as ScopeProfilePromotionTarget, dl as ScopeProfileTeamProjectConfig, dm as ScopeTeamConfig, dn as ScoredEntity, s as SecretRef, dp as SemanticChunkingConfigShape, S as SessionObserverBandConfig, dq as SignalLevel, ay as SignalScanResult, dr as SlotBehaviorConfig, ds as SlotMismatchMode, n as SourceConnectorProvenance, az as TopicScore, T as TranscriptEntry, dt as TriggerMode, U as TrustWeights, X as VerificationState, du as confidenceTier, bY as isRecallDisclosure } from './types-
|
|
1
|
+
export { aS as AccessTrackingEntry, a1 as ActiveRecallChatType, a5 as ActiveRecallModelFallbackPolicy, a3 as ActiveRecallPromptStyle, a2 as ActiveRecallQueryMode, a4 as ActiveRecallThinking, t as AgentAccessAuthToken, ck as AgentAccessHttpConfig, cl as AgentDefaultsConfig, cm as AgentPersona, A as AgentPersonaModelConfig, cn as BehaviorLoopAdjustment, r as BehaviorLoopPolicyState, co as BehaviorSignalDirection, a6 as BehaviorSignalEvent, cp as BehaviorSignalType, bb as BootstrapOptions, bc as BootstrapResult, g as BriefingActiveThread, cq as BriefingCalendarSourceError, bw as BriefingConfig, e as BriefingFocus, d as BriefingFollowup, bx as BriefingOpenCommitment, i as BriefingRecentEntity, h as BriefingResult, B as BriefingSections, by as BriefingWindow, cr as BufferEntryState, aN as BufferState, a7 as BufferSurpriseEvent, j as BufferTurn, f as CalendarEvent, C as CalendarSource, w as CaptureMode, cs as ChatConfig, m as Checkpoint, ct as CodexCliReasoningEffort, cu as CodexCompactionFlushMode, bB as CodexCompatConfig, cv as CodexConnectorConfig, b8 as CodingContext, cw as CodingGraphLspConfig, bk as CodingKnowledgeConfig, be as CodingModeConfig, cx as CompressionGuidelineActivationState, ad as CompressionGuidelineOptimizerActionSummary, ac as CompressionGuidelineOptimizerEventCounts, ae as CompressionGuidelineOptimizerRuleUpdate, cy as CompressionGuidelineOptimizerSourceWindow, ah as CompressionGuidelineOptimizerState, cz as ConfidenceTier, cA as ConsolidationAction, cB as ConsolidationItem, bd as ConsolidationObservation, K as ConsolidationResult, cC as ContradictionScanConfig, V as ConversationThread, cD as CronConversationRecallMode, cE as CronRecallMode, bC as DEFAULT_RECALL_DISCLOSURE, N as DaySummaryResult, cF as DreamingConfig, cG as DreamingNarrativePromptStyle, cH as DreamsDeepSleepConfig, cI as DreamsLightSleepConfig, D as DreamsPhase, cJ as DreamsPhaseStatus, cK as DreamsPhasesConfig, cL as DreamsRemConfig, a as DreamsRunResult, b9 as DreamsStatusResult, cM as EngramTraceEvent, aR as EntityActivityEntry, E as EntityFile, ai as EntityMention, aQ as EntityRelationship, aj as EntitySchemaDefinition, ak as EntitySchemaSectionDefinition, al as EntityStructuredSection, aL as EntityTimelineEntry, bE as ExtractedFact, cN as ExtractedProcedureStep, cO as ExtractedQuestion, cP as ExtractedReasoningTrace, cQ as ExtractedReasoningTraceStep, cR as ExtractedRelationship, $ as ExtractionFailureClass, cS as ExtractionPassSource, J as ExtractionResult, F as FaithfulnessFrontmatter, aP as FileHygieneConfig, G as GatewayConfig, cT as GitHubLiveConnectorConfig, cU as GmailLiveConnectorConfig, cV as GoogleDriveLiveConnectorConfig, cW as HeartbeatConfig, cX as HeartbeatDetectionMode, H as HourlySummary, I as IdentityInjectionMode, a0 as ImportanceLevel, an as ImportanceScore, W as LifecycleState, L as LiveConnectorsConfig, cY as LlmTraceCallback, cZ as LlmTraceEvent, ap as MemoryActionEligibilityContext, bN as MemoryActionEligibilitySource, ag as MemoryActionEvent, c_ as MemoryActionOutcome, c$ as MemoryActionPolicyDecision, aq as MemoryActionPolicyResult, d0 as MemoryActionStatus, af as MemoryActionType, v as MemoryCategory, M as MemoryFile, l as MemoryFrontmatter, ao as MemoryIntent, z as MemoryLifecycleEvent, ar as MemoryLifecycleEventType, as as MemoryLifecycleStateSummary, aM as MemoryLink, d1 as MemoryLinkType, bO as MemoryObservation, d2 as MemoryOsPresetName, y as MemoryProjectionCurrentState, bP as MemoryScope, x as MemoryStatus, aT as MemorySummary, aO as MetaState, d3 as ModelApi, d4 as ModelDefinitionConfig, d5 as ModelProviderAuthMode, at as ModelProviderConfig, d6 as NamespacePolicy, au as NativeKnowledgeConfig, d7 as NativeKnowledgeFolderRuleConfig, d8 as NativeKnowledgeObsidianVaultConfig, d9 as NativeKnowledgeOpenClawWorkspaceConfig, da as NotionLiveConnectorConfig, P as PluginConfig, Y as PolicyClass, db as PrincipalFromSessionKeyMode, dc as PrincipalRule, dd as ProceduralConfig, am as ProvenanceConfig, O as ProvenanceSource, aA as QmdSearchExplain, Q as QmdSearchResult, de as QuestionEntry, bQ as RECALL_DISCLOSURE_LEVELS, df as ReasoningEffort, b as RecallDisclosure, dg as RecallPipelineConfig, R as RecallPlanMode, ba as RecallSectionConfig, c as RecallTierExplain, dh as RecallTraceEvent, di as RelevanceFeedback, ax as RetrievalTier, dj as SPECULATIVE_TTL_DAYS, dk as ScopeProfileAutoPromoteConfig, o as ScopeProfileConfig, p as ScopeProfileLayerId, q as ScopeProfilePromotionTarget, dl as ScopeProfileTeamProjectConfig, dm as ScopeTeamConfig, dn as ScoredEntity, s as SecretRef, dp as SemanticChunkingConfigShape, S as SessionObserverBandConfig, dq as SignalLevel, ay as SignalScanResult, dr as SlotBehaviorConfig, ds as SlotMismatchMode, n as SourceConnectorProvenance, az as TopicScore, T as TranscriptEntry, dt as TriggerMode, U as TrustWeights, X as VerificationState, du as confidenceTier, bY as isRecallDisclosure } from './types-5398p7Zm.js';
|
|
2
2
|
import './message-parts/index.js';
|
|
3
3
|
import './bounded-jsonl-state.js';
|
|
4
4
|
export { ContinuityImprovementLoop, ContinuityIncidentCloseInput, ContinuityIncidentOpenInput, ContinuityIncidentRecord, ContinuityIncidentState, ContinuityLoopCadence, ContinuityLoopReviewInput, ContinuityLoopStatus, ContinuityLoopUpsertInput } from './types-continuity.js';
|
package/dist/types.js
CHANGED
package/dist/verified-recall.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compareVerifiedEpisodeResults,
|
|
3
3
|
searchVerifiedEpisodes
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-EO7X2LDK.js";
|
|
5
5
|
import "./chunk-B7RWBZXW.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-4TGZCYHH.js";
|
|
7
7
|
import "./chunk-UHVXE24Y.js";
|
|
8
8
|
import "./chunk-QNWXCJ76.js";
|
|
9
9
|
import "./chunk-WIPEXG6R.js";
|
|
10
10
|
import "./chunk-DNHVPZOD.js";
|
|
11
11
|
import "./chunk-6CIAGZ6X.js";
|
|
12
|
-
import "./chunk-J6A3CX5N.js";
|
|
13
12
|
import "./chunk-HKF5VASQ.js";
|
|
14
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-J6A3CX5N.js";
|
|
14
|
+
import "./chunk-HXDWZFNP.js";
|
|
15
15
|
import "./chunk-7VUAG236.js";
|
|
16
16
|
import "./chunk-EGGE52UU.js";
|
|
17
17
|
import "./chunk-ILGC6JH6.js";
|
|
@@ -21,12 +21,12 @@ import "./chunk-GCASGYIO.js";
|
|
|
21
21
|
import "./chunk-DM2T26WE.js";
|
|
22
22
|
import "./chunk-LDXUBPMO.js";
|
|
23
23
|
import "./chunk-FBUE6PD3.js";
|
|
24
|
-
import "./chunk-FFAZ2XFU.js";
|
|
25
|
-
import "./chunk-3CSX3ETE.js";
|
|
26
|
-
import "./chunk-RL6NEVXT.js";
|
|
27
24
|
import "./chunk-CGASUJVP.js";
|
|
28
25
|
import "./chunk-R3DJVOSM.js";
|
|
29
26
|
import "./chunk-BT7NVCML.js";
|
|
27
|
+
import "./chunk-FFAZ2XFU.js";
|
|
28
|
+
import "./chunk-3CSX3ETE.js";
|
|
29
|
+
import "./chunk-RL6NEVXT.js";
|
|
30
30
|
import "./chunk-JYIJNNN3.js";
|
|
31
31
|
import "./chunk-AAD2ZS6P.js";
|
|
32
32
|
import "./chunk-YXZG5TVN.js";
|
package/dist/write-envelope.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/core",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.34.0",
|
|
4
4
|
"description": "Framework-agnostic Remnic memory engine — orchestrator, storage, extraction, search, trust zones",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -3076,7 +3076,7 @@
|
|
|
3076
3076
|
"core"
|
|
3077
3077
|
],
|
|
3078
3078
|
"peerDependencies": {
|
|
3079
|
-
"@remnic/coding-graph": "^9.
|
|
3079
|
+
"@remnic/coding-graph": "^9.34.0"
|
|
3080
3080
|
},
|
|
3081
3081
|
"peerDependenciesMeta": {
|
|
3082
3082
|
"@remnic/coding-graph": {
|
|
@@ -21,9 +21,12 @@ import {
|
|
|
21
21
|
import { TurnIngestionCoordinator, type TurnIngestionDeps } from "./orchestration/turn-ingestion.js";
|
|
22
22
|
import { StorageManager } from "./storage.js";
|
|
23
23
|
import { hashAccessIdempotencyPayload } from "./access-idempotency.js";
|
|
24
|
-
import
|
|
24
|
+
import { ExtractionEngine } from "./extraction.js";
|
|
25
25
|
import type { ThreadingManager } from "./threading.js";
|
|
26
26
|
import type { BufferTurn, ExtractionResult, PluginConfig } from "./types.js";
|
|
27
|
+
import { parseConfig } from "./config.js";
|
|
28
|
+
import { resolveSourceConnector } from "./source-agent-qualifier.js";
|
|
29
|
+
import type { FallbackLlmOptions } from "./fallback-llm.js";
|
|
27
30
|
import { handleCodingDecision } from "./coding/decision-surfaces.js";
|
|
28
31
|
import type { DecisionSurfaceContext } from "./coding/decision-surfaces.js";
|
|
29
32
|
|
|
@@ -271,11 +274,12 @@ test("runExtraction: mixed tagged+untagged turns → persistExtraction receives
|
|
|
271
274
|
config,
|
|
272
275
|
getBuffer: () => buffer,
|
|
273
276
|
getExtraction: () => ({
|
|
274
|
-
extract: async (
|
|
277
|
+
extract: async (turns: BufferTurn[]): Promise<ExtractionResult> => ({
|
|
275
278
|
facts: [{ content: "test fact", category: "fact", confidence: 0.8, tags: [] }],
|
|
276
279
|
entities: [],
|
|
277
280
|
questions: [],
|
|
278
281
|
profileUpdates: [],
|
|
282
|
+
sourceConnector: resolveSourceConnector(turns),
|
|
279
283
|
}),
|
|
280
284
|
}),
|
|
281
285
|
getStorageRouter: () => ({
|
|
@@ -373,11 +377,12 @@ test("runExtraction: context-only turns without sourceConnector do not affect at
|
|
|
373
377
|
config,
|
|
374
378
|
getBuffer: () => buffer,
|
|
375
379
|
getExtraction: () => ({
|
|
376
|
-
extract: async (
|
|
380
|
+
extract: async (turns: BufferTurn[]): Promise<ExtractionResult> => ({
|
|
377
381
|
facts: [{ content: "test fact", category: "fact", confidence: 0.8, tags: [] }],
|
|
378
382
|
entities: [],
|
|
379
383
|
questions: [],
|
|
380
384
|
profileUpdates: [],
|
|
385
|
+
sourceConnector: resolveSourceConnector(turns),
|
|
381
386
|
}),
|
|
382
387
|
}),
|
|
383
388
|
getStorageRouter: () => ({
|
|
@@ -616,3 +621,81 @@ test("codegraph_manage_adr operation: ctx.sourceConnector forwarded to codegraph
|
|
|
616
621
|
"operation handler must forward ctx.sourceConnector='chatgpt' to codegraphTool"
|
|
617
622
|
);
|
|
618
623
|
});
|
|
624
|
+
|
|
625
|
+
test("runExtraction: the Source agent header connector equals the persisted sourceConnector (boundary-drop case)", async () => {
|
|
626
|
+
// One derivation over boundedTurns: a work-layer-dropped UNTAGGED assistant
|
|
627
|
+
// turn must not suppress the connector the model effectively saw, and the
|
|
628
|
+
// value rendered in the header must be the same value persisted.
|
|
629
|
+
StorageManager.clearAllStaticCaches();
|
|
630
|
+
const baseDir = await mkdtemp(path.join(os.tmpdir(), "prov-one-"));
|
|
631
|
+
try {
|
|
632
|
+
const storage = new StorageManager(baseDir);
|
|
633
|
+
await storage.ensureDirectories();
|
|
634
|
+
const config = makeMinimalConfig();
|
|
635
|
+
const buffer = new SmartBuffer(config, storage);
|
|
636
|
+
await buffer.load();
|
|
637
|
+
|
|
638
|
+
let headerConversation = "";
|
|
639
|
+
let persistedConnector: string | undefined = "SENTINEL";
|
|
640
|
+
const engine = new ExtractionEngine(parseConfig({ modelSource: "gateway" }));
|
|
641
|
+
assert.equal(Reflect.set(engine, "fallbackLlm", {
|
|
642
|
+
async parseWithSchemaDetailed<T>(
|
|
643
|
+
messages: Array<{ role: "system" | "user" | "assistant"; content: string }>,
|
|
644
|
+
_schema: { parse: (data: unknown) => T },
|
|
645
|
+
_options?: FallbackLlmOptions,
|
|
646
|
+
) {
|
|
647
|
+
headerConversation = messages[1]?.content ?? "";
|
|
648
|
+
return {
|
|
649
|
+
modelUsed: "fixture",
|
|
650
|
+
result: { facts: [{ content: "use the search tool", category: "fact", confidence: 0.9, tags: [] }], entities: [], questions: [], profileUpdates: [] } as unknown as T,
|
|
651
|
+
};
|
|
652
|
+
},
|
|
653
|
+
}), true);
|
|
654
|
+
|
|
655
|
+
const coordinator = new ExtractionRunCoordinator({
|
|
656
|
+
config,
|
|
657
|
+
getBuffer: () => buffer,
|
|
658
|
+
getExtraction: () => engine,
|
|
659
|
+
getStorageRouter: () => ({ storageFor: async () => storage }),
|
|
660
|
+
getThreading: () => ({ processTurn: async () => "thread-1", updateThreadTitle: async () => {} }),
|
|
661
|
+
persistExtraction: async (_r, _s, _t, sourceContext?) => {
|
|
662
|
+
persistedConnector = sourceContext?.sourceConnector;
|
|
663
|
+
return { persistedIds: ["fact-1"], memoryPathById: new Map() };
|
|
664
|
+
},
|
|
665
|
+
maybeCapturePassiveCorrections: async () => {},
|
|
666
|
+
resolveSelfNamespace: () => "default",
|
|
667
|
+
getCodingContextForSession: () => null,
|
|
668
|
+
applyCodingNamespaceOverlay: (_sk: string, ns: string) => ns,
|
|
669
|
+
boxBuilderFor: () => { throw new Error("unexpected boxBuilderFor"); },
|
|
670
|
+
appendPersistedThreadEpisodes: async () => {},
|
|
671
|
+
maybeScheduleConsolidation: () => {},
|
|
672
|
+
requestQmdMaintenance: () => {},
|
|
673
|
+
runTierMigrationCycle: async () => { throw new Error("unexpected runTierMigrationCycle"); },
|
|
674
|
+
getLastPersistExtractionDeferredCount: () => 0,
|
|
675
|
+
recordProcessedExtractionFingerprint: async () => {},
|
|
676
|
+
});
|
|
677
|
+
|
|
678
|
+
await coordinator.runExtraction(
|
|
679
|
+
[
|
|
680
|
+
makeTurn({ content: "Use the search tool.", sourceConnector: "pi" }),
|
|
681
|
+
makeTurn({ role: "assistant", content: "Found it.", sourceConnector: "pi" }),
|
|
682
|
+
// UNTAGGED assistant turn that is entirely work-layer context -> dropped
|
|
683
|
+
// by the work-layer boundary, so it is absent from boundedTurns.
|
|
684
|
+
makeTurn({
|
|
685
|
+
role: "assistant",
|
|
686
|
+
content: "[WORK_LAYER_CONTEXT link_to_memory=false]\ninternal scratch\n[/WORK_LAYER_CONTEXT]",
|
|
687
|
+
}),
|
|
688
|
+
],
|
|
689
|
+
{ skipCharThreshold: true, skipUserTurnThreshold: true }
|
|
690
|
+
);
|
|
691
|
+
|
|
692
|
+
const headerMatch = headerConversation.match(/^Source agent: (\S+)/);
|
|
693
|
+
const headerConnector = headerMatch ? headerMatch[1] : undefined;
|
|
694
|
+
assert.equal(headerConnector, "pi", "header names the connector the model saw (boundedTurns)");
|
|
695
|
+
assert.equal(persistedConnector, "pi", "persistence records the same resolved connector");
|
|
696
|
+
assert.equal(headerConnector, persistedConnector, "header connector must equal persisted connector");
|
|
697
|
+
} finally {
|
|
698
|
+
StorageManager.clearAllStaticCaches();
|
|
699
|
+
await rm(baseDir, { recursive: true, force: true });
|
|
700
|
+
}
|
|
701
|
+
});
|
package/src/connectors/index.ts
CHANGED
|
@@ -211,7 +211,7 @@ export { coerceInstallExtension };
|
|
|
211
211
|
|
|
212
212
|
// ── Built-in connector definitions ─────────────────────────────────────────
|
|
213
213
|
|
|
214
|
-
const BUILTIN_CONNECTORS: ConnectorManifest[] = [
|
|
214
|
+
export const BUILTIN_CONNECTORS: ConnectorManifest[] = [
|
|
215
215
|
{
|
|
216
216
|
id: "claude-code",
|
|
217
217
|
name: "Claude Code",
|
|
@@ -571,7 +571,7 @@ const BUILTIN_CONNECTORS: ConnectorManifest[] = [
|
|
|
571
571
|
|
|
572
572
|
export const CONNECTOR_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
573
573
|
|
|
574
|
-
function isValidConnectorId(connectorId: unknown): connectorId is string {
|
|
574
|
+
export function isValidConnectorId(connectorId: unknown): connectorId is string {
|
|
575
575
|
return typeof connectorId === "string" && CONNECTOR_ID_PATTERN.test(connectorId);
|
|
576
576
|
}
|
|
577
577
|
|
package/src/connectors/label.ts
CHANGED
|
@@ -14,5 +14,23 @@
|
|
|
14
14
|
* stays at its ratchet ceiling.
|
|
15
15
|
*/
|
|
16
16
|
export { CONNECTOR_ID_PATTERN } from "./index.js";
|
|
17
|
+
import { loadRegistry, BUILTIN_CONNECTORS } from "./index.js";
|
|
17
18
|
|
|
18
19
|
export const CONNECTOR_LABEL_MAX_LENGTH = 64;
|
|
20
|
+
|
|
21
|
+
let knownIds: ReadonlySet<string> | null = null;
|
|
22
|
+
let knownIdsAt = 0;
|
|
23
|
+
const KNOWN_IDS_TTL_MS = 60_000;
|
|
24
|
+
|
|
25
|
+
export function knownConnectorIds(): ReadonlySet<string> {
|
|
26
|
+
const now = Date.now();
|
|
27
|
+
if (knownIds !== null && now - knownIdsAt < KNOWN_IDS_TTL_MS) return knownIds;
|
|
28
|
+
try {
|
|
29
|
+
const ids = new Set(loadRegistry().connectors.map((c: { id: string }) => c.id));
|
|
30
|
+
knownIds = ids;
|
|
31
|
+
knownIdsAt = now;
|
|
32
|
+
return knownIds;
|
|
33
|
+
} catch {
|
|
34
|
+
return new Set(BUILTIN_CONNECTORS.map((c: { id: string }) => c.id));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
type CompiledRedactionRule,
|
|
21
21
|
} from "./extraction-redaction-rules.js";
|
|
22
22
|
import { validateRedactionPattern } from "./correction/correction-contract.js";
|
|
23
|
+
import { shouldPromoteGlobalFactToShared } from "./tool-scoped-memory.js";
|
|
23
24
|
|
|
24
25
|
const withTempDir = <T>(fn: (dir: string) => Promise<T>): Promise<T> =>
|
|
25
26
|
managedWithTempDir(fn, "remnic-redact-");
|
|
@@ -378,3 +379,55 @@ test("#1713 (codex): non-global fact is NOT scope-routed to shared", async () =>
|
|
|
378
379
|
});
|
|
379
380
|
});
|
|
380
381
|
});
|
|
382
|
+
test("#2183: pre-judge consults the SESSION namespace rules for a tool-scoped global fact (not shared)", async () => {
|
|
383
|
+
// The pre-judge namespace prediction and the write-loop scope-routing block
|
|
384
|
+
// share shouldPromoteGlobalFactToShared, so a tool-scoped global fact from a
|
|
385
|
+
// known integration is predicted to stay in the session namespace: its
|
|
386
|
+
// redaction is evaluated against the SESSION rules, not the shared ones. A
|
|
387
|
+
// portable global fact is still predicted shared and consults shared rules.
|
|
388
|
+
// This is the read/write namespace-invariant coupling the guard preserves.
|
|
389
|
+
await withTempDir(async (sourceDir) => {
|
|
390
|
+
await withTempDir(async (sharedDir) => {
|
|
391
|
+
await writeRule(sourceDir, "session-only-secret");
|
|
392
|
+
await writeRule(sharedDir, "shared-only-secret");
|
|
393
|
+
|
|
394
|
+
const sourceNamespace: string = "default";
|
|
395
|
+
const sharedNamespace: string = "shared";
|
|
396
|
+
const sourceConnector = "pi";
|
|
397
|
+
|
|
398
|
+
// Mirror the pre-judge pass: predicted target namespace = shared ONLY
|
|
399
|
+
// when shouldPromoteGlobalFactToShared says so; load that namespace's
|
|
400
|
+
// rules and combine with the base (source) rules.
|
|
401
|
+
async function consultedRulesFor(fact: { scope: string; content: string }): Promise<CompiledRedactionRule[]> {
|
|
402
|
+
const baseRules = await loadRedactionRules(sourceDir);
|
|
403
|
+
const promote = shouldPromoteGlobalFactToShared({
|
|
404
|
+
scope: fact.scope,
|
|
405
|
+
content: fact.content,
|
|
406
|
+
sourceConnector,
|
|
407
|
+
});
|
|
408
|
+
const factNs = promote ? sharedNamespace : undefined;
|
|
409
|
+
const targetRules =
|
|
410
|
+
factNs && factNs !== sourceNamespace ? await loadRedactionRules(sharedDir) : [];
|
|
411
|
+
return [...baseRules, ...targetRules];
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
// (a) tool-scoped global fact + sourceConnector -> predicted SESSION.
|
|
415
|
+
const toolRules = await consultedRulesFor({ scope: "global", content: "Prefer the search tool when locating code." });
|
|
416
|
+
assert.ok(
|
|
417
|
+
contentMatchesRedactionRules("session-only-secret here", toolRules),
|
|
418
|
+
"session rules are consulted for a tool-scoped global fact",
|
|
419
|
+
);
|
|
420
|
+
assert.ok(
|
|
421
|
+
!contentMatchesRedactionRules("shared-only-secret here", toolRules),
|
|
422
|
+
"shared rules are NOT consulted for a tool-scoped global fact (the #2183 fix)",
|
|
423
|
+
);
|
|
424
|
+
|
|
425
|
+
// (b) portable global fact + sourceConnector -> predicted SHARED.
|
|
426
|
+
const portableRules = await consultedRulesFor({ scope: "global", content: "User prefers dark mode in all editors" });
|
|
427
|
+
assert.ok(
|
|
428
|
+
contentMatchesRedactionRules("shared-only-secret here", portableRules),
|
|
429
|
+
"shared rules ARE consulted for a portable global fact (no regression)",
|
|
430
|
+
);
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
});
|