@remnic/core 9.69.88 → 9.69.90
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.js +74 -72
- package/dist/access-authorization-probe.js +75 -73
- package/dist/access-boundary.js +74 -72
- package/dist/access-cli.js +168 -165
- package/dist/access-cli.js.map +1 -1
- package/dist/access-extraction-force-flush.js +74 -72
- package/dist/access-http-briefing.js +75 -73
- package/dist/access-http-query.js +76 -74
- package/dist/access-http.js +98 -96
- package/dist/access-identity-continuity-surface.js +74 -72
- package/dist/access-lcm-surface.js +74 -72
- package/dist/access-mcp-output-schemas.d.ts.map +1 -1
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.js +86 -84
- package/dist/access-memory-search-fanout.js +3 -3
- package/dist/access-namespace-preflight.js +74 -72
- package/dist/access-observe-write-category.js +11 -10
- package/dist/access-observe-write-surface.js +74 -72
- package/dist/access-offline-manifest.js +10 -9
- package/dist/access-operations-batch.js +76 -74
- package/dist/access-operations.js +83 -81
- package/dist/access-recall-concurrency.js +74 -72
- package/dist/access-recall-corpus-versions.d.ts +12 -0
- package/dist/access-recall-corpus-versions.d.ts.map +1 -0
- package/dist/access-recall-corpus-versions.js +10 -0
- package/dist/access-recall-diagnostics.js +5 -5
- package/dist/access-recall-response.d.ts +4 -0
- package/dist/access-recall-response.d.ts.map +1 -1
- package/dist/access-recall-response.js +74 -72
- package/dist/access-recall-surface.d.ts +8 -0
- package/dist/access-recall-surface.d.ts.map +1 -1
- package/dist/access-recall-surface.js +74 -72
- package/dist/access-schema.js +10 -9
- package/dist/access-service.d.ts +5 -0
- package/dist/access-service.d.ts.map +1 -1
- package/dist/access-service.js +74 -72
- package/dist/access-surface-catalog.js +76 -74
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/active-memory-bridge.js +3 -3
- package/dist/active-recall.js +27 -24
- package/dist/active-recall.js.map +1 -1
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/registry.js +3 -3
- package/dist/{auto-sync-U5N3CB5Y.js → auto-sync-PAWBFQWL.js} +5 -5
- package/dist/briefing.js +19 -19
- package/dist/buffer.js +8 -8
- package/dist/calibration.js +2 -2
- package/dist/capabilities.d.ts +2 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
- package/dist/causal-consolidation.js +19 -19
- package/dist/{chunk-BMXEBWBT.js → chunk-2EMROIXS.js} +2 -1
- package/dist/{chunk-BMXEBWBT.js.map → chunk-2EMROIXS.js.map} +1 -1
- package/dist/{chunk-MCTM4YPL.js → chunk-2FLFJTCI.js} +4 -2
- package/dist/chunk-2FLFJTCI.js.map +1 -0
- package/dist/{chunk-RDJ6C7NZ.js → chunk-2IWBHZ3H.js} +5 -5
- package/dist/{chunk-UP75KL3L.js → chunk-2JRB3Z5N.js} +2 -2
- package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
- package/dist/{chunk-KN6CIN7I.js → chunk-32HO62I4.js} +2 -2
- package/dist/{chunk-JLPNONPH.js → chunk-35A7GCHG.js} +2 -2
- package/dist/{chunk-MXCAJKMA.js → chunk-37ZQYFX4.js} +6 -6
- package/dist/{chunk-LW3HKRL7.js → chunk-3BTHXB7Z.js} +3 -3
- package/dist/{chunk-C7V3KPKJ.js → chunk-47LTKAGL.js} +2 -2
- package/dist/{chunk-3O5BB45T.js → chunk-4DXNOVNW.js} +10 -10
- package/dist/{chunk-65I2LZEK.js → chunk-4G2YCKLT.js} +2 -2
- package/dist/{chunk-OK52IY3W.js → chunk-4GEBLO7S.js} +10 -10
- package/dist/{chunk-M6C7SOR6.js → chunk-4I6PEEFA.js} +3 -3
- package/dist/{chunk-Z4TXB4K7.js → chunk-5BUCKFRE.js} +2 -2
- package/dist/{chunk-BGI4NUAO.js → chunk-5S7SNRSJ.js} +2 -2
- package/dist/{chunk-JVPWRNHA.js → chunk-5YR4UGF2.js} +5 -5
- package/dist/{chunk-YJ7MW627.js → chunk-6BG364RN.js} +2 -2
- package/dist/{chunk-D5BSQR63.js → chunk-76LNUSS5.js} +2 -2
- package/dist/{chunk-7CRUDH7G.js → chunk-77HNHT6S.js} +2 -2
- package/dist/{chunk-OWYHHW67.js → chunk-7XI2UJHL.js} +4 -4
- package/dist/{chunk-BJVO4H5C.js → chunk-7Z2UKRNJ.js} +4 -4
- package/dist/{chunk-2WLMWP2T.js → chunk-A3K2KKSG.js} +2 -2
- package/dist/chunk-A5ZYP4K5.js +130 -0
- package/dist/chunk-A5ZYP4K5.js.map +1 -0
- package/dist/{chunk-AWG3TIAY.js → chunk-ACCOC6UM.js} +2 -2
- package/dist/{chunk-3JDA3XF5.js → chunk-AEGNDL24.js} +2 -2
- package/dist/{chunk-2NAD4YCI.js → chunk-AEUMONCD.js} +2 -2
- package/dist/{chunk-C6U57KG4.js → chunk-AF5PW35O.js} +3 -3
- package/dist/{chunk-IOSZHHJC.js → chunk-ANGZWYL2.js} +6 -6
- package/dist/{chunk-K6T33R4Q.js → chunk-AXGJMDBS.js} +156 -7
- package/dist/chunk-AXGJMDBS.js.map +1 -0
- package/dist/{chunk-6LYAEM54.js → chunk-AXHU56C3.js} +2 -2
- package/dist/{chunk-GWM6T5EQ.js → chunk-BCGMG2RD.js} +2 -2
- package/dist/{chunk-HXCJF4XU.js → chunk-BFIZXFUG.js} +2 -2
- package/dist/{chunk-DBYAY6UW.js → chunk-BTOHGPHC.js} +3 -3
- package/dist/{chunk-5X4MXNEU.js → chunk-C6HPNPNK.js} +3 -3
- package/dist/{chunk-4MP7XR5J.js → chunk-CAKHZAXH.js} +2 -2
- package/dist/{chunk-YSBL7VPO.js → chunk-CDWFWOSZ.js} +2 -2
- package/dist/{chunk-QAW55ZHJ.js → chunk-CZ44FH45.js} +4 -4
- package/dist/{chunk-T3FMRLWQ.js → chunk-D5HQ3VEX.js} +4 -4
- package/dist/{chunk-S7LWX2PQ.js → chunk-DPG5HQLE.js} +4 -4
- package/dist/{chunk-C7ZDKWPS.js → chunk-DVSAMW5T.js} +3 -3
- package/dist/{chunk-WBYQA3VN.js → chunk-E5H4TM4Y.js} +3 -3
- package/dist/{chunk-4RL3JOB3.js → chunk-EEDI3OXB.js} +2 -2
- package/dist/{chunk-3TB2XQ3C.js → chunk-EUL3S3LE.js} +4 -4
- package/dist/{chunk-Q4AUIFUA.js → chunk-F23U5YE7.js} +7 -7
- package/dist/{chunk-ZZZ4I455.js → chunk-GDVORIFM.js} +2 -2
- package/dist/{chunk-QB57WIS6.js → chunk-GXETU7AE.js} +98 -73
- package/dist/chunk-GXETU7AE.js.map +1 -0
- package/dist/{chunk-SWBC3UER.js → chunk-HCPUVB7S.js} +3 -3
- package/dist/{chunk-R3X2T2LP.js → chunk-HFOY2SBG.js} +2 -2
- package/dist/{chunk-LU7E2MXE.js → chunk-HQCUUVG2.js} +20 -20
- package/dist/{chunk-FJLQXMTU.js → chunk-I6B3S62A.js} +2 -2
- package/dist/{chunk-RBITPCMK.js → chunk-IDSSDL4W.js} +9 -9
- package/dist/{chunk-OCFXVDBZ.js → chunk-IVEHY2VT.js} +54 -123
- package/dist/chunk-IVEHY2VT.js.map +1 -0
- package/dist/{chunk-B3OFQP5Y.js → chunk-IY47KPML.js} +6 -6
- package/dist/{chunk-AXC4WSF3.js → chunk-JDOBIFBK.js} +2 -2
- package/dist/{chunk-P2ODTYOF.js → chunk-JGXHQV5N.js} +3 -3
- package/dist/{chunk-7LNHRQKR.js → chunk-JLIGUFPF.js} +2 -2
- package/dist/{chunk-EDIH6X2P.js → chunk-JZ66PN72.js} +2 -2
- package/dist/{chunk-BLVR4WYU.js → chunk-KICEAGKM.js} +2 -2
- package/dist/{chunk-S2GE2K36.js → chunk-KNI4SGQE.js} +109 -96
- package/dist/chunk-KNI4SGQE.js.map +1 -0
- package/dist/{chunk-VDX2J7OX.js → chunk-KQAFEZQX.js} +2 -2
- package/dist/{chunk-PEBHPCX2.js → chunk-KTG23JDX.js} +2 -2
- package/dist/{chunk-BOZJD5PK.js → chunk-KYOZ5E6V.js} +2 -2
- package/dist/{chunk-2DLWLNO4.js → chunk-L3TZXELN.js} +4 -4
- package/dist/{chunk-VALKBYBN.js → chunk-M3N2TUZ7.js} +2 -2
- package/dist/{chunk-76M5OK7V.js → chunk-M7T2NKET.js} +5 -5
- package/dist/chunk-MSAI3Q7D.js +372 -0
- package/dist/chunk-MSAI3Q7D.js.map +1 -0
- package/dist/{chunk-Z5LP6ILP.js → chunk-MZAH3CBT.js} +2 -2
- package/dist/{chunk-QI7K7BZ5.js → chunk-NJW2ZG64.js} +2 -2
- package/dist/{chunk-CZJA2EQE.js → chunk-NSKXRTVZ.js} +2 -2
- package/dist/{chunk-4O4XCBOS.js → chunk-NUSQ3YEL.js} +2 -2
- package/dist/{chunk-4OQET73E.js → chunk-O57FCN42.js} +15 -15
- package/dist/{chunk-WKY7N3L7.js → chunk-OEBUAC3O.js} +10 -10
- package/dist/{chunk-Y23L4YJV.js → chunk-OEIA4IHU.js} +2 -2
- package/dist/{chunk-66DKTOBY.js → chunk-OGZC2WUX.js} +2 -2
- package/dist/{chunk-3SGTV7RD.js → chunk-P62DSJUK.js} +6 -6
- package/dist/{chunk-FKD656D2.js → chunk-PH2V7EXZ.js} +2 -2
- package/dist/{chunk-KKNZ7PUZ.js → chunk-QAIKLICT.js} +2 -2
- package/dist/{chunk-SSUDD72S.js → chunk-QPWUG2S3.js} +2 -2
- package/dist/{chunk-QI2E6ISQ.js → chunk-R2TVWQLR.js} +2 -2
- package/dist/chunk-R2TVWQLR.js.map +1 -0
- package/dist/{chunk-GZDTVYK2.js → chunk-R36IBI2M.js} +3 -3
- package/dist/{chunk-W3XXFPRI.js → chunk-R5B3OWI4.js} +64 -64
- package/dist/{chunk-VL4X7ZHC.js → chunk-RFIJRZ4K.js} +2 -2
- package/dist/{chunk-PWF4JXKD.js → chunk-RKDSELA3.js} +1 -1
- package/dist/chunk-RKDSELA3.js.map +1 -0
- package/dist/{chunk-AEHVZY3X.js → chunk-RPVHRZ5C.js} +2 -2
- package/dist/{chunk-X5SHE2O3.js → chunk-RVBLCU5C.js} +4 -4
- package/dist/{chunk-BUQKSQXL.js → chunk-S533KGX6.js} +5 -5
- package/dist/{chunk-STEOT4DI.js → chunk-SCPHU3RW.js} +7 -7
- package/dist/{chunk-LV5H6FTN.js → chunk-SFSD5Q6O.js} +3 -3
- package/dist/{chunk-AE5U5NMS.js → chunk-SMLKHXPF.js} +2 -2
- package/dist/{chunk-AEU4EQGV.js → chunk-T7R5HI6A.js} +1 -1
- package/dist/{chunk-H5BJWPUI.js → chunk-TVQZAQPE.js} +2 -2
- package/dist/{chunk-H56VY4BY.js → chunk-U36GYZ2P.js} +10 -5
- package/dist/chunk-U36GYZ2P.js.map +1 -0
- package/dist/{chunk-XOV7NRY5.js → chunk-U46P4UAR.js} +3 -3
- package/dist/{chunk-DZ42MDZE.js → chunk-UCJINCZT.js} +2 -2
- package/dist/{chunk-5E6RYRYW.js → chunk-UG5V3Z3R.js} +7 -7
- package/dist/{chunk-IW3RMBPB.js → chunk-VAOC6GHN.js} +2 -2
- package/dist/{chunk-6UQFJULG.js → chunk-VBNA2JEN.js} +2 -2
- package/dist/{chunk-HLB7GKGG.js → chunk-VOZNBQNL.js} +2 -2
- package/dist/{chunk-NYKIUQL6.js → chunk-WHIGRW7T.js} +2 -2
- package/dist/{chunk-AZSGSRIM.js → chunk-WHTMVTU4.js} +3 -3
- package/dist/{chunk-AERXJCOG.js → chunk-WL7N5VGG.js} +5 -5
- package/dist/{chunk-TFA6HPOA.js → chunk-WQUGCOKF.js} +4 -4
- package/dist/{chunk-A4VSOUCB.js → chunk-WTZQM74L.js} +5 -5
- package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
- package/dist/{chunk-T2YX56QI.js → chunk-XWSUK5GL.js} +4 -4
- package/dist/{chunk-ACX55QDO.js → chunk-XYOT5GQU.js} +3 -3
- package/dist/{chunk-Z6EZCN6Z.js → chunk-Y7427SL7.js} +10 -10
- package/dist/{chunk-4KN2JLQV.js → chunk-YHZWVDP7.js} +2 -2
- package/dist/chunk-YVRQ5JRA.js +49 -0
- package/dist/chunk-YVRQ5JRA.js.map +1 -0
- package/dist/{chunk-5MNUBT7T.js → chunk-ZFTODDTX.js} +2 -2
- package/dist/{chunk-VVX5PZFS.js → chunk-ZHXSOMYH.js} +2 -2
- package/dist/{chunk-CRXRZA3G.js → chunk-ZQTYWSO3.js} +2 -2
- package/dist/cli.js +126 -122
- package/dist/coding/export-okf-codegraph.js +17 -17
- package/dist/compounding/engine.js +19 -19
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +27 -24
- package/dist/connectors/codex-materialize-runner.js +18 -18
- package/dist/connectors/index.js +20 -20
- package/dist/contradiction/index.js +3 -3
- package/dist/{contradiction-scan-TAGMOUQ2.js → contradiction-scan-GGRTVB7C.js} +3 -3
- package/dist/convergence-refresh.js +20 -20
- package/dist/conversation-index/backend.js +2 -2
- package/dist/corpus-watermark.js +20 -20
- package/dist/day-summary.js +2 -2
- package/dist/deep-recall-http-glue.js +11 -10
- package/dist/embedding-fallback.js +2 -2
- package/dist/entity-retrieval.js +19 -19
- package/dist/explicit-capture.js +2 -2
- package/dist/external-wiki-access.js +75 -73
- package/dist/extraction-judge.js +3 -3
- package/dist/extraction-normalization.js +3 -3
- package/dist/extraction-prompt.js +2 -2
- package/dist/extraction.js +32 -32
- package/dist/{first-start-migration-7OATHJKB.js → first-start-migration-OM3PHMZO.js} +2 -2
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +198 -195
- package/dist/lcm/engine.js +4 -4
- package/dist/lcm/index.js +10 -10
- package/dist/local-llm-config.js +1 -1
- package/dist/local-llm.js +3 -3
- package/dist/location/index.js +20 -20
- package/dist/maintenance/memory-governance.js +18 -18
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +18 -18
- package/dist/maintenance/rebuild-memory-projection.js +19 -19
- package/dist/memory-browse-operations.js +75 -73
- package/dist/memory-browse.js +5 -5
- package/dist/namespaces/migrate.js +19 -19
- package/dist/namespaces/principal.js +2 -2
- package/dist/namespaces/search.js +13 -13
- package/dist/namespaces/storage.js +18 -18
- package/dist/offline-sync-changeset-generations.d.ts +82 -0
- package/dist/offline-sync-changeset-generations.d.ts.map +1 -0
- package/dist/offline-sync-changeset-generations.js +21 -0
- package/dist/offline-sync-changeset-generations.js.map +1 -0
- package/dist/offline-sync-embedding-generation.d.ts +50 -0
- package/dist/offline-sync-embedding-generation.d.ts.map +1 -1
- package/dist/offline-sync-embedding-generation.js +4 -2
- package/dist/offline-sync-impression-drain.js +5 -5
- package/dist/offline-sync-snapshot-stream.js +5 -4
- package/dist/offline-sync.d.ts +12 -1
- package/dist/offline-sync.d.ts.map +1 -1
- package/dist/offline-sync.js +6 -5
- package/dist/operator-doctor-corpus.js +21 -21
- package/dist/operator-toolkit.js +39 -36
- package/dist/orchestration/compression-guideline-coordinator.js +2 -2
- package/dist/orchestration/maintenance.js +33 -33
- package/dist/orchestration/orchestrator-helpers.d.ts +1 -0
- package/dist/orchestration/orchestrator-helpers.d.ts.map +1 -1
- package/dist/orchestration/recall-entry.d.ts.map +1 -1
- package/dist/orchestration/recall-search-pipeline.d.ts.map +1 -1
- package/dist/orchestrator.js +168 -165
- package/dist/outcome-boost-config.d.ts +17 -0
- package/dist/outcome-boost-config.d.ts.map +1 -0
- package/dist/outcome-boost-config.js +1 -0
- package/dist/outcome-boost-config.js.map +1 -0
- package/dist/qmd.js +4 -4
- package/dist/recall-explain-renderer.js +3 -3
- package/dist/recall-navigate-access.js +2 -2
- package/dist/recall-navigate-disclosure.js +2 -2
- package/dist/recall-navigate.js +2 -2
- package/dist/recall-navigation-operations.js +75 -73
- package/dist/recall-navigation.js +74 -72
- package/dist/recall-state-view-admission.js +5 -5
- package/dist/recall-why-service.js +9 -9
- package/dist/recall-why.js +3 -3
- package/dist/recall-xray-cli.js +4 -4
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.js +2 -2
- package/dist/rerank-outcome.d.ts +73 -0
- package/dist/rerank-outcome.d.ts.map +1 -0
- package/dist/rerank-outcome.js +28 -0
- package/dist/rerank-outcome.js.map +1 -0
- package/dist/{resolution-K4A3VPKZ.js → resolution-BROE3TRO.js} +4 -4
- package/dist/resolution-BROE3TRO.js.map +1 -0
- package/dist/resume-bundles.js +28 -25
- package/dist/search/embed-helper.js +2 -2
- package/dist/search/factory.js +12 -12
- package/dist/search/index.js +18 -18
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/orama-backend.js +2 -2
- package/dist/semantic-consolidation.js +19 -19
- package/dist/semantic-rule-promotion.js +18 -18
- package/dist/semantic-rule-verifier.js +18 -18
- package/dist/shared-context/manager.js +2 -2
- package/dist/source-agent-qualifier.js +26 -26
- package/dist/standup/build.js +18 -18
- package/dist/storage.js +17 -17
- package/dist/summarizer.js +4 -4
- package/dist/support-passport/index.js +77 -75
- package/dist/support-passport/offline-sync-guard.d.ts +6 -2
- package/dist/support-passport/offline-sync-guard.d.ts.map +1 -1
- package/dist/{tier-stats-VF6DS52E.js → tier-stats-M2FMMD2N.js} +2 -2
- 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/transfer/export-okf.js +18 -18
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/verified-recall.js +18 -18
- package/dist/who-knows-cli.js +19 -19
- package/dist/who-knows.js +18 -18
- package/package.json +13 -3
- package/src/access-mcp-output-schemas.ts +2 -0
- package/src/access-recall-corpus-versions.ts +59 -0
- package/src/access-recall-response.ts +3 -0
- package/src/access-recall-surface.ts +22 -23
- package/src/access-service-raw-excerpt-read-gate.test.ts +1 -1
- package/src/access-service.ts +3 -0
- package/src/capabilities.test.ts +1 -0
- package/src/capabilities.ts +6 -8
- package/src/config.ts +3 -0
- package/src/index.ts +1 -1
- package/src/offline-sync-changeset-generations.test.ts +962 -0
- package/src/offline-sync-changeset-generations.ts +549 -0
- package/src/offline-sync-embedding-generation.ts +272 -4
- package/src/offline-sync.ts +75 -162
- package/src/orchestration/orchestrator-helpers.ts +1 -1
- package/src/orchestration/recall-entry.ts +32 -16
- package/src/orchestration/recall-internal.ts +2 -2
- package/src/orchestration/recall-search-pipeline.ts +3 -0
- package/src/outcome-boost-config.ts +16 -0
- package/src/recall-retrieval-failure.test.ts +456 -4
- package/src/rerank-outcome.test.ts +218 -0
- package/src/rerank-outcome.ts +219 -0
- package/src/support-passport/offline-sync-guard.ts +16 -2
- package/src/types.ts +3 -3
- package/dist/chunk-H56VY4BY.js.map +0 -1
- package/dist/chunk-K6T33R4Q.js.map +0 -1
- package/dist/chunk-MCTM4YPL.js.map +0 -1
- package/dist/chunk-OCFXVDBZ.js.map +0 -1
- package/dist/chunk-PWF4JXKD.js.map +0 -1
- package/dist/chunk-QB57WIS6.js.map +0 -1
- package/dist/chunk-QI2E6ISQ.js.map +0 -1
- package/dist/chunk-S2GE2K36.js.map +0 -1
- /package/dist/{capsule-crypto-YO5QJ6L3.js.map → access-recall-corpus-versions.js.map} +0 -0
- /package/dist/{auto-sync-U5N3CB5Y.js.map → auto-sync-PAWBFQWL.js.map} +0 -0
- /package/dist/{contradiction-scan-TAGMOUQ2.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
- /package/dist/{chunk-RDJ6C7NZ.js.map → chunk-2IWBHZ3H.js.map} +0 -0
- /package/dist/{chunk-UP75KL3L.js.map → chunk-2JRB3Z5N.js.map} +0 -0
- /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
- /package/dist/{chunk-KN6CIN7I.js.map → chunk-32HO62I4.js.map} +0 -0
- /package/dist/{chunk-JLPNONPH.js.map → chunk-35A7GCHG.js.map} +0 -0
- /package/dist/{chunk-MXCAJKMA.js.map → chunk-37ZQYFX4.js.map} +0 -0
- /package/dist/{chunk-LW3HKRL7.js.map → chunk-3BTHXB7Z.js.map} +0 -0
- /package/dist/{chunk-C7V3KPKJ.js.map → chunk-47LTKAGL.js.map} +0 -0
- /package/dist/{chunk-3O5BB45T.js.map → chunk-4DXNOVNW.js.map} +0 -0
- /package/dist/{chunk-65I2LZEK.js.map → chunk-4G2YCKLT.js.map} +0 -0
- /package/dist/{chunk-OK52IY3W.js.map → chunk-4GEBLO7S.js.map} +0 -0
- /package/dist/{chunk-M6C7SOR6.js.map → chunk-4I6PEEFA.js.map} +0 -0
- /package/dist/{chunk-Z4TXB4K7.js.map → chunk-5BUCKFRE.js.map} +0 -0
- /package/dist/{chunk-BGI4NUAO.js.map → chunk-5S7SNRSJ.js.map} +0 -0
- /package/dist/{chunk-JVPWRNHA.js.map → chunk-5YR4UGF2.js.map} +0 -0
- /package/dist/{chunk-YJ7MW627.js.map → chunk-6BG364RN.js.map} +0 -0
- /package/dist/{chunk-D5BSQR63.js.map → chunk-76LNUSS5.js.map} +0 -0
- /package/dist/{chunk-7CRUDH7G.js.map → chunk-77HNHT6S.js.map} +0 -0
- /package/dist/{chunk-OWYHHW67.js.map → chunk-7XI2UJHL.js.map} +0 -0
- /package/dist/{chunk-BJVO4H5C.js.map → chunk-7Z2UKRNJ.js.map} +0 -0
- /package/dist/{chunk-2WLMWP2T.js.map → chunk-A3K2KKSG.js.map} +0 -0
- /package/dist/{chunk-AWG3TIAY.js.map → chunk-ACCOC6UM.js.map} +0 -0
- /package/dist/{chunk-3JDA3XF5.js.map → chunk-AEGNDL24.js.map} +0 -0
- /package/dist/{chunk-2NAD4YCI.js.map → chunk-AEUMONCD.js.map} +0 -0
- /package/dist/{chunk-C6U57KG4.js.map → chunk-AF5PW35O.js.map} +0 -0
- /package/dist/{chunk-IOSZHHJC.js.map → chunk-ANGZWYL2.js.map} +0 -0
- /package/dist/{chunk-6LYAEM54.js.map → chunk-AXHU56C3.js.map} +0 -0
- /package/dist/{chunk-GWM6T5EQ.js.map → chunk-BCGMG2RD.js.map} +0 -0
- /package/dist/{chunk-HXCJF4XU.js.map → chunk-BFIZXFUG.js.map} +0 -0
- /package/dist/{chunk-DBYAY6UW.js.map → chunk-BTOHGPHC.js.map} +0 -0
- /package/dist/{chunk-5X4MXNEU.js.map → chunk-C6HPNPNK.js.map} +0 -0
- /package/dist/{chunk-4MP7XR5J.js.map → chunk-CAKHZAXH.js.map} +0 -0
- /package/dist/{chunk-YSBL7VPO.js.map → chunk-CDWFWOSZ.js.map} +0 -0
- /package/dist/{chunk-QAW55ZHJ.js.map → chunk-CZ44FH45.js.map} +0 -0
- /package/dist/{chunk-T3FMRLWQ.js.map → chunk-D5HQ3VEX.js.map} +0 -0
- /package/dist/{chunk-S7LWX2PQ.js.map → chunk-DPG5HQLE.js.map} +0 -0
- /package/dist/{chunk-C7ZDKWPS.js.map → chunk-DVSAMW5T.js.map} +0 -0
- /package/dist/{chunk-WBYQA3VN.js.map → chunk-E5H4TM4Y.js.map} +0 -0
- /package/dist/{chunk-4RL3JOB3.js.map → chunk-EEDI3OXB.js.map} +0 -0
- /package/dist/{chunk-3TB2XQ3C.js.map → chunk-EUL3S3LE.js.map} +0 -0
- /package/dist/{chunk-Q4AUIFUA.js.map → chunk-F23U5YE7.js.map} +0 -0
- /package/dist/{chunk-ZZZ4I455.js.map → chunk-GDVORIFM.js.map} +0 -0
- /package/dist/{chunk-SWBC3UER.js.map → chunk-HCPUVB7S.js.map} +0 -0
- /package/dist/{chunk-R3X2T2LP.js.map → chunk-HFOY2SBG.js.map} +0 -0
- /package/dist/{chunk-LU7E2MXE.js.map → chunk-HQCUUVG2.js.map} +0 -0
- /package/dist/{chunk-FJLQXMTU.js.map → chunk-I6B3S62A.js.map} +0 -0
- /package/dist/{chunk-RBITPCMK.js.map → chunk-IDSSDL4W.js.map} +0 -0
- /package/dist/{chunk-B3OFQP5Y.js.map → chunk-IY47KPML.js.map} +0 -0
- /package/dist/{chunk-AXC4WSF3.js.map → chunk-JDOBIFBK.js.map} +0 -0
- /package/dist/{chunk-P2ODTYOF.js.map → chunk-JGXHQV5N.js.map} +0 -0
- /package/dist/{chunk-7LNHRQKR.js.map → chunk-JLIGUFPF.js.map} +0 -0
- /package/dist/{chunk-EDIH6X2P.js.map → chunk-JZ66PN72.js.map} +0 -0
- /package/dist/{chunk-BLVR4WYU.js.map → chunk-KICEAGKM.js.map} +0 -0
- /package/dist/{chunk-VDX2J7OX.js.map → chunk-KQAFEZQX.js.map} +0 -0
- /package/dist/{chunk-PEBHPCX2.js.map → chunk-KTG23JDX.js.map} +0 -0
- /package/dist/{chunk-BOZJD5PK.js.map → chunk-KYOZ5E6V.js.map} +0 -0
- /package/dist/{chunk-2DLWLNO4.js.map → chunk-L3TZXELN.js.map} +0 -0
- /package/dist/{chunk-VALKBYBN.js.map → chunk-M3N2TUZ7.js.map} +0 -0
- /package/dist/{chunk-76M5OK7V.js.map → chunk-M7T2NKET.js.map} +0 -0
- /package/dist/{chunk-Z5LP6ILP.js.map → chunk-MZAH3CBT.js.map} +0 -0
- /package/dist/{chunk-QI7K7BZ5.js.map → chunk-NJW2ZG64.js.map} +0 -0
- /package/dist/{chunk-CZJA2EQE.js.map → chunk-NSKXRTVZ.js.map} +0 -0
- /package/dist/{chunk-4O4XCBOS.js.map → chunk-NUSQ3YEL.js.map} +0 -0
- /package/dist/{chunk-4OQET73E.js.map → chunk-O57FCN42.js.map} +0 -0
- /package/dist/{chunk-WKY7N3L7.js.map → chunk-OEBUAC3O.js.map} +0 -0
- /package/dist/{chunk-Y23L4YJV.js.map → chunk-OEIA4IHU.js.map} +0 -0
- /package/dist/{chunk-66DKTOBY.js.map → chunk-OGZC2WUX.js.map} +0 -0
- /package/dist/{chunk-3SGTV7RD.js.map → chunk-P62DSJUK.js.map} +0 -0
- /package/dist/{chunk-FKD656D2.js.map → chunk-PH2V7EXZ.js.map} +0 -0
- /package/dist/{chunk-KKNZ7PUZ.js.map → chunk-QAIKLICT.js.map} +0 -0
- /package/dist/{chunk-SSUDD72S.js.map → chunk-QPWUG2S3.js.map} +0 -0
- /package/dist/{chunk-GZDTVYK2.js.map → chunk-R36IBI2M.js.map} +0 -0
- /package/dist/{chunk-W3XXFPRI.js.map → chunk-R5B3OWI4.js.map} +0 -0
- /package/dist/{chunk-VL4X7ZHC.js.map → chunk-RFIJRZ4K.js.map} +0 -0
- /package/dist/{chunk-AEHVZY3X.js.map → chunk-RPVHRZ5C.js.map} +0 -0
- /package/dist/{chunk-X5SHE2O3.js.map → chunk-RVBLCU5C.js.map} +0 -0
- /package/dist/{chunk-BUQKSQXL.js.map → chunk-S533KGX6.js.map} +0 -0
- /package/dist/{chunk-STEOT4DI.js.map → chunk-SCPHU3RW.js.map} +0 -0
- /package/dist/{chunk-LV5H6FTN.js.map → chunk-SFSD5Q6O.js.map} +0 -0
- /package/dist/{chunk-AE5U5NMS.js.map → chunk-SMLKHXPF.js.map} +0 -0
- /package/dist/{chunk-AEU4EQGV.js.map → chunk-T7R5HI6A.js.map} +0 -0
- /package/dist/{chunk-H5BJWPUI.js.map → chunk-TVQZAQPE.js.map} +0 -0
- /package/dist/{chunk-XOV7NRY5.js.map → chunk-U46P4UAR.js.map} +0 -0
- /package/dist/{chunk-DZ42MDZE.js.map → chunk-UCJINCZT.js.map} +0 -0
- /package/dist/{chunk-5E6RYRYW.js.map → chunk-UG5V3Z3R.js.map} +0 -0
- /package/dist/{chunk-IW3RMBPB.js.map → chunk-VAOC6GHN.js.map} +0 -0
- /package/dist/{chunk-6UQFJULG.js.map → chunk-VBNA2JEN.js.map} +0 -0
- /package/dist/{chunk-HLB7GKGG.js.map → chunk-VOZNBQNL.js.map} +0 -0
- /package/dist/{chunk-NYKIUQL6.js.map → chunk-WHIGRW7T.js.map} +0 -0
- /package/dist/{chunk-AZSGSRIM.js.map → chunk-WHTMVTU4.js.map} +0 -0
- /package/dist/{chunk-AERXJCOG.js.map → chunk-WL7N5VGG.js.map} +0 -0
- /package/dist/{chunk-TFA6HPOA.js.map → chunk-WQUGCOKF.js.map} +0 -0
- /package/dist/{chunk-A4VSOUCB.js.map → chunk-WTZQM74L.js.map} +0 -0
- /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
- /package/dist/{chunk-T2YX56QI.js.map → chunk-XWSUK5GL.js.map} +0 -0
- /package/dist/{chunk-ACX55QDO.js.map → chunk-XYOT5GQU.js.map} +0 -0
- /package/dist/{chunk-Z6EZCN6Z.js.map → chunk-Y7427SL7.js.map} +0 -0
- /package/dist/{chunk-4KN2JLQV.js.map → chunk-YHZWVDP7.js.map} +0 -0
- /package/dist/{chunk-5MNUBT7T.js.map → chunk-ZFTODDTX.js.map} +0 -0
- /package/dist/{chunk-VVX5PZFS.js.map → chunk-ZHXSOMYH.js.map} +0 -0
- /package/dist/{chunk-CRXRZA3G.js.map → chunk-ZQTYWSO3.js.map} +0 -0
- /package/dist/{resolution-K4A3VPKZ.js.map → contradiction-scan-GGRTVB7C.js.map} +0 -0
- /package/dist/{first-start-migration-7OATHJKB.js.map → first-start-migration-OM3PHMZO.js.map} +0 -0
- /package/dist/{tier-stats-VF6DS52E.js.map → tier-stats-M2FMMD2N.js.map} +0 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import {
|
|
2
|
+
memoryForResult
|
|
3
|
+
} from "./chunk-D3V3UMET.js";
|
|
4
|
+
import {
|
|
5
|
+
coerceNumber
|
|
6
|
+
} from "./chunk-PQVCH2AE.js";
|
|
7
|
+
import {
|
|
8
|
+
resolveRecallEnhancementCapabilities
|
|
9
|
+
} from "./chunk-2EMROIXS.js";
|
|
10
|
+
|
|
11
|
+
// src/rerank-outcome.ts
|
|
12
|
+
var OUTCOME_STATE_UNOBSERVED = "UNOBSERVED";
|
|
13
|
+
var OUTCOME_STATE_OBSERVED = "OBSERVED";
|
|
14
|
+
function scaleTextScore(score) {
|
|
15
|
+
if (!Number.isFinite(score) || score <= 0) return 0;
|
|
16
|
+
if (score >= 1) return 1;
|
|
17
|
+
return score;
|
|
18
|
+
}
|
|
19
|
+
function finiteNonNegative(value) {
|
|
20
|
+
if (value === void 0) return void 0;
|
|
21
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) return void 0;
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
function resolveOutcomeObservation(counters) {
|
|
25
|
+
if (!counters) return { state: OUTCOME_STATE_UNOBSERVED };
|
|
26
|
+
const successPresent = counters.success !== void 0;
|
|
27
|
+
const failPresent = counters.fail !== void 0;
|
|
28
|
+
if (!successPresent && !failPresent) return { state: OUTCOME_STATE_UNOBSERVED };
|
|
29
|
+
const success = finiteNonNegative(counters.success);
|
|
30
|
+
const fail = finiteNonNegative(counters.fail);
|
|
31
|
+
if (successPresent && success === void 0) return { state: OUTCOME_STATE_UNOBSERVED };
|
|
32
|
+
if (failPresent && fail === void 0) return { state: OUTCOME_STATE_UNOBSERVED };
|
|
33
|
+
const successes = success ?? 0;
|
|
34
|
+
const failures = fail ?? 0;
|
|
35
|
+
if (successes === 0 && failures === 0) return { state: OUTCOME_STATE_UNOBSERVED };
|
|
36
|
+
return {
|
|
37
|
+
state: OUTCOME_STATE_OBSERVED,
|
|
38
|
+
outcomeScore: successes / (successes + failures)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function blendOutcomeScore(textScore, observation, weight) {
|
|
42
|
+
if (weight === 0) return textScore;
|
|
43
|
+
const textUnit = scaleTextScore(textScore);
|
|
44
|
+
if (observation.state === OUTCOME_STATE_UNOBSERVED || observation.outcomeScore === void 0) {
|
|
45
|
+
return textUnit;
|
|
46
|
+
}
|
|
47
|
+
return (1 - weight) * textUnit + weight * observation.outcomeScore;
|
|
48
|
+
}
|
|
49
|
+
function assertOutcomeWeight(weight) {
|
|
50
|
+
if (!Number.isFinite(weight) || weight < 0 || weight > 1) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`outcomeBoostWeight must be a finite number in [0, 1] (got ${JSON.stringify(weight)}).`
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function compareRanked(left, right) {
|
|
57
|
+
const leftScore = Number.isFinite(left.score) ? left.score : Number.NEGATIVE_INFINITY;
|
|
58
|
+
const rightScore = Number.isFinite(right.score) ? right.score : Number.NEGATIVE_INFINITY;
|
|
59
|
+
if (leftScore !== rightScore) return leftScore > rightScore ? -1 : 1;
|
|
60
|
+
if (left.originalIndex === right.originalIndex) return 0;
|
|
61
|
+
return left.originalIndex < right.originalIndex ? -1 : 1;
|
|
62
|
+
}
|
|
63
|
+
function rerankWithOutcomePrior(candidates, weight) {
|
|
64
|
+
assertOutcomeWeight(weight);
|
|
65
|
+
const ranked = candidates.map((candidate, originalIndex) => {
|
|
66
|
+
const observation = resolveOutcomeObservation({
|
|
67
|
+
success: candidate.success,
|
|
68
|
+
fail: candidate.fail
|
|
69
|
+
});
|
|
70
|
+
return {
|
|
71
|
+
item: candidate.item,
|
|
72
|
+
textScore: candidate.textScore,
|
|
73
|
+
score: blendOutcomeScore(candidate.textScore, observation, weight),
|
|
74
|
+
state: observation.state,
|
|
75
|
+
originalIndex
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
if (weight === 0) return ranked;
|
|
79
|
+
ranked.sort(compareRanked);
|
|
80
|
+
return ranked;
|
|
81
|
+
}
|
|
82
|
+
function outcomePriorBoostActive(config) {
|
|
83
|
+
const weight = config.outcomeBoostWeight;
|
|
84
|
+
return resolveRecallEnhancementCapabilities(config).outcomeBoost === true && typeof weight === "number" && Number.isFinite(weight) && weight > 0;
|
|
85
|
+
}
|
|
86
|
+
function applyOutcomePriorScores(results, memoryByPath, config) {
|
|
87
|
+
const weight = config.outcomeBoostWeight;
|
|
88
|
+
if (typeof weight !== "number" || !Number.isFinite(weight) || weight < 0) return;
|
|
89
|
+
assertOutcomeWeight(weight);
|
|
90
|
+
if (weight === 0) return;
|
|
91
|
+
const ranked = results.map((result, originalIndex) => {
|
|
92
|
+
const memory = memoryForResult(memoryByPath, result);
|
|
93
|
+
const observation = resolveOutcomeObservation(
|
|
94
|
+
memory ? { success: memory.frontmatter.mw_success, fail: memory.frontmatter.mw_fail } : void 0
|
|
95
|
+
);
|
|
96
|
+
return {
|
|
97
|
+
result,
|
|
98
|
+
originalIndex,
|
|
99
|
+
score: blendOutcomeScore(result.score, observation, weight)
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
ranked.sort(compareRanked);
|
|
103
|
+
const next = ranked.map(
|
|
104
|
+
(row) => row.score === row.result.score ? row.result : { ...row.result, score: row.score }
|
|
105
|
+
);
|
|
106
|
+
results.splice(0, results.length, ...next);
|
|
107
|
+
}
|
|
108
|
+
function parseOutcomeBoostWeight(raw) {
|
|
109
|
+
if (raw === void 0 || raw === null || raw === "") return 0;
|
|
110
|
+
const parsed = coerceNumber(raw, "outcomeBoostWeight");
|
|
111
|
+
if (parsed === void 0 || parsed < 0 || parsed > 1) {
|
|
112
|
+
throw new Error(
|
|
113
|
+
`outcomeBoostWeight must be a number in [0, 1] (got ${JSON.stringify(raw)}).`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
return parsed;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export {
|
|
120
|
+
OUTCOME_STATE_UNOBSERVED,
|
|
121
|
+
OUTCOME_STATE_OBSERVED,
|
|
122
|
+
scaleTextScore,
|
|
123
|
+
resolveOutcomeObservation,
|
|
124
|
+
blendOutcomeScore,
|
|
125
|
+
rerankWithOutcomePrior,
|
|
126
|
+
outcomePriorBoostActive,
|
|
127
|
+
applyOutcomePriorScores,
|
|
128
|
+
parseOutcomeBoostWeight
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=chunk-A5ZYP4K5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/rerank-outcome.ts"],"sourcesContent":["/**\n * H1 outcome-prior blend (issue #1958). Scaffolding only — no experiment runner.\n *\n * Text scores map onto [0, 1] with a fixed clamp. The clamp is not a batch\n * min-max, so one candidate cannot move another's scale.\n *\n * UNOBSERVED (no past result) keeps that unit text score when the weight is\n * positive. It does not use the Memory Worth Laplace prior (s+1)/(s+f+2).\n * An observed result uses the maximum-likelihood rate success/(success+fail).\n *\n * Turning the blend on (enabled and weight > 0) clamps every candidate's text\n * score into [0, 1] before mixing, including UNOBSERVED items. Raw scores\n * outside that range can change order relative to the weight-0 path. Weight 0\n * does not clamp.\n *\n * Weight 0 is an identity on the raw input score: same values, same order.\n * The recall pipeline calls `applyOutcomePriorScores` only when\n * `outcomeBoostEnabled === true` and the weight is greater than 0, so the\n * production default stays on the existing sort.\n */\n\nimport {\n type RecallEnhancementConfigProjection,\n resolveRecallEnhancementCapabilities,\n} from \"./capabilities.js\";\nimport { coerceNumber } from \"./connectors/coerce.js\";\nimport { memoryForResult } from \"./recall-memory-map.js\";\nimport type { MemoryFile, QmdSearchResult } from \"./types.js\";\n\nexport const OUTCOME_STATE_UNOBSERVED = \"UNOBSERVED\" as const;\nexport const OUTCOME_STATE_OBSERVED = \"OBSERVED\" as const;\n\nexport type OutcomeObservationState =\n | typeof OUTCOME_STATE_UNOBSERVED\n | typeof OUTCOME_STATE_OBSERVED;\n\nexport interface OutcomeCounters {\n success?: number;\n fail?: number;\n}\n\nexport interface OutcomeObservation {\n state: OutcomeObservationState;\n /** Present only for OBSERVED. Maximum-likelihood rate in [0, 1]. */\n outcomeScore?: number;\n}\n\nexport function scaleTextScore(score: number): number {\n if (!Number.isFinite(score) || score <= 0) return 0;\n if (score >= 1) return 1;\n return score;\n}\n\nfunction finiteNonNegative(value: number | undefined): number | undefined {\n if (value === undefined) return undefined;\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) return undefined;\n return value;\n}\n\n/**\n * Both counters missing, explicit 0+0, or any present-but-invalid counter\n * (non-finite or negative) is UNOBSERVED. One counter present and positive\n * with the other missing is OBSERVED; the missing counter counts as 0.\n */\nexport function resolveOutcomeObservation(\n counters: OutcomeCounters | undefined,\n): OutcomeObservation {\n if (!counters) return { state: OUTCOME_STATE_UNOBSERVED };\n const successPresent = counters.success !== undefined;\n const failPresent = counters.fail !== undefined;\n if (!successPresent && !failPresent) return { state: OUTCOME_STATE_UNOBSERVED };\n\n const success = finiteNonNegative(counters.success);\n const fail = finiteNonNegative(counters.fail);\n if (successPresent && success === undefined) return { state: OUTCOME_STATE_UNOBSERVED };\n if (failPresent && fail === undefined) return { state: OUTCOME_STATE_UNOBSERVED };\n\n const successes = success ?? 0;\n const failures = fail ?? 0;\n if (successes === 0 && failures === 0) return { state: OUTCOME_STATE_UNOBSERVED };\n return {\n state: OUTCOME_STATE_OBSERVED,\n outcomeScore: successes / (successes + failures),\n };\n}\n\n/**\n * Weight 0 returns `textScore` unchanged. A positive weight clamps `textScore`\n * into [0, 1] first. UNOBSERVED stays on that clamped value. OBSERVED mixes it\n * with the success rate.\n */\nexport function blendOutcomeScore(\n textScore: number,\n observation: OutcomeObservation,\n weight: number,\n): number {\n if (weight === 0) return textScore;\n const textUnit = scaleTextScore(textScore);\n if (observation.state === OUTCOME_STATE_UNOBSERVED || observation.outcomeScore === undefined) {\n return textUnit;\n }\n return (1 - weight) * textUnit + weight * observation.outcomeScore;\n}\n\nexport interface OutcomePriorCandidate<T> {\n item: T;\n textScore: number;\n success?: number;\n fail?: number;\n}\n\nexport interface OutcomePriorRanked<T> {\n item: T;\n textScore: number;\n score: number;\n state: OutcomeObservationState;\n originalIndex: number;\n}\n\nfunction assertOutcomeWeight(weight: number): void {\n if (!Number.isFinite(weight) || weight < 0 || weight > 1) {\n throw new Error(\n `outcomeBoostWeight must be a finite number in [0, 1] (got ${JSON.stringify(weight)}).`,\n );\n }\n}\n\nfunction compareRanked(\n left: { score: number; originalIndex: number },\n right: { score: number; originalIndex: number },\n): number {\n const leftScore = Number.isFinite(left.score) ? left.score : Number.NEGATIVE_INFINITY;\n const rightScore = Number.isFinite(right.score) ? right.score : Number.NEGATIVE_INFINITY;\n if (leftScore !== rightScore) return leftScore > rightScore ? -1 : 1;\n if (left.originalIndex === right.originalIndex) return 0;\n return left.originalIndex < right.originalIndex ? -1 : 1;\n}\n\nexport function rerankWithOutcomePrior<T>(\n candidates: readonly OutcomePriorCandidate<T>[],\n weight: number,\n): OutcomePriorRanked<T>[] {\n assertOutcomeWeight(weight);\n const ranked = candidates.map((candidate, originalIndex) => {\n const observation = resolveOutcomeObservation({\n success: candidate.success,\n fail: candidate.fail,\n });\n return {\n item: candidate.item,\n textScore: candidate.textScore,\n score: blendOutcomeScore(candidate.textScore, observation, weight),\n state: observation.state,\n originalIndex,\n };\n });\n if (weight === 0) return ranked;\n ranked.sort(compareRanked);\n return ranked;\n}\n\nexport function outcomePriorBoostActive(\n config: RecallEnhancementConfigProjection & { outcomeBoostWeight?: number },\n): boolean {\n const weight = config.outcomeBoostWeight;\n return (\n resolveRecallEnhancementCapabilities(config).outcomeBoost === true &&\n typeof weight === \"number\" &&\n Number.isFinite(weight) &&\n weight > 0\n );\n}\n\nexport function applyOutcomePriorScores(\n results: QmdSearchResult[],\n memoryByPath: ReadonlyMap<string, MemoryFile>,\n config: { outcomeBoostWeight?: number },\n): void {\n const weight = config.outcomeBoostWeight;\n // Non-numbers, non-finite values, and negatives are a no-op. Zero is an\n // identity. assertOutcomeWeight is the upper bound (> 1 throws); it is not\n // a second copy of the positivity check.\n if (typeof weight !== \"number\" || !Number.isFinite(weight) || weight < 0) return;\n assertOutcomeWeight(weight);\n if (weight === 0) return;\n const ranked = results.map((result, originalIndex) => {\n const memory = memoryForResult(memoryByPath, result);\n const observation = resolveOutcomeObservation(\n memory\n ? { success: memory.frontmatter.mw_success, fail: memory.frontmatter.mw_fail }\n : undefined,\n );\n return {\n result,\n originalIndex,\n score: blendOutcomeScore(result.score, observation, weight),\n };\n });\n ranked.sort(compareRanked);\n const next = ranked.map((row) =>\n row.score === row.result.score ? row.result : { ...row.result, score: row.score },\n );\n results.splice(0, results.length, ...next);\n}\n\n/**\n * Absent / null / exact empty string → 0. A present value that is not a\n * finite number in [0, 1] throws. Boolean false is not a zero weight.\n */\nexport function parseOutcomeBoostWeight(raw: unknown): number {\n if (raw === undefined || raw === null || raw === \"\") return 0;\n const parsed = coerceNumber(raw, \"outcomeBoostWeight\");\n if (parsed === undefined || parsed < 0 || parsed > 1) {\n throw new Error(\n `outcomeBoostWeight must be a number in [0, 1] (got ${JSON.stringify(raw)}).`,\n );\n }\n return parsed;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-TBBDFYXW.js";
|
|
4
4
|
import {
|
|
5
5
|
StorageManager
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SCPHU3RW.js";
|
|
7
7
|
import {
|
|
8
8
|
bumpMemoryCorpusVersionForDir
|
|
9
9
|
} from "./chunk-XCB6QDL6.js";
|
|
@@ -765,4 +765,4 @@ export {
|
|
|
765
765
|
listMemoryGovernanceRuns,
|
|
766
766
|
readMemoryGovernanceRunArtifact
|
|
767
767
|
};
|
|
768
|
-
//# sourceMappingURL=chunk-
|
|
768
|
+
//# sourceMappingURL=chunk-ACCOC6UM.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
EXTRACTION_RESPONSE_PLACEHOLDERS
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-JLIGUFPF.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeRecallTokens
|
|
6
6
|
} from "./chunk-YCVB7X56.js";
|
|
@@ -69,4 +69,4 @@ export {
|
|
|
69
69
|
extractionAttributes,
|
|
70
70
|
extractionCueAnchors
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-AEGNDL24.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StorageManager
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SCPHU3RW.js";
|
|
4
4
|
import {
|
|
5
5
|
getCachedRuleMemories,
|
|
6
6
|
setCachedRuleMemories
|
|
@@ -119,4 +119,4 @@ export {
|
|
|
119
119
|
compareVerifiedSemanticRuleResults,
|
|
120
120
|
searchVerifiedSemanticRules
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
122
|
+
//# sourceMappingURL=chunk-AEUMONCD.js.map
|
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
} from "./chunk-N7QV3CMX.js";
|
|
9
9
|
import {
|
|
10
10
|
offlineSyncStorageForSnapshot
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2JRB3Z5N.js";
|
|
12
12
|
import {
|
|
13
13
|
iterateOfflineSyncSnapshotFileRecords
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-IVEHY2VT.js";
|
|
15
15
|
import {
|
|
16
16
|
createPersistedSupportPassportPrivateFileExclusion
|
|
17
17
|
} from "./chunk-PWPIERBM.js";
|
|
@@ -250,4 +250,4 @@ export {
|
|
|
250
250
|
retainExcludedClassifications,
|
|
251
251
|
createOfflineSyncManifestStream
|
|
252
252
|
};
|
|
253
|
-
//# sourceMappingURL=chunk-
|
|
253
|
+
//# sourceMappingURL=chunk-AF5PW35O.js.map
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "./chunk-E4RMZGRS.js";
|
|
25
25
|
import {
|
|
26
26
|
RECALL_WHY_MCP_TOOLS
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-WHTMVTU4.js";
|
|
28
28
|
import {
|
|
29
29
|
sharedContextMcpTools
|
|
30
30
|
} from "./chunk-JATHBCAV.js";
|
|
@@ -43,19 +43,19 @@ import {
|
|
|
43
43
|
} from "./chunk-AB3A7EFH.js";
|
|
44
44
|
import {
|
|
45
45
|
applyToolOutputSchemas
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-2FLFJTCI.js";
|
|
47
47
|
import {
|
|
48
48
|
getOperation
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-GXETU7AE.js";
|
|
50
50
|
import {
|
|
51
51
|
WHO_KNOWS_MCP_TOOLS
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-VBNA2JEN.js";
|
|
53
53
|
import {
|
|
54
54
|
PROMOTION_CANDIDATES_MCP_TOOLS
|
|
55
55
|
} from "./chunk-PO7NXNGC.js";
|
|
56
56
|
import {
|
|
57
57
|
validateRequest
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-3BTHXB7Z.js";
|
|
59
59
|
import {
|
|
60
60
|
assertOperationAllowed,
|
|
61
61
|
capabilityAllowsOp,
|
|
@@ -4023,4 +4023,4 @@ export {
|
|
|
4023
4023
|
MCP_MIGRATED_OPERATIONS,
|
|
4024
4024
|
EngramMcpServer
|
|
4025
4025
|
};
|
|
4026
|
-
//# sourceMappingURL=chunk-
|
|
4026
|
+
//# sourceMappingURL=chunk-ANGZWYL2.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EMBEDDING_SHARD_FILE_PATTERN
|
|
3
|
+
} from "./chunk-TYT4TEQV.js";
|
|
1
4
|
import {
|
|
2
5
|
matchesOfflineSyncDefaultExclude
|
|
3
6
|
} from "./chunk-4NSLQ7EU.js";
|
|
4
7
|
import {
|
|
5
8
|
resolveSafeArchiveTarget
|
|
6
9
|
} from "./chunk-GCGJW34D.js";
|
|
7
|
-
import {
|
|
8
|
-
EMBEDDING_SHARD_FILE_PATTERN
|
|
9
|
-
} from "./chunk-TYT4TEQV.js";
|
|
10
10
|
import {
|
|
11
11
|
assertEmbeddingGenerationLockHeld,
|
|
12
12
|
embeddingGenerationLockPath,
|
|
@@ -151,6 +151,7 @@ async function applyEmbeddingGenerationTransaction(input) {
|
|
|
151
151
|
if (await store.recoverIfInterrupted(fence)) {
|
|
152
152
|
await resolveSafeArchiveTarget(root, shardDirRel);
|
|
153
153
|
}
|
|
154
|
+
const justifiedRemovals = input.justifiedRemovals ?? /* @__PURE__ */ new Set();
|
|
154
155
|
const baseStates = baseStatesForGeneration(input.baseStates, shardDirRel);
|
|
155
156
|
if (baseStates.size > 0) {
|
|
156
157
|
const localCensus = await censusGenerationState(io, root, markerRel, markerAbs, shardDirAbs, shardDirRel);
|
|
@@ -158,10 +159,18 @@ async function applyEmbeddingGenerationTransaction(input) {
|
|
|
158
159
|
const censusArr = [...localCensus].map(([relPath, sha256]) => ({ path: relPath, sha256 }));
|
|
159
160
|
const deferrals = divergedEmbeddingGenerationDeferrals({
|
|
160
161
|
incomingFiles: incomingGenerationStates(input),
|
|
161
|
-
|
|
162
|
+
// A pre-authorized removal keeps its base entry only while still on
|
|
163
|
+
// disk (digest auth): present members are compared normally — a
|
|
164
|
+
// daemon rewrite still defers — while an absent member is already
|
|
165
|
+
// applied and must not diverge the retry (#3150 review).
|
|
166
|
+
baseFiles: baseArr.filter((member) => !justifiedRemovals.has(member.path) || localCensus.has(member.path)),
|
|
162
167
|
currentFiles: censusArr
|
|
163
168
|
});
|
|
164
|
-
const
|
|
169
|
+
const incomingShardPaths = new Set(input.incomingShardPaths);
|
|
170
|
+
const addedOrRemovedSinceBase = censusArr.some((member) => !baseStates.has(member.path) && !justifiedRemovals.has(member.path) && // An incoming member found in the census is the apply's own
|
|
171
|
+
// already-published work (response-loss retry), not a local
|
|
172
|
+
// addition; its bytes were verified above.
|
|
173
|
+
!incomingShardPaths.has(member.path)) || baseArr.some((member) => !localCensus.has(member.path) && !justifiedRemovals.has(member.path));
|
|
165
174
|
if (deferrals.length > 0 || addedOrRemovedSinceBase) {
|
|
166
175
|
const handled = new Set(input.incomingShardPaths);
|
|
167
176
|
if (input.incomingMarker) handled.add(input.incomingMarker.path);
|
|
@@ -180,6 +189,31 @@ async function applyEmbeddingGenerationTransaction(input) {
|
|
|
180
189
|
deferredLocalDivergence: true
|
|
181
190
|
};
|
|
182
191
|
}
|
|
192
|
+
} else if (input.freshCreateClaim) {
|
|
193
|
+
const localCensus = await censusGenerationState(io, root, markerRel, markerAbs, shardDirAbs, shardDirRel);
|
|
194
|
+
if (localCensus.size > 0) {
|
|
195
|
+
const incomingArr = incomingGenerationStates(input).sort((left, right) => left.path.localeCompare(right.path));
|
|
196
|
+
const censusArr = [...localCensus].map(([relPath, sha256]) => ({ path: relPath, sha256 })).sort((left, right) => left.path.localeCompare(right.path));
|
|
197
|
+
const identical = censusArr.length === incomingArr.length && censusArr.every((member, index) => member.path === incomingArr[index]?.path && member.sha256 === incomingArr[index]?.sha256);
|
|
198
|
+
if (!identical) {
|
|
199
|
+
const handled = new Set(input.incomingShardPaths);
|
|
200
|
+
if (input.incomingMarker) handled.add(input.incomingMarker.path);
|
|
201
|
+
if (input.incomingMarkerPresent) handled.add(markerRel);
|
|
202
|
+
for (const relPath of localCensus.keys()) handled.add(relPath);
|
|
203
|
+
log.warn(
|
|
204
|
+
`embedding generation ${shardDirRel} deferred: base-less creation does not match the existing local generation under the mutation lock; nothing published, nothing removed`
|
|
205
|
+
);
|
|
206
|
+
return {
|
|
207
|
+
shardDirRel,
|
|
208
|
+
upserted: 0,
|
|
209
|
+
deleted: 0,
|
|
210
|
+
writtenStates: /* @__PURE__ */ new Map(),
|
|
211
|
+
removedPaths: /* @__PURE__ */ new Set(),
|
|
212
|
+
handledPaths: handled,
|
|
213
|
+
deferredLocalDivergence: true
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
}
|
|
183
217
|
}
|
|
184
218
|
const published = /* @__PURE__ */ new Map();
|
|
185
219
|
let identity = null;
|
|
@@ -301,6 +335,23 @@ async function applyEmbeddingGenerationTransaction(input) {
|
|
|
301
335
|
log.warn(`embedding generation ${shardDirRel}: marker cleanup deferred after publish: ${err}`);
|
|
302
336
|
}
|
|
303
337
|
}
|
|
338
|
+
if (input.deletionMtimeByPath !== void 0 && io.deleteFile) {
|
|
339
|
+
let firstTombstoneError = null;
|
|
340
|
+
for (const relPath of removedPaths) {
|
|
341
|
+
try {
|
|
342
|
+
await io.deleteFile({
|
|
343
|
+
root: root.abs,
|
|
344
|
+
path: relPath,
|
|
345
|
+
filePath: await resolveSafeArchiveTarget(root, relPath),
|
|
346
|
+
mtimeMs: input.deletionMtimeByPath.get(relPath) ?? input.now
|
|
347
|
+
});
|
|
348
|
+
} catch (err) {
|
|
349
|
+
firstTombstoneError ??= err;
|
|
350
|
+
log.warn(`embedding generation ${shardDirRel}: tombstone recording failed for ${relPath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if (firstTombstoneError) throw firstTombstoneError;
|
|
354
|
+
}
|
|
304
355
|
return {
|
|
305
356
|
shardDirRel,
|
|
306
357
|
upserted: published.size,
|
|
@@ -515,6 +566,103 @@ function divergedEmbeddingGenerationDeferrals(options) {
|
|
|
515
566
|
}
|
|
516
567
|
return deferred.sort((left, right) => left.localeCompare(right));
|
|
517
568
|
}
|
|
569
|
+
async function applyIncomingEmbeddingGenerations(options) {
|
|
570
|
+
const incomingGenerations = detectIncomingEmbeddingGenerations(options.incomingMap.keys());
|
|
571
|
+
const generationDirs = /* @__PURE__ */ new Set([
|
|
572
|
+
...incomingGenerations.shardDirs,
|
|
573
|
+
...incomingGenerations.legacyMarkerDirs
|
|
574
|
+
]);
|
|
575
|
+
const deferredGenerationDirs = /* @__PURE__ */ new Set();
|
|
576
|
+
for (const deferredPath of options.deferredPaths) {
|
|
577
|
+
const membership = embeddingGenerationMembership(deferredPath);
|
|
578
|
+
if (membership) deferredGenerationDirs.add(membership.shardDir);
|
|
579
|
+
}
|
|
580
|
+
const transactionResults = [];
|
|
581
|
+
for (const shardDir of generationDirs) {
|
|
582
|
+
if (options.omittedGenerationDirs.has(shardDir)) {
|
|
583
|
+
throw new EmbeddingIndexStorageError(
|
|
584
|
+
`offline sync snapshot both includes and omits embedding generation ${shardDir}; refusing to apply`
|
|
585
|
+
);
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
if (generationDirs.size > 0 && options.customIoPresent && !(options.io.writeStagingFile && options.io.readStagingFile)) {
|
|
589
|
+
throw new EmbeddingIndexStorageError(
|
|
590
|
+
"refusing to replace embedding generation: custom storage IO requires both writeStagingFile and readStagingFile hooks; unencrypted raw staging would plaintext-downgrade the index"
|
|
591
|
+
);
|
|
592
|
+
}
|
|
593
|
+
for (const shardDir of generationDirs) {
|
|
594
|
+
if (deferredGenerationDirs.has(shardDir)) continue;
|
|
595
|
+
if (incomingGenerations.legacyMarkerDirs.has(shardDir) && !incomingGenerations.shardDirs.has(shardDir)) {
|
|
596
|
+
const markerRel = [...options.incomingMap.keys()].find(
|
|
597
|
+
(relPath) => embeddingMarkerDirOf(relPath) === shardDir.slice(0, -`/${EMBEDDING_SHARD_DIR_BASENAME}`.length)
|
|
598
|
+
);
|
|
599
|
+
if (!markerRel) continue;
|
|
600
|
+
transactionResults.push(await applyEmbeddingGenerationTransaction({
|
|
601
|
+
root: options.root,
|
|
602
|
+
shardDirRel: shardDir,
|
|
603
|
+
incomingShardPaths: [],
|
|
604
|
+
incomingMarker: {
|
|
605
|
+
path: markerRel,
|
|
606
|
+
sha256: options.incomingMap.get(markerRel).sha256,
|
|
607
|
+
buffer: options.incomingBuffers.get(markerRel) ?? null
|
|
608
|
+
},
|
|
609
|
+
incomingMarkerPresent: false,
|
|
610
|
+
incomingShardStates: /* @__PURE__ */ new Map(),
|
|
611
|
+
incomingBuffers: options.incomingBuffers,
|
|
612
|
+
baseStates: options.baseMap,
|
|
613
|
+
io: options.io,
|
|
614
|
+
now: options.now
|
|
615
|
+
}));
|
|
616
|
+
continue;
|
|
617
|
+
}
|
|
618
|
+
transactionResults.push(await applyEmbeddingGenerationTransaction({
|
|
619
|
+
root: options.root,
|
|
620
|
+
shardDirRel: shardDir,
|
|
621
|
+
incomingShardPaths: [...options.incomingMap.keys()].filter((relPath) => embeddingShardDirOf(relPath) === shardDir).sort(),
|
|
622
|
+
incomingMarker: null,
|
|
623
|
+
incomingMarkerPresent: Boolean(
|
|
624
|
+
incomingGenerations.legacyMarkerDirs.has(shardDir)
|
|
625
|
+
),
|
|
626
|
+
incomingShardStates: new Map(
|
|
627
|
+
[...options.incomingMap.values()].filter((state) => embeddingShardDirOf(state.path) === shardDir).map((state) => [state.path, state])
|
|
628
|
+
),
|
|
629
|
+
incomingBuffers: options.incomingBuffers,
|
|
630
|
+
baseStates: options.baseMap,
|
|
631
|
+
io: options.io,
|
|
632
|
+
now: options.now
|
|
633
|
+
}));
|
|
634
|
+
}
|
|
635
|
+
const localGenerationDirs = /* @__PURE__ */ new Set();
|
|
636
|
+
for (const relPath of options.currentMap.keys()) {
|
|
637
|
+
const membership = embeddingGenerationMembership(relPath);
|
|
638
|
+
if (membership?.kind === "shard") localGenerationDirs.add(membership.shardDir);
|
|
639
|
+
}
|
|
640
|
+
for (const shardDir of localGenerationDirs) {
|
|
641
|
+
if (generationDirs.has(shardDir) || deferredGenerationDirs.has(shardDir) || options.omittedGenerationDirs.has(shardDir)) {
|
|
642
|
+
continue;
|
|
643
|
+
}
|
|
644
|
+
const localMembers = [...options.currentMap.keys()].filter(
|
|
645
|
+
(relPath) => embeddingGenerationMembership(relPath)?.shardDir === shardDir
|
|
646
|
+
);
|
|
647
|
+
if (localMembers.length === 0) continue;
|
|
648
|
+
const baseMembers = localMembers.filter((relPath) => options.baseMap.has(relPath));
|
|
649
|
+
const tombstonedMembers = options.deletionMtimeByPath === void 0 ? [] : [...options.deletionMtimeByPath.keys()].filter(
|
|
650
|
+
(relPath) => embeddingGenerationMembership(relPath)?.shardDir === shardDir
|
|
651
|
+
);
|
|
652
|
+
const tombstoneCovered = tombstonedMembers.length > 0;
|
|
653
|
+
const baseEvidenced = baseMembers.length > 0 && baseMembers.every((relPath) => !options.incomingMap.has(relPath));
|
|
654
|
+
if (!tombstoneCovered && !baseEvidenced) continue;
|
|
655
|
+
transactionResults.push(await applyEmbeddingGenerationRemoval({
|
|
656
|
+
root: options.root,
|
|
657
|
+
shardDirRel: shardDir,
|
|
658
|
+
io: { deleteFile: options.io.deleteFile, readFile: options.io.readFile },
|
|
659
|
+
deletionMtimeByPath: options.deletionMtimeByPath,
|
|
660
|
+
baseStates: options.baseMap,
|
|
661
|
+
now: options.now
|
|
662
|
+
}));
|
|
663
|
+
}
|
|
664
|
+
return { transactionResults, deferredGenerationDirs };
|
|
665
|
+
}
|
|
518
666
|
|
|
519
667
|
export {
|
|
520
668
|
EMBEDDING_SHARD_DIR_BASENAME,
|
|
@@ -530,6 +678,7 @@ export {
|
|
|
530
678
|
resolvePushEmbeddingGenerationState,
|
|
531
679
|
storageBackedIndexStoreIo,
|
|
532
680
|
applyEmbeddingGenerationRemoval,
|
|
533
|
-
divergedEmbeddingGenerationDeferrals
|
|
681
|
+
divergedEmbeddingGenerationDeferrals,
|
|
682
|
+
applyIncomingEmbeddingGenerations
|
|
534
683
|
};
|
|
535
|
-
//# sourceMappingURL=chunk-
|
|
684
|
+
//# sourceMappingURL=chunk-AXGJMDBS.js.map
|