@remnic/core 1.1.1 → 1.1.3
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/abort-error.js +1 -0
- package/dist/abstraction-nodes.js +1 -0
- package/dist/access-audit.js +1 -0
- package/dist/access-cli.js +76 -51
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +50 -5
- package/dist/access-http.js +38 -16
- package/dist/access-idempotency.js +1 -0
- package/dist/access-mcp.d.ts +10 -5
- package/dist/access-mcp.js +37 -14
- package/dist/access-schema.d.ts +133 -13
- package/dist/access-schema.js +20 -1
- package/dist/access-service-_AEUMVyX.d.ts +1981 -0
- package/dist/access-service.d.ts +11 -6
- package/dist/access-service.js +39 -14
- package/dist/active-memory-bridge.js +1 -0
- package/dist/active-recall.js +1 -0
- package/dist/active-recall.js.map +1 -1
- package/dist/behavior-learner.js +1 -0
- package/dist/behavior-learner.js.map +1 -1
- package/dist/behavior-signals.js +1 -0
- package/dist/bootstrap.d.ts +6 -4
- package/dist/bootstrap.js +1 -0
- package/dist/boxes.js +1 -0
- package/dist/briefing.d.ts +9 -5
- package/dist/briefing.js +10 -6
- package/dist/buffer-surprise-report.js +1 -0
- package/dist/buffer-surprise.js +1 -0
- package/dist/buffer.d.ts +1 -1
- package/dist/buffer.js +1 -0
- package/dist/calibration.d.ts +8 -1
- package/dist/calibration.js +10 -2
- package/dist/calibration.js.map +1 -1
- package/dist/capsule-cli.d.ts +137 -0
- package/dist/capsule-cli.js +34 -0
- package/dist/capsule-crypto-5CYAGVC5.js +18 -0
- package/dist/capsule-export-NZQPOTQ4.js +17 -0
- package/dist/capsule-export-NZQPOTQ4.js.map +1 -0
- package/dist/capsule-import-SDCUXLEV.js +16 -0
- package/dist/capsule-import-SDCUXLEV.js.map +1 -0
- package/dist/capsule-merge-DI7PNQ2H.js +189 -0
- package/dist/capsule-merge-DI7PNQ2H.js.map +1 -0
- package/dist/causal-behavior.js +1 -0
- package/dist/causal-behavior.js.map +1 -1
- package/dist/causal-chain.js +1 -0
- package/dist/causal-consolidation.js +12 -9
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/causal-retrieval.js +2 -1
- package/dist/causal-retrieval.js.map +1 -1
- package/dist/causal-trajectory-graph.js +4 -1
- package/dist/causal-trajectory-graph.js.map +1 -1
- package/dist/causal-trajectory.js +2 -1
- package/dist/chunk-2LSZVONP.js +67 -0
- package/dist/chunk-2LSZVONP.js.map +1 -0
- package/dist/chunk-32KD5IHZ.js +245 -0
- package/dist/chunk-32KD5IHZ.js.map +1 -0
- package/dist/{chunk-VDX363PS.js → chunk-34F3PLWZ.js} +10 -3
- package/dist/chunk-34F3PLWZ.js.map +1 -0
- package/dist/chunk-3KIS4VGT.js +228 -0
- package/dist/chunk-3KIS4VGT.js.map +1 -0
- package/dist/chunk-3LCWFNVS.js +350 -0
- package/dist/chunk-3LCWFNVS.js.map +1 -0
- package/dist/chunk-43EKP2UK.js +26 -0
- package/dist/chunk-43EKP2UK.js.map +1 -0
- package/dist/chunk-457A4P3L.js +119 -0
- package/dist/chunk-457A4P3L.js.map +1 -0
- package/dist/{chunk-KUB6JU6H.js → chunk-47WOM4YW.js} +2 -2
- package/dist/{chunk-HK3FGIEW.js → chunk-4PLGJRBV.js} +656 -20
- package/dist/chunk-4PLGJRBV.js.map +1 -0
- package/dist/{chunk-BGJGXLZ7.js → chunk-55FXRRSJ.js} +11 -8
- package/dist/chunk-55FXRRSJ.js.map +1 -0
- package/dist/{chunk-ULYOGL6R.js → chunk-5HRY2WRF.js} +7 -3
- package/dist/chunk-5HRY2WRF.js.map +1 -0
- package/dist/chunk-6TBWYBJ3.js +236 -0
- package/dist/chunk-6TBWYBJ3.js.map +1 -0
- package/dist/chunk-74EMIVE4.js +329 -0
- package/dist/chunk-74EMIVE4.js.map +1 -0
- package/dist/chunk-74WWN7ZW.js +82 -0
- package/dist/chunk-74WWN7ZW.js.map +1 -0
- package/dist/{chunk-B5WXLVDY.js → chunk-7GCMLT7J.js} +245 -25
- package/dist/chunk-7GCMLT7J.js.map +1 -0
- package/dist/chunk-A6XUJE5D.js +126 -0
- package/dist/chunk-A6XUJE5D.js.map +1 -0
- package/dist/chunk-AJA46VX5.js +393 -0
- package/dist/chunk-AJA46VX5.js.map +1 -0
- package/dist/{chunk-DFTTJYSO.js → chunk-AKUCB2OG.js} +525 -24
- package/dist/chunk-AKUCB2OG.js.map +1 -0
- package/dist/chunk-ASIQZXYO.js +277 -0
- package/dist/chunk-ASIQZXYO.js.map +1 -0
- package/dist/{chunk-ZEM3OK2K.js → chunk-B2TL6GA2.js} +3 -3
- package/dist/chunk-BJMBJZ2Y.js +290 -0
- package/dist/chunk-BJMBJZ2Y.js.map +1 -0
- package/dist/chunk-BT7NVCML.js +79 -0
- package/dist/chunk-BT7NVCML.js.map +1 -0
- package/dist/chunk-CK5NTM2S.js +454 -0
- package/dist/chunk-CK5NTM2S.js.map +1 -0
- package/dist/{chunk-3GXCSUXR.js → chunk-CRU27Q4J.js} +2 -2
- package/dist/{chunk-F5VP6YCB.js → chunk-DCE6SQLA.js} +572 -155
- package/dist/chunk-DCE6SQLA.js.map +1 -0
- package/dist/{chunk-CUPFXL3J.js → chunk-DHRQHX36.js} +4 -4
- package/dist/chunk-DHRQHX36.js.map +1 -0
- package/dist/{chunk-GKFXUTJ2.js → chunk-DR7MCMPS.js} +981 -61
- package/dist/chunk-DR7MCMPS.js.map +1 -0
- package/dist/chunk-FP2373TW.js +149 -0
- package/dist/chunk-FP2373TW.js.map +1 -0
- package/dist/{chunk-RBBWYEFJ.js → chunk-G2WADRQ3.js} +1 -1
- package/dist/chunk-G7D6GZ5J.js +48 -0
- package/dist/chunk-G7D6GZ5J.js.map +1 -0
- package/dist/chunk-H7XKCNR6.js +60 -0
- package/dist/chunk-H7XKCNR6.js.map +1 -0
- package/dist/{chunk-VYM3VWOF.js → chunk-IM3JSE73.js} +966 -329
- package/dist/chunk-IM3JSE73.js.map +1 -0
- package/dist/chunk-IXEJRKCZ.js +18 -0
- package/dist/chunk-IXEJRKCZ.js.map +1 -0
- package/dist/chunk-IYY4MCPG.js +275 -0
- package/dist/chunk-IYY4MCPG.js.map +1 -0
- package/dist/{chunk-BK2EFTE2.js → chunk-JWSENLQI.js} +508 -28
- package/dist/chunk-JWSENLQI.js.map +1 -0
- package/dist/chunk-KNKUID7G.js +183 -0
- package/dist/chunk-KNKUID7G.js.map +1 -0
- package/dist/chunk-L2IO2QPY.js +2036 -0
- package/dist/chunk-L2IO2QPY.js.map +1 -0
- package/dist/{chunk-SPI27QT6.js → chunk-L5IIGA5V.js} +9 -4
- package/dist/chunk-L5IIGA5V.js.map +1 -0
- package/dist/{chunk-RGLL5SPU.js → chunk-LVYGDT5V.js} +56 -82
- package/dist/chunk-LVYGDT5V.js.map +1 -0
- package/dist/{chunk-ZAIM4TUE.js → chunk-LW2NMHDW.js} +46 -1
- package/dist/chunk-LW2NMHDW.js.map +1 -0
- package/dist/{chunk-3OGMS3PE.js → chunk-LZRYQK6L.js} +3 -2
- package/dist/chunk-LZRYQK6L.js.map +1 -0
- package/dist/chunk-MDYG7VI7.js +48 -0
- package/dist/chunk-MDYG7VI7.js.map +1 -0
- package/dist/chunk-MXC3AP5I.js +74 -0
- package/dist/chunk-MXC3AP5I.js.map +1 -0
- package/dist/{chunk-S3EEFKNY.js → chunk-N7X62G74.js} +26 -11
- package/dist/chunk-N7X62G74.js.map +1 -0
- package/dist/chunk-NN3TS5BM.js +147 -0
- package/dist/chunk-NN3TS5BM.js.map +1 -0
- package/dist/chunk-OA3L7BFR.js +183 -0
- package/dist/chunk-OA3L7BFR.js.map +1 -0
- package/dist/{chunk-LK6SGL53.js → chunk-OR64ZGRZ.js} +3 -2
- package/dist/chunk-OR64ZGRZ.js.map +1 -0
- package/dist/chunk-OZHRDTDX.js +240 -0
- package/dist/chunk-OZHRDTDX.js.map +1 -0
- package/dist/chunk-PCUKNJAZ.js +165 -0
- package/dist/chunk-PCUKNJAZ.js.map +1 -0
- package/dist/{chunk-6PFRXT4K.js → chunk-PFV5C235.js} +11 -6
- package/dist/chunk-PFV5C235.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/{chunk-XZ2TIKGC.js → chunk-Q7FJ5ZHM.js} +30 -10
- package/dist/chunk-Q7FJ5ZHM.js.map +1 -0
- package/dist/{chunk-7I7FKFZH.js → chunk-R2L7SUX2.js} +6 -6
- package/dist/{chunk-JL2PU6AI.js → chunk-R2XRID2N.js} +2 -2
- package/dist/{chunk-WCLICCGB.js → chunk-RILIVK4O.js} +91 -4
- package/dist/chunk-RILIVK4O.js.map +1 -0
- package/dist/{chunk-C2EFFULQ.js → chunk-RK2Y4XOM.js} +163 -20
- package/dist/chunk-RK2Y4XOM.js.map +1 -0
- package/dist/{chunk-TP4FZJIZ.js → chunk-RULE4VG5.js} +5 -1
- package/dist/chunk-RULE4VG5.js.map +1 -0
- package/dist/{chunk-PVPWZSSI.js → chunk-SMA4IMHV.js} +19 -3
- package/dist/chunk-SMA4IMHV.js.map +1 -0
- package/dist/{chunk-WVVA7F5A.js → chunk-SS253RXF.js} +30 -16
- package/dist/chunk-SS253RXF.js.map +1 -0
- package/dist/chunk-TUFG6VXY.js +875 -0
- package/dist/chunk-TUFG6VXY.js.map +1 -0
- package/dist/chunk-TYEOAFH3.js +251 -0
- package/dist/chunk-TYEOAFH3.js.map +1 -0
- package/dist/chunk-UKJAGEXH.js +260 -0
- package/dist/chunk-UKJAGEXH.js.map +1 -0
- package/dist/{chunk-KVBLZUKV.js → chunk-USFPPRAF.js} +93 -3
- package/dist/chunk-USFPPRAF.js.map +1 -0
- package/dist/{chunk-EPQJM2GC.js → chunk-VTJVUHRK.js} +22 -36
- package/dist/chunk-VTJVUHRK.js.map +1 -0
- package/dist/{chunk-O5ETUNBT.js → chunk-VTU2B4VF.js} +7 -3
- package/dist/chunk-VTU2B4VF.js.map +1 -0
- package/dist/chunk-WIICJPET.js +45 -0
- package/dist/chunk-WIICJPET.js.map +1 -0
- package/dist/{chunk-VBVG2M5G.js → chunk-WPGJYVUH.js} +6 -2
- package/dist/chunk-WPGJYVUH.js.map +1 -0
- package/dist/{chunk-YNQKWQT4.js → chunk-WSZIHQBK.js} +31 -11
- package/dist/{chunk-YNQKWQT4.js.map → chunk-WSZIHQBK.js.map} +1 -1
- package/dist/{chunk-NZLQTHS5.js → chunk-WW3QQF4H.js} +4 -1
- package/dist/chunk-WW3QQF4H.js.map +1 -0
- package/dist/{chunk-FVA6TGI3.js → chunk-Y3WQ4ZWK.js} +42 -2
- package/dist/chunk-Y3WQ4ZWK.js.map +1 -0
- package/dist/chunk-YNJHCGDT.js +309 -0
- package/dist/chunk-YNJHCGDT.js.map +1 -0
- package/dist/{chunk-ALXMCZEU.js → chunk-Z2E7VW55.js} +6 -3
- package/dist/chunk-Z2E7VW55.js.map +1 -0
- package/dist/{chunk-INXV5JBT.js → chunk-ZGXSCMQN.js} +1992 -410
- package/dist/chunk-ZGXSCMQN.js.map +1 -0
- package/dist/{chunk-W6SL7OFG.js → chunk-ZTSE2ZJ6.js} +12 -2
- package/dist/{chunk-W6SL7OFG.js.map → chunk-ZTSE2ZJ6.js.map} +1 -1
- package/dist/chunking.js +1 -0
- package/dist/cipher-GVE2GQ5H.js +28 -0
- package/dist/cipher-GVE2GQ5H.js.map +1 -0
- package/dist/citations.js +1 -0
- package/dist/{cli-BkeRaYfk.d.ts → cli-x2APT9a6.d.ts} +26 -7
- package/dist/cli.d.ts +11 -6
- package/dist/cli.js +68 -34
- package/dist/codex-thread-key.js +1 -0
- package/dist/commitment-ledger.js +1 -0
- package/dist/compression-optimizer.js +1 -0
- package/dist/config.d.ts +2 -1
- package/dist/config.js +5 -2
- package/dist/connectors-cli-DFGtY2DB.d.ts +257 -0
- package/dist/connectors-cli.d.ts +2 -0
- package/dist/connectors-cli.js +22 -0
- package/dist/connectors-cli.js.map +1 -0
- package/dist/consolidation-operator.d.ts +65 -5
- package/dist/consolidation-operator.js +6 -1
- package/dist/consolidation-provenance-check.d.ts +1 -1
- package/dist/consolidation-provenance-check.js +3 -2
- package/dist/consolidation-undo.d.ts +1 -1
- package/dist/consolidation-undo.js +1 -0
- package/dist/consolidation-undo.js.map +1 -1
- package/dist/{contradiction-review-WIUBAR52.js → contradiction-review-5LTTVDQV.js} +2 -1
- package/dist/contradiction-review-5LTTVDQV.js.map +1 -0
- package/dist/{contradiction-scan-E3GJTI4F.js → contradiction-scan-3Z6YW7YA.js} +2 -1
- package/dist/{contradiction-scan-E3GJTI4F.js.map → contradiction-scan-3Z6YW7YA.js.map} +1 -1
- package/dist/cross-namespace-budget.js +1 -0
- package/dist/cue-anchors.js +1 -0
- package/dist/dashboard-runtime.js +1 -0
- package/dist/day-summary.js +1 -0
- package/dist/delinearize.js +1 -0
- package/dist/direct-answer-wiring.js +1 -0
- package/dist/direct-answer.js +1 -0
- package/dist/dreams-ledger-LR2NBAZE.js +286 -0
- package/dist/dreams-ledger-LR2NBAZE.js.map +1 -0
- package/dist/embedding-fallback.js +3 -1
- package/dist/{engine-F3GOXGE5.js → engine-ICC2DSQF.js} +10 -7
- package/dist/engine-ICC2DSQF.js.map +1 -0
- package/dist/entity-retrieval.d.ts +1 -1
- package/dist/entity-retrieval.js +9 -6
- package/dist/entity-schema.js +1 -0
- package/dist/evals.js +1 -0
- package/dist/evidence-pack.d.ts +16 -0
- package/dist/evidence-pack.js +8 -0
- package/dist/evidence-pack.js.map +1 -0
- package/dist/explicit-capture.d.ts +6 -4
- package/dist/explicit-capture.js +1 -0
- package/dist/extraction-judge-telemetry.js +1 -0
- package/dist/extraction-judge-training.js +1 -0
- package/dist/extraction-judge.js +1 -0
- package/dist/extraction.js +9 -8
- package/dist/fallback-llm.js +3 -2
- package/dist/first-start-migration-4MHQEOSD.js +263 -0
- package/dist/first-start-migration-4MHQEOSD.js.map +1 -0
- package/dist/forget-PLR6J5DN.js +69 -0
- package/dist/forget-PLR6J5DN.js.map +1 -0
- package/dist/framework-CyHYDcri.d.ts +153 -0
- package/dist/fs-utils-IRVUFB6G.js +30 -0
- package/dist/fs-utils-IRVUFB6G.js.map +1 -0
- package/dist/graph-dashboard-diff.js +1 -0
- package/dist/graph-dashboard-key.js +1 -0
- package/dist/graph-dashboard-parser.js +1 -0
- package/dist/graph-edge-decay-PWB63GRE.js +207 -0
- package/dist/graph-edge-decay-PWB63GRE.js.map +1 -0
- package/dist/graph-edge-reinforcement.d.ts +81 -0
- package/dist/graph-edge-reinforcement.js +24 -0
- package/dist/graph-edge-reinforcement.js.map +1 -0
- package/dist/graph-events.d.ts +87 -0
- package/dist/graph-events.js +14 -0
- package/dist/graph-events.js.map +1 -0
- package/dist/graph-recall.js +1 -0
- package/dist/graph-retrieval.js +1 -0
- package/dist/graph-snapshot.d.ts +112 -0
- package/dist/graph-snapshot.js +19 -0
- package/dist/graph-snapshot.js.map +1 -0
- package/dist/graph.d.ts +105 -7
- package/dist/graph.js +20 -3
- package/dist/harmonic-retrieval.js +1 -0
- package/dist/himem.js +1 -0
- package/dist/hygiene.js +1 -0
- package/dist/identity-continuity.js +1 -0
- package/dist/importance.js +1 -0
- package/dist/index.d.ts +562 -13
- package/dist/index.js +365 -96
- package/dist/index.js.map +1 -1
- package/dist/intent.js +1 -0
- package/dist/json-extract.js +1 -0
- package/dist/json-store.js +1 -0
- package/dist/kdf-7S6RWKLZ.js +26 -0
- package/dist/kdf-7S6RWKLZ.js.map +1 -0
- package/dist/legacy-hook-compat.js +1 -0
- package/dist/legacy-hook-compat.js.map +1 -1
- package/dist/lifecycle.js +1 -0
- package/dist/live-connectors-runner.d.ts +48 -0
- package/dist/live-connectors-runner.js +17 -0
- package/dist/live-connectors-runner.js.map +1 -0
- package/dist/local-llm.js +3 -2
- package/dist/logger.js +1 -0
- package/dist/memory-action-policy.js +1 -0
- package/dist/memory-cache.d.ts +2 -1
- package/dist/memory-cache.js +4 -1
- package/dist/memory-governance-KG52RITE.js +37 -0
- package/dist/memory-governance-KG52RITE.js.map +1 -0
- package/dist/memory-lifecycle-ledger-utils.d.ts +2 -1
- package/dist/memory-lifecycle-ledger-utils.js +4 -1
- package/dist/memory-projection-format.js +1 -0
- package/dist/{memory-projection-store-DeSXPh1j.d.ts → memory-projection-store-D3vBHS4J.d.ts} +1 -0
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-projection-store.js +1 -0
- package/dist/memory-worth-bench.js +1 -0
- package/dist/memory-worth-bench.js.map +1 -1
- package/dist/memory-worth-filter.js +1 -0
- package/dist/memory-worth-outcomes.d.ts +1 -1
- package/dist/memory-worth-outcomes.js +1 -0
- package/dist/memory-worth.js +1 -0
- package/dist/metadata-FC3XPDRQ.js +21 -0
- package/dist/metadata-FC3XPDRQ.js.map +1 -0
- package/dist/migrate-from-identity-anchor-TTEDEJGX.js +8 -0
- package/dist/migrate-from-identity-anchor-TTEDEJGX.js.map +1 -0
- package/dist/model-registry.js +1 -0
- package/dist/models-json.js +1 -0
- package/dist/native-knowledge.js +1 -0
- package/dist/negative.js +1 -0
- package/dist/objective-state-writers.js +1 -0
- package/dist/objective-state-writers.js.map +1 -1
- package/dist/objective-state.js +1 -0
- package/dist/openai-chat-compat.js +1 -0
- package/dist/operator-toolkit.d.ts +46 -2
- package/dist/operator-toolkit.js +29 -17
- package/dist/opik-exporter.js +1 -0
- package/dist/opik-exporter.js.map +1 -1
- package/dist/{orchestrator-CmJ-NTdJ.d.ts → orchestrator-ChkesB8U.d.ts} +177 -13
- package/dist/orchestrator.d.ts +6 -4
- package/dist/orchestrator.js +58 -42
- package/dist/page-versioning.js +1 -0
- package/dist/path-RMTY5Y5A.js +9 -0
- package/dist/path-RMTY5Y5A.js.map +1 -0
- package/dist/patterns-cli.d.ts +160 -0
- package/dist/patterns-cli.js +29 -0
- package/dist/patterns-cli.js.map +1 -0
- package/dist/peers-6OSQ3NK6.js +44 -0
- package/dist/peers-6OSQ3NK6.js.map +1 -0
- package/dist/plugin-id.js +1 -0
- package/dist/policy-runtime.js +1 -0
- package/dist/{port-BADbLZU5.d.ts → port-hqGnoStS.d.ts} +6 -0
- package/dist/profiling.js +1 -0
- package/dist/purge-6ATBGT77.js +205 -0
- package/dist/purge-6ATBGT77.js.map +1 -0
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd-recall-cache.js +1 -0
- package/dist/qmd.d.ts +2 -1
- package/dist/qmd.js +4 -3
- package/dist/reasoning-trace-recall.js +1 -0
- package/dist/reasoning-trace-types.js +1 -0
- package/dist/recall-audit-anomaly.js +1 -0
- package/dist/recall-audit.js +1 -0
- package/dist/recall-disclosure-escalation.d.ts +84 -0
- package/dist/recall-disclosure-escalation.js +14 -0
- package/dist/recall-disclosure-escalation.js.map +1 -0
- package/dist/recall-explain-renderer.js +4 -1
- package/dist/recall-mmr.js +1 -0
- package/dist/recall-qos.js +1 -0
- package/dist/recall-query-policy.js +1 -0
- package/dist/recall-state.d.ts +7 -0
- package/dist/recall-state.js +2 -1
- package/dist/recall-tag-filter.d.ts +56 -0
- package/dist/recall-tag-filter.js +14 -0
- package/dist/recall-tag-filter.js.map +1 -0
- package/dist/recall-tokenization.js +1 -0
- package/dist/recall-xray-cli.d.ts +9 -2
- package/dist/recall-xray-cli.js +9 -4
- package/dist/recall-xray-renderer.js +4 -1
- package/dist/recall-xray.d.ts +116 -2
- package/dist/recall-xray.js +9 -3
- package/dist/reconstruct.js +1 -0
- package/dist/release-changelog.js +2 -0
- package/dist/release-changelog.js.map +1 -1
- package/dist/relevance.js +1 -0
- package/dist/rerank.js +1 -0
- package/dist/{resolution-QBTDHTG7.js → resolution-YGIBORXI.js} +2 -1
- package/dist/{resolution-QBTDHTG7.js.map → resolution-YGIBORXI.js.map} +1 -1
- package/dist/resolve-auth-token.d.ts +51 -0
- package/dist/resolve-auth-token.js +12 -0
- package/dist/resolve-auth-token.js.map +1 -0
- package/dist/resolve-provider-secret.d.ts +13 -1
- package/dist/resolve-provider-secret.js +6 -1
- package/dist/resume-bundles.js +5 -4
- package/dist/retrieval-agents.d.ts +1 -1
- package/dist/retrieval-agents.js +1 -0
- package/dist/retrieval-tiers.js +1 -0
- package/dist/retrieval.js +1 -0
- package/dist/sanitize.js +1 -0
- package/dist/schemas.d.ts +15 -2
- package/dist/schemas.js +2 -1
- package/dist/sdk-compat.js +1 -0
- package/dist/sdk-compat.js.map +1 -1
- package/dist/secure-store-4R2GSO7S.js +156 -0
- package/dist/secure-store-4R2GSO7S.js.map +1 -0
- package/dist/semantic-chunking.js +1 -0
- package/dist/{semantic-consolidation-CxJU6MJk.d.ts → semantic-consolidation-ByBXb-sf.d.ts} +3 -3
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +12 -6
- package/dist/semantic-rule-promotion.d.ts +1 -1
- package/dist/semantic-rule-promotion.js +9 -6
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +9 -6
- package/dist/session-integrity.js +1 -0
- package/dist/session-observer-bands.js +1 -0
- package/dist/session-observer-state.js +1 -0
- package/dist/session-toggles.js +2 -0
- package/dist/session-toggles.js.map +1 -1
- package/dist/signal.js +1 -0
- package/dist/skills-registry.js +2 -0
- package/dist/skills-registry.js.map +1 -1
- package/dist/source-attribution.js +1 -0
- package/dist/state-NCHQ4TRG.js +8 -0
- package/dist/state-NCHQ4TRG.js.map +1 -0
- package/dist/state-store-3EH7HYIN.js +16 -0
- package/dist/state-store-3EH7HYIN.js.map +1 -0
- package/dist/storage.d.ts +76 -2
- package/dist/storage.js +8 -5
- package/dist/store-contract.js +1 -0
- package/dist/summarizer.js +6 -5
- package/dist/summary-snapshot.js +1 -0
- package/dist/temporal-index.js +1 -0
- package/dist/temporal-supersession.d.ts +1 -1
- package/dist/temporal-supersession.js +2 -1
- package/dist/temporal-validity.d.ts +52 -0
- package/dist/temporal-validity.js +14 -0
- package/dist/temporal-validity.js.map +1 -0
- package/dist/threading.js +1 -0
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-migration.js +1 -0
- package/dist/tier-routing.js +1 -0
- package/dist/tier-stats-62ZVDFKS.js +152 -0
- package/dist/tier-stats-62ZVDFKS.js.map +1 -0
- package/dist/tmt.js +1 -0
- package/dist/tokens.js +3 -1
- package/dist/topics.js +1 -0
- package/dist/trace-C5ETWBEF.js +290 -0
- package/dist/trace-C5ETWBEF.js.map +1 -0
- package/dist/transcript.js +1 -0
- package/dist/trust-zones.js +1 -0
- package/dist/tui-RI7P6PBS.js +13 -0
- package/dist/tui-RI7P6PBS.js.map +1 -0
- package/dist/types-V3FJ26TF.js +30 -0
- package/dist/types-V3FJ26TF.js.map +1 -0
- package/dist/types.d.ts +634 -9
- package/dist/types.js +10 -3
- package/dist/utility-learner.js +1 -0
- package/dist/utility-runtime.js +1 -0
- package/dist/utility-telemetry.js +1 -0
- package/dist/verified-recall.js +9 -6
- package/dist/version-utils.js +1 -0
- package/dist/whitespace.js +1 -0
- package/dist/work-product-ledger.js +1 -0
- package/package.json +2 -1
- package/dist/access-service-Br8ZydTK.d.ts +0 -827
- package/dist/chunk-3OGMS3PE.js.map +0 -1
- package/dist/chunk-6PFRXT4K.js.map +0 -1
- package/dist/chunk-ALXMCZEU.js.map +0 -1
- package/dist/chunk-B5WXLVDY.js.map +0 -1
- package/dist/chunk-BGJGXLZ7.js.map +0 -1
- package/dist/chunk-BK2EFTE2.js.map +0 -1
- package/dist/chunk-C2EFFULQ.js.map +0 -1
- package/dist/chunk-CUPFXL3J.js.map +0 -1
- package/dist/chunk-DFTTJYSO.js.map +0 -1
- package/dist/chunk-EPQJM2GC.js.map +0 -1
- package/dist/chunk-F5VP6YCB.js.map +0 -1
- package/dist/chunk-FVA6TGI3.js.map +0 -1
- package/dist/chunk-GKFXUTJ2.js.map +0 -1
- package/dist/chunk-HK3FGIEW.js.map +0 -1
- package/dist/chunk-INXV5JBT.js.map +0 -1
- package/dist/chunk-KVBLZUKV.js.map +0 -1
- package/dist/chunk-LK6SGL53.js.map +0 -1
- package/dist/chunk-LTCGGW2D.js +0 -14
- package/dist/chunk-LTCGGW2D.js.map +0 -1
- package/dist/chunk-NZLQTHS5.js.map +0 -1
- package/dist/chunk-O5ETUNBT.js.map +0 -1
- package/dist/chunk-PVPWZSSI.js.map +0 -1
- package/dist/chunk-RGLL5SPU.js.map +0 -1
- package/dist/chunk-S3EEFKNY.js.map +0 -1
- package/dist/chunk-SPI27QT6.js.map +0 -1
- package/dist/chunk-TP4FZJIZ.js.map +0 -1
- package/dist/chunk-ULYOGL6R.js.map +0 -1
- package/dist/chunk-VBVG2M5G.js.map +0 -1
- package/dist/chunk-VDX363PS.js.map +0 -1
- package/dist/chunk-VYM3VWOF.js.map +0 -1
- package/dist/chunk-WCLICCGB.js.map +0 -1
- package/dist/chunk-WVVA7F5A.js.map +0 -1
- package/dist/chunk-X6GF3FX2.js +0 -26
- package/dist/chunk-X6GF3FX2.js.map +0 -1
- package/dist/chunk-XZ2TIKGC.js.map +0 -1
- package/dist/chunk-ZAIM4TUE.js.map +0 -1
- /package/dist/{contradiction-review-WIUBAR52.js.map → capsule-cli.js.map} +0 -0
- /package/dist/{engine-F3GOXGE5.js.map → capsule-crypto-5CYAGVC5.js.map} +0 -0
- /package/dist/{chunk-KUB6JU6H.js.map → chunk-47WOM4YW.js.map} +0 -0
- /package/dist/{chunk-ZEM3OK2K.js.map → chunk-B2TL6GA2.js.map} +0 -0
- /package/dist/{chunk-3GXCSUXR.js.map → chunk-CRU27Q4J.js.map} +0 -0
- /package/dist/{chunk-RBBWYEFJ.js.map → chunk-G2WADRQ3.js.map} +0 -0
- /package/dist/{chunk-7I7FKFZH.js.map → chunk-R2L7SUX2.js.map} +0 -0
- /package/dist/{chunk-JL2PU6AI.js.map → chunk-R2XRID2N.js.map} +0 -0
package/dist/intent.js
CHANGED
package/dist/json-extract.js
CHANGED
package/dist/json-store.js
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_ARGON2ID_PARAMS,
|
|
3
|
+
DEFAULT_SCRYPT_PARAMS,
|
|
4
|
+
KDF_KEY_LENGTH,
|
|
5
|
+
KDF_SALT_LENGTH,
|
|
6
|
+
constantTimeEqual,
|
|
7
|
+
deriveKey,
|
|
8
|
+
deriveKeyArgon2id,
|
|
9
|
+
deriveKeyScrypt,
|
|
10
|
+
validateArgon2idParams,
|
|
11
|
+
validateScryptParams
|
|
12
|
+
} from "./chunk-FP2373TW.js";
|
|
13
|
+
import "./chunk-PZ5AY32C.js";
|
|
14
|
+
export {
|
|
15
|
+
DEFAULT_ARGON2ID_PARAMS,
|
|
16
|
+
DEFAULT_SCRYPT_PARAMS,
|
|
17
|
+
KDF_KEY_LENGTH,
|
|
18
|
+
KDF_SALT_LENGTH,
|
|
19
|
+
constantTimeEqual,
|
|
20
|
+
deriveKey,
|
|
21
|
+
deriveKeyArgon2id,
|
|
22
|
+
deriveKeyScrypt,
|
|
23
|
+
validateArgon2idParams,
|
|
24
|
+
validateScryptParams
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=kdf-7S6RWKLZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/legacy-hook-compat.ts"],"sourcesContent":["import { compareVersions, type VersionTriple } from \"./version-utils.js\";\n\nconst FIRST_PUBLISHED_RUNTIME_WITHOUT_AGENT_HEARTBEAT = [2026, 1, 29] as const;\nconst OPENCLAW_VERSION_PREFIX = /^(\\d+)\\.(\\d+)\\.(\\d+)(?:-([0-9A-Za-z.-]+))?/;\n\ntype ParsedOpenClawVersion = {\n triple: VersionTriple;\n prerelease: boolean;\n};\n\nfunction parseOpenClawVersion(\n value: string | undefined,\n): ParsedOpenClawVersion | null {\n if (typeof value !== \"string\") return null;\n const match = value.trim().match(OPENCLAW_VERSION_PREFIX);\n if (!match) return null;\n return {\n triple: [\n Number.parseInt(match[1], 10),\n Number.parseInt(match[2], 10),\n Number.parseInt(match[3], 10),\n ],\n prerelease: typeof match[4] === \"string\" && match[4].length > 0,\n };\n}\n\nfunction parseOpenClawVersionTriple(\n value: string | undefined,\n): VersionTriple | null {\n return parseOpenClawVersion(value)?.triple ?? null;\n}\n\nexport function shouldRegisterTypedAgentHeartbeat(\n runtimeVersion: string | undefined,\n): boolean {\n const parsed = parseOpenClawVersion(runtimeVersion);\n if (!parsed) return false;\n const comparison = compareVersions(\n parsed.triple,\n FIRST_PUBLISHED_RUNTIME_WITHOUT_AGENT_HEARTBEAT,\n );\n if (comparison < 0) return true;\n if (comparison > 0) return false;\n return parsed.prerelease;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/legacy-hook-compat.ts"],"sourcesContent":["import { compareVersions, type VersionTriple } from \"./version-utils.js\";\n\nconst FIRST_PUBLISHED_RUNTIME_WITHOUT_AGENT_HEARTBEAT = [2026, 1, 29] as const;\nconst OPENCLAW_VERSION_PREFIX = /^(\\d+)\\.(\\d+)\\.(\\d+)(?:-([0-9A-Za-z.-]+))?/;\n\ntype ParsedOpenClawVersion = {\n triple: VersionTriple;\n prerelease: boolean;\n};\n\nfunction parseOpenClawVersion(\n value: string | undefined,\n): ParsedOpenClawVersion | null {\n if (typeof value !== \"string\") return null;\n const match = value.trim().match(OPENCLAW_VERSION_PREFIX);\n if (!match) return null;\n return {\n triple: [\n Number.parseInt(match[1], 10),\n Number.parseInt(match[2], 10),\n Number.parseInt(match[3], 10),\n ],\n prerelease: typeof match[4] === \"string\" && match[4].length > 0,\n };\n}\n\nfunction parseOpenClawVersionTriple(\n value: string | undefined,\n): VersionTriple | null {\n return parseOpenClawVersion(value)?.triple ?? null;\n}\n\nexport function shouldRegisterTypedAgentHeartbeat(\n runtimeVersion: string | undefined,\n): boolean {\n const parsed = parseOpenClawVersion(runtimeVersion);\n if (!parsed) return false;\n const comparison = compareVersions(\n parsed.triple,\n FIRST_PUBLISHED_RUNTIME_WITHOUT_AGENT_HEARTBEAT,\n );\n if (comparison < 0) return true;\n if (comparison > 0) return false;\n return parsed.prerelease;\n}\n"],"mappings":";;;;;;AAEA,IAAM,kDAAkD,CAAC,MAAM,GAAG,EAAE;AACpE,IAAM,0BAA0B;AAOhC,SAAS,qBACP,OAC8B;AAC9B,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,QAAQ,MAAM,KAAK,EAAE,MAAM,uBAAuB;AACxD,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO;AAAA,IACL,QAAQ;AAAA,MACN,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE;AAAA,MAC5B,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE;AAAA,MAC5B,OAAO,SAAS,MAAM,CAAC,GAAG,EAAE;AAAA,IAC9B;AAAA,IACA,YAAY,OAAO,MAAM,CAAC,MAAM,YAAY,MAAM,CAAC,EAAE,SAAS;AAAA,EAChE;AACF;AAQO,SAAS,kCACd,gBACS;AACT,QAAM,SAAS,qBAAqB,cAAc;AAClD,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,IACP;AAAA,EACF;AACA,MAAI,aAAa,EAAG,QAAO;AAC3B,MAAI,aAAa,EAAG,QAAO;AAC3B,SAAO,OAAO;AAChB;","names":[]}
|
package/dist/lifecycle.js
CHANGED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { L as LiveConnector, C as ConnectorConfig, a as ConnectorDocument } from './framework-CyHYDcri.js';
|
|
2
|
+
import { LiveConnectorsConfig } from './types.js';
|
|
3
|
+
|
|
4
|
+
type LiveConnectorSkipReason = "disabled" | "not_due" | "invalid_config" | "state_read_error" | "connector_error";
|
|
5
|
+
interface LiveConnectorRunItem {
|
|
6
|
+
id: string;
|
|
7
|
+
displayName: string;
|
|
8
|
+
enabled: boolean;
|
|
9
|
+
ran: boolean;
|
|
10
|
+
skippedReason?: LiveConnectorSkipReason;
|
|
11
|
+
docsImported: number;
|
|
12
|
+
error?: string;
|
|
13
|
+
stateWriteError?: string;
|
|
14
|
+
lastSyncAt: string | null;
|
|
15
|
+
nextDueAt: string | null;
|
|
16
|
+
}
|
|
17
|
+
interface LiveConnectorsRunSummary {
|
|
18
|
+
ranAt: string;
|
|
19
|
+
force: boolean;
|
|
20
|
+
totalDocsImported: number;
|
|
21
|
+
ranCount: number;
|
|
22
|
+
skippedCount: number;
|
|
23
|
+
errorCount: number;
|
|
24
|
+
results: LiveConnectorRunItem[];
|
|
25
|
+
}
|
|
26
|
+
interface LiveConnectorDefinition {
|
|
27
|
+
id: string;
|
|
28
|
+
displayName: string;
|
|
29
|
+
enabled: boolean;
|
|
30
|
+
pollIntervalMs: number;
|
|
31
|
+
rawConfig: unknown;
|
|
32
|
+
createConnector: () => LiveConnector;
|
|
33
|
+
validateConfig: (raw: unknown) => ConnectorConfig;
|
|
34
|
+
}
|
|
35
|
+
type LiveConnectorsNow = Date | (() => Date);
|
|
36
|
+
declare function builtInLiveConnectorDefinitions(config: LiveConnectorsConfig): LiveConnectorDefinition[];
|
|
37
|
+
declare function hasEnabledLiveConnector(config: LiveConnectorsConfig): boolean;
|
|
38
|
+
declare function runLiveConnectorsOnce(options: {
|
|
39
|
+
memoryDir: string;
|
|
40
|
+
connectors: LiveConnectorsConfig;
|
|
41
|
+
ingestDocuments: (docs: ConnectorDocument[]) => Promise<void>;
|
|
42
|
+
force?: boolean;
|
|
43
|
+
now?: LiveConnectorsNow;
|
|
44
|
+
abortSignal?: AbortSignal;
|
|
45
|
+
definitions?: LiveConnectorDefinition[];
|
|
46
|
+
}): Promise<LiveConnectorsRunSummary>;
|
|
47
|
+
|
|
48
|
+
export { type LiveConnectorDefinition, type LiveConnectorRunItem, type LiveConnectorSkipReason, type LiveConnectorsRunSummary, builtInLiveConnectorDefinitions, hasEnabledLiveConnector, runLiveConnectorsOnce };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
builtInLiveConnectorDefinitions,
|
|
3
|
+
hasEnabledLiveConnector,
|
|
4
|
+
runLiveConnectorsOnce
|
|
5
|
+
} from "./chunk-ASIQZXYO.js";
|
|
6
|
+
import "./chunk-L2IO2QPY.js";
|
|
7
|
+
import "./chunk-6TBWYBJ3.js";
|
|
8
|
+
import "./chunk-OZHRDTDX.js";
|
|
9
|
+
import "./chunk-IXEJRKCZ.js";
|
|
10
|
+
import "./chunk-MARWOCVP.js";
|
|
11
|
+
import "./chunk-PZ5AY32C.js";
|
|
12
|
+
export {
|
|
13
|
+
builtInLiveConnectorDefinitions,
|
|
14
|
+
hasEnabledLiveConnector,
|
|
15
|
+
runLiveConnectorsOnce
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=live-connectors-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/local-llm.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LocalLlmClient
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-R2XRID2N.js";
|
|
4
|
+
import "./chunk-OR64ZGRZ.js";
|
|
5
5
|
import "./chunk-MARWOCVP.js";
|
|
6
6
|
import "./chunk-2ODBA7MQ.js";
|
|
7
|
+
import "./chunk-PZ5AY32C.js";
|
|
7
8
|
export {
|
|
8
9
|
LocalLlmClient
|
|
9
10
|
};
|
package/dist/logger.js
CHANGED
package/dist/memory-cache.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ declare function getCachedArchivedMemories(baseDir: string, currentVersion: numb
|
|
|
8
8
|
declare function setCachedArchivedMemories(baseDir: string, memories: MemoryFile[], version: number): void;
|
|
9
9
|
declare function getCachedEntities(baseDir: string, currentVersion: number, schemaKey?: string): EntityFile[] | null;
|
|
10
10
|
declare function setCachedEntities(baseDir: string, entities: EntityFile[], version: number, schemaKey?: string): void;
|
|
11
|
+
declare function invalidateCachedEntities(baseDir: string): void;
|
|
11
12
|
/** Get a pre-filtered Map of episode memories (keyed by ID). Derived from hot cache. */
|
|
12
13
|
declare function getCachedEpisodeMap(baseDir: string, currentVersion: number): Map<string, MemoryFile> | null;
|
|
13
14
|
/** Build and cache the episode memory map from the full memory list. */
|
|
@@ -32,4 +33,4 @@ declare function getMemoryCacheStats(baseDir: string): {
|
|
|
32
33
|
archiveVersion: number | null;
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
export { clearMemoryCache, getCachedArchivedMemories, getCachedEntities, getCachedEpisodeMap, getCachedMemories, getCachedQmdSearch, getCachedRuleMemories, getMemoryCacheStats, setCachedArchivedMemories, setCachedEntities, setCachedEpisodeMap, setCachedMemories, setCachedQmdSearch, setCachedRuleMemories, updateCacheOnDelete, updateCacheOnWrite };
|
|
36
|
+
export { clearMemoryCache, getCachedArchivedMemories, getCachedEntities, getCachedEpisodeMap, getCachedMemories, getCachedQmdSearch, getCachedRuleMemories, getMemoryCacheStats, invalidateCachedEntities, setCachedArchivedMemories, setCachedEntities, setCachedEpisodeMap, setCachedMemories, setCachedQmdSearch, setCachedRuleMemories, updateCacheOnDelete, updateCacheOnWrite };
|
package/dist/memory-cache.js
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
getCachedQmdSearch,
|
|
8
8
|
getCachedRuleMemories,
|
|
9
9
|
getMemoryCacheStats,
|
|
10
|
+
invalidateCachedEntities,
|
|
10
11
|
setCachedArchivedMemories,
|
|
11
12
|
setCachedEntities,
|
|
12
13
|
setCachedEpisodeMap,
|
|
@@ -15,7 +16,8 @@ import {
|
|
|
15
16
|
setCachedRuleMemories,
|
|
16
17
|
updateCacheOnDelete,
|
|
17
18
|
updateCacheOnWrite
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PFV5C235.js";
|
|
20
|
+
import "./chunk-PZ5AY32C.js";
|
|
19
21
|
export {
|
|
20
22
|
clearMemoryCache,
|
|
21
23
|
getCachedArchivedMemories,
|
|
@@ -25,6 +27,7 @@ export {
|
|
|
25
27
|
getCachedQmdSearch,
|
|
26
28
|
getCachedRuleMemories,
|
|
27
29
|
getMemoryCacheStats,
|
|
30
|
+
invalidateCachedEntities,
|
|
28
31
|
setCachedArchivedMemories,
|
|
29
32
|
setCachedEntities,
|
|
30
33
|
setCachedEpisodeMap,
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildProposedActions,
|
|
3
|
+
buildQualityScore,
|
|
4
|
+
groupActionsByStatus,
|
|
5
|
+
listMemoryGovernanceRuns,
|
|
6
|
+
readMemoryGovernanceRunArtifact,
|
|
7
|
+
restoreMemoryGovernanceRun,
|
|
8
|
+
runMemoryGovernance
|
|
9
|
+
} from "./chunk-LZRYQK6L.js";
|
|
10
|
+
import "./chunk-TBBDFYXW.js";
|
|
11
|
+
import "./chunk-DCE6SQLA.js";
|
|
12
|
+
import "./chunk-YNJHCGDT.js";
|
|
13
|
+
import "./chunk-4KAN3GZ3.js";
|
|
14
|
+
import "./chunk-43EKP2UK.js";
|
|
15
|
+
import "./chunk-PFV5C235.js";
|
|
16
|
+
import "./chunk-RULE4VG5.js";
|
|
17
|
+
import "./chunk-SCU65EZI.js";
|
|
18
|
+
import "./chunk-BOUYNNYD.js";
|
|
19
|
+
import "./chunk-DM2T26WE.js";
|
|
20
|
+
import "./chunk-QSVPYQPG.js";
|
|
21
|
+
import "./chunk-M62O4P4T.js";
|
|
22
|
+
import "./chunk-4DJQYKMN.js";
|
|
23
|
+
import "./chunk-G7D6GZ5J.js";
|
|
24
|
+
import "./chunk-FAAFWE4G.js";
|
|
25
|
+
import "./chunk-2ODBA7MQ.js";
|
|
26
|
+
import "./chunk-A6XUJE5D.js";
|
|
27
|
+
import "./chunk-PZ5AY32C.js";
|
|
28
|
+
export {
|
|
29
|
+
buildProposedActions,
|
|
30
|
+
buildQualityScore,
|
|
31
|
+
groupActionsByStatus,
|
|
32
|
+
listMemoryGovernanceRuns,
|
|
33
|
+
readMemoryGovernanceRunArtifact,
|
|
34
|
+
restoreMemoryGovernanceRun,
|
|
35
|
+
runMemoryGovernance
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=memory-governance-KG52RITE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -5,9 +5,10 @@ declare const MEMORY_LIFECYCLE_EVENT_SORT_ORDER: Record<MemoryLifecycleEventType
|
|
|
5
5
|
declare function toMemoryPathRel(baseDir: string, filePath: string): string;
|
|
6
6
|
declare function isArchivedMemoryPath(pathRel: string): boolean;
|
|
7
7
|
declare function inferMemoryStatus(frontmatter: MemoryFrontmatter, pathRel: string, fallbackStatus?: MemoryStatus): MemoryStatus;
|
|
8
|
+
declare function isActiveMemoryStatus(status: MemoryStatus | string | undefined): boolean;
|
|
8
9
|
declare function summarizeMemoryLifecycleState(memory: MemoryFile): MemoryLifecycleStateSummary;
|
|
9
10
|
declare function makeRebuiltMemoryLifecycleEvent(memory: MemoryFile, eventType: MemoryLifecycleEventType, timestamp: string): MemoryLifecycleEvent;
|
|
10
11
|
declare function buildLifecycleEventsForMemory(memory: MemoryFile): MemoryLifecycleEvent[];
|
|
11
12
|
declare function sortMemoryLifecycleEvents(events: MemoryLifecycleEvent[]): MemoryLifecycleEvent[];
|
|
12
13
|
|
|
13
|
-
export { MEMORY_LIFECYCLE_EVENT_SORT_ORDER, MEMORY_LIFECYCLE_RULE_VERSION, buildLifecycleEventsForMemory, inferMemoryStatus, isArchivedMemoryPath, makeRebuiltMemoryLifecycleEvent, sortMemoryLifecycleEvents, summarizeMemoryLifecycleState, toMemoryPathRel };
|
|
14
|
+
export { MEMORY_LIFECYCLE_EVENT_SORT_ORDER, MEMORY_LIFECYCLE_RULE_VERSION, buildLifecycleEventsForMemory, inferMemoryStatus, isActiveMemoryStatus, isArchivedMemoryPath, makeRebuiltMemoryLifecycleEvent, sortMemoryLifecycleEvents, summarizeMemoryLifecycleState, toMemoryPathRel };
|
|
@@ -3,17 +3,20 @@ import {
|
|
|
3
3
|
MEMORY_LIFECYCLE_RULE_VERSION,
|
|
4
4
|
buildLifecycleEventsForMemory,
|
|
5
5
|
inferMemoryStatus,
|
|
6
|
+
isActiveMemoryStatus,
|
|
6
7
|
isArchivedMemoryPath,
|
|
7
8
|
makeRebuiltMemoryLifecycleEvent,
|
|
8
9
|
sortMemoryLifecycleEvents,
|
|
9
10
|
summarizeMemoryLifecycleState,
|
|
10
11
|
toMemoryPathRel
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-RULE4VG5.js";
|
|
13
|
+
import "./chunk-PZ5AY32C.js";
|
|
12
14
|
export {
|
|
13
15
|
MEMORY_LIFECYCLE_EVENT_SORT_ORDER,
|
|
14
16
|
MEMORY_LIFECYCLE_RULE_VERSION,
|
|
15
17
|
buildLifecycleEventsForMemory,
|
|
16
18
|
inferMemoryStatus,
|
|
19
|
+
isActiveMemoryStatus,
|
|
17
20
|
isArchivedMemoryPath,
|
|
18
21
|
makeRebuiltMemoryLifecycleEvent,
|
|
19
22
|
sortMemoryLifecycleEvents,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { k as MEMORY_PROJECTION_SCHEMA_VERSION, l as MemoryProjectionGovernanceAppliedActionRow, m as MemoryProjectionGovernanceReviewQueueRow, n as ProjectedEntityMentionRow, P as ProjectedMemoryBrowseOptions, a as ProjectedMemoryBrowsePage, o as ProjectedMemoryBrowseRow, p as ProjectedNativeKnowledgeChunkRow, q as ProjectedReviewQueueSnapshot, s as getMemoryProjectionPath, t as initializeMemoryProjectionDb, u as memoryCurrentSelectExpressions, v as parseCurrentRow, w as parseTimelineRows, x as readProjectedEntityMentions, b as readProjectedGovernanceRecord, y as readProjectedLatestReviewQueue, z as readProjectedMemoryBrowse, A as readProjectedMemoryState, B as readProjectedMemoryTimeline, C as readProjectedNativeKnowledgeChunks } from './memory-projection-store-
|
|
1
|
+
export { k as MEMORY_PROJECTION_SCHEMA_VERSION, l as MemoryProjectionGovernanceAppliedActionRow, m as MemoryProjectionGovernanceReviewQueueRow, n as ProjectedEntityMentionRow, P as ProjectedMemoryBrowseOptions, a as ProjectedMemoryBrowsePage, o as ProjectedMemoryBrowseRow, p as ProjectedNativeKnowledgeChunkRow, q as ProjectedReviewQueueSnapshot, s as getMemoryProjectionPath, t as initializeMemoryProjectionDb, u as memoryCurrentSelectExpressions, v as parseCurrentRow, w as parseTimelineRows, x as readProjectedEntityMentions, b as readProjectedGovernanceRecord, y as readProjectedLatestReviewQueue, z as readProjectedMemoryBrowse, A as readProjectedMemoryState, B as readProjectedMemoryTimeline, C as readProjectedNativeKnowledgeChunks } from './memory-projection-store-D3vBHS4J.js';
|
|
2
2
|
import './types.js';
|
|
3
3
|
import 'better-sqlite3';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/memory-worth-bench.ts"],"sourcesContent":["/**\n * Issue #560 PR 5 — Memory Worth recall filter benchmark.\n *\n * Self-contained precision benchmark for `applyMemoryWorthFilter`. Seeds a\n * synthetic corpus where a small subset of memories have known-bad outcome\n * history, then compares top-K precision with the filter off vs. on.\n *\n * Why a dedicated in-package file (rather than the full `@remnic/bench`\n * harness): the filter is a pure function over candidate scores and counter\n * data; it doesn't need QMD, the orchestrator, or the schema-tier fixtures.\n * Running it as a plain `tsx` script keeps the signal tight — any drift in\n * the scorer's math shows up as a precision delta here, no integration\n * wiring required.\n *\n * The `runMemoryWorthBench()` export is the programmatic entry point;\n * `runMemoryWorthBenchCli()` is what `tsx` calls when this file is executed\n * directly. Both return (or print) a structured result so CI can gate on\n * it if we later want to.\n *\n * Verdict for PR 5: run the bench once, confirm filter-on ≥ filter-off on\n * precision@K across every seed, and only then flip the default to `true`.\n */\n\nimport {\n applyMemoryWorthFilter,\n type MemoryWorthCounters,\n} from \"./memory-worth-filter.js\";\n\n/**\n * One synthetic query + candidate pool + relevance labels.\n *\n * Candidates are scored by the pretend retrieval tier (`baseScore`); the\n * ground-truth relevance is `isRelevant`; `counters` seeds each candidate's\n * outcome history. Some \"bad\" candidates have baseline scores just above\n * the \"good\" candidates — the filter should be able to demote them.\n */\ninterface BenchCase {\n id: string;\n candidates: {\n path: string;\n baseScore: number;\n isRelevant: boolean;\n counters?: MemoryWorthCounters;\n }[];\n /** Top-K used for precision@K. */\n k: number;\n}\n\n/**\n * Deterministic pseudo-random number generator (mulberry32) so the bench\n * produces identical results across runs, making precision changes easy to\n * attribute to code rather than seed drift.\n */\nfunction mulberry32(seed: number): () => number {\n let t = seed >>> 0;\n return () => {\n t = (t + 0x6d2b79f5) >>> 0;\n let r = t;\n r = Math.imul(r ^ (r >>> 15), r | 1);\n r ^= r + Math.imul(r ^ (r >>> 7), r | 61);\n return ((r ^ (r >>> 14)) >>> 0) / 4294967296;\n };\n}\n\n/**\n * Generate a synthetic test case.\n *\n * Corpus design:\n * - 20 candidates per case.\n * - Top 5 by base score include 2 \"traps\" — memories that the retriever\n * ranks highly but whose outcome history is 10/0 failures. These should\n * be sunk by the filter.\n * - 3 lower-ranked memories are genuinely relevant with 10/0 success\n * history. The filter should promote them into the top 5.\n * - Remaining 15 are noise at the neutral prior (no counter data).\n *\n * `k = 5`, so the ideal precision@K is 3/5 = 0.6 (three genuinely relevant\n * items, after filter promotion). Without the filter, precision@5 is 0/5\n * because the top 5 by base score are the 2 traps + 3 irrelevant neutral\n * items.\n */\nfunction buildCase(caseIndex: number, rng: () => number): BenchCase {\n const candidates: BenchCase[\"candidates\"] = [];\n // 2 high-ranked traps: high base score, bad outcome history, NOT relevant.\n for (let i = 0; i < 2; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-trap-${i}.md`,\n baseScore: 0.95 - i * 0.02,\n isRelevant: false,\n counters: { mw_success: 0, mw_fail: 10 },\n });\n }\n // 3 high-ranked irrelevant neutral items.\n for (let i = 0; i < 3; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-noise-high-${i}.md`,\n baseScore: 0.9 - i * 0.02,\n isRelevant: false,\n });\n }\n // 3 lower-ranked TRUE POSITIVES with strong success history — the filter\n // must float these into the top 5.\n for (let i = 0; i < 3; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-gold-${i}.md`,\n baseScore: 0.7 - i * 0.05,\n isRelevant: true,\n counters: { mw_success: 10, mw_fail: 0 },\n });\n }\n // 12 irrelevant noise candidates at random lower scores.\n for (let i = 0; i < 12; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-noise-low-${i}.md`,\n baseScore: rng() * 0.5,\n isRelevant: false,\n });\n }\n // Shuffle to remove any input-order bias.\n for (let i = candidates.length - 1; i > 0; i -= 1) {\n const j = Math.floor(rng() * (i + 1));\n [candidates[i], candidates[j]] = [candidates[j]!, candidates[i]!];\n }\n return { id: `case-${caseIndex}`, candidates, k: 5 };\n}\n\nfunction computePrecisionAtK(\n orderedPaths: string[],\n relevant: Set<string>,\n k: number,\n): number {\n const topK = orderedPaths.slice(0, k);\n if (topK.length === 0) return 0;\n let hits = 0;\n for (const p of topK) if (relevant.has(p)) hits += 1;\n return hits / Math.min(k, topK.length);\n}\n\nexport interface MemoryWorthBenchResult {\n cases: number;\n k: number;\n /** Mean precision@K with the filter disabled. */\n precisionAtK_off: number;\n /** Mean precision@K with the filter enabled. */\n precisionAtK_on: number;\n /** `on - off`; positive means filter helps, zero means tied. */\n delta: number;\n /** Filter-on wins at least as often as it loses, case-by-case. */\n filterWinsOrTies: boolean;\n}\n\n/**\n * Run the benchmark over N synthetic cases using a fixed PRNG seed. Returns\n * aggregate precision numbers + a boolean verdict.\n */\nexport function runMemoryWorthBench(options?: {\n cases?: number;\n seed?: number;\n now?: Date;\n}): MemoryWorthBenchResult {\n const requestedCases = options?.cases ?? 50;\n // Reject non-positive-integer case counts. Passing 0 would divide by zero\n // and produce a NaN precision that the `filterWinsOrTies` boolean would\n // still mark as `true` — dangerously misleading since this result is used\n // to justify the default flip. Fractional values would inflate precision\n // because the loop rounds up (Array.from ceil) but the average divides\n // by the fractional input.\n if (\n !Number.isFinite(requestedCases) ||\n !Number.isInteger(requestedCases) ||\n requestedCases < 1\n ) {\n throw new Error(\n `runMemoryWorthBench: cases must be a positive integer; got ${requestedCases}`,\n );\n }\n const numCases = requestedCases;\n const rng = mulberry32(options?.seed ?? 0xdeadbeef);\n const now = options?.now ?? new Date(\"2026-01-01T00:00:00.000Z\");\n\n let sumOff = 0;\n let sumOn = 0;\n let onWinsOrTies = 0;\n\n for (let i = 0; i < numCases; i += 1) {\n const c = buildCase(i, rng);\n const relevant = new Set(\n c.candidates.filter((x) => x.isRelevant).map((x) => x.path),\n );\n\n // Filter OFF: sort by baseScore descending.\n const off = [...c.candidates]\n .sort((a, b) => b.baseScore - a.baseScore)\n .map((x) => x.path);\n const pOff = computePrecisionAtK(off, relevant, c.k);\n\n // Filter ON: build counter map and apply the filter.\n const counters = new Map<string, MemoryWorthCounters>();\n for (const cand of c.candidates) {\n if (cand.counters) counters.set(cand.path, cand.counters);\n }\n const filtered = applyMemoryWorthFilter(\n c.candidates.map((x) => ({ path: x.path, score: x.baseScore })),\n { counters, now },\n );\n const on = filtered.map((x) => x.path);\n const pOn = computePrecisionAtK(on, relevant, c.k);\n\n sumOff += pOff;\n sumOn += pOn;\n if (pOn >= pOff) onWinsOrTies += 1;\n }\n\n const avgOff = sumOff / numCases;\n const avgOn = sumOn / numCases;\n return {\n cases: numCases,\n k: 5,\n precisionAtK_off: avgOff,\n precisionAtK_on: avgOn,\n delta: avgOn - avgOff,\n filterWinsOrTies: onWinsOrTies === numCases,\n };\n}\n\n/**\n * CLI entry point — run the bench and print a structured result. Exits\n * non-zero if the filter ever loses to the no-filter baseline (so CI can\n * gate on this in the future).\n */\nexport function runMemoryWorthBenchCli(): void {\n const result = runMemoryWorthBench();\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(result, null, 2));\n if (!result.filterWinsOrTies) {\n // eslint-disable-next-line no-console\n console.error(\"memory-worth bench: filter lost to no-filter baseline on at least one case\");\n process.exit(1);\n }\n}\n\n// When this file is invoked directly (e.g. `tsx memory-worth-bench.ts`),\n// run the CLI. Use url.pathToFileURL to produce a normalized file:// URL\n// from `process.argv[1]` — that handles Windows drive letters,\n// URL-encoded characters (spaces, etc.), and symlinked entrypoints. A\n// naïve `file://${process.argv[1]}` comparison fails on all three and\n// would silently skip runMemoryWorthBenchCli() on those platforms.\nif (process.argv[1]) {\n try {\n // Lazy import so this file can still be loaded in environments that\n // don't have node:url (browsers, Deno test runners in some modes).\n const { pathToFileURL } = await import(\"node:url\");\n if (import.meta.url === pathToFileURL(process.argv[1]).href) {\n runMemoryWorthBenchCli();\n }\n } catch {\n // If the normalization fails for any reason, fall back to the naive\n // comparison. Worse case: the bench doesn't auto-run; callers can\n // always invoke `runMemoryWorthBenchCli()` or `runMemoryWorthBench()`\n // explicitly.\n if (import.meta.url === `file://${process.argv[1]}`) {\n runMemoryWorthBenchCli();\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/memory-worth-bench.ts"],"sourcesContent":["/**\n * Issue #560 PR 5 — Memory Worth recall filter benchmark.\n *\n * Self-contained precision benchmark for `applyMemoryWorthFilter`. Seeds a\n * synthetic corpus where a small subset of memories have known-bad outcome\n * history, then compares top-K precision with the filter off vs. on.\n *\n * Why a dedicated in-package file (rather than the full `@remnic/bench`\n * harness): the filter is a pure function over candidate scores and counter\n * data; it doesn't need QMD, the orchestrator, or the schema-tier fixtures.\n * Running it as a plain `tsx` script keeps the signal tight — any drift in\n * the scorer's math shows up as a precision delta here, no integration\n * wiring required.\n *\n * The `runMemoryWorthBench()` export is the programmatic entry point;\n * `runMemoryWorthBenchCli()` is what `tsx` calls when this file is executed\n * directly. Both return (or print) a structured result so CI can gate on\n * it if we later want to.\n *\n * Verdict for PR 5: run the bench once, confirm filter-on ≥ filter-off on\n * precision@K across every seed, and only then flip the default to `true`.\n */\n\nimport {\n applyMemoryWorthFilter,\n type MemoryWorthCounters,\n} from \"./memory-worth-filter.js\";\n\n/**\n * One synthetic query + candidate pool + relevance labels.\n *\n * Candidates are scored by the pretend retrieval tier (`baseScore`); the\n * ground-truth relevance is `isRelevant`; `counters` seeds each candidate's\n * outcome history. Some \"bad\" candidates have baseline scores just above\n * the \"good\" candidates — the filter should be able to demote them.\n */\ninterface BenchCase {\n id: string;\n candidates: {\n path: string;\n baseScore: number;\n isRelevant: boolean;\n counters?: MemoryWorthCounters;\n }[];\n /** Top-K used for precision@K. */\n k: number;\n}\n\n/**\n * Deterministic pseudo-random number generator (mulberry32) so the bench\n * produces identical results across runs, making precision changes easy to\n * attribute to code rather than seed drift.\n */\nfunction mulberry32(seed: number): () => number {\n let t = seed >>> 0;\n return () => {\n t = (t + 0x6d2b79f5) >>> 0;\n let r = t;\n r = Math.imul(r ^ (r >>> 15), r | 1);\n r ^= r + Math.imul(r ^ (r >>> 7), r | 61);\n return ((r ^ (r >>> 14)) >>> 0) / 4294967296;\n };\n}\n\n/**\n * Generate a synthetic test case.\n *\n * Corpus design:\n * - 20 candidates per case.\n * - Top 5 by base score include 2 \"traps\" — memories that the retriever\n * ranks highly but whose outcome history is 10/0 failures. These should\n * be sunk by the filter.\n * - 3 lower-ranked memories are genuinely relevant with 10/0 success\n * history. The filter should promote them into the top 5.\n * - Remaining 15 are noise at the neutral prior (no counter data).\n *\n * `k = 5`, so the ideal precision@K is 3/5 = 0.6 (three genuinely relevant\n * items, after filter promotion). Without the filter, precision@5 is 0/5\n * because the top 5 by base score are the 2 traps + 3 irrelevant neutral\n * items.\n */\nfunction buildCase(caseIndex: number, rng: () => number): BenchCase {\n const candidates: BenchCase[\"candidates\"] = [];\n // 2 high-ranked traps: high base score, bad outcome history, NOT relevant.\n for (let i = 0; i < 2; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-trap-${i}.md`,\n baseScore: 0.95 - i * 0.02,\n isRelevant: false,\n counters: { mw_success: 0, mw_fail: 10 },\n });\n }\n // 3 high-ranked irrelevant neutral items.\n for (let i = 0; i < 3; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-noise-high-${i}.md`,\n baseScore: 0.9 - i * 0.02,\n isRelevant: false,\n });\n }\n // 3 lower-ranked TRUE POSITIVES with strong success history — the filter\n // must float these into the top 5.\n for (let i = 0; i < 3; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-gold-${i}.md`,\n baseScore: 0.7 - i * 0.05,\n isRelevant: true,\n counters: { mw_success: 10, mw_fail: 0 },\n });\n }\n // 12 irrelevant noise candidates at random lower scores.\n for (let i = 0; i < 12; i += 1) {\n candidates.push({\n path: `case-${caseIndex}-noise-low-${i}.md`,\n baseScore: rng() * 0.5,\n isRelevant: false,\n });\n }\n // Shuffle to remove any input-order bias.\n for (let i = candidates.length - 1; i > 0; i -= 1) {\n const j = Math.floor(rng() * (i + 1));\n [candidates[i], candidates[j]] = [candidates[j]!, candidates[i]!];\n }\n return { id: `case-${caseIndex}`, candidates, k: 5 };\n}\n\nfunction computePrecisionAtK(\n orderedPaths: string[],\n relevant: Set<string>,\n k: number,\n): number {\n const topK = orderedPaths.slice(0, k);\n if (topK.length === 0) return 0;\n let hits = 0;\n for (const p of topK) if (relevant.has(p)) hits += 1;\n return hits / Math.min(k, topK.length);\n}\n\nexport interface MemoryWorthBenchResult {\n cases: number;\n k: number;\n /** Mean precision@K with the filter disabled. */\n precisionAtK_off: number;\n /** Mean precision@K with the filter enabled. */\n precisionAtK_on: number;\n /** `on - off`; positive means filter helps, zero means tied. */\n delta: number;\n /** Filter-on wins at least as often as it loses, case-by-case. */\n filterWinsOrTies: boolean;\n}\n\n/**\n * Run the benchmark over N synthetic cases using a fixed PRNG seed. Returns\n * aggregate precision numbers + a boolean verdict.\n */\nexport function runMemoryWorthBench(options?: {\n cases?: number;\n seed?: number;\n now?: Date;\n}): MemoryWorthBenchResult {\n const requestedCases = options?.cases ?? 50;\n // Reject non-positive-integer case counts. Passing 0 would divide by zero\n // and produce a NaN precision that the `filterWinsOrTies` boolean would\n // still mark as `true` — dangerously misleading since this result is used\n // to justify the default flip. Fractional values would inflate precision\n // because the loop rounds up (Array.from ceil) but the average divides\n // by the fractional input.\n if (\n !Number.isFinite(requestedCases) ||\n !Number.isInteger(requestedCases) ||\n requestedCases < 1\n ) {\n throw new Error(\n `runMemoryWorthBench: cases must be a positive integer; got ${requestedCases}`,\n );\n }\n const numCases = requestedCases;\n const rng = mulberry32(options?.seed ?? 0xdeadbeef);\n const now = options?.now ?? new Date(\"2026-01-01T00:00:00.000Z\");\n\n let sumOff = 0;\n let sumOn = 0;\n let onWinsOrTies = 0;\n\n for (let i = 0; i < numCases; i += 1) {\n const c = buildCase(i, rng);\n const relevant = new Set(\n c.candidates.filter((x) => x.isRelevant).map((x) => x.path),\n );\n\n // Filter OFF: sort by baseScore descending.\n const off = [...c.candidates]\n .sort((a, b) => b.baseScore - a.baseScore)\n .map((x) => x.path);\n const pOff = computePrecisionAtK(off, relevant, c.k);\n\n // Filter ON: build counter map and apply the filter.\n const counters = new Map<string, MemoryWorthCounters>();\n for (const cand of c.candidates) {\n if (cand.counters) counters.set(cand.path, cand.counters);\n }\n const filtered = applyMemoryWorthFilter(\n c.candidates.map((x) => ({ path: x.path, score: x.baseScore })),\n { counters, now },\n );\n const on = filtered.map((x) => x.path);\n const pOn = computePrecisionAtK(on, relevant, c.k);\n\n sumOff += pOff;\n sumOn += pOn;\n if (pOn >= pOff) onWinsOrTies += 1;\n }\n\n const avgOff = sumOff / numCases;\n const avgOn = sumOn / numCases;\n return {\n cases: numCases,\n k: 5,\n precisionAtK_off: avgOff,\n precisionAtK_on: avgOn,\n delta: avgOn - avgOff,\n filterWinsOrTies: onWinsOrTies === numCases,\n };\n}\n\n/**\n * CLI entry point — run the bench and print a structured result. Exits\n * non-zero if the filter ever loses to the no-filter baseline (so CI can\n * gate on this in the future).\n */\nexport function runMemoryWorthBenchCli(): void {\n const result = runMemoryWorthBench();\n // eslint-disable-next-line no-console\n console.log(JSON.stringify(result, null, 2));\n if (!result.filterWinsOrTies) {\n // eslint-disable-next-line no-console\n console.error(\"memory-worth bench: filter lost to no-filter baseline on at least one case\");\n process.exit(1);\n }\n}\n\n// When this file is invoked directly (e.g. `tsx memory-worth-bench.ts`),\n// run the CLI. Use url.pathToFileURL to produce a normalized file:// URL\n// from `process.argv[1]` — that handles Windows drive letters,\n// URL-encoded characters (spaces, etc.), and symlinked entrypoints. A\n// naïve `file://${process.argv[1]}` comparison fails on all three and\n// would silently skip runMemoryWorthBenchCli() on those platforms.\nif (process.argv[1]) {\n try {\n // Lazy import so this file can still be loaded in environments that\n // don't have node:url (browsers, Deno test runners in some modes).\n const { pathToFileURL } = await import(\"node:url\");\n if (import.meta.url === pathToFileURL(process.argv[1]).href) {\n runMemoryWorthBenchCli();\n }\n } catch {\n // If the normalization fails for any reason, fall back to the naive\n // comparison. Worse case: the bench doesn't auto-run; callers can\n // always invoke `runMemoryWorthBenchCli()` or `runMemoryWorthBench()`\n // explicitly.\n if (import.meta.url === `file://${process.argv[1]}`) {\n runMemoryWorthBenchCli();\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -2,7 +2,7 @@ import { StorageManager } from './storage.js';
|
|
|
2
2
|
import { MemoryFrontmatter } from './types.js';
|
|
3
3
|
import './page-versioning.js';
|
|
4
4
|
import './consolidation-operator.js';
|
|
5
|
-
import './memory-projection-store-
|
|
5
|
+
import './memory-projection-store-D3vBHS4J.js';
|
|
6
6
|
import 'better-sqlite3';
|
|
7
7
|
|
|
8
8
|
/**
|
package/dist/memory-worth.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
METADATA_FORMAT,
|
|
3
|
+
METADATA_FORMAT_VERSION,
|
|
4
|
+
buildMetadata,
|
|
5
|
+
decodeMetadataSalt,
|
|
6
|
+
parseMetadata,
|
|
7
|
+
serializeMetadata,
|
|
8
|
+
validateMetadata
|
|
9
|
+
} from "./chunk-UKJAGEXH.js";
|
|
10
|
+
import "./chunk-FP2373TW.js";
|
|
11
|
+
import "./chunk-PZ5AY32C.js";
|
|
12
|
+
export {
|
|
13
|
+
METADATA_FORMAT,
|
|
14
|
+
METADATA_FORMAT_VERSION,
|
|
15
|
+
buildMetadata,
|
|
16
|
+
decodeMetadataSalt,
|
|
17
|
+
parseMetadata,
|
|
18
|
+
serializeMetadata,
|
|
19
|
+
validateMetadata
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=metadata-FC3XPDRQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/dist/model-registry.js
CHANGED
package/dist/models-json.js
CHANGED
package/dist/native-knowledge.js
CHANGED
package/dist/negative.js
CHANGED