@remnic/core 9.65.6 → 9.65.7
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 +11 -11
- package/dist/access-admin-ops-surface.js +31 -31
- package/dist/access-audit.js +2 -2
- package/dist/access-authorization-probe.d.ts +11 -11
- package/dist/access-authorization-probe.js +32 -32
- package/dist/access-boundary.d.ts +11 -11
- package/dist/access-boundary.js +31 -31
- package/dist/access-cli.js +111 -106
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +1 -1
- package/dist/access-extraction-force-flush.d.ts +11 -11
- package/dist/access-extraction-force-flush.js +31 -31
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-lcm-compaction.d.ts +11 -11
- package/dist/access-http-lifecycle-flush.d.ts +11 -11
- package/dist/access-http-offline-stream.d.ts +11 -11
- package/dist/access-http-query.d.ts +2 -2
- package/dist/access-http-query.js +33 -33
- package/dist/access-http.d.ts +13 -18
- package/dist/access-http.js +50 -48
- package/dist/access-identity-continuity-surface.d.ts +9 -9
- package/dist/access-identity-continuity-surface.js +31 -31
- package/dist/access-lcm-surface.d.ts +11 -11
- package/dist/access-lcm-surface.js +31 -31
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts +11 -11
- package/dist/access-mcp.js +42 -40
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-D_6mo8ms.d.ts → access-namespace-preflight-8VYKmRX0.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +31 -31
- package/dist/access-observe-write-surface.d.ts +11 -11
- package/dist/access-observe-write-surface.js +31 -31
- package/dist/access-offline-manifest.d.ts +9 -9
- package/dist/access-operations-batch.js +34 -34
- package/dist/access-operations.d.ts +12 -12
- package/dist/access-operations.js +39 -37
- package/dist/access-recall-concurrency.d.ts +11 -11
- package/dist/access-recall-concurrency.js +31 -31
- package/dist/access-recall-response.d.ts +11 -11
- package/dist/access-recall-response.js +31 -31
- package/dist/access-recall-surface.d.ts +11 -11
- package/dist/access-recall-surface.js +31 -31
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-sbiNS5UB.d.ts → access-service-Crk__Git.d.ts} +8 -8
- package/dist/access-service-helpers.d.ts +11 -11
- package/dist/access-service.d.ts +11 -11
- package/dist/access-service.js +31 -31
- package/dist/access-surface-catalog.d.ts +11 -11
- package/dist/access-surface-catalog.js +43 -33
- package/dist/access-surface-catalog.js.map +1 -1
- 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/active-recall.js +4 -4
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/registry.js +2 -2
- package/dist/ambient-provenance.d.ts +1 -1
- package/dist/artifact-search.d.ts +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +9 -9
- package/dist/briefing-window.d.ts +2 -2
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +10 -10
- 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/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-GWVG7LGC.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/{catalog-DO_7zfkv.d.ts → catalog-DybwVNW3.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +13 -13
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/causal-trajectory-graph.js +2 -2
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-OWHERGF2.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/{chunk-NZPFCP5A.js → chunk-2PSX5BJU.js} +2 -2
- package/dist/chunk-3BCULS4U.js +1093 -0
- package/dist/chunk-3BCULS4U.js.map +1 -0
- package/dist/{chunk-W6J4POB6.js → chunk-3RI5Y7KU.js} +2 -2
- package/dist/{chunk-H7BZBSP6.js → chunk-52II7PB6.js} +4 -4
- package/dist/{chunk-IF4EY26E.js → chunk-5DH6PG4B.js} +2 -2
- package/dist/{chunk-M4AHBM72.js → chunk-5HERQ5FX.js} +10 -10
- package/dist/{chunk-IRXMJLTW.js → chunk-5HK3CJAR.js} +2 -2
- package/dist/{chunk-XAWIL7TC.js → chunk-5S4LQOPE.js} +2 -2
- package/dist/{chunk-IDQ6DKXC.js → chunk-5VPQSRQO.js} +3 -3
- package/dist/{chunk-ROEAEANL.js → chunk-6CPUQ5D6.js} +10 -10
- package/dist/{chunk-SR7JIRAR.js → chunk-7F27PCSN.js} +2 -2
- package/dist/{chunk-7OZSHBWK.js → chunk-7TCGNUVP.js} +2 -2
- package/dist/{chunk-KBOG7FJV.js → chunk-7WR462EM.js} +2 -2
- package/dist/{chunk-AYAZWXJI.js → chunk-A32YEQAM.js} +2 -2
- package/dist/{chunk-5GIZM4RX.js → chunk-ACOC27BB.js} +2 -2
- package/dist/{chunk-5W7MKXMU.js → chunk-AFR6AIM4.js} +144 -78
- package/dist/chunk-AFR6AIM4.js.map +1 -0
- package/dist/{chunk-OMZLBT4B.js → chunk-ANJXPFRS.js} +47 -26
- package/dist/chunk-ANJXPFRS.js.map +1 -0
- package/dist/{chunk-FC7TIRFS.js → chunk-AX7UXCHJ.js} +6 -1
- package/dist/chunk-AX7UXCHJ.js.map +1 -0
- package/dist/{chunk-6LS5OX3U.js → chunk-BJTHRFFC.js} +6 -6
- package/dist/chunk-BWGCOLEL.js +61 -0
- package/dist/chunk-BWGCOLEL.js.map +1 -0
- package/dist/{chunk-PGW64IFQ.js → chunk-CFGU52XJ.js} +2 -2
- package/dist/{chunk-DPNXADEI.js → chunk-D4QVPP3G.js} +2 -2
- package/dist/{chunk-2RXUZVPU.js → chunk-EOHKUWXW.js} +2 -2
- package/dist/{chunk-YNDLCWXS.js → chunk-EZ25VE3G.js} +4 -4
- package/dist/{chunk-ZK4BFABK.js → chunk-F635GAL7.js} +4 -4
- package/dist/{chunk-HWVNYNIV.js → chunk-F6QHHRWP.js} +2 -2
- package/dist/{chunk-YUTTMSC7.js → chunk-FMQ4MOQO.js} +89 -26
- package/dist/chunk-FMQ4MOQO.js.map +1 -0
- package/dist/{chunk-LDBFXD4F.js → chunk-FP7YTTVO.js} +3 -1
- package/dist/chunk-FP7YTTVO.js.map +1 -0
- package/dist/{chunk-O4BAGJDN.js → chunk-GEPACVWN.js} +2 -2
- package/dist/{chunk-XZBXINXZ.js → chunk-GIC6BASP.js} +4 -4
- package/dist/{chunk-PP7R754B.js → chunk-GPFZFCRN.js} +1 -1
- package/dist/{chunk-LSYD7GHZ.js → chunk-GTSVEEP3.js} +2 -2
- package/dist/{chunk-RQ2EQRRR.js → chunk-I4343FIA.js} +79 -6
- package/dist/chunk-I4343FIA.js.map +1 -0
- package/dist/{chunk-YWBOOBDP.js → chunk-I7EX6KSH.js} +58 -58
- package/dist/{chunk-3I22VWB3.js → chunk-IP4ZNT4U.js} +2 -2
- package/dist/{chunk-AXGFOFNY.js → chunk-IY7UXD3J.js} +2 -2
- package/dist/{chunk-6FUMA6AA.js → chunk-JAQXUGLN.js} +2 -2
- package/dist/{chunk-RKNJBZ55.js → chunk-JBPKEARU.js} +4 -4
- package/dist/chunk-JCCWJHOP.js +240 -0
- package/dist/chunk-JCCWJHOP.js.map +1 -0
- package/dist/{chunk-5W7CTZ2E.js → chunk-KQAFEZQX.js} +4 -4
- package/dist/{chunk-D2YNNDML.js → chunk-KWIGDKM2.js} +2 -2
- package/dist/{chunk-2JHRCWHT.js → chunk-LLQCM2U2.js} +85 -85
- package/dist/{chunk-OLBZ2WGG.js → chunk-LTBKKSCX.js} +2 -2
- package/dist/{chunk-RACZB5HT.js → chunk-N37X5RU7.js} +4 -4
- package/dist/{chunk-FEO2CDXR.js → chunk-NG3MBQV4.js} +2 -2
- package/dist/{chunk-AG46P24C.js → chunk-NNBZS3DY.js} +4 -4
- package/dist/{chunk-JGG5HVI2.js → chunk-OPGL46PX.js} +2 -2
- package/dist/{chunk-OUKBMQ2O.js → chunk-PD66CVSD.js} +2 -2
- package/dist/{chunk-7SSRXEZJ.js → chunk-PDDSFELN.js} +2 -2
- package/dist/{chunk-MVIYRRVJ.js → chunk-PMVPCZJZ.js} +5 -5
- package/dist/{chunk-D35XLYQ7.js → chunk-RGCF4XNH.js} +9 -9
- package/dist/{chunk-PNAGNVGK.js → chunk-RQE4TITU.js} +35 -30
- package/dist/chunk-RQE4TITU.js.map +1 -0
- package/dist/{chunk-X2DWBWOX.js → chunk-S3K2CIK5.js} +2 -2
- package/dist/{chunk-TWBQQ3FT.js → chunk-SEA6M7SS.js} +2 -2
- package/dist/{chunk-DYO24BNB.js → chunk-SVVIASVX.js} +2 -2
- package/dist/{chunk-7K5Q6COX.js → chunk-TVVEYCNW.js} +4 -4
- package/dist/{chunk-4K7IW3F7.js → chunk-UD7UNYRD.js} +34 -3
- package/dist/chunk-UD7UNYRD.js.map +1 -0
- package/dist/chunk-ULM7JCDH.js +154 -0
- package/dist/chunk-ULM7JCDH.js.map +1 -0
- package/dist/{chunk-NLUCDKLT.js → chunk-VKCAHCBI.js} +2 -2
- package/dist/{chunk-BXXOPKT5.js → chunk-VXVZ2GM3.js} +2 -2
- package/dist/chunk-W2UOAATB.js +521 -0
- package/dist/chunk-W2UOAATB.js.map +1 -0
- package/dist/{chunk-JFWZRUKP.js → chunk-WTOZBZNN.js} +3 -3
- package/dist/{chunk-UVYI6VIX.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-5TG4MU2U.js → chunk-YKWFK7XA.js} +5 -5
- package/dist/{chunk-BIJAWZYW.js → chunk-YMOPYG3K.js} +6 -6
- package/dist/{chunk-XUZ5CIEE.js → chunk-YRVAKONL.js} +1 -1
- package/dist/{chunk-53MZQEBD.js → chunk-YWSQD2IB.js} +2 -2
- package/dist/{chunk-US4IRASK.js → chunk-Z4U3UN56.js} +2 -2
- package/dist/{chunk-QMZY3GG6.js → chunk-ZAOHJDKH.js} +3 -3
- package/dist/{chunk-ZXUZ54Z5.js → chunk-ZIJDI4CP.js} +2 -2
- package/dist/{cli-Bfgo0n1L.d.ts → cli-B322UMvB.d.ts} +5 -5
- package/dist/cli.d.ts +13 -13
- package/dist/cli.js +75 -74
- package/dist/coding/pre-action-gate.d.ts +1 -1
- package/dist/coding/pre-action-gate.js +2 -2
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +10 -10
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +4 -4
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +10 -10
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +10 -10
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +3 -3
- package/dist/converge-config.d.ts +1 -1
- package/dist/convergence-refresh.d.ts +2 -2
- package/dist/convergence-refresh.js +12 -12
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/corpus-watermark.d.ts +1 -1
- package/dist/corpus-watermark.js +12 -12
- package/dist/cross-lingual-recall.d.ts +1 -1
- package/dist/dashboard-runtime.js +2 -2
- package/dist/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/dependency-propagation-config.d.ts +1 -1
- package/dist/{dependency-propagation-delivery-D23_x-s5.d.ts → dependency-propagation-delivery-BGcNairQ.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-origin-fields.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +10 -10
- package/dist/entity-schema.d.ts +1 -1
- package/dist/episodic-context.d.ts +1 -1
- package/dist/eval-trajectory-contracts.d.ts +256 -0
- package/dist/eval-trajectory-contracts.js +56 -0
- package/dist/eval-trajectory-store.d.ts +39 -0
- package/dist/eval-trajectory-store.js +19 -0
- package/dist/eval-trajectory-store.js.map +1 -0
- package/dist/eval-trajectory.d.ts +67 -0
- package/dist/eval-trajectory.js +46 -0
- package/dist/eval-trajectory.js.map +1 -0
- package/dist/event-order-recall.js +2 -2
- package/dist/explicit-capture.d.ts +9 -9
- package/dist/external-wiki-access.d.ts +11 -11
- package/dist/external-wiki-access.js +32 -32
- package/dist/external-wiki-collection-registration.d.ts +1 -1
- package/dist/external-wiki-collection.d.ts +1 -1
- package/dist/external-wiki-mcp-tools.d.ts +11 -11
- 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-normalization.d.ts +1 -1
- package/dist/extraction-prompt.d.ts +1 -1
- package/dist/extraction-source-grounding-rules.d.ts +1 -1
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +12 -12
- 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-decay-FXGELBFA.js → graph-edge-decay-A4SDFMMS.js} +4 -4
- package/dist/graph-edge-decay-A4SDFMMS.js.map +1 -0
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-path-reconstruction.d.ts +1 -1
- package/dist/graph-path-scoring.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph-snapshot.js +3 -3
- package/dist/graph.d.ts +1 -1
- package/dist/graph.js +3 -3
- package/dist/harmonic-retrieval.js +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--QhGIXF2.d.ts → index-By2QUAMh.d.ts} +2 -2
- package/dist/index.d.ts +26 -23
- package/dist/index.js +184 -142
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +4 -4
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +13 -13
- 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/location/index.d.ts +128 -1
- package/dist/location/index.js +60 -750
- package/dist/location/index.js.map +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +10 -10
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +10 -10
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +11 -11
- package/dist/{maintenance-PFvY1Pw_.d.ts → maintenance-Dm2McrIx.d.ts} +4 -3
- package/dist/mcp-memory-inspector-app.d.ts +11 -11
- package/dist/mcp-read-only-tools.js +1 -1
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-controller.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-snapshot.d.ts +1 -1
- package/dist/memory-subject-cli.d.ts +11 -11
- package/dist/memory-subject.d.ts +11 -11
- package/dist/memory-worth-outcomes.d.ts +47 -3
- package/dist/memory-worth-outcomes.js +5 -3
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +11 -11
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +7 -7
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +10 -10
- 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 +13 -13
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +24 -24
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +18 -16
- package/dist/{orchestrator-4wzJrPVm.d.ts → orchestrator-Co1DyfuP.d.ts} +8 -8
- package/dist/orchestrator.d.ts +9 -9
- package/dist/orchestrator.js +111 -106
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-CgXgdIrF.d.ts → pipeline-DotMnb6y.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/{public-http-BP3VQDl5.d.ts → public-http-PJRtnSi-.d.ts} +1 -1
- package/dist/{qmd-BppGGxsi.d.ts → qmd-BP0n11fR.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-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-renderer.d.ts +1 -1
- package/dist/recall-xray.d.ts +1 -1
- package/dist/reconcile/cursor.d.ts +1 -1
- package/dist/reconcile/manifest.d.ts +1 -1
- package/dist/reconcile/plan.d.ts +1 -1
- 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/resume-bundles.js +5 -5
- 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/{scope-profiles-ChZUtxDU.d.ts → scope-profiles-6ChZKTy-.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 +6 -6
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +10 -10
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-mSPwQSmF.d.ts → semantic-consolidation-DziYcW5J.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +11 -11
- package/dist/semantic-rule-promotion.js +10 -10
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +10 -10
- package/dist/{service-BICWLwSP.d.ts → service-C7rIBuK_.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 +1 -1
- package/dist/source-agent-qualifier.js +10 -10
- package/dist/{storage-B7urx1K3.d.ts → storage-B1hEx8Xg.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +9 -9
- package/dist/subject-config.d.ts +1 -1
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/support-passport/index.d.ts +14 -14
- package/dist/support-passport/index.js +34 -34
- 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/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-ETU5N6nB.d.ts → types-BHDNxGTT.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +10 -10
- package/dist/who-knows-cli.d.ts +11 -11
- package/dist/who-knows-cli.js +11 -11
- package/dist/who-knows.d.ts +11 -11
- package/dist/who-knows.js +10 -10
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +2 -2
- package/src/access-boundary.ts +5 -0
- package/src/access-http.ts +15 -16
- package/src/access-mcp-output-schemas.ts +5 -0
- package/src/access-mcp.ts +6 -6
- package/src/access-operations.ts +2 -0
- package/src/access-surface-catalog.ts +10 -0
- package/src/eval-trajectory-contracts.ts +411 -0
- package/src/eval-trajectory-store.ts +306 -0
- package/src/eval-trajectory.test.ts +534 -0
- package/src/eval-trajectory.ts +773 -0
- package/src/index.ts +2 -0
- package/src/location/access-operations.ts +84 -0
- package/src/location/http-glue.test.ts +100 -0
- package/src/location/http-glue.ts +85 -0
- package/src/location/index.ts +3 -0
- package/src/location/mcp-tools.ts +82 -0
- package/src/location/provider-setup.test.ts +106 -0
- package/src/location/provider-setup.ts +103 -0
- package/src/location/scheduler.test.ts +113 -0
- package/src/location/scheduler.ts +98 -0
- package/src/location/surfaces.test.ts +241 -0
- package/src/location/surfaces.ts +329 -0
- package/src/maintenance/day-summary-cron.ts +45 -0
- package/src/mcp-read-only-tools.ts +2 -0
- package/src/memory-worth-outcomes.test.ts +53 -18
- package/src/memory-worth-outcomes.ts +91 -9
- package/src/orchestration/maintenance.ts +22 -30
- package/src/wearables/http-glue.ts +28 -0
- package/dist/chunk-4K7IW3F7.js.map +0 -1
- package/dist/chunk-5W7MKXMU.js.map +0 -1
- package/dist/chunk-FC7TIRFS.js.map +0 -1
- package/dist/chunk-LDBFXD4F.js.map +0 -1
- package/dist/chunk-OMZLBT4B.js.map +0 -1
- package/dist/chunk-PNAGNVGK.js.map +0 -1
- package/dist/chunk-RQ2EQRRR.js.map +0 -1
- package/dist/chunk-YUTTMSC7.js.map +0 -1
- /package/dist/{capsule-crypto-GWVG7LGC.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
- /package/dist/{chunk-OWHERGF2.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-NZPFCP5A.js.map → chunk-2PSX5BJU.js.map} +0 -0
- /package/dist/{chunk-W6J4POB6.js.map → chunk-3RI5Y7KU.js.map} +0 -0
- /package/dist/{chunk-H7BZBSP6.js.map → chunk-52II7PB6.js.map} +0 -0
- /package/dist/{chunk-IF4EY26E.js.map → chunk-5DH6PG4B.js.map} +0 -0
- /package/dist/{chunk-M4AHBM72.js.map → chunk-5HERQ5FX.js.map} +0 -0
- /package/dist/{chunk-IRXMJLTW.js.map → chunk-5HK3CJAR.js.map} +0 -0
- /package/dist/{chunk-XAWIL7TC.js.map → chunk-5S4LQOPE.js.map} +0 -0
- /package/dist/{chunk-IDQ6DKXC.js.map → chunk-5VPQSRQO.js.map} +0 -0
- /package/dist/{chunk-ROEAEANL.js.map → chunk-6CPUQ5D6.js.map} +0 -0
- /package/dist/{chunk-SR7JIRAR.js.map → chunk-7F27PCSN.js.map} +0 -0
- /package/dist/{chunk-7OZSHBWK.js.map → chunk-7TCGNUVP.js.map} +0 -0
- /package/dist/{chunk-KBOG7FJV.js.map → chunk-7WR462EM.js.map} +0 -0
- /package/dist/{chunk-AYAZWXJI.js.map → chunk-A32YEQAM.js.map} +0 -0
- /package/dist/{chunk-5GIZM4RX.js.map → chunk-ACOC27BB.js.map} +0 -0
- /package/dist/{chunk-6LS5OX3U.js.map → chunk-BJTHRFFC.js.map} +0 -0
- /package/dist/{chunk-PGW64IFQ.js.map → chunk-CFGU52XJ.js.map} +0 -0
- /package/dist/{chunk-DPNXADEI.js.map → chunk-D4QVPP3G.js.map} +0 -0
- /package/dist/{chunk-2RXUZVPU.js.map → chunk-EOHKUWXW.js.map} +0 -0
- /package/dist/{chunk-YNDLCWXS.js.map → chunk-EZ25VE3G.js.map} +0 -0
- /package/dist/{chunk-ZK4BFABK.js.map → chunk-F635GAL7.js.map} +0 -0
- /package/dist/{chunk-HWVNYNIV.js.map → chunk-F6QHHRWP.js.map} +0 -0
- /package/dist/{chunk-O4BAGJDN.js.map → chunk-GEPACVWN.js.map} +0 -0
- /package/dist/{chunk-XZBXINXZ.js.map → chunk-GIC6BASP.js.map} +0 -0
- /package/dist/{chunk-PP7R754B.js.map → chunk-GPFZFCRN.js.map} +0 -0
- /package/dist/{chunk-LSYD7GHZ.js.map → chunk-GTSVEEP3.js.map} +0 -0
- /package/dist/{chunk-YWBOOBDP.js.map → chunk-I7EX6KSH.js.map} +0 -0
- /package/dist/{chunk-3I22VWB3.js.map → chunk-IP4ZNT4U.js.map} +0 -0
- /package/dist/{chunk-AXGFOFNY.js.map → chunk-IY7UXD3J.js.map} +0 -0
- /package/dist/{chunk-6FUMA6AA.js.map → chunk-JAQXUGLN.js.map} +0 -0
- /package/dist/{chunk-RKNJBZ55.js.map → chunk-JBPKEARU.js.map} +0 -0
- /package/dist/{chunk-5W7CTZ2E.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-D2YNNDML.js.map → chunk-KWIGDKM2.js.map} +0 -0
- /package/dist/{chunk-2JHRCWHT.js.map → chunk-LLQCM2U2.js.map} +0 -0
- /package/dist/{chunk-OLBZ2WGG.js.map → chunk-LTBKKSCX.js.map} +0 -0
- /package/dist/{chunk-RACZB5HT.js.map → chunk-N37X5RU7.js.map} +0 -0
- /package/dist/{chunk-FEO2CDXR.js.map → chunk-NG3MBQV4.js.map} +0 -0
- /package/dist/{chunk-AG46P24C.js.map → chunk-NNBZS3DY.js.map} +0 -0
- /package/dist/{chunk-JGG5HVI2.js.map → chunk-OPGL46PX.js.map} +0 -0
- /package/dist/{chunk-OUKBMQ2O.js.map → chunk-PD66CVSD.js.map} +0 -0
- /package/dist/{chunk-7SSRXEZJ.js.map → chunk-PDDSFELN.js.map} +0 -0
- /package/dist/{chunk-MVIYRRVJ.js.map → chunk-PMVPCZJZ.js.map} +0 -0
- /package/dist/{chunk-D35XLYQ7.js.map → chunk-RGCF4XNH.js.map} +0 -0
- /package/dist/{chunk-X2DWBWOX.js.map → chunk-S3K2CIK5.js.map} +0 -0
- /package/dist/{chunk-TWBQQ3FT.js.map → chunk-SEA6M7SS.js.map} +0 -0
- /package/dist/{chunk-DYO24BNB.js.map → chunk-SVVIASVX.js.map} +0 -0
- /package/dist/{chunk-7K5Q6COX.js.map → chunk-TVVEYCNW.js.map} +0 -0
- /package/dist/{chunk-NLUCDKLT.js.map → chunk-VKCAHCBI.js.map} +0 -0
- /package/dist/{chunk-BXXOPKT5.js.map → chunk-VXVZ2GM3.js.map} +0 -0
- /package/dist/{chunk-JFWZRUKP.js.map → chunk-WTOZBZNN.js.map} +0 -0
- /package/dist/{chunk-UVYI6VIX.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-5TG4MU2U.js.map → chunk-YKWFK7XA.js.map} +0 -0
- /package/dist/{chunk-BIJAWZYW.js.map → chunk-YMOPYG3K.js.map} +0 -0
- /package/dist/{chunk-XUZ5CIEE.js.map → chunk-YRVAKONL.js.map} +0 -0
- /package/dist/{chunk-53MZQEBD.js.map → chunk-YWSQD2IB.js.map} +0 -0
- /package/dist/{chunk-US4IRASK.js.map → chunk-Z4U3UN56.js.map} +0 -0
- /package/dist/{chunk-QMZY3GG6.js.map → chunk-ZAOHJDKH.js.map} +0 -0
- /package/dist/{chunk-ZXUZ54Z5.js.map → chunk-ZIJDI4CP.js.map} +0 -0
- /package/dist/{graph-edge-decay-FXGELBFA.js.map → eval-trajectory-contracts.js.map} +0 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Issue #2345 — internal contracts, config bounds, digests, and validators for
|
|
3
|
+
* the privacy-safe action-to-outcome trajectory evaluator.
|
|
4
|
+
*
|
|
5
|
+
* Internal module: never re-exported from the package root by itself. The
|
|
6
|
+
* public surface is `eval-trajectory.ts` (builder) and `eval-trajectory-store.ts`
|
|
7
|
+
* (validation, persistence, promotion gate). Keeping this layer separate holds
|
|
8
|
+
* every file under the #1995 new-file ratchet cap while preserving one
|
|
9
|
+
* subsystem.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { createHash } from "node:crypto";
|
|
13
|
+
import type { MemoryActionOutcome, MemoryActionPolicyDecision, MemoryActionType } from "./types.js";
|
|
14
|
+
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Constants and bounded config
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
|
|
19
|
+
export const EVAL_TRAJECTORY_REPORT_SCHEMA_VERSION = 1;
|
|
20
|
+
|
|
21
|
+
/** Default delayed-outcome window: 7 days, half-open `actionAt < outcomeAt < actionAt + window`. */
|
|
22
|
+
export const DEFAULT_EVAL_TRAJECTORY_OUTCOME_WINDOW_MS = 604_800_000;
|
|
23
|
+
/** Default allowed clock skew for input timestamps beyond `asOf`. */
|
|
24
|
+
export const DEFAULT_EVAL_TRAJECTORY_MAX_FUTURE_SKEW_MS = 300_000;
|
|
25
|
+
/** Default cap on emitted rows per report. */
|
|
26
|
+
export const DEFAULT_EVAL_TRAJECTORY_MAX_ROWS = 5_000;
|
|
27
|
+
export const MAX_EVAL_TRAJECTORY_ROWS_LIMIT = 50_000;
|
|
28
|
+
/** Default reader expiry: a report older than 30 days fails the checked read. */
|
|
29
|
+
export const DEFAULT_EVAL_TRAJECTORY_REPORT_MAX_AGE_MS = 2_592_000_000;
|
|
30
|
+
|
|
31
|
+
export interface EvalTrajectoryWeights {
|
|
32
|
+
task: number;
|
|
33
|
+
context: number;
|
|
34
|
+
trust: number;
|
|
35
|
+
stale: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const DEFAULT_EVAL_TRAJECTORY_WEIGHTS: Readonly<EvalTrajectoryWeights> = Object.freeze({
|
|
39
|
+
task: 1,
|
|
40
|
+
context: 0.25,
|
|
41
|
+
trust: 1,
|
|
42
|
+
stale: 0.5,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const MEMORY_ACTION_TYPES: Record<string, true> = {
|
|
46
|
+
store_episode: true,
|
|
47
|
+
store_note: true,
|
|
48
|
+
update_note: true,
|
|
49
|
+
create_artifact: true,
|
|
50
|
+
summarize_node: true,
|
|
51
|
+
discard: true,
|
|
52
|
+
link_graph: true,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** Action types whose live execution is destructive (irreversible) for promotion gating. */
|
|
56
|
+
export const DESTRUCTIVE_ACTION_TYPES: Record<string, true> = { discard: true };
|
|
57
|
+
|
|
58
|
+
export const STALE_LIFECYCLE_STATES: Record<string, true> = {
|
|
59
|
+
active: true,
|
|
60
|
+
stale: true,
|
|
61
|
+
archived: true,
|
|
62
|
+
superseded: true,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const STALE_OUTCOMES: Record<string, true> = {
|
|
66
|
+
success: true,
|
|
67
|
+
partial: true,
|
|
68
|
+
failure: true,
|
|
69
|
+
unknown: true,
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Fixed promotion thresholds for `deriveUnifiedMemoryPromotionReport`. These
|
|
74
|
+
* are deliberately conservative named constants — #2348 owns application, and
|
|
75
|
+
* any loosening must be a reviewed change, not a config knob.
|
|
76
|
+
*/
|
|
77
|
+
export const EVAL_TRAJECTORY_PROMOTION_THRESHOLDS = Object.freeze({
|
|
78
|
+
minJoinedRows: 30,
|
|
79
|
+
minReach: 0.5,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export interface EvalTrajectoryRunConfig {
|
|
83
|
+
outcomeWindowMs: number;
|
|
84
|
+
maxFutureSkewMs: number;
|
|
85
|
+
weights: EvalTrajectoryWeights;
|
|
86
|
+
maxRows: number;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function resolveEvalTrajectoryRunConfig(partial?: Partial<EvalTrajectoryRunConfig>): EvalTrajectoryRunConfig {
|
|
90
|
+
const source = partial ?? {};
|
|
91
|
+
const weightsSource = source.weights ?? DEFAULT_EVAL_TRAJECTORY_WEIGHTS;
|
|
92
|
+
const weights: EvalTrajectoryWeights = {
|
|
93
|
+
task: Number(weightsSource.task),
|
|
94
|
+
context: Number(weightsSource.context),
|
|
95
|
+
trust: Number(weightsSource.trust),
|
|
96
|
+
stale: Number(weightsSource.stale),
|
|
97
|
+
};
|
|
98
|
+
for (const [name, value] of Object.entries(weights)) {
|
|
99
|
+
if (!Number.isFinite(value) || value < 0) {
|
|
100
|
+
throw new Error(`eval trajectory weight '${name}' must be a finite non-negative number`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const totalWeight = weights.task + weights.context + weights.trust + weights.stale;
|
|
104
|
+
if (!(totalWeight > 0)) {
|
|
105
|
+
throw new Error("eval trajectory weights must have a positive total weight");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const outcomeWindowMs = Number(source.outcomeWindowMs ?? DEFAULT_EVAL_TRAJECTORY_OUTCOME_WINDOW_MS);
|
|
109
|
+
if (!Number.isSafeInteger(outcomeWindowMs) || outcomeWindowMs <= 0) {
|
|
110
|
+
throw new Error("outcomeWindowMs must be a positive integer");
|
|
111
|
+
}
|
|
112
|
+
const maxFutureSkewMs = Number(source.maxFutureSkewMs ?? DEFAULT_EVAL_TRAJECTORY_MAX_FUTURE_SKEW_MS);
|
|
113
|
+
if (!Number.isSafeInteger(maxFutureSkewMs) || maxFutureSkewMs < 0) {
|
|
114
|
+
throw new Error("maxFutureSkewMs must be a non-negative integer");
|
|
115
|
+
}
|
|
116
|
+
const maxRows = Number(source.maxRows ?? DEFAULT_EVAL_TRAJECTORY_MAX_ROWS);
|
|
117
|
+
if (!Number.isSafeInteger(maxRows) || maxRows < 1 || maxRows > MAX_EVAL_TRAJECTORY_ROWS_LIMIT) {
|
|
118
|
+
throw new Error(`maxRows must be an integer in [1, ${MAX_EVAL_TRAJECTORY_ROWS_LIMIT}]`);
|
|
119
|
+
}
|
|
120
|
+
return { outcomeWindowMs, maxFutureSkewMs, weights, maxRows };
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Input contracts (sanitized caller rows — raw IDs live here, never in output)
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
|
|
127
|
+
export type EvalTrajectoryTaskResult = "success" | "partial" | "failure";
|
|
128
|
+
export type EvalTrajectoryOutcomeSource = "eval_artifact" | "causal_trajectory" | "memory_outcome";
|
|
129
|
+
export type EvalStaleUseLifecycleState = "active" | "stale" | "archived" | "superseded";
|
|
130
|
+
export type EvalStaleUseOutcome = "success" | "partial" | "failure" | "unknown";
|
|
131
|
+
|
|
132
|
+
export interface EvalActionInput {
|
|
133
|
+
schemaVersion: 1;
|
|
134
|
+
/** Stable action identity. Required — rows without it are rejected. */
|
|
135
|
+
actionId: string;
|
|
136
|
+
namespace: string;
|
|
137
|
+
actionAt: string;
|
|
138
|
+
action: MemoryActionType;
|
|
139
|
+
/** Immediate operation status. Never a delayed task result. */
|
|
140
|
+
immediateStatus: MemoryActionOutcome;
|
|
141
|
+
policyDecision?: MemoryActionPolicyDecision;
|
|
142
|
+
policyVersion?: string;
|
|
143
|
+
/** Producing subsystem tag (enum-like; exported through the projection). */
|
|
144
|
+
subsystem?: string;
|
|
145
|
+
sessionKey?: string;
|
|
146
|
+
memoryId?: string;
|
|
147
|
+
trajectoryId?: string;
|
|
148
|
+
contextTokensBefore?: number;
|
|
149
|
+
contextTokensAfter?: number;
|
|
150
|
+
contextTokenBudget?: number;
|
|
151
|
+
contextOverflow?: boolean;
|
|
152
|
+
replayMismatch?: boolean;
|
|
153
|
+
missingReversibleGuard?: boolean;
|
|
154
|
+
outsideEligibility?: boolean;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export interface EvalOutcomeInput {
|
|
158
|
+
schemaVersion: 1;
|
|
159
|
+
namespace: string;
|
|
160
|
+
/** Stable local identity used only for digesting/dedup — never exported. */
|
|
161
|
+
outcomeId: string;
|
|
162
|
+
outcomeAt: string;
|
|
163
|
+
source: EvalTrajectoryOutcomeSource;
|
|
164
|
+
/** success | partial | failure. Memory-outcome results never become task results. */
|
|
165
|
+
result?: EvalTrajectoryTaskResult;
|
|
166
|
+
actionId?: string;
|
|
167
|
+
trajectoryId?: string;
|
|
168
|
+
memoryId?: string;
|
|
169
|
+
sessionKey?: string;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export interface EvalStaleUseEvidenceInput {
|
|
173
|
+
schemaVersion: 1;
|
|
174
|
+
namespace: string;
|
|
175
|
+
actionId: string;
|
|
176
|
+
memoryId: string;
|
|
177
|
+
lifecycleState: EvalStaleUseLifecycleState;
|
|
178
|
+
usedAt: string;
|
|
179
|
+
outcome: EvalStaleUseOutcome;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Normalized digest-only projections. Joins run on these, so raw IDs never
|
|
184
|
+
* reach the metric or export layers. Equality joins survive digesting because
|
|
185
|
+
* equal raw keys digest to equal values under the same run salt.
|
|
186
|
+
*/
|
|
187
|
+
export interface EvalActionProjection {
|
|
188
|
+
schemaVersion: 1;
|
|
189
|
+
actionDigest: string;
|
|
190
|
+
namespaceDigest: string;
|
|
191
|
+
actionAt: string;
|
|
192
|
+
action: MemoryActionType;
|
|
193
|
+
immediateStatus: MemoryActionOutcome;
|
|
194
|
+
policyDecision: MemoryActionPolicyDecision | null;
|
|
195
|
+
policyVersion: string | null;
|
|
196
|
+
source: string | null;
|
|
197
|
+
actionIdDigest: string;
|
|
198
|
+
sessionKeyDigest: string | null;
|
|
199
|
+
memoryIdDigest: string | null;
|
|
200
|
+
trajectoryIdDigest: string | null;
|
|
201
|
+
contextTokenCost: number | null;
|
|
202
|
+
trustViolation: 0 | 1;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export interface EvalOutcomeProjection {
|
|
206
|
+
schemaVersion: 1;
|
|
207
|
+
outcomeDigest: string;
|
|
208
|
+
namespaceDigest: string;
|
|
209
|
+
recordedAt: string;
|
|
210
|
+
kind: EvalTrajectoryOutcomeSource;
|
|
211
|
+
/** 1 | 0.5 | 0 for task sources; null when unknown or memory-sourced. */
|
|
212
|
+
value: number | null;
|
|
213
|
+
sourceRefDigest: string;
|
|
214
|
+
actionIdDigest: string | null;
|
|
215
|
+
trajectoryIdDigest: string | null;
|
|
216
|
+
memoryIdDigest: string | null;
|
|
217
|
+
sessionKeyDigest: string | null;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export interface EvalStaleUseEvidence {
|
|
221
|
+
schemaVersion: 1;
|
|
222
|
+
actionDigest: string;
|
|
223
|
+
memoryDigest: string;
|
|
224
|
+
lifecycleState: EvalStaleUseLifecycleState;
|
|
225
|
+
usedAt: string;
|
|
226
|
+
outcome: EvalStaleUseOutcome;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// Exported report contracts (digests, enums, numbers only)
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
|
|
233
|
+
export type EvalTrajectoryMetricName = "taskOutcome" | "contextTokenCost" | "trustViolation" | "staleMemoryHarm";
|
|
234
|
+
|
|
235
|
+
export type EvalTrajectoryJoinKind = "action_id" | "trajectory_id" | "memory_scope" | "session_scope";
|
|
236
|
+
|
|
237
|
+
export type EvalTrajectoryRowStatus =
|
|
238
|
+
| "joined"
|
|
239
|
+
| "ambiguous"
|
|
240
|
+
| "late_outcome"
|
|
241
|
+
| "future_outcome"
|
|
242
|
+
| "missing_within_window";
|
|
243
|
+
|
|
244
|
+
export type EvalTrajectoryRejectionReason =
|
|
245
|
+
| "missing_action_id"
|
|
246
|
+
| "namespace_mismatch"
|
|
247
|
+
| "invalid_timestamp"
|
|
248
|
+
| "future_beyond_skew"
|
|
249
|
+
| "malformed_row"
|
|
250
|
+
| "invalid_context_budget"
|
|
251
|
+
| "duplicate_row"
|
|
252
|
+
| "max_rows_exceeded";
|
|
253
|
+
|
|
254
|
+
export interface EvalActionOutcomeRow {
|
|
255
|
+
schemaVersion: 1;
|
|
256
|
+
actionDigest: string;
|
|
257
|
+
outcomeDigest: string | null;
|
|
258
|
+
join: EvalTrajectoryJoinKind | null;
|
|
259
|
+
status: EvalTrajectoryRowStatus;
|
|
260
|
+
outcomeRecordedAt: string | null;
|
|
261
|
+
taskOutcome: number | null;
|
|
262
|
+
contextTokenCost: number | null;
|
|
263
|
+
trustViolation: 0 | 1;
|
|
264
|
+
staleMemoryHarm: 0 | 0.5 | 1;
|
|
265
|
+
actionConditionedUtility: number | null;
|
|
266
|
+
missingDimensions: EvalTrajectoryMetricName[];
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface EvalTrajectoryAggregates {
|
|
270
|
+
rowCount: number;
|
|
271
|
+
statusCounts: Record<EvalTrajectoryRowStatus, number>;
|
|
272
|
+
metricMeans: {
|
|
273
|
+
taskOutcome: number | null;
|
|
274
|
+
contextTokenCost: number | null;
|
|
275
|
+
trustViolation: number | null;
|
|
276
|
+
staleMemoryHarm: number | null;
|
|
277
|
+
actionConditionedUtility: number | null;
|
|
278
|
+
};
|
|
279
|
+
coverage: {
|
|
280
|
+
reach: number | null;
|
|
281
|
+
joined: number;
|
|
282
|
+
missingWithinWindow: number;
|
|
283
|
+
lateOutcome: number;
|
|
284
|
+
futureOutcome: number;
|
|
285
|
+
ambiguous: number;
|
|
286
|
+
excludedFromMeans: number;
|
|
287
|
+
};
|
|
288
|
+
byAction: Array<{ action: MemoryActionType; rowCount: number; meanUtility: number | null }>;
|
|
289
|
+
byPolicyDecision: Array<{ policyDecision: string; rowCount: number; meanUtility: number | null }>;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export interface EvalTrajectoryReport {
|
|
293
|
+
schemaVersion: 1;
|
|
294
|
+
reportId: string;
|
|
295
|
+
namespaceDigest: string;
|
|
296
|
+
asOf: string;
|
|
297
|
+
config: EvalTrajectoryRunConfig;
|
|
298
|
+
sourceCounts: { actions: number; outcomes: number; staleUseEvidence: number };
|
|
299
|
+
rejectionCounts: Record<EvalTrajectoryRejectionReason, number>;
|
|
300
|
+
rows: EvalActionOutcomeRow[];
|
|
301
|
+
aggregates: EvalTrajectoryAggregates;
|
|
302
|
+
inputFingerprint: string;
|
|
303
|
+
contentHash: string;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export type UnifiedMemoryPromotionState =
|
|
307
|
+
| "insufficient_evidence"
|
|
308
|
+
| "shadow_eligible"
|
|
309
|
+
| "active_reversible_eligible"
|
|
310
|
+
| "active_destructive_review_only"
|
|
311
|
+
| "demote_to_shadow";
|
|
312
|
+
|
|
313
|
+
export interface UnifiedMemoryPromotionReport {
|
|
314
|
+
schemaVersion: 1;
|
|
315
|
+
sourceReportId: string;
|
|
316
|
+
namespaceDigest: string;
|
|
317
|
+
asOf: string;
|
|
318
|
+
inputFingerprint: string;
|
|
319
|
+
state: UnifiedMemoryPromotionState;
|
|
320
|
+
reasons: string[];
|
|
321
|
+
evidence: {
|
|
322
|
+
joinedRows: number;
|
|
323
|
+
reach: number | null;
|
|
324
|
+
meanUtility: number | null;
|
|
325
|
+
trustViolations: number;
|
|
326
|
+
staleHarms: number;
|
|
327
|
+
destructiveJoinedRows: number;
|
|
328
|
+
};
|
|
329
|
+
contentHash: string;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
// ---------------------------------------------------------------------------
|
|
333
|
+
// Digests and deterministic serialization
|
|
334
|
+
// ---------------------------------------------------------------------------
|
|
335
|
+
|
|
336
|
+
export function sha256Hex(input: string): string {
|
|
337
|
+
return createHash("sha256").update(input, "utf8").digest("hex");
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
export function sortKeysDeep(value: unknown): unknown {
|
|
341
|
+
if (Array.isArray(value)) return value.map(sortKeysDeep);
|
|
342
|
+
if (typeof value === "object" && value !== null) {
|
|
343
|
+
const out: Record<string, unknown> = {};
|
|
344
|
+
for (const key of Object.keys(value as Record<string, unknown>).sort()) {
|
|
345
|
+
out[key] = sortKeysDeep((value as Record<string, unknown>)[key]);
|
|
346
|
+
}
|
|
347
|
+
return out;
|
|
348
|
+
}
|
|
349
|
+
return value;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export function canonicalJson(value: unknown): string {
|
|
353
|
+
return JSON.stringify(sortKeysDeep(value));
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export function digestOf(salt: string, payload: unknown): string {
|
|
357
|
+
return sha256Hex(`${salt}\n${canonicalJson(payload)}`);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
/** Byte-identical serialization for given report content, independent of construction order. */
|
|
361
|
+
export function serializeEvalTrajectoryReport(report: EvalTrajectoryReport): string {
|
|
362
|
+
return `${JSON.stringify(sortKeysDeep(report), null, 2)}\n`;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/** Total-order comparators (equality guarded — never let equal keys claim both orders). */
|
|
366
|
+
export function compareStrings(a: string, b: string): number {
|
|
367
|
+
if (a === b) return 0;
|
|
368
|
+
return a < b ? -1 : 1;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
export function compareRows(a: EvalActionOutcomeRow, b: EvalActionOutcomeRow): number {
|
|
372
|
+
const byTime = compareStrings(a.outcomeRecordedAt ?? "", b.outcomeRecordedAt ?? "");
|
|
373
|
+
if (byTime !== 0) return byTime;
|
|
374
|
+
return compareStrings(a.actionDigest, b.actionDigest);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// ---------------------------------------------------------------------------
|
|
378
|
+
// Small shared validators (local copies — evals.ts is at its ratchet ceiling)
|
|
379
|
+
// ---------------------------------------------------------------------------
|
|
380
|
+
|
|
381
|
+
const ISO_UTC_TIMESTAMP_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
|
|
382
|
+
|
|
383
|
+
export function isIsoTimestamp(value: unknown): value is string {
|
|
384
|
+
return typeof value === "string" && ISO_UTC_TIMESTAMP_RE.test(value) && !Number.isNaN(Date.parse(value));
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export function isNonEmptyString(value: unknown): value is string {
|
|
388
|
+
return typeof value === "string" && value.trim().length > 0;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export function isFiniteNumber(value: unknown): value is number {
|
|
392
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
export function isMemoryActionType(value: unknown): value is MemoryActionType {
|
|
396
|
+
return typeof value === "string" && MEMORY_ACTION_TYPES[value] === true;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
export function isRowStatus(value: unknown): value is EvalTrajectoryRowStatus {
|
|
400
|
+
return (
|
|
401
|
+
value === "joined" ||
|
|
402
|
+
value === "ambiguous" ||
|
|
403
|
+
value === "late_outcome" ||
|
|
404
|
+
value === "future_outcome" ||
|
|
405
|
+
value === "missing_within_window"
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
export function isHexSha256(value: unknown): value is string {
|
|
410
|
+
return typeof value === "string" && /^[0-9a-f]{64}$/.test(value);
|
|
411
|
+
}
|