@remnic/core 9.6.0 → 9.6.2
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 +7 -8
- package/dist/access-admin-ops-surface.js +8 -8
- package/dist/access-boundary.d.ts +9 -8
- package/dist/access-boundary.js +9 -9
- package/dist/access-cli.js +40 -40
- package/dist/access-http.d.ts +47 -16
- package/dist/access-http.js +13 -13
- package/dist/access-identity-continuity-surface.d.ts +6 -7
- package/dist/access-identity-continuity-surface.js +8 -8
- package/dist/access-lcm-surface.d.ts +7 -8
- package/dist/access-lcm-surface.js +8 -8
- package/dist/access-mcp.d.ts +13 -8
- package/dist/access-mcp.js +12 -12
- package/dist/access-observe-write-surface.d.ts +7 -8
- package/dist/access-observe-write-surface.js +8 -8
- package/dist/access-operations-batch.js +10 -10
- package/dist/access-operations.d.ts +8 -9
- package/dist/access-operations.js +11 -11
- package/dist/access-recall-surface.d.ts +7 -8
- package/dist/access-recall-surface.js +8 -8
- package/dist/access-schema.d.ts +6 -6
- package/dist/{access-service-CXJaql3A.d.ts → access-service-B_sc1w_k.d.ts} +9 -9
- package/dist/access-service.d.ts +7 -8
- package/dist/access-service.js +8 -8
- package/dist/access-surface-catalog.d.ts +7 -8
- package/dist/action-confidence.d.ts +1 -2
- package/dist/active-memory-bridge.d.ts +1 -2
- package/dist/active-recall.d.ts +1 -2
- package/dist/behavior-learner.d.ts +1 -2
- package/dist/behavior-signals.d.ts +1 -2
- package/dist/bootstrap.d.ts +6 -7
- package/dist/briefing.d.ts +2 -3
- package/dist/briefing.js +3 -3
- package/dist/buffer-surprise-report.d.ts +1 -2
- package/dist/buffer.d.ts +2 -3
- package/dist/buffer.js +1 -1
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/bulk-import/index.js +2 -2
- package/dist/calibration.d.ts +1 -2
- package/dist/capabilities.d.ts +1 -2
- package/dist/{catalog-C9cu67Ig.d.ts → catalog-9WanSGtt.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -2
- package/dist/causal-consolidation.d.ts +1 -2
- package/dist/causal-consolidation.js +4 -4
- package/dist/causal-trajectory-graph.d.ts +1 -2
- package/dist/{chunk-PNLFN2PZ.js → chunk-23G3T2Q5.js} +2 -2
- package/dist/{chunk-SIRPLF54.js → chunk-2K3OSLHE.js} +2 -2
- package/dist/{chunk-JS2HKKOK.js → chunk-3AC5UYKI.js} +1 -1
- package/dist/{chunk-JS2HKKOK.js.map → chunk-3AC5UYKI.js.map} +1 -1
- package/dist/{chunk-FKCRGLRD.js → chunk-4WRKKRTD.js} +266 -160
- package/dist/chunk-4WRKKRTD.js.map +1 -0
- package/dist/{chunk-LQHDIS7L.js → chunk-54BGIBCR.js} +2 -2
- package/dist/{chunk-PVUJ6WVV.js → chunk-5MH5NF3U.js} +5 -5
- package/dist/{chunk-PCLIWBGD.js → chunk-7ARV32PI.js} +8 -6
- package/dist/chunk-7ARV32PI.js.map +1 -0
- package/dist/{chunk-Y7UNNAZD.js → chunk-7ZYBDQ7V.js} +2 -2
- package/dist/{chunk-2PRQG7PV.js → chunk-AJVLDJU6.js} +1 -1
- package/dist/chunk-AJVLDJU6.js.map +1 -0
- package/dist/{chunk-LR5DZ56F.js → chunk-AXALUFAH.js} +2 -2
- package/dist/{chunk-AYZJID4S.js → chunk-B5GBWBCZ.js} +2 -2
- package/dist/{chunk-TLUDFPZL.js → chunk-CAZ3Z5M6.js} +2 -2
- package/dist/{chunk-RGK27ELN.js → chunk-DEKIXXIG.js} +2 -2
- package/dist/{chunk-2KK5WNQB.js → chunk-DQ42IQSK.js} +2 -2
- package/dist/{chunk-UFUKHGZD.js → chunk-F4I5NYBI.js} +89 -33
- package/dist/chunk-F4I5NYBI.js.map +1 -0
- package/dist/{chunk-HOJZMQ4J.js → chunk-FGDKJJZS.js} +2 -2
- package/dist/{chunk-ABP6QMVM.js → chunk-FQ7HAWWC.js} +2 -2
- package/dist/{chunk-CYWA2CXR.js → chunk-FVTLSFWU.js} +2 -2
- package/dist/{chunk-JJEJJ7RK.js → chunk-FXZTL7F7.js} +2 -2
- package/dist/{chunk-LADFWYHY.js → chunk-GOEV7CYF.js} +6 -6
- package/dist/chunk-GOEV7CYF.js.map +1 -0
- package/dist/{chunk-DANV2HTH.js → chunk-GQGDRLDM.js} +3 -3
- package/dist/{chunk-7F7Z6MOS.js → chunk-H4CKS5B2.js} +2 -2
- package/dist/{chunk-SVOHGUMI.js → chunk-H4FHR4UM.js} +174 -197
- package/dist/chunk-H4FHR4UM.js.map +1 -0
- package/dist/{chunk-CKITWVWJ.js → chunk-HSSERO3E.js} +2 -2
- package/dist/{chunk-23JFRB73.js → chunk-JODHPNLN.js} +2 -2
- package/dist/{chunk-DS7MM2ES.js → chunk-JZKR6ZAV.js} +2 -2
- package/dist/{chunk-BEM4D2QG.js → chunk-KJIJNLXT.js} +3 -3
- package/dist/{chunk-JSNVWNGX.js → chunk-KVSVVKHA.js} +2 -2
- package/dist/{chunk-4GNEDXDI.js → chunk-M67TLMP6.js} +2 -2
- package/dist/chunk-M67TLMP6.js.map +1 -0
- package/dist/{chunk-MC4FJXPA.js → chunk-MMACM5G2.js} +2 -2
- package/dist/{chunk-OUELRE5E.js → chunk-NOUJNHWG.js} +1 -1
- package/dist/chunk-NOUJNHWG.js.map +1 -0
- package/dist/{chunk-3XIY7MDQ.js → chunk-O6YI4CVI.js} +2 -2
- package/dist/{chunk-F53UF7CI.js → chunk-QLVLW7UD.js} +6 -2
- package/dist/{chunk-F53UF7CI.js.map → chunk-QLVLW7UD.js.map} +1 -1
- package/dist/{chunk-XCL57M6Q.js → chunk-RRKPLLCC.js} +21 -20
- package/dist/chunk-RRKPLLCC.js.map +1 -0
- package/dist/{chunk-72WG5QKN.js → chunk-SDAXPXER.js} +2 -2
- package/dist/{chunk-4LV23CHK.js → chunk-VHJARF5R.js} +2 -2
- package/dist/{chunk-H2DXDQCQ.js → chunk-VRJG3HIZ.js} +46 -42
- package/dist/chunk-VRJG3HIZ.js.map +1 -0
- package/dist/{chunk-6MMONPHM.js → chunk-W2AHSCKY.js} +2 -2
- package/dist/{chunk-P454KXD6.js → chunk-YAWJMR3Y.js} +21 -21
- package/dist/{chunk-K5LLP4CY.js → chunk-ZGPDSEKG.js} +20 -9
- package/dist/chunk-ZGPDSEKG.js.map +1 -0
- package/dist/{cli-CqdPA6z9.d.ts → cli-CnRsWREp.d.ts} +4 -5
- package/dist/cli.d.ts +9 -10
- package/dist/cli.js +32 -32
- package/dist/compounding/engine.d.ts +2 -3
- package/dist/compounding/engine.js +3 -3
- package/dist/compounding/preference-consolidator.d.ts +1 -2
- package/dist/compression-optimizer.d.ts +1 -2
- package/dist/config.d.ts +1 -2
- package/dist/connectors/codex-materialize-runner.d.ts +1 -2
- package/dist/connectors/codex-materialize-runner.js +3 -3
- package/dist/connectors/codex-materialize.d.ts +1 -2
- package/dist/connectors/index.d.ts +1 -2
- package/dist/connectors/index.js +3 -3
- package/dist/consolidation-provenance-check.d.ts +2 -3
- package/dist/consolidation-undo.d.ts +2 -3
- package/dist/contradiction/index.d.ts +3 -4
- package/dist/conversation-index/backend.d.ts +1 -2
- package/dist/conversation-index/chunker.d.ts +1 -2
- package/dist/conversation-index/faiss-adapter.d.ts +1 -2
- package/dist/conversation-index/indexer.d.ts +1 -2
- package/dist/conversation-index/search.d.ts +1 -2
- package/dist/day-summary.d.ts +1 -2
- package/dist/delinearize.d.ts +1 -2
- package/dist/direct-answer-wiring.d.ts +1 -2
- package/dist/direct-answer.d.ts +1 -2
- package/dist/embedding-fallback.d.ts +1 -2
- package/dist/enrichment/index.d.ts +1 -2
- package/dist/entity-retrieval.d.ts +2 -3
- package/dist/entity-retrieval.js +3 -3
- package/dist/entity-schema.d.ts +1 -2
- package/dist/explicit-capture.d.ts +8 -7
- package/dist/explicit-capture.js +1 -1
- package/dist/extraction-faithfulness.d.ts +1 -2
- package/dist/extraction-judge-telemetry.d.ts +1 -2
- package/dist/extraction-judge-training.d.ts +1 -2
- package/dist/extraction-judge.d.ts +1 -2
- package/dist/extraction.d.ts +1 -2
- package/dist/fallback-llm.d.ts +1 -2
- package/dist/graph-dashboard-diff.d.ts +1 -2
- package/dist/graph-dashboard-key.d.ts +1 -2
- package/dist/graph-dashboard-parser.d.ts +1 -2
- package/dist/graph-edge-reinforcement.d.ts +1 -2
- package/dist/graph-snapshot.d.ts +1 -2
- package/dist/graph.d.ts +1 -2
- package/dist/identity-continuity.d.ts +1 -2
- package/dist/importance.d.ts +1 -2
- package/dist/importers/index.d.ts +1 -1
- package/dist/importers/index.js +2 -2
- package/dist/index.d.ts +14 -15
- package/dist/index.js +40 -40
- package/dist/intent.d.ts +1 -2
- package/dist/lcm/engine.d.ts +1 -2
- package/dist/lcm/index.d.ts +1 -2
- package/dist/lcm/tools.d.ts +1 -2
- package/dist/lifecycle.d.ts +1 -2
- package/dist/live-connectors-runner.d.ts +1 -2
- package/dist/local-llm.d.ts +1 -2
- package/dist/local-model-endpoint.d.ts +1 -2
- package/dist/maintenance/memory-governance.d.ts +1 -2
- package/dist/maintenance/memory-governance.js +3 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
- package/dist/maintenance/rebuild-memory-projection.js +4 -4
- package/dist/mcp-memory-inspector-app.d.ts +7 -8
- package/dist/memory-action-policy.d.ts +1 -2
- package/dist/memory-cache.d.ts +1 -2
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -2
- package/dist/memory-projection-store.d.ts +1 -2
- package/dist/memory-provenance.d.ts +1 -2
- package/dist/memory-worth-outcomes.d.ts +2 -3
- package/dist/models-json.d.ts +1 -2
- package/dist/namespaces/migrate.d.ts +3 -4
- package/dist/namespaces/migrate.js +4 -4
- package/dist/namespaces/principal.d.ts +1 -2
- package/dist/namespaces/search.d.ts +1 -2
- package/dist/namespaces/storage.d.ts +3 -4
- package/dist/namespaces/storage.js +3 -3
- package/dist/native-knowledge.d.ts +1 -2
- package/dist/operator-toolkit.d.ts +2 -3
- package/dist/operator-toolkit.js +7 -7
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -3
- package/dist/orchestration/maintenance.d.ts +2 -3
- package/dist/orchestration/maintenance.js +5 -5
- package/dist/{orchestrator-CWFrT8AF.d.ts → orchestrator-NRLVXPpH.d.ts} +40 -15
- package/dist/orchestrator.d.ts +6 -7
- package/dist/orchestrator.js +40 -40
- package/dist/patterns-cli.d.ts +1 -2
- package/dist/{pipeline-DmqtvION.d.ts → pipeline-CiD86zIk.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -2
- package/dist/provenance.d.ts +1 -2
- package/dist/{qmd--fnPMK60.d.ts → qmd-Bef7DDuQ.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -3
- package/dist/qmd-recall-cache.d.ts +1 -2
- package/dist/qmd.d.ts +2 -3
- package/dist/recall-disclosure-escalation.d.ts +1 -2
- package/dist/recall-explain-renderer.d.ts +1 -2
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-planner-llm.d.ts +1 -2
- package/dist/recall-state.d.ts +1 -2
- package/dist/recall-tag-filter.d.ts +1 -2
- package/dist/recall-timings.d.ts +1 -2
- package/dist/recall-xray-cli.d.ts +1 -2
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -2
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -2
- package/dist/recall-xray.js +2 -2
- package/dist/replay/normalizers/chatgpt.d.ts +1 -0
- package/dist/replay/normalizers/chatgpt.js +3 -3
- package/dist/replay/normalizers/claude.d.ts +1 -0
- package/dist/replay/normalizers/claude.js +3 -3
- package/dist/replay/normalizers/openclaw.d.ts +1 -0
- package/dist/replay/normalizers/openclaw.js +3 -3
- package/dist/replay/normalizers/shared.d.ts +1 -0
- package/dist/replay/normalizers/shared.js +2 -2
- package/dist/replay/runner.d.ts +1 -0
- package/dist/replay/runner.js +2 -2
- package/dist/replay/types.d.ts +2 -1
- package/dist/replay/types.js +1 -1
- package/dist/resolve-auth-token.d.ts +1 -2
- package/dist/retrieval-agents.d.ts +2 -3
- package/dist/retrieval-tiers.d.ts +1 -2
- package/dist/routing/engine.d.ts +1 -2
- package/dist/routing/store.d.ts +1 -2
- package/dist/schemas.d.ts +44 -44
- package/dist/search/embed-helper.d.ts +1 -2
- package/dist/search/factory.d.ts +1 -2
- package/dist/search/index.d.ts +1 -2
- package/dist/search/lancedb-backend.d.ts +1 -2
- package/dist/search/meilisearch-backend.d.ts +1 -2
- package/dist/search/noop-backend.d.ts +1 -2
- package/dist/search/orama-backend.d.ts +1 -2
- package/dist/search/port.d.ts +1 -2
- package/dist/search/remote-backend.d.ts +1 -2
- package/dist/{semantic-DJR8_DMQ.d.ts → semantic-TddhF0y7.d.ts} +17 -1
- package/dist/{semantic-consolidation-O5lMZ4LG.d.ts → semantic-consolidation-BTShF2Fo.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -3
- package/dist/semantic-consolidation.js +4 -4
- package/dist/semantic-rule-promotion.js +3 -3
- package/dist/semantic-rule-verifier.d.ts +1 -2
- package/dist/semantic-rule-verifier.js +3 -3
- package/dist/session-observer-bands.d.ts +1 -2
- package/dist/session-observer-state.d.ts +1 -2
- package/dist/shared-context/manager.d.ts +3 -4
- package/dist/signal.d.ts +1 -2
- package/dist/{storage-C1maCNbc.d.ts → storage-DxPDAiU9.d.ts} +5 -1
- package/dist/storage.d.ts +2 -3
- package/dist/storage.js +2 -2
- package/dist/summarizer.d.ts +1 -2
- package/dist/summary-snapshot.d.ts +1 -2
- package/dist/temporal-supersession.d.ts +2 -3
- package/dist/temporal-validity.d.ts +1 -2
- package/dist/threading.d.ts +1 -2
- package/dist/tier-migration.d.ts +2 -3
- package/dist/tier-routing.d.ts +1 -2
- package/dist/topics.d.ts +1 -2
- package/dist/transcript.d.ts +1 -2
- package/dist/transfer/types.d.ts +12 -12
- package/dist/trust-score-stage.d.ts +1 -2
- package/dist/trust-score.d.ts +1 -2
- package/dist/{types-CGgcNWCG.d.ts → types-DDUDgd7T.d.ts} +93 -4
- package/dist/types.d.ts +1 -2
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -2
- package/dist/verified-recall.js +3 -3
- package/package.json +2 -2
- package/src/access-admin-ops-surface.ts +1 -0
- package/src/access-boundary.ts +2 -0
- package/src/access-http.test.ts +129 -0
- package/src/access-http.ts +92 -23
- package/src/access-mcp.ts +11 -2
- package/src/access-observe-write-surface.ts +87 -113
- package/src/access-operations-batch.ts +2 -2
- package/src/access-operations.ts +17 -16
- package/src/access-service.ts +11 -3
- package/src/admin/admin-surfaces.ts +2 -0
- package/src/buffer.ts +6 -1
- package/src/bulk-import/types.ts +2 -1
- package/src/coding/architecture-surfaces.test.ts +79 -5
- package/src/coding/architecture-surfaces.ts +7 -1
- package/src/coding/decision-surfaces.test.ts +1 -0
- package/src/coding/decision-surfaces.ts +4 -0
- package/src/connector-provenance-lifecycle.test.ts +618 -0
- package/src/connector-provenance.test.ts +219 -0
- package/src/dedup/semantic.test.ts +105 -0
- package/src/dedup/semantic.ts +69 -1
- package/src/explicit-capture.ts +21 -4
- package/src/orchestration/extraction-persist.ts +154 -6
- package/src/orchestration/extraction-run.ts +138 -228
- package/src/orchestration/persistence-index.ts +40 -5
- package/src/orchestration/turn-ingestion.ts +16 -9
- package/src/orchestrator-connector-dedup.test.ts +1082 -0
- package/src/orchestrator.ts +7 -11
- package/src/replay/types.ts +2 -1
- package/src/storage.ts +426 -553
- package/src/types.ts +11 -2
- package/src/utils/yaml-scalar.ts +20 -0
- package/dist/chunk-2PRQG7PV.js.map +0 -1
- package/dist/chunk-4GNEDXDI.js.map +0 -1
- package/dist/chunk-FKCRGLRD.js.map +0 -1
- package/dist/chunk-H2DXDQCQ.js.map +0 -1
- package/dist/chunk-K5LLP4CY.js.map +0 -1
- package/dist/chunk-LADFWYHY.js.map +0 -1
- package/dist/chunk-OUELRE5E.js.map +0 -1
- package/dist/chunk-PCLIWBGD.js.map +0 -1
- package/dist/chunk-SVOHGUMI.js.map +0 -1
- package/dist/chunk-UFUKHGZD.js.map +0 -1
- package/dist/chunk-XCL57M6Q.js.map +0 -1
- package/dist/types-gb_SNtjR.d.ts +0 -85
- /package/dist/{chunk-PNLFN2PZ.js.map → chunk-23G3T2Q5.js.map} +0 -0
- /package/dist/{chunk-SIRPLF54.js.map → chunk-2K3OSLHE.js.map} +0 -0
- /package/dist/{chunk-LQHDIS7L.js.map → chunk-54BGIBCR.js.map} +0 -0
- /package/dist/{chunk-PVUJ6WVV.js.map → chunk-5MH5NF3U.js.map} +0 -0
- /package/dist/{chunk-Y7UNNAZD.js.map → chunk-7ZYBDQ7V.js.map} +0 -0
- /package/dist/{chunk-LR5DZ56F.js.map → chunk-AXALUFAH.js.map} +0 -0
- /package/dist/{chunk-AYZJID4S.js.map → chunk-B5GBWBCZ.js.map} +0 -0
- /package/dist/{chunk-TLUDFPZL.js.map → chunk-CAZ3Z5M6.js.map} +0 -0
- /package/dist/{chunk-RGK27ELN.js.map → chunk-DEKIXXIG.js.map} +0 -0
- /package/dist/{chunk-2KK5WNQB.js.map → chunk-DQ42IQSK.js.map} +0 -0
- /package/dist/{chunk-HOJZMQ4J.js.map → chunk-FGDKJJZS.js.map} +0 -0
- /package/dist/{chunk-ABP6QMVM.js.map → chunk-FQ7HAWWC.js.map} +0 -0
- /package/dist/{chunk-CYWA2CXR.js.map → chunk-FVTLSFWU.js.map} +0 -0
- /package/dist/{chunk-JJEJJ7RK.js.map → chunk-FXZTL7F7.js.map} +0 -0
- /package/dist/{chunk-DANV2HTH.js.map → chunk-GQGDRLDM.js.map} +0 -0
- /package/dist/{chunk-7F7Z6MOS.js.map → chunk-H4CKS5B2.js.map} +0 -0
- /package/dist/{chunk-CKITWVWJ.js.map → chunk-HSSERO3E.js.map} +0 -0
- /package/dist/{chunk-23JFRB73.js.map → chunk-JODHPNLN.js.map} +0 -0
- /package/dist/{chunk-DS7MM2ES.js.map → chunk-JZKR6ZAV.js.map} +0 -0
- /package/dist/{chunk-BEM4D2QG.js.map → chunk-KJIJNLXT.js.map} +0 -0
- /package/dist/{chunk-JSNVWNGX.js.map → chunk-KVSVVKHA.js.map} +0 -0
- /package/dist/{chunk-MC4FJXPA.js.map → chunk-MMACM5G2.js.map} +0 -0
- /package/dist/{chunk-3XIY7MDQ.js.map → chunk-O6YI4CVI.js.map} +0 -0
- /package/dist/{chunk-72WG5QKN.js.map → chunk-SDAXPXER.js.map} +0 -0
- /package/dist/{chunk-4LV23CHK.js.map → chunk-VHJARF5R.js.map} +0 -0
- /package/dist/{chunk-6MMONPHM.js.map → chunk-W2AHSCKY.js.map} +0 -0
- /package/dist/{chunk-P454KXD6.js.map → chunk-YAWJMR3Y.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StorageManager,
|
|
3
3
|
normalizeEntityName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-H4FHR4UM.js";
|
|
5
5
|
import {
|
|
6
6
|
serializeMutations
|
|
7
7
|
} from "./chunk-LTJAMRGI.js";
|
|
@@ -956,4 +956,4 @@ export {
|
|
|
956
956
|
resolveBriefingSaveDir,
|
|
957
957
|
briefingFilename
|
|
958
958
|
};
|
|
959
|
-
//# sourceMappingURL=chunk-
|
|
959
|
+
//# sourceMappingURL=chunk-7ZYBDQ7V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/replay/types.ts"],"sourcesContent":["import { parseIsoUtcTimestamp } from \"../utils/iso-timestamp.js\";\nimport type { SourceConnectorProvenance } from \"../types.js\";\n\nexport type ReplaySource = \"openclaw\" | \"claude\" | \"chatgpt\";\nexport type ReplayRole = \"user\" | \"assistant\";\n\nexport interface ReplayTurn extends SourceConnectorProvenance {\n source: ReplaySource;\n sessionKey: string;\n role: ReplayRole;\n content: string;\n timestamp: string;\n sourceValidAt?: string;\n externalId?: string;\n metadata?: Record<string, unknown>;\n parts?: import(\"../message-parts/index.js\").LcmMessagePartInput[];\n rawContent?: unknown;\n sourceFormat?: import(\"../message-parts/index.js\").MessagePartSourceFormat;\n}\n\nexport interface ReplayWarning {\n code: string;\n message: string;\n index?: number;\n}\n\nexport interface ReplayValidationIssue {\n code: string;\n message: string;\n index?: number;\n}\n\nexport interface ReplayParseOptions {\n from?: string;\n to?: string;\n defaultSessionKey?: string;\n strict?: boolean;\n}\n\nexport interface ReplayParseResult {\n turns: ReplayTurn[];\n warnings: ReplayWarning[];\n}\n\nexport interface ReplayNormalizer {\n source: ReplaySource;\n parse(input: unknown, options?: ReplayParseOptions): Promise<ReplayParseResult> | ReplayParseResult;\n}\n\nconst VALID_SOURCES: ReadonlySet<string> = new Set([\"openclaw\", \"claude\", \"chatgpt\"]);\nconst VALID_ROLES: ReadonlySet<string> = new Set([\"user\", \"assistant\"]);\nexport const REPLAY_UNKNOWN_SESSION_KEY = \"replay:unknown\";\n\nexport function isReplaySource(value: unknown): value is ReplaySource {\n return typeof value === \"string\" && VALID_SOURCES.has(value);\n}\n\nexport function isReplayRole(value: unknown): value is ReplayRole {\n return typeof value === \"string\" && VALID_ROLES.has(value);\n}\n\nexport function normalizeReplaySessionKey(value: unknown): string {\n if (typeof value !== \"string\") return REPLAY_UNKNOWN_SESSION_KEY;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : REPLAY_UNKNOWN_SESSION_KEY;\n}\n\n/**\n * Strict UTC-only ISO-8601 parser used by the replay pipeline.\n *\n * Delegates to the shared parser in `utils/iso-timestamp.ts` — do not\n * reimplement locally; extend that helper instead. Replay intentionally\n * rejects timezone-offset timestamps to keep canonical form consistent\n * across recorded transcripts.\n */\nexport function parseIsoTimestamp(value: string): number | null {\n return parseIsoUtcTimestamp(value);\n}\n\nexport function validateReplayTurn(turn: ReplayTurn, index?: number): ReplayValidationIssue[] {\n const issues: ReplayValidationIssue[] = [];\n if (!turn || typeof turn !== \"object\") {\n issues.push({\n code: \"turn.invalid\",\n message: \"Replay turn must be an object.\",\n index,\n });\n return issues;\n }\n\n if (!isReplayRole(turn.role)) {\n issues.push({\n code: \"turn.role.invalid\",\n message: `Replay role must be 'user' or 'assistant', received '${String(turn.role)}'.`,\n index,\n });\n }\n\n if (!isReplaySource(turn.source)) {\n issues.push({\n code: \"turn.source.invalid\",\n message: `Replay source must be 'openclaw', 'claude', or 'chatgpt', received '${String(turn.source)}'.`,\n index,\n });\n }\n\n if (!turn.sessionKey || typeof turn.sessionKey !== \"string\" || turn.sessionKey.trim().length === 0) {\n issues.push({\n code: \"turn.sessionKey.invalid\",\n message: \"Replay sessionKey is required.\",\n index,\n });\n }\n\n if (!turn.content || typeof turn.content !== \"string\" || turn.content.trim().length === 0) {\n issues.push({\n code: \"turn.content.invalid\",\n message: \"Replay content must be a non-empty string.\",\n index,\n });\n }\n\n if (!turn.timestamp || typeof turn.timestamp !== \"string\" || parseIsoTimestamp(turn.timestamp) === null) {\n issues.push({\n code: \"turn.timestamp.invalid\",\n message: `Replay timestamp must be a valid ISO timestamp, received '${String(turn.timestamp)}'.`,\n index,\n });\n }\n\n if (\n turn.sourceValidAt !== undefined &&\n (typeof turn.sourceValidAt !== \"string\" ||\n parseIsoTimestamp(turn.sourceValidAt) === null)\n ) {\n issues.push({\n code: \"turn.sourceValidAt.invalid\",\n message: `Replay sourceValidAt must be a valid ISO timestamp when provided, received '${String(turn.sourceValidAt)}'.`,\n index,\n });\n }\n\n return issues;\n}\n"],"mappings":";;;;;AAiDA,IAAM,gBAAqC,oBAAI,IAAI,CAAC,YAAY,UAAU,SAAS,CAAC;AACpF,IAAM,cAAmC,oBAAI,IAAI,CAAC,QAAQ,WAAW,CAAC;AAC/D,IAAM,6BAA6B;AAEnC,SAAS,eAAe,OAAuC;AACpE,SAAO,OAAO,UAAU,YAAY,cAAc,IAAI,KAAK;AAC7D;AAEO,SAAS,aAAa,OAAqC;AAChE,SAAO,OAAO,UAAU,YAAY,YAAY,IAAI,KAAK;AAC3D;AAEO,SAAS,0BAA0B,OAAwB;AAChE,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,SAAO,QAAQ,SAAS,IAAI,UAAU;AACxC;AAUO,SAAS,kBAAkB,OAA8B;AAC9D,SAAO,qBAAqB,KAAK;AACnC;AAEO,SAAS,mBAAmB,MAAkB,OAAyC;AAC5F,QAAM,SAAkC,CAAC;AACzC,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AACD,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,aAAa,KAAK,IAAI,GAAG;AAC5B,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,wDAAwD,OAAO,KAAK,IAAI,CAAC;AAAA,MAClF;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,eAAe,KAAK,MAAM,GAAG;AAChC,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,uEAAuE,OAAO,KAAK,MAAM,CAAC;AAAA,MACnG;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,KAAK,cAAc,OAAO,KAAK,eAAe,YAAY,KAAK,WAAW,KAAK,EAAE,WAAW,GAAG;AAClG,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,KAAK,WAAW,OAAO,KAAK,YAAY,YAAY,KAAK,QAAQ,KAAK,EAAE,WAAW,GAAG;AACzF,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,CAAC,KAAK,aAAa,OAAO,KAAK,cAAc,YAAY,kBAAkB,KAAK,SAAS,MAAM,MAAM;AACvG,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,6DAA6D,OAAO,KAAK,SAAS,CAAC;AAAA,MAC5F;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MACE,KAAK,kBAAkB,WACtB,OAAO,KAAK,kBAAkB,YAC7B,kBAAkB,KAAK,aAAa,MAAM,OAC5C;AACA,WAAO,KAAK;AAAA,MACV,MAAM;AAAA,MACN,SAAS,+EAA+E,OAAO,KAAK,aAAa,CAAC;AAAA,MAClH;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPostConsolidationMaterialize
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KVSVVKHA.js";
|
|
4
4
|
import {
|
|
5
5
|
discoverMemoryExtensions,
|
|
6
6
|
renderExtensionsBlock,
|
|
@@ -220,4 +220,4 @@ export {
|
|
|
220
220
|
buildExtensionsBlockForConsolidation,
|
|
221
221
|
materializeAfterSemanticConsolidation
|
|
222
222
|
};
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-AXALUFAH.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-UI4FVU6T.js";
|
|
5
5
|
import {
|
|
6
6
|
StorageManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-H4FHR4UM.js";
|
|
8
8
|
import {
|
|
9
9
|
parseContinuityImprovementLoops
|
|
10
10
|
} from "./chunk-LDXUBPMO.js";
|
|
@@ -1276,4 +1276,4 @@ export {
|
|
|
1276
1276
|
defaultTierMigrationCycleBudget,
|
|
1277
1277
|
CompoundingEngine
|
|
1278
1278
|
};
|
|
1279
|
-
//# sourceMappingURL=chunk-
|
|
1279
|
+
//# sourceMappingURL=chunk-B5GBWBCZ.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-SFQ6QNL7.js";
|
|
7
7
|
import {
|
|
8
8
|
StorageManager
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-H4FHR4UM.js";
|
|
10
10
|
import {
|
|
11
11
|
buildLifecycleEventsForMemory,
|
|
12
12
|
sortMemoryLifecycleEvents
|
|
@@ -115,4 +115,4 @@ export {
|
|
|
115
115
|
backupExistingLedger,
|
|
116
116
|
rebuildMemoryLifecycleLedger
|
|
117
117
|
};
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-CAZ3Z5M6.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-ZBJMUXZH.js";
|
|
5
5
|
import {
|
|
6
6
|
StorageManager
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-H4FHR4UM.js";
|
|
8
8
|
import {
|
|
9
9
|
getCachedRuleMemories,
|
|
10
10
|
setCachedRuleMemories
|
|
@@ -117,4 +117,4 @@ export {
|
|
|
117
117
|
compareVerifiedSemanticRuleResults,
|
|
118
118
|
searchVerifiedSemanticRules
|
|
119
119
|
};
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
120
|
+
//# sourceMappingURL=chunk-DEKIXXIG.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-SOBJ6NEY.js";
|
|
4
4
|
import {
|
|
5
5
|
summarizeDisclosureTokens
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-W2AHSCKY.js";
|
|
7
7
|
import {
|
|
8
8
|
summarizeRetrievedMemoryProvenance
|
|
9
9
|
} from "./chunk-I4WBNM3M.js";
|
|
@@ -587,4 +587,4 @@ export {
|
|
|
587
587
|
renderRecallExplain,
|
|
588
588
|
parseRecallExplainFormat
|
|
589
589
|
};
|
|
590
|
-
//# sourceMappingURL=chunk-
|
|
590
|
+
//# sourceMappingURL=chunk-DQ42IQSK.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
processChatMessage,
|
|
14
14
|
sessionBelongsToPrincipal,
|
|
15
15
|
subscribeChatTranscript
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-7ARV32PI.js";
|
|
17
17
|
import {
|
|
18
18
|
validateRequest
|
|
19
19
|
} from "./chunk-UPSAT4PY.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
} from "./chunk-35NN3ZFA.js";
|
|
29
29
|
import {
|
|
30
30
|
getOperation
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-M67TLMP6.js";
|
|
32
32
|
import {
|
|
33
33
|
assertOperationAllowed,
|
|
34
34
|
enforceNamespaceAllowList,
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
import {
|
|
39
39
|
CorrectionContractError,
|
|
40
40
|
EngramAccessInputError
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-VRJG3HIZ.js";
|
|
42
42
|
import {
|
|
43
43
|
isTrustZoneName
|
|
44
44
|
} from "./chunk-JGSKJHF7.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
} from "./chunk-DEUNUKTD.js";
|
|
51
51
|
import {
|
|
52
52
|
isRecallDisclosure
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-3AC5UYKI.js";
|
|
54
54
|
import {
|
|
55
55
|
expandTildePath
|
|
56
56
|
} from "./chunk-EYIEWJNI.js";
|
|
@@ -1277,7 +1277,10 @@ var EngramAccessHttpServer = class {
|
|
|
1277
1277
|
idempotencyKey: body.idempotencyKey,
|
|
1278
1278
|
// Forward cwd/projectTag for auto git-context resolution (issue #569).
|
|
1279
1279
|
cwd: body.cwd,
|
|
1280
|
-
projectTag: body.projectTag
|
|
1280
|
+
projectTag: body.projectTag,
|
|
1281
|
+
// Phase 1 provenance: server-resolved connector identity from the
|
|
1282
|
+
// bearer token (REST path, mirroring the MCP tools/call dispatch).
|
|
1283
|
+
sourceConnector: this.resolveConnector(req)
|
|
1281
1284
|
},
|
|
1282
1285
|
// Enforce the write-quota INSIDE the service's idempotency lock
|
|
1283
1286
|
// (beforeExecute, only on a real miss). A retried observe that hits the
|
|
@@ -1354,7 +1357,10 @@ var EngramAccessHttpServer = class {
|
|
|
1354
1357
|
const output = await op.run(envelope, {
|
|
1355
1358
|
service: this.service,
|
|
1356
1359
|
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
1357
|
-
hooks: { enforceWriteQuota: () => this.ensureWriteRateLimitAvailable() }
|
|
1360
|
+
hooks: { enforceWriteQuota: () => this.ensureWriteRateLimitAvailable() },
|
|
1361
|
+
// Phase 1 provenance: server-resolved connector identity from the
|
|
1362
|
+
// bearer token (REST path, mirroring the MCP tools/call dispatch).
|
|
1363
|
+
sourceConnector: this.resolveConnector(req)
|
|
1358
1364
|
});
|
|
1359
1365
|
const response = output.result;
|
|
1360
1366
|
if (this.shouldCountWriteRateLimit(response)) {
|
|
@@ -1375,7 +1381,8 @@ var EngramAccessHttpServer = class {
|
|
|
1375
1381
|
}
|
|
1376
1382
|
const output = await op.run(this.gatedBodyNamespace(req, body), {
|
|
1377
1383
|
service: this.service,
|
|
1378
|
-
authenticatedPrincipal: this.resolveRequestPrincipal(req)
|
|
1384
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
1385
|
+
sourceConnector: this.resolveConnector(req)
|
|
1379
1386
|
});
|
|
1380
1387
|
if (isWriteSubcommand) {
|
|
1381
1388
|
this.recordWriteRateLimitHit();
|
|
@@ -1395,7 +1402,8 @@ var EngramAccessHttpServer = class {
|
|
|
1395
1402
|
}
|
|
1396
1403
|
const output = await op.run(this.gatedBodyNamespace(req, body), {
|
|
1397
1404
|
service: this.service,
|
|
1398
|
-
authenticatedPrincipal: this.resolveRequestPrincipal(req)
|
|
1405
|
+
authenticatedPrincipal: this.resolveRequestPrincipal(req),
|
|
1406
|
+
sourceConnector: this.resolveConnector(req)
|
|
1399
1407
|
});
|
|
1400
1408
|
if (isWriteSubcommand) {
|
|
1401
1409
|
this.recordWriteRateLimitHit();
|
|
@@ -1484,7 +1492,10 @@ var EngramAccessHttpServer = class {
|
|
|
1484
1492
|
ttl: body.ttl,
|
|
1485
1493
|
sourceReason: body.sourceReason,
|
|
1486
1494
|
cwd: body.cwd,
|
|
1487
|
-
projectTag: body.projectTag
|
|
1495
|
+
projectTag: body.projectTag,
|
|
1496
|
+
// Phase 1 provenance: server-resolved connector identity from the
|
|
1497
|
+
// bearer token (REST path, mirroring the MCP tools/call dispatch).
|
|
1498
|
+
sourceConnector: this.resolveConnector(req)
|
|
1488
1499
|
};
|
|
1489
1500
|
const response = await this.service.suggestionSubmit(request, {
|
|
1490
1501
|
enforceWriteQuota: () => this.ensureWriteRateLimitAvailable()
|
|
@@ -2447,7 +2458,8 @@ var EngramAccessHttpServer = class {
|
|
|
2447
2458
|
sessionKeyOverride: requestIdentity.sessionKey,
|
|
2448
2459
|
sessionId,
|
|
2449
2460
|
correlationId: mcpCorrelationId,
|
|
2450
|
-
enforceWriteQuota: observeSelfEnforcesQuota ? () => this.ensureWriteRateLimitAvailable() : void 0
|
|
2461
|
+
enforceWriteQuota: observeSelfEnforcesQuota ? () => this.ensureWriteRateLimitAvailable() : void 0,
|
|
2462
|
+
sourceConnector: this.resolveConnector(req)
|
|
2451
2463
|
});
|
|
2452
2464
|
if (isMcpWrite && response !== null) {
|
|
2453
2465
|
const result = response.result;
|
|
@@ -2727,13 +2739,36 @@ var EngramAccessHttpServer = class {
|
|
|
2727
2739
|
return this.resolveAuthorizedEntry(req, pathname) !== null;
|
|
2728
2740
|
}
|
|
2729
2741
|
/**
|
|
2730
|
-
*
|
|
2731
|
-
*
|
|
2732
|
-
*
|
|
2733
|
-
*
|
|
2734
|
-
* the
|
|
2742
|
+
* Per-request cache of the matched token entry (the entry whose token
|
|
2743
|
+
* matched the bearer credential, BEFORE any path-policy check). Pinning
|
|
2744
|
+
* the entry to the first read means authorization, capability
|
|
2745
|
+
* enforcement, and connector provenance all observe the SAME token-store
|
|
2746
|
+
* snapshot — a rotation between the auth check and the write handler can
|
|
2747
|
+
* no longer stamp the wrong connector (PR #1852 race).
|
|
2735
2748
|
*/
|
|
2736
|
-
|
|
2749
|
+
matchedEntryCache = /* @__PURE__ */ new WeakMap();
|
|
2750
|
+
/**
|
|
2751
|
+
* Resolve the matched token entry for this request, caching the result so
|
|
2752
|
+
* every downstream consumer (authorization, capability enforcement,
|
|
2753
|
+
* connector provenance) sees the same snapshot entry (PR #1852).
|
|
2754
|
+
*/
|
|
2755
|
+
resolveMatchedEntry(req, pathname) {
|
|
2756
|
+
if (this.matchedEntryCache.has(req)) {
|
|
2757
|
+
return this.matchedEntryCache.get(req) ?? null;
|
|
2758
|
+
}
|
|
2759
|
+
const entry = this.computeMatchedEntry(req, pathname);
|
|
2760
|
+
this.matchedEntryCache.set(req, entry);
|
|
2761
|
+
return entry;
|
|
2762
|
+
}
|
|
2763
|
+
/**
|
|
2764
|
+
* Find the entry whose token matches the request's bearer credential.
|
|
2765
|
+
* Static operator tokens (`authToken`/`authTokens`) and the string-token
|
|
2766
|
+
* getter carry no capabilities ⇒ unrestricted. Dynamic entry-based tokens
|
|
2767
|
+
* capture connector identity and capabilities. A corrupt or unreadable
|
|
2768
|
+
* token store returns null rather than propagating an error — provenance
|
|
2769
|
+
* must never block an already-authenticated request.
|
|
2770
|
+
*/
|
|
2771
|
+
computeMatchedEntry(req, pathname) {
|
|
2737
2772
|
if (!this.authToken && this.authTokens.length === 0 && !this.authTokensGetter && !this.authTokenEntriesGetter) {
|
|
2738
2773
|
return null;
|
|
2739
2774
|
}
|
|
@@ -2767,12 +2802,12 @@ var EngramAccessHttpServer = class {
|
|
|
2767
2802
|
if (this.timingSafeStringEqual(token, valid)) return { token: valid };
|
|
2768
2803
|
}
|
|
2769
2804
|
if (this.authTokenEntriesGetter) {
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2805
|
+
try {
|
|
2806
|
+
for (const entry of this.authTokenEntriesGetter()) {
|
|
2807
|
+
if (!this.timingSafeStringEqual(token, entry.token)) continue;
|
|
2808
|
+
return { token: entry.token, connector: entry.connector, capabilities: entry.capabilities };
|
|
2809
|
+
}
|
|
2810
|
+
} catch {
|
|
2776
2811
|
}
|
|
2777
2812
|
return null;
|
|
2778
2813
|
}
|
|
@@ -2783,21 +2818,31 @@ var EngramAccessHttpServer = class {
|
|
|
2783
2818
|
}
|
|
2784
2819
|
return null;
|
|
2785
2820
|
}
|
|
2786
|
-
/**
|
|
2787
|
-
|
|
2821
|
+
/**
|
|
2822
|
+
* Resolve the presenting token's entry for an authorized request, or null.
|
|
2823
|
+
* Applies the path-policy gate (if configured) on top of the per-request
|
|
2824
|
+
* cached matched entry so the identity that is authorized is the same one
|
|
2825
|
+
* whose connector later stamps frontmatter. Static operator tokens and the
|
|
2826
|
+
* string-token getter carry no capabilities ⇒ unrestricted.
|
|
2827
|
+
*/
|
|
2828
|
+
resolveAuthorizedEntry(req, pathname) {
|
|
2829
|
+
const matched = this.resolveMatchedEntry(req, pathname);
|
|
2830
|
+
if (!matched) return null;
|
|
2831
|
+
if ("connector" in matched && this.tokenPathPolicy) {
|
|
2832
|
+
if (typeof matched.connector !== "string" || matched.connector.length === 0) return null;
|
|
2833
|
+
return this.tokenPathPolicy(matched.connector, pathname) ? matched : null;
|
|
2834
|
+
}
|
|
2835
|
+
return matched;
|
|
2836
|
+
}
|
|
2788
2837
|
/**
|
|
2789
2838
|
* Resolve the presenting token's capabilities for this request, or
|
|
2790
2839
|
* undefined when the token is unrestricted (legacy / static operator /
|
|
2791
|
-
* explicit-unrestricted record).
|
|
2792
|
-
*
|
|
2840
|
+
* explicit-unrestricted record). Reads from the per-request cached matched
|
|
2841
|
+
* entry so capabilities come from the same snapshot as authorization and
|
|
2842
|
+
* connector provenance (PR #1852).
|
|
2793
2843
|
*/
|
|
2794
2844
|
resolveTokenCapabilities(req, pathname) {
|
|
2795
|
-
|
|
2796
|
-
return this.capabilityCache.get(req) ?? void 0;
|
|
2797
|
-
}
|
|
2798
|
-
const caps = this.resolveAuthorizedEntry(req, pathname)?.capabilities;
|
|
2799
|
-
this.capabilityCache.set(req, caps ?? null);
|
|
2800
|
-
return caps;
|
|
2845
|
+
return this.resolveMatchedEntry(req, pathname)?.capabilities;
|
|
2801
2846
|
}
|
|
2802
2847
|
/**
|
|
2803
2848
|
* Enforce the presenting token's ops allow-list for an HTTP route that
|
|
@@ -2822,6 +2867,17 @@ var EngramAccessHttpServer = class {
|
|
|
2822
2867
|
);
|
|
2823
2868
|
}
|
|
2824
2869
|
}
|
|
2870
|
+
/**
|
|
2871
|
+
* Resolve the connector identity for the request's bearer token (Phase 1
|
|
2872
|
+
* provenance). Reuses the per-request cached matched entry so a token
|
|
2873
|
+
* rotation between the auth check and the write handler cannot stamp the
|
|
2874
|
+
* wrong connector (PR #1852 race). Returns `undefined` for operator-
|
|
2875
|
+
* supplied static tokens or when no entry getter is configured — those
|
|
2876
|
+
* writes are operator-initiated.
|
|
2877
|
+
*/
|
|
2878
|
+
resolveConnector(req) {
|
|
2879
|
+
return this.resolveMatchedEntry(req)?.connector;
|
|
2880
|
+
}
|
|
2825
2881
|
timingSafeStringEqual(a, b) {
|
|
2826
2882
|
const left = this.encodeSecret(a);
|
|
2827
2883
|
const right = this.encodeSecret(b);
|
|
@@ -2898,4 +2954,4 @@ function positiveIntQueryParam(value, label) {
|
|
|
2898
2954
|
export {
|
|
2899
2955
|
EngramAccessHttpServer
|
|
2900
2956
|
};
|
|
2901
|
-
//# sourceMappingURL=chunk-
|
|
2957
|
+
//# sourceMappingURL=chunk-F4I5NYBI.js.map
|