@remnic/core 9.3.659 → 9.3.661
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-cli.js +22 -22
- package/dist/access-http.d.ts +5 -5
- package/dist/access-http.js +15 -14
- package/dist/access-mcp.d.ts +5 -5
- package/dist/access-mcp.js +14 -13
- package/dist/{access-service-D_nbpexW.d.ts → access-service-D0SLB4MH.d.ts} +2 -2
- package/dist/access-service.d.ts +5 -5
- package/dist/access-service.js +13 -12
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +3 -3
- package/dist/briefing.d.ts +1 -1
- package/dist/briefing.js +4 -3
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer.d.ts +1 -1
- package/dist/calibration.d.ts +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +5 -4
- package/dist/causal-consolidation.js.map +1 -1
- package/dist/{chunk-QRSKPI62.js → chunk-34NSUPWS.js} +110 -25
- package/dist/chunk-34NSUPWS.js.map +1 -0
- package/dist/{chunk-SCPFRKIT.js → chunk-42JKGUFJ.js} +6 -2
- package/dist/{chunk-SCPFRKIT.js.map → chunk-42JKGUFJ.js.map} +1 -1
- package/dist/{chunk-FWIROLS6.js → chunk-44VFF3BB.js} +18 -16
- package/dist/chunk-44VFF3BB.js.map +1 -0
- package/dist/{chunk-5PFIMBJJ.js → chunk-4SYURHI6.js} +12 -12
- package/dist/{chunk-2VCTTEJM.js → chunk-5G2DNO54.js} +3 -3
- package/dist/{chunk-3R6OP33G.js → chunk-7F7LC6HW.js} +3 -3
- package/dist/{chunk-ZCMO46YY.js → chunk-A7EF2XRO.js} +2 -2
- package/dist/{chunk-BNUAOLDK.js → chunk-ANJOULTP.js} +2 -2
- package/dist/{chunk-CPPS65WS.js → chunk-AWJ2FHCF.js} +84 -17
- package/dist/chunk-AWJ2FHCF.js.map +1 -0
- package/dist/{chunk-4PLOQDBB.js → chunk-AX5O25EF.js} +7 -5
- package/dist/chunk-AX5O25EF.js.map +1 -0
- package/dist/{chunk-QFKRE7AU.js → chunk-BP5O3GYD.js} +4 -4
- package/dist/{chunk-BKRIAXTU.js → chunk-D2EFNQMY.js} +2 -2
- package/dist/{chunk-6M4LYWA2.js → chunk-D44FQVCU.js} +5 -5
- package/dist/{chunk-SSSXWIBP.js → chunk-EMSC4P66.js} +5 -5
- package/dist/{chunk-MBZAESQ3.js → chunk-F6O7IOS3.js} +2 -2
- package/dist/{chunk-6G5JEN55.js → chunk-FZC2WSDB.js} +2 -2
- package/dist/{chunk-KI6QM5AV.js → chunk-GY3V3SUI.js} +2 -2
- package/dist/{chunk-EKQMQQ3U.js → chunk-LFZUFZQR.js} +10 -2
- package/dist/chunk-LFZUFZQR.js.map +1 -0
- package/dist/{chunk-7VWDC7AD.js → chunk-MHYRRV43.js} +122 -29
- package/dist/chunk-MHYRRV43.js.map +1 -0
- package/dist/{chunk-VJYFXDCZ.js → chunk-NMPEJV5M.js} +3 -3
- package/dist/{chunk-7KSPKZIQ.js → chunk-PXVFMQLD.js} +3 -3
- package/dist/{chunk-FIS5RT6K.js → chunk-QXHBWFR3.js} +2 -2
- package/dist/{chunk-G2VVBWFU.js → chunk-RQGR3ETH.js} +2 -2
- package/dist/{chunk-GGL7R2L2.js → chunk-RQRKQJYM.js} +4 -4
- package/dist/{chunk-JI3LQFJH.js → chunk-TBLGI2LT.js} +2 -2
- package/dist/{chunk-RVT6U6PV.js → chunk-TWAJICBN.js} +2 -2
- package/dist/{chunk-46RXRASB.js → chunk-TYIXG4VR.js} +3 -3
- package/dist/{chunk-5PLUC5OB.js → chunk-WSQG37DV.js} +2 -2
- package/dist/{chunk-M3VYPE2H.js → chunk-YNQ6DFSV.js} +1 -1
- package/dist/chunk-YNQ6DFSV.js.map +1 -0
- package/dist/{chunk-GRYAECRV.js → chunk-ZJH723NM.js} +2 -2
- package/dist/{cli-aYxSuPvP.d.ts → cli-C6twwe84.d.ts} +3 -3
- package/dist/cli.d.ts +5 -5
- package/dist/cli.js +24 -23
- package/dist/compounding/engine.d.ts +1 -1
- package/dist/compounding/engine.js +4 -3
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +4 -3
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +4 -3
- package/dist/consolidation-provenance-check.d.ts +1 -1
- package/dist/consolidation-undo.d.ts +1 -1
- package/dist/contradiction/index.d.ts +1 -1
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-retrieval.d.ts +1 -1
- package/dist/entity-retrieval.js +4 -3
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +3 -3
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction.d.ts +1 -1
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/identity-continuity.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +30 -30
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +4 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -3
- package/dist/maintenance/rebuild-memory-projection.js +5 -4
- package/dist/mcp-memory-inspector-app.d.ts +5 -5
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +44 -2
- package/dist/memory-cache.js +6 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +1 -1
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +1 -1
- package/dist/namespaces/migrate.js +12 -11
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +9 -8
- package/dist/namespaces/storage.d.ts +1 -1
- package/dist/namespaces/storage.js +4 -3
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +1 -1
- package/dist/operator-toolkit.js +14 -13
- package/dist/{orchestrator-D1wcmPNj.d.ts → orchestrator-Cg1UkvmO.d.ts} +2 -2
- package/dist/orchestrator.d.ts +3 -3
- package/dist/orchestrator.js +20 -20
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/qmd-recall-cache.d.ts +5 -2
- package/dist/qmd-recall-cache.js +3 -1
- package/dist/qmd.d.ts +17 -1
- package/dist/qmd.js +4 -3
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +2 -1
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +17 -1
- package/dist/recall-state.js +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray.d.ts +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/retrieval-agents.d.ts +1 -1
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/schemas.d.ts +24 -24
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/factory.js +8 -7
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +8 -7
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +21 -2
- package/dist/search/port.js +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-MWOdNtSE.d.ts → semantic-consolidation-BICZvQ3C.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +5 -4
- package/dist/semantic-rule-promotion.js +4 -3
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +4 -3
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +1 -1
- package/dist/signal.d.ts +1 -1
- package/dist/storage.d.ts +1 -1
- package/dist/storage.js +3 -2
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/temporal-supersession.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +1 -1
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/{types-CgcCpUrf.d.ts → types-D96bCB3C.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +4 -3
- package/package.json +1 -1
- package/src/memory-cache.test.ts +30 -0
- package/src/memory-cache.ts +129 -16
- package/src/namespaces/search.ts +16 -0
- package/src/orchestrator.ts +144 -3
- package/src/qmd-recall-cache.ts +6 -0
- package/src/qmd.ts +131 -18
- package/src/recall-state.ts +47 -21
- package/src/search/port.ts +25 -0
- package/src/storage.ts +27 -3
- package/dist/chunk-4PLOQDBB.js.map +0 -1
- package/dist/chunk-7VWDC7AD.js.map +0 -1
- package/dist/chunk-CPPS65WS.js.map +0 -1
- package/dist/chunk-EKQMQQ3U.js.map +0 -1
- package/dist/chunk-FWIROLS6.js.map +0 -1
- package/dist/chunk-M3VYPE2H.js.map +0 -1
- package/dist/chunk-QRSKPI62.js.map +0 -1
- /package/dist/{chunk-5PFIMBJJ.js.map → chunk-4SYURHI6.js.map} +0 -0
- /package/dist/{chunk-2VCTTEJM.js.map → chunk-5G2DNO54.js.map} +0 -0
- /package/dist/{chunk-3R6OP33G.js.map → chunk-7F7LC6HW.js.map} +0 -0
- /package/dist/{chunk-ZCMO46YY.js.map → chunk-A7EF2XRO.js.map} +0 -0
- /package/dist/{chunk-BNUAOLDK.js.map → chunk-ANJOULTP.js.map} +0 -0
- /package/dist/{chunk-QFKRE7AU.js.map → chunk-BP5O3GYD.js.map} +0 -0
- /package/dist/{chunk-BKRIAXTU.js.map → chunk-D2EFNQMY.js.map} +0 -0
- /package/dist/{chunk-6M4LYWA2.js.map → chunk-D44FQVCU.js.map} +0 -0
- /package/dist/{chunk-SSSXWIBP.js.map → chunk-EMSC4P66.js.map} +0 -0
- /package/dist/{chunk-MBZAESQ3.js.map → chunk-F6O7IOS3.js.map} +0 -0
- /package/dist/{chunk-6G5JEN55.js.map → chunk-FZC2WSDB.js.map} +0 -0
- /package/dist/{chunk-KI6QM5AV.js.map → chunk-GY3V3SUI.js.map} +0 -0
- /package/dist/{chunk-VJYFXDCZ.js.map → chunk-NMPEJV5M.js.map} +0 -0
- /package/dist/{chunk-7KSPKZIQ.js.map → chunk-PXVFMQLD.js.map} +0 -0
- /package/dist/{chunk-FIS5RT6K.js.map → chunk-QXHBWFR3.js.map} +0 -0
- /package/dist/{chunk-G2VVBWFU.js.map → chunk-RQGR3ETH.js.map} +0 -0
- /package/dist/{chunk-GGL7R2L2.js.map → chunk-RQRKQJYM.js.map} +0 -0
- /package/dist/{chunk-JI3LQFJH.js.map → chunk-TBLGI2LT.js.map} +0 -0
- /package/dist/{chunk-RVT6U6PV.js.map → chunk-TWAJICBN.js.map} +0 -0
- /package/dist/{chunk-46RXRASB.js.map → chunk-TYIXG4VR.js.map} +0 -0
- /package/dist/{chunk-5PLUC5OB.js.map → chunk-WSQG37DV.js.map} +0 -0
- /package/dist/{chunk-GRYAECRV.js.map → chunk-ZJH723NM.js.map} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NamespaceStorageRouter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TBLGI2LT.js";
|
|
4
4
|
import {
|
|
5
5
|
namespaceCollectionName
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LFZUFZQR.js";
|
|
7
7
|
import {
|
|
8
8
|
namespaceIdentityFromToken,
|
|
9
9
|
namespaceIdentityToken
|
|
10
10
|
} from "./chunk-ZFXCQPNO.js";
|
|
11
11
|
import {
|
|
12
12
|
ALL_CATEGORY_DIRS
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-AX5O25EF.js";
|
|
14
14
|
import {
|
|
15
15
|
isSafeRouteNamespace
|
|
16
16
|
} from "./chunk-U3PN77QT.js";
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
verifyNamespaces,
|
|
205
205
|
runNamespaceMigration
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-BP5O3GYD.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runPostConsolidationMaterialize
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ANJOULTP.js";
|
|
4
4
|
import {
|
|
5
5
|
discoverMemoryExtensions,
|
|
6
6
|
renderExtensionsBlock,
|
|
@@ -217,4 +217,4 @@ export {
|
|
|
217
217
|
buildExtensionsBlockForConsolidation,
|
|
218
218
|
materializeAfterSemanticConsolidation
|
|
219
219
|
};
|
|
220
|
-
//# sourceMappingURL=chunk-
|
|
220
|
+
//# sourceMappingURL=chunk-D2EFNQMY.js.map
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
listMemoryGovernanceRuns,
|
|
28
28
|
readMemoryGovernanceRunArtifact,
|
|
29
29
|
runMemoryGovernance
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-A7EF2XRO.js";
|
|
31
31
|
import {
|
|
32
32
|
clusterByKey,
|
|
33
33
|
combineNamespaces,
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
} from "./chunk-2MXEVL75.js";
|
|
56
56
|
import {
|
|
57
57
|
namespaceCollectionName
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-LFZUFZQR.js";
|
|
59
59
|
import {
|
|
60
60
|
namespaceIdentityFromToken
|
|
61
61
|
} from "./chunk-ZFXCQPNO.js";
|
|
@@ -94,10 +94,10 @@ import {
|
|
|
94
94
|
buildBriefing,
|
|
95
95
|
parseBriefingFocus,
|
|
96
96
|
parseBriefingWindow
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-GY3V3SUI.js";
|
|
98
98
|
import {
|
|
99
99
|
parseEntityFile
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-AX5O25EF.js";
|
|
101
101
|
import {
|
|
102
102
|
DEFAULT_RECALL_DISCLOSURE,
|
|
103
103
|
isRecallDisclosure
|
|
@@ -5579,4 +5579,4 @@ export {
|
|
|
5579
5579
|
shapeMemorySummary,
|
|
5580
5580
|
EngramAccessService
|
|
5581
5581
|
};
|
|
5582
|
-
//# sourceMappingURL=chunk-
|
|
5582
|
+
//# sourceMappingURL=chunk-D44FQVCU.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MeilisearchBackend
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FZC2WSDB.js";
|
|
4
4
|
import {
|
|
5
5
|
NoopSearchBackend
|
|
6
6
|
} from "./chunk-CYEPCZN5.js";
|
|
7
7
|
import {
|
|
8
8
|
OramaBackend
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ZJH723NM.js";
|
|
10
10
|
import {
|
|
11
11
|
RemoteSearchBackend
|
|
12
12
|
} from "./chunk-JOASJWQR.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-RN7MUWON.js";
|
|
16
16
|
import {
|
|
17
17
|
LanceDbBackend
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-WSQG37DV.js";
|
|
19
19
|
import {
|
|
20
20
|
createConversationIndexBackend
|
|
21
21
|
} from "./chunk-7OGJQP7T.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
} from "./chunk-E6ZDCOHM.js";
|
|
25
25
|
import {
|
|
26
26
|
QmdClient
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-34NSUPWS.js";
|
|
28
28
|
import {
|
|
29
29
|
log
|
|
30
30
|
} from "./chunk-2ODBA7MQ.js";
|
|
@@ -170,4 +170,4 @@ export {
|
|
|
170
170
|
createConversationSearchBackend,
|
|
171
171
|
createConversationIndexRuntime
|
|
172
172
|
};
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
173
|
+
//# sourceMappingURL=chunk-EMSC4P66.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-SFQ6QNL7.js";
|
|
7
7
|
import {
|
|
8
8
|
StorageManager
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AX5O25EF.js";
|
|
10
10
|
import {
|
|
11
11
|
buildLifecycleEventsForMemory,
|
|
12
12
|
sortMemoryLifecycleEvents
|
|
@@ -74,4 +74,4 @@ export {
|
|
|
74
74
|
backupExistingLedger,
|
|
75
75
|
rebuildMemoryLifecycleLedger
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-F6O7IOS3.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-CINZGPSJ.js";
|
|
8
8
|
import {
|
|
9
9
|
resolveEnsureCollectionArgs
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YNQ6DFSV.js";
|
|
11
11
|
import {
|
|
12
12
|
log
|
|
13
13
|
} from "./chunk-2ODBA7MQ.js";
|
|
@@ -245,4 +245,4 @@ function isMeilisearchIndexNotFoundError(err) {
|
|
|
245
245
|
export {
|
|
246
246
|
MeilisearchBackend
|
|
247
247
|
};
|
|
248
|
-
//# sourceMappingURL=chunk-
|
|
248
|
+
//# sourceMappingURL=chunk-FZC2WSDB.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
StorageManager,
|
|
3
3
|
normalizeEntityName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AX5O25EF.js";
|
|
5
5
|
import {
|
|
6
6
|
extractJsonCandidates
|
|
7
7
|
} from "./chunk-RGMVMVMF.js";
|
|
@@ -870,4 +870,4 @@ export {
|
|
|
870
870
|
resolveBriefingSaveDir,
|
|
871
871
|
briefingFilename
|
|
872
872
|
};
|
|
873
|
-
//# sourceMappingURL=chunk-
|
|
873
|
+
//# sourceMappingURL=chunk-GY3V3SUI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createSearchBackend
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EMSC4P66.js";
|
|
4
4
|
import {
|
|
5
5
|
namespaceIdentityToken,
|
|
6
6
|
normalizeNamespaceIdentity
|
|
@@ -43,6 +43,14 @@ var NamespaceSearchRouter = class {
|
|
|
43
43
|
namespaces.map(async (namespace) => {
|
|
44
44
|
const record = await this.backendRecordFor(namespace);
|
|
45
45
|
if (!record.available || record.collectionState === "missing") {
|
|
46
|
+
try {
|
|
47
|
+
options.execution?.onDegradation?.({
|
|
48
|
+
backend: "qmd",
|
|
49
|
+
code: "backend_unavailable",
|
|
50
|
+
detail: record.collectionState === "missing" ? `namespace collection missing: ${namespace}` : `namespace backend unavailable: ${namespace}`
|
|
51
|
+
});
|
|
52
|
+
} catch {
|
|
53
|
+
}
|
|
46
54
|
return { namespace, results: [] };
|
|
47
55
|
}
|
|
48
56
|
const backendLimit = backendSearchLimit(record, maxResults);
|
|
@@ -393,4 +401,4 @@ export {
|
|
|
393
401
|
namespaceCollectionName,
|
|
394
402
|
NamespaceSearchRouter
|
|
395
403
|
};
|
|
396
|
-
//# sourceMappingURL=chunk-
|
|
404
|
+
//# sourceMappingURL=chunk-LFZUFZQR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/namespaces/search.ts"],"sourcesContent":["import path from \"node:path\";\nimport type { PluginConfig, QmdSearchResult } from \"../types.js\";\nimport type {\n SearchBackend,\n SearchExecutionOptions,\n SearchQueryOptions,\n} from \"../search/port.js\";\nimport { createSearchBackend } from \"../search/factory.js\";\nimport { namespaceIdentityToken, normalizeNamespaceIdentity } from \"./identity.js\";\n\nconst NESTED_NAMESPACE_FILTER_OVERFETCH_FACTOR = 4;\nconst NESTED_NAMESPACE_FILTER_OVERFETCH_MIN = 50;\n\nexport function namespaceCollectionName(\n baseCollection: string,\n namespace: string,\n options?: {\n defaultNamespace?: string;\n useLegacyDefaultCollection?: boolean;\n },\n): string {\n const trimmed = normalizeNamespaceIdentity(namespace);\n const defaultNamespace = normalizeNamespaceIdentity(options?.defaultNamespace ?? \"\") || \"default\";\n if (\n options?.useLegacyDefaultCollection === true &&\n trimmed === defaultNamespace\n ) {\n return baseCollection;\n }\n\n return `${baseCollection}--${namespaceIdentityToken(trimmed || defaultNamespace)}`;\n}\n\ntype StorageRouterLike = {\n storageFor(namespace: string): Promise<{ dir: string }>;\n};\n\ntype NamespaceBackendRecord = {\n backend: SearchBackend;\n collection: string;\n memoryDir: string;\n available: boolean;\n collectionState: CollectionState;\n filtersNestedNamespaces: boolean;\n};\n\nexport interface NamespaceUpdateResult {\n backendCount: number;\n eligibleNamespaces: string[];\n}\n\nexport type CollectionState = \"present\" | \"missing\" | \"unknown\" | \"skipped\";\n\nexport interface NamespaceSearchHealth {\n collection: string;\n memoryDir: string;\n available: boolean;\n collectionState: CollectionState;\n debugStatus: string;\n installedVersion: string | null;\n supportedVersion: string | null;\n supported: boolean | null;\n upgradeAvailable: boolean | null;\n doctorAvailable: boolean | null;\n daemonMode: boolean | null;\n}\n\ntype NamespaceScopedSearchConfig = PluginConfig & {\n hostEmbeddingProviderScope?: string;\n};\n\ntype BackendRecordOptions = {\n autoCreateCollection: boolean;\n abortAsUnavailable: boolean;\n failOpenMissingGuardedCollection: boolean;\n};\n\nexport class NamespaceSearchRouter {\n private readonly cache = new Map<string, Promise<NamespaceBackendRecord>>();\n\n constructor(\n private readonly config: PluginConfig,\n private readonly storageRouter: StorageRouterLike,\n private readonly createBackend: (config: PluginConfig) => SearchBackend = createSearchBackend,\n ) {}\n\n async collectionForNamespace(namespace: string): Promise<string> {\n return (await this.backendRecordFor(namespace)).collection;\n }\n\n async searchAcrossNamespaces(options: {\n query: string;\n namespaces: string[];\n maxResults?: number;\n mode?: \"search\" | \"hybrid\" | \"bm25\" | \"vector\";\n searchOptions?: SearchQueryOptions;\n execution?: SearchExecutionOptions;\n }): Promise<QmdSearchResult[]> {\n const query = options.query.trim();\n if (!query) return [];\n const maxResults = Math.max(0, Math.floor(options.maxResults ?? this.config.qmdMaxResults));\n if (maxResults === 0) return [];\n\n const method = options.mode ?? \"search\";\n const namespaces = Array.from(new Set(options.namespaces.map((value) => value.trim()).filter(Boolean)));\n if (namespaces.length === 0) return [];\n\n const resultsByNamespace = await Promise.all(\n namespaces.map(async (namespace) => {\n const record = await this.backendRecordFor(namespace);\n if (!record.available || record.collectionState === \"missing\") {\n // A per-namespace backend that is unavailable (or missing its\n // collection) must report like any other QMD skip (#1536): its\n // empty contribution is otherwise indistinguishable from a true\n // no-matches for that namespace (codex round-5 review on #1544).\n try {\n options.execution?.onDegradation?.({\n backend: \"qmd\",\n code: \"backend_unavailable\",\n detail:\n record.collectionState === \"missing\"\n ? `namespace collection missing: ${namespace}`\n : `namespace backend unavailable: ${namespace}`,\n });\n } catch {\n // Observers must never break search.\n }\n return { namespace, results: [] as QmdSearchResult[] };\n }\n const backendLimit = backendSearchLimit(record, maxResults);\n let results: QmdSearchResult[];\n switch (method) {\n case \"hybrid\":\n results = await record.backend.hybridSearch(\n query,\n record.collection,\n backendLimit,\n options.execution,\n );\n break;\n case \"bm25\":\n results = await record.backend.bm25Search(\n query,\n record.collection,\n backendLimit,\n options.execution,\n );\n break;\n case \"vector\":\n results = await record.backend.vectorSearch(\n query,\n record.collection,\n backendLimit,\n options.execution,\n );\n break;\n default:\n results = await record.backend.search(\n query,\n record.collection,\n backendLimit,\n options.searchOptions,\n options.execution,\n );\n break;\n }\n results = filterNamespaceSubtreeResults(record, results);\n return { namespace, results };\n }),\n );\n\n return mergeNamespaceSearchResults(resultsByNamespace, maxResults);\n }\n\n /**\n * Update all namespace backends.\n * Returns the number of backends for which an update was attempted\n * (i.e., available and collection present). Callers can treat 0 as a\n * signal that no backend was eligible — useful for success-verification in\n * startup-sync when namespacesEnabled is true.\n */\n async updateNamespaces(\n namespaces: string[],\n execution?: SearchExecutionOptions,\n options?: { strict?: boolean },\n ): Promise<number> {\n return (await this.updateNamespacesDetailed(namespaces, execution, options)).backendCount;\n }\n\n async updateNamespacesDetailed(\n namespaces: string[],\n execution?: SearchExecutionOptions,\n options?: { strict?: boolean },\n ): Promise<NamespaceUpdateResult> {\n const unique = Array.from(new Set(namespaces.map((value) => value.trim()).filter(Boolean)));\n const eligible = (await Promise.all(\n unique.map(async (namespace) => {\n const record = await this.backendRecordFor(namespace);\n return record.available && record.collectionState !== \"missing\"\n ? { namespace, record }\n : null;\n }),\n )).filter((entry): entry is { namespace: string; record: NamespaceBackendRecord } => entry !== null);\n\n const globalEntry = eligible.find(({ record }) => record.backend.updatesAllCollections?.() === true);\n const scopedEntries = globalEntry\n ? eligible.filter(({ record }) => record.backend.updatesAllCollections?.() !== true)\n : eligible;\n\n await Promise.all([\n globalEntry\n ? updateBackendRecord(globalEntry.record, execution, options)\n : Promise.resolve(),\n ...scopedEntries.map(({ record }) => updateBackendRecord(record, execution, options)),\n ]);\n\n return {\n backendCount: (globalEntry ? 1 : 0) + scopedEntries.length,\n eligibleNamespaces: eligible.map(({ namespace }) => namespace),\n };\n }\n\n async embedNamespaces(namespaces: string[], options?: { strict?: boolean }): Promise<void> {\n const unique = Array.from(new Set(namespaces.map((value) => value.trim()).filter(Boolean)));\n await Promise.all(\n unique.map(async (namespace) => {\n const record = await this.backendRecordFor(namespace);\n if (!record.available || record.collectionState === \"missing\") return;\n await embedBackendRecord(record, options);\n }),\n );\n }\n\n async ensureNamespaceCollection(\n namespace: string,\n execution?: SearchExecutionOptions,\n ): Promise<\"present\" | \"missing\" | \"unknown\" | \"skipped\"> {\n const record = await this.backendRecordFor(namespace, execution);\n return record.collectionState;\n }\n\n async healthForNamespace(\n namespace: string,\n execution?: SearchExecutionOptions,\n ): Promise<NamespaceSearchHealth> {\n const key = namespace.trim() || this.config.defaultNamespace;\n const record = await this.createBackendRecordFor(\n key,\n execution,\n {\n autoCreateCollection: false,\n abortAsUnavailable: true,\n failOpenMissingGuardedCollection: false,\n },\n );\n try {\n const liveRecord = await this.liveCachedRecordForHealth(key, record, execution);\n const diagnosticBackend = liveRecord?.backend ?? record.backend;\n const versionStatus =\n \"getVersionStatus\" in diagnosticBackend &&\n typeof diagnosticBackend.getVersionStatus === \"function\"\n ? diagnosticBackend.getVersionStatus()\n : null;\n const daemonMode = daemonModeForBackend(diagnosticBackend);\n const collectionState =\n liveRecord?.collectionState === \"missing\"\n ? \"missing\"\n : record.collectionState;\n\n return {\n collection: record.collection,\n memoryDir: record.memoryDir,\n available: liveRecord?.available ?? record.available,\n collectionState,\n debugStatus: diagnosticBackend.debugStatus(),\n installedVersion: versionStatus?.installedVersion ?? null,\n supportedVersion: versionStatus?.supportedVersion ?? null,\n supported: versionStatus?.supported ?? null,\n upgradeAvailable: versionStatus?.upgradeAvailable ?? null,\n doctorAvailable: versionStatus?.capabilities?.doctor ?? null,\n daemonMode,\n };\n } finally {\n const dispose = (record.backend as { dispose?: () => void | Promise<void> }).dispose;\n await dispose?.call(record.backend);\n }\n }\n\n private async liveCachedRecordForHealth(\n key: string,\n disposableRecord: NamespaceBackendRecord,\n execution?: SearchExecutionOptions,\n ): Promise<NamespaceBackendRecord | null> {\n const pending = this.cache.get(key);\n if (!pending) return null;\n const cachedRecord = await awaitWithAbort(pending, execution?.signal).catch(() => null);\n if (!cachedRecord) return null;\n if (cachedRecord.collection !== disposableRecord.collection) return null;\n if (cachedRecord.memoryDir !== disposableRecord.memoryDir) return null;\n return cachedRecord;\n }\n\n /** Clear cached backend records so the next access re-probes availability. */\n clearCache(): void {\n this.cache.clear();\n }\n\n /** Release any per-namespace backend handles held by cached records. */\n async dispose(): Promise<void> {\n const pendingRecords = Array.from(this.cache.values());\n this.cache.clear();\n const settled = await Promise.allSettled(pendingRecords);\n await Promise.allSettled(\n settled.flatMap((entry) => {\n if (entry.status !== \"fulfilled\") return [];\n const dispose = (entry.value.backend as { dispose?: () => void | Promise<void> }).dispose;\n return dispose ? [dispose.call(entry.value.backend)] : [];\n }),\n );\n }\n\n private async backendRecordFor(\n namespace: string,\n execution?: SearchExecutionOptions,\n ): Promise<NamespaceBackendRecord> {\n const key = namespace.trim() || this.config.defaultNamespace;\n const existing = this.cache.get(key);\n if (existing) return await existing;\n\n const pending = this.createBackendRecordFor(key, execution, {\n autoCreateCollection: true,\n abortAsUnavailable: false,\n failOpenMissingGuardedCollection: true,\n }).catch((error) => {\n this.cache.delete(key);\n throw error;\n });\n\n this.cache.set(key, pending);\n return await pending;\n }\n\n private async createBackendRecordFor(\n namespace: string,\n execution: SearchExecutionOptions | undefined,\n options: BackendRecordOptions,\n ): Promise<NamespaceBackendRecord> {\n const key = namespace.trim() || this.config.defaultNamespace;\n const storage = await this.storageRouter.storageFor(key);\n const useLegacyDefaultCollection =\n key === this.config.defaultNamespace && storage.dir === this.config.memoryDir;\n const filtersNestedNamespaces =\n this.config.namespacesEnabled === true && useLegacyDefaultCollection;\n const rootHostEmbeddingScope =\n (this.config as NamespaceScopedSearchConfig).hostEmbeddingProviderScope ??\n this.config.memoryDir;\n const scopedConfig: NamespaceScopedSearchConfig = {\n ...this.config,\n memoryDir: storage.dir,\n hostEmbeddingProviderScope: rootHostEmbeddingScope,\n qmdCollection: namespaceCollectionName(this.config.qmdCollection, key, {\n defaultNamespace: this.config.defaultNamespace,\n useLegacyDefaultCollection,\n }),\n };\n\n const backend = this.createBackend(scopedConfig);\n try {\n const availabilityProbe =\n options.autoCreateCollection || typeof backend.checkAvailability !== \"function\"\n ? backend.probe()\n : backend.checkAvailability({ signal: execution?.signal });\n const available = await awaitWithAbort(availabilityProbe, execution?.signal).catch((error) => {\n if (error instanceof NamespaceSearchAbortError && !options.abortAsUnavailable) {\n throw error;\n }\n return false;\n });\n const collectionState = available\n ? await awaitWithAbort(\n this.collectionStateForBackend(backend, storage.dir, scopedConfig.qmdCollection, {\n autoCreate: options.autoCreateCollection,\n failOpenMissingGuardedCollection: options.failOpenMissingGuardedCollection,\n skipAutoCreate: filtersNestedNamespaces,\n execution,\n }),\n execution?.signal,\n ).catch((error) => {\n if (error instanceof NamespaceSearchAbortError && !options.abortAsUnavailable) {\n throw error;\n }\n return \"unknown\" as const;\n })\n : \"unknown\";\n return {\n backend,\n collection: scopedConfig.qmdCollection,\n memoryDir: storage.dir,\n available,\n collectionState,\n filtersNestedNamespaces,\n };\n } catch (error) {\n const dispose = (backend as { dispose?: () => void | Promise<void> }).dispose;\n if (dispose) {\n await Promise.resolve(dispose.call(backend)).catch(() => {});\n }\n throw error;\n }\n }\n\n private async collectionStateForBackend(\n backend: SearchBackend,\n memoryDir: string,\n collection: string,\n options: {\n autoCreate: boolean;\n failOpenMissingGuardedCollection: boolean;\n skipAutoCreate: boolean;\n execution?: SearchExecutionOptions;\n },\n ): Promise<CollectionState> {\n if (!options.autoCreate || options.skipAutoCreate) {\n if (!backend.checkCollection) return \"unknown\";\n const collectionState = await backend\n .checkCollection(collection, options.execution)\n .catch(() => \"unknown\" as const);\n return options.failOpenMissingGuardedCollection && collectionState === \"missing\"\n ? \"unknown\"\n : collectionState;\n }\n return await backend.ensureCollection(memoryDir, collection, options.execution).catch(() => \"unknown\" as const);\n }\n}\n\nclass NamespaceSearchAbortError extends Error {\n constructor() {\n super(\"operation aborted\");\n }\n}\n\nfunction awaitWithAbort<T>(operation: Promise<T>, signal?: AbortSignal): Promise<T> {\n if (!signal) return operation;\n if (signal.aborted) return Promise.reject(new NamespaceSearchAbortError());\n\n return new Promise<T>((resolve, reject) => {\n const onAbort = () => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(new NamespaceSearchAbortError());\n };\n signal.addEventListener(\"abort\", onAbort, { once: true });\n operation.then(resolve, reject).finally(() => {\n signal.removeEventListener(\"abort\", onAbort);\n });\n });\n}\n\nfunction filterNamespaceSubtreeResults(\n record: NamespaceBackendRecord,\n results: QmdSearchResult[],\n): QmdSearchResult[] {\n if (!record.filtersNestedNamespaces) return results;\n return results.filter((result) =>\n !pathIsInsideNamespaceSubtree(record.memoryDir, record.collection, result.path)\n );\n}\n\nfunction backendSearchLimit(\n record: NamespaceBackendRecord,\n maxResults: number,\n): number {\n if (!record.filtersNestedNamespaces) return maxResults;\n return Math.max(\n maxResults,\n maxResults * NESTED_NAMESPACE_FILTER_OVERFETCH_FACTOR,\n NESTED_NAMESPACE_FILTER_OVERFETCH_MIN,\n );\n}\n\nasync function updateBackendRecord(\n record: NamespaceBackendRecord,\n execution?: SearchExecutionOptions,\n options?: { strict?: boolean },\n): Promise<void> {\n if (options?.strict === true) {\n if (\n record.backend.updatesAllCollections?.() === true &&\n typeof record.backend.updateStrict === \"function\"\n ) {\n await record.backend.updateStrict(execution);\n return;\n }\n if (typeof record.backend.updateCollectionStrict === \"function\") {\n await record.backend.updateCollectionStrict(record.collection, execution);\n return;\n }\n }\n await record.backend.update(execution);\n}\n\nasync function embedBackendRecord(\n record: NamespaceBackendRecord,\n options?: { strict?: boolean },\n): Promise<void> {\n if (options?.strict === true) {\n if (typeof record.backend.embedCollectionStrict === \"function\") {\n await record.backend.embedCollectionStrict(record.collection);\n return;\n }\n if (typeof record.backend.embedStrict === \"function\") {\n await record.backend.embedStrict();\n return;\n }\n }\n if (typeof record.backend.embedCollection === \"function\") {\n await record.backend.embedCollection(record.collection);\n return;\n }\n await record.backend.embed();\n}\n\nfunction daemonModeForBackend(backend: SearchBackend): boolean | null {\n return \"isDaemonMode\" in backend && typeof backend.isDaemonMode === \"function\"\n ? backend.isDaemonMode() === true\n : null;\n}\n\nfunction pathIsInsideNamespaceSubtree(\n memoryDir: string,\n collection: string,\n resultPath: string | undefined,\n): boolean {\n if (!resultPath) return false;\n const normalizedResultPath = normalizeQmdResultPath(resultPath, collection);\n const memoryRoot = path.resolve(memoryDir);\n const namespacesRoot = path.join(memoryRoot, \"namespaces\");\n const candidate = path.isAbsolute(normalizedResultPath)\n ? path.normalize(normalizedResultPath)\n : path.resolve(memoryRoot, normalizedResultPath);\n const relative = path.relative(namespacesRoot, candidate);\n return relative === \"\" || (!relative.startsWith(\"..\") && !path.isAbsolute(relative));\n}\n\nfunction normalizeQmdResultPath(resultPath: string, collection: string): string {\n let value = resultPath.trim();\n if (value.startsWith(\"qmd://\")) {\n try {\n const parsed = new URL(value);\n if (parsed.protocol === \"qmd:\" && parsed.hostname === collection) {\n value = decodeURIComponent(parsed.pathname.replace(/^\\/+/, \"\"));\n }\n } catch {\n const remainder = value.slice(\"qmd://\".length);\n const slashIndex = remainder.indexOf(\"/\");\n if (slashIndex !== -1) {\n value = remainder.slice(slashIndex + 1);\n }\n }\n }\n\n const collectionPrefix = `${collection}/`;\n if (value.startsWith(collectionPrefix)) {\n value = value.slice(collectionPrefix.length);\n }\n return value;\n}\n\nfunction mergeNamespaceSearchResults(\n lists: Array<{ namespace: string; results: QmdSearchResult[] }>,\n maxResults: number,\n): QmdSearchResult[] {\n const merged = new Map<string, QmdSearchResult>();\n\n for (const { namespace, results } of lists) {\n for (const result of results) {\n const key = `${namespace}\\0${result.path || result.docid}`;\n const existing = merged.get(key);\n if (!existing) {\n merged.set(key, result);\n continue;\n }\n if (result.score > existing.score) {\n merged.set(key, {\n ...result,\n snippet: existing.snippet || result.snippet || \"\",\n });\n }\n }\n }\n\n return [...merged.values()]\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n}\n"],"mappings":"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","names":[]}
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
import {
|
|
30
30
|
CompoundingEngine,
|
|
31
31
|
defaultTierMigrationCycleBudget
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-TWAJICBN.js";
|
|
33
33
|
import {
|
|
34
34
|
SharedContextManager
|
|
35
35
|
} from "./chunk-DRD2Q7HQ.js";
|
|
@@ -113,12 +113,7 @@ import {
|
|
|
113
113
|
LastRecallStore,
|
|
114
114
|
TierMigrationStatusStore,
|
|
115
115
|
clampGraphRecallExpandedEntries
|
|
116
|
-
} from "./chunk-
|
|
117
|
-
import {
|
|
118
|
-
buildQmdRecallCacheKey,
|
|
119
|
-
getCachedQmdRecall,
|
|
120
|
-
setCachedQmdRecall
|
|
121
|
-
} from "./chunk-SCPFRKIT.js";
|
|
116
|
+
} from "./chunk-44VFF3BB.js";
|
|
122
117
|
import {
|
|
123
118
|
applyReasoningTraceBoost
|
|
124
119
|
} from "./chunk-ZZTOURJI.js";
|
|
@@ -175,7 +170,7 @@ import {
|
|
|
175
170
|
buildEntityRecallSection,
|
|
176
171
|
entityRecentTranscriptLookbackHours,
|
|
177
172
|
readRecentEntityTranscriptEntries
|
|
178
|
-
} from "./chunk-
|
|
173
|
+
} from "./chunk-RQGR3ETH.js";
|
|
179
174
|
import {
|
|
180
175
|
buildEventOrderRecallSection,
|
|
181
176
|
shouldRecallEventOrderEvidence
|
|
@@ -210,7 +205,7 @@ import {
|
|
|
210
205
|
materializeAfterSemanticConsolidation,
|
|
211
206
|
parseConsolidationResponse,
|
|
212
207
|
parseOperatorAwareConsolidationResponse
|
|
213
|
-
} from "./chunk-
|
|
208
|
+
} from "./chunk-D2EFNQMY.js";
|
|
214
209
|
import {
|
|
215
210
|
normalizeReplaySessionKey
|
|
216
211
|
} from "./chunk-2PRQG7PV.js";
|
|
@@ -220,14 +215,14 @@ import {
|
|
|
220
215
|
import {
|
|
221
216
|
compareVerifiedEpisodeResults,
|
|
222
217
|
searchVerifiedEpisodes
|
|
223
|
-
} from "./chunk-
|
|
218
|
+
} from "./chunk-TYIXG4VR.js";
|
|
224
219
|
import {
|
|
225
220
|
ThreadingManager
|
|
226
221
|
} from "./chunk-W4RVMTHR.js";
|
|
227
222
|
import {
|
|
228
223
|
compareVerifiedSemanticRuleResults,
|
|
229
224
|
searchVerifiedSemanticRules
|
|
230
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-NMPEJV5M.js";
|
|
231
226
|
import {
|
|
232
227
|
searchWorkProductLedgerEntries
|
|
233
228
|
} from "./chunk-ZRWB5D4H.js";
|
|
@@ -241,7 +236,7 @@ import {
|
|
|
241
236
|
NamespaceStorageRouter,
|
|
242
237
|
resolveDefaultNamespaceRoot,
|
|
243
238
|
resolveNamespaceStorageRoot
|
|
244
|
-
} from "./chunk-
|
|
239
|
+
} from "./chunk-TBLGI2LT.js";
|
|
245
240
|
import {
|
|
246
241
|
isAboveImportanceThreshold,
|
|
247
242
|
scoreImportance
|
|
@@ -324,11 +319,11 @@ import {
|
|
|
324
319
|
} from "./chunk-2MXEVL75.js";
|
|
325
320
|
import {
|
|
326
321
|
NamespaceSearchRouter
|
|
327
|
-
} from "./chunk-
|
|
322
|
+
} from "./chunk-LFZUFZQR.js";
|
|
328
323
|
import {
|
|
329
324
|
createConversationIndexRuntime,
|
|
330
325
|
createSearchBackend
|
|
331
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-EMSC4P66.js";
|
|
332
327
|
import {
|
|
333
328
|
NoopSearchBackend
|
|
334
329
|
} from "./chunk-CYEPCZN5.js";
|
|
@@ -342,7 +337,7 @@ import {
|
|
|
342
337
|
} from "./chunk-OIF36KGD.js";
|
|
343
338
|
import {
|
|
344
339
|
parseQmdExplain
|
|
345
|
-
} from "./chunk-
|
|
340
|
+
} from "./chunk-34NSUPWS.js";
|
|
346
341
|
import {
|
|
347
342
|
objectiveStateStoreOverrideForNamespace,
|
|
348
343
|
searchObjectiveStateSnapshots
|
|
@@ -361,7 +356,7 @@ import {
|
|
|
361
356
|
} from "./chunk-Y56J7CXW.js";
|
|
362
357
|
import {
|
|
363
358
|
buildChainFollowupGenerator
|
|
364
|
-
} from "./chunk-
|
|
359
|
+
} from "./chunk-GY3V3SUI.js";
|
|
365
360
|
import {
|
|
366
361
|
ALL_CATEGORY_DIRS,
|
|
367
362
|
ContentHashIndex,
|
|
@@ -371,7 +366,7 @@ import {
|
|
|
371
366
|
normalizeAttributePairs,
|
|
372
367
|
parseEntityFile,
|
|
373
368
|
stripAttributesSuffix
|
|
374
|
-
} from "./chunk-
|
|
369
|
+
} from "./chunk-AX5O25EF.js";
|
|
375
370
|
import {
|
|
376
371
|
isValidTranscriptDate,
|
|
377
372
|
loadSpeakerRegistry,
|
|
@@ -387,6 +382,11 @@ import {
|
|
|
387
382
|
import {
|
|
388
383
|
confidenceTier
|
|
389
384
|
} from "./chunk-AZBV4RRY.js";
|
|
385
|
+
import {
|
|
386
|
+
buildQmdRecallCacheKey,
|
|
387
|
+
getCachedQmdRecall,
|
|
388
|
+
setCachedQmdRecall
|
|
389
|
+
} from "./chunk-42JKGUFJ.js";
|
|
390
390
|
import {
|
|
391
391
|
inferMemoryStatus,
|
|
392
392
|
isActiveMemoryStatus
|
|
@@ -7619,20 +7619,25 @@ ${r.snippet.trim()}
|
|
|
7619
7619
|
fetchLimit,
|
|
7620
7620
|
primarySearchOptions,
|
|
7621
7621
|
{
|
|
7622
|
-
signal: options.abortSignal
|
|
7622
|
+
signal: options.abortSignal,
|
|
7623
|
+
onDegradation: options.onDegradation
|
|
7623
7624
|
}
|
|
7624
7625
|
) : await this.qmd.search(
|
|
7625
7626
|
prompt,
|
|
7626
7627
|
options.collection,
|
|
7627
7628
|
fetchLimit,
|
|
7628
|
-
primarySearchOptions
|
|
7629
|
+
primarySearchOptions,
|
|
7630
|
+
{ onDegradation: options.onDegradation }
|
|
7629
7631
|
) : await this.searchAcrossNamespaces({
|
|
7630
7632
|
query: prompt,
|
|
7631
7633
|
namespaces: options.namespacesEnabled ? options.recallNamespaces : void 0,
|
|
7632
7634
|
maxResults: fetchLimit,
|
|
7633
7635
|
mode: "search",
|
|
7634
7636
|
searchOptions: primarySearchOptions,
|
|
7635
|
-
execution: {
|
|
7637
|
+
execution: {
|
|
7638
|
+
signal: options.abortSignal,
|
|
7639
|
+
onDegradation: options.onDegradation
|
|
7640
|
+
}
|
|
7636
7641
|
});
|
|
7637
7642
|
lastPrimaryResultCount = primaryResults.length;
|
|
7638
7643
|
lastHybridResultCount = 0;
|
|
@@ -7650,14 +7655,18 @@ ${r.snippet.trim()}
|
|
|
7650
7655
|
options.collection,
|
|
7651
7656
|
fetchLimit,
|
|
7652
7657
|
{
|
|
7653
|
-
signal: options.abortSignal
|
|
7658
|
+
signal: options.abortSignal,
|
|
7659
|
+
onDegradation: options.onDegradation
|
|
7654
7660
|
}
|
|
7655
7661
|
) : await this.searchAcrossNamespaces({
|
|
7656
7662
|
query: prompt,
|
|
7657
7663
|
namespaces: options.namespacesEnabled ? options.recallNamespaces : void 0,
|
|
7658
7664
|
maxResults: fetchLimit,
|
|
7659
7665
|
mode: "hybrid",
|
|
7660
|
-
execution: {
|
|
7666
|
+
execution: {
|
|
7667
|
+
signal: options.abortSignal,
|
|
7668
|
+
onDegradation: options.onDegradation
|
|
7669
|
+
}
|
|
7661
7670
|
});
|
|
7662
7671
|
lastHybridResultCount = hybridResults.length;
|
|
7663
7672
|
lastHybridTopUpUsed = hybridResults.length > 0;
|
|
@@ -8174,6 +8183,7 @@ ${r.snippet.trim()}
|
|
|
8174
8183
|
}
|
|
8175
8184
|
async recallInternal(prompt, sessionKey, options = {}) {
|
|
8176
8185
|
const recallStart = Date.now();
|
|
8186
|
+
const backendDegradations = [];
|
|
8177
8187
|
let asOfMs;
|
|
8178
8188
|
if (typeof options.asOf === "string" && options.asOf.length > 0) {
|
|
8179
8189
|
const parsed = Date.parse(options.asOf);
|
|
@@ -9655,6 +9665,19 @@ ${rows.join("\n")}
|
|
|
9655
9665
|
const qmdPromise = observeEnrichmentPromise(
|
|
9656
9666
|
(async () => {
|
|
9657
9667
|
const t0 = Date.now();
|
|
9668
|
+
const phaseDegradationsStart = backendDegradations.length;
|
|
9669
|
+
const replayCachedDegradations = (value) => {
|
|
9670
|
+
for (const degradation of value.degradations ?? []) {
|
|
9671
|
+
backendDegradations.push(degradation);
|
|
9672
|
+
}
|
|
9673
|
+
};
|
|
9674
|
+
const reportRecallQmdUnavailable = (detail) => {
|
|
9675
|
+
backendDegradations.push({
|
|
9676
|
+
backend: "qmd",
|
|
9677
|
+
code: "backend_unavailable",
|
|
9678
|
+
detail
|
|
9679
|
+
});
|
|
9680
|
+
};
|
|
9658
9681
|
if (recallResultLimit <= 0) {
|
|
9659
9682
|
recordRecallSectionMetric({
|
|
9660
9683
|
section: "qmd",
|
|
@@ -9703,6 +9726,7 @@ ${rows.join("\n")}
|
|
|
9703
9726
|
success: true,
|
|
9704
9727
|
timing: `${Math.max(0, Math.round(cachedQmd.ageMs))}ms-cache`
|
|
9705
9728
|
});
|
|
9729
|
+
replayCachedDegradations(cachedQmd.value);
|
|
9706
9730
|
if (queryAwarePrefilterIsEmpty) {
|
|
9707
9731
|
return emptyQueryAwareQmdResult;
|
|
9708
9732
|
}
|
|
@@ -9722,6 +9746,8 @@ ${rows.join("\n")}
|
|
|
9722
9746
|
success: true,
|
|
9723
9747
|
timing: `stale-cache(reprobe-cooldown:${Math.max(0, Math.round(staleQmdFallback.ageMs))}ms)`
|
|
9724
9748
|
});
|
|
9749
|
+
reportRecallQmdUnavailable("served stale recall cache (reprobe cooldown)");
|
|
9750
|
+
replayCachedDegradations(staleQmdFallback.value);
|
|
9725
9751
|
if (queryAwarePrefilterIsEmpty) {
|
|
9726
9752
|
return emptyQueryAwareQmdResult;
|
|
9727
9753
|
}
|
|
@@ -9736,6 +9762,7 @@ ${rows.join("\n")}
|
|
|
9736
9762
|
success: true,
|
|
9737
9763
|
timing: "skip(reprobe-cooldown)"
|
|
9738
9764
|
});
|
|
9765
|
+
reportRecallQmdUnavailable("recall skipped QMD (reprobe cooldown)");
|
|
9739
9766
|
return null;
|
|
9740
9767
|
}
|
|
9741
9768
|
this.lastQmdReprobeAtMs = now;
|
|
@@ -9751,6 +9778,8 @@ ${rows.join("\n")}
|
|
|
9751
9778
|
success: true,
|
|
9752
9779
|
timing: `stale-cache(reprobe-failed:${Math.max(0, Math.round(staleQmdFallback.ageMs))}ms)`
|
|
9753
9780
|
});
|
|
9781
|
+
reportRecallQmdUnavailable("served stale recall cache (reprobe failed)");
|
|
9782
|
+
replayCachedDegradations(staleQmdFallback.value);
|
|
9754
9783
|
if (queryAwarePrefilterIsEmpty) {
|
|
9755
9784
|
return emptyQueryAwareQmdResult;
|
|
9756
9785
|
}
|
|
@@ -9768,6 +9797,7 @@ ${rows.join("\n")}
|
|
|
9768
9797
|
log.debug(
|
|
9769
9798
|
`Search skip (re-probe failed): ${this.qmd.debugStatus()}`
|
|
9770
9799
|
);
|
|
9800
|
+
reportRecallQmdUnavailable("recall skipped QMD (reprobe failed)");
|
|
9771
9801
|
return null;
|
|
9772
9802
|
}
|
|
9773
9803
|
log.info(`QMD re-probe succeeded: ${this.qmd.debugStatus()}`);
|
|
@@ -9832,6 +9862,9 @@ ${rows.join("\n")}
|
|
|
9832
9862
|
queryAwarePrefilter,
|
|
9833
9863
|
searchOptions: qmdSearchOptions,
|
|
9834
9864
|
abortSignal: qmdEnrichmentAbort.signal,
|
|
9865
|
+
onDegradation: (degradation) => {
|
|
9866
|
+
backendDegradations.push(degradation);
|
|
9867
|
+
},
|
|
9835
9868
|
onDebugSnapshot: async (snapshot) => {
|
|
9836
9869
|
await this.recordLastQmdRecallSnapshot({
|
|
9837
9870
|
storage: profileStorage,
|
|
@@ -9871,11 +9904,15 @@ ${rows.join("\n")}
|
|
|
9871
9904
|
maxSpecializedScore = 0;
|
|
9872
9905
|
}
|
|
9873
9906
|
}
|
|
9907
|
+
const phaseDegradations = backendDegradations.slice(
|
|
9908
|
+
phaseDegradationsStart
|
|
9909
|
+
);
|
|
9874
9910
|
const result = {
|
|
9875
9911
|
memoryResultsLists: [augmentedResults],
|
|
9876
9912
|
globalResults: [],
|
|
9877
9913
|
preAugmentTopScore,
|
|
9878
|
-
maxSpecializedScore
|
|
9914
|
+
maxSpecializedScore,
|
|
9915
|
+
...phaseDegradations.length > 0 ? { degradations: phaseDegradations } : {}
|
|
9879
9916
|
};
|
|
9880
9917
|
if (augmentedResults.length > 0 || result.globalResults.length > 0) {
|
|
9881
9918
|
setCachedQmdRecall(qmdCacheKey, result, {
|
|
@@ -9902,6 +9939,8 @@ ${rows.join("\n")}
|
|
|
9902
9939
|
success: true,
|
|
9903
9940
|
timing: `stale-cache(${err instanceof Error ? err.message : String(err)})`
|
|
9904
9941
|
});
|
|
9942
|
+
reportRecallQmdUnavailable("served stale recall cache (qmd phase error)");
|
|
9943
|
+
replayCachedDegradations(staleQmdFallback.value);
|
|
9905
9944
|
if (queryAwarePrefilterIsEmpty) {
|
|
9906
9945
|
return emptyQueryAwareQmdResult;
|
|
9907
9946
|
}
|
|
@@ -9921,7 +9960,16 @@ ${rows.join("\n")}
|
|
|
9921
9960
|
);
|
|
9922
9961
|
return null;
|
|
9923
9962
|
}).finally(() => qmdEnrichmentAbort.dispose()),
|
|
9924
|
-
() =>
|
|
9963
|
+
() => {
|
|
9964
|
+
if (!options.abortSignal?.aborted) {
|
|
9965
|
+
backendDegradations.push({
|
|
9966
|
+
backend: "qmd",
|
|
9967
|
+
code: "deadline_exceeded",
|
|
9968
|
+
detail: "hot qmd enrichment abandoned (enrichment deadline)"
|
|
9969
|
+
});
|
|
9970
|
+
}
|
|
9971
|
+
qmdEnrichmentAbort.cancel();
|
|
9972
|
+
}
|
|
9925
9973
|
);
|
|
9926
9974
|
const transcriptPromise = (async () => {
|
|
9927
9975
|
const t0 = Date.now();
|
|
@@ -11233,6 +11281,9 @@ ${tmtNode.summary}`
|
|
|
11233
11281
|
recallMode,
|
|
11234
11282
|
queryAwarePrefilter,
|
|
11235
11283
|
abortSignal: options.abortSignal,
|
|
11284
|
+
onDegradation: (degradation) => {
|
|
11285
|
+
backendDegradations.push(degradation);
|
|
11286
|
+
},
|
|
11236
11287
|
xrayPoolSizeSink: xrayColdPoolSink,
|
|
11237
11288
|
deadlineAtMs: enrichmentAssemblyDeadlineAtMs,
|
|
11238
11289
|
asOfMs,
|
|
@@ -11401,6 +11452,9 @@ ${tmtNode.summary}`
|
|
|
11401
11452
|
recallMode,
|
|
11402
11453
|
queryAwarePrefilter,
|
|
11403
11454
|
abortSignal: options.abortSignal,
|
|
11455
|
+
onDegradation: (degradation) => {
|
|
11456
|
+
backendDegradations.push(degradation);
|
|
11457
|
+
},
|
|
11404
11458
|
xrayPoolSizeSink: xrayColdPoolSink,
|
|
11405
11459
|
deadlineAtMs: enrichmentAssemblyDeadlineAtMs,
|
|
11406
11460
|
asOfMs,
|
|
@@ -11497,6 +11551,9 @@ ${tmtNode.summary}`
|
|
|
11497
11551
|
recallMode,
|
|
11498
11552
|
queryAwarePrefilter,
|
|
11499
11553
|
abortSignal: options.abortSignal,
|
|
11554
|
+
onDegradation: (degradation) => {
|
|
11555
|
+
backendDegradations.push(degradation);
|
|
11556
|
+
},
|
|
11500
11557
|
xrayPoolSizeSink: xrayColdPoolSink,
|
|
11501
11558
|
deadlineAtMs: enrichmentAssemblyDeadlineAtMs,
|
|
11502
11559
|
asOfMs,
|
|
@@ -11538,6 +11595,9 @@ ${tmtNode.summary}`
|
|
|
11538
11595
|
recallMode,
|
|
11539
11596
|
queryAwarePrefilter,
|
|
11540
11597
|
abortSignal: options.abortSignal,
|
|
11598
|
+
onDegradation: (degradation) => {
|
|
11599
|
+
backendDegradations.push(degradation);
|
|
11600
|
+
},
|
|
11541
11601
|
xrayPoolSizeSink: xrayColdPoolSink,
|
|
11542
11602
|
deadlineAtMs: enrichmentAssemblyDeadlineAtMs,
|
|
11543
11603
|
asOfMs,
|
|
@@ -11850,7 +11910,13 @@ _Context: ${topQuestion.context}_`
|
|
|
11850
11910
|
mode: identityInjectionModeUsed,
|
|
11851
11911
|
injectedChars: identityInjectedChars,
|
|
11852
11912
|
truncated: identityInjectionTruncated
|
|
11853
|
-
}
|
|
11913
|
+
},
|
|
11914
|
+
// Included at record time so the published snapshot is born
|
|
11915
|
+
// annotated — a post-record annotation leaves a window where
|
|
11916
|
+
// readers see the snapshot without degradations, and a concurrent
|
|
11917
|
+
// same-session recall could drop them entirely (codex + cursor
|
|
11918
|
+
// reviews on #1544).
|
|
11919
|
+
backendDegradations: backendDegradations.length > 0 ? backendDegradations : void 0
|
|
11854
11920
|
}).catch((err) => log.debug(`last recall record failed: ${err}`));
|
|
11855
11921
|
}
|
|
11856
11922
|
if (sessionKey) {
|
|
@@ -16245,10 +16311,14 @@ ${lines.join("\n\n")}`;
|
|
|
16245
16311
|
return [];
|
|
16246
16312
|
}
|
|
16247
16313
|
const deadlineRemainingMs = () => typeof options.deadlineAtMs === "number" ? Math.max(0, options.deadlineAtMs - Date.now()) : null;
|
|
16248
|
-
const runColdStepWithinDeadline = async (label, fallback, task) => {
|
|
16314
|
+
const runColdStepWithinDeadline = async (label, fallback, task, onDeadline) => {
|
|
16249
16315
|
throwIfRecallAborted(options.abortSignal);
|
|
16250
16316
|
const remainingMs = deadlineRemainingMs();
|
|
16251
16317
|
if (remainingMs === 0) {
|
|
16318
|
+
try {
|
|
16319
|
+
onDeadline?.();
|
|
16320
|
+
} catch {
|
|
16321
|
+
}
|
|
16252
16322
|
log.debug(`cold-tier recall ${label} skipped: shared assembly deadline expired`);
|
|
16253
16323
|
return fallback;
|
|
16254
16324
|
}
|
|
@@ -16268,6 +16338,10 @@ ${lines.join("\n\n")}`;
|
|
|
16268
16338
|
new Promise((resolve) => {
|
|
16269
16339
|
timeoutHandle = setTimeout(() => {
|
|
16270
16340
|
timedOut = true;
|
|
16341
|
+
try {
|
|
16342
|
+
onDeadline?.();
|
|
16343
|
+
} catch {
|
|
16344
|
+
}
|
|
16271
16345
|
log.debug(
|
|
16272
16346
|
`cold-tier recall ${label} skipped: shared assembly deadline expired`
|
|
16273
16347
|
);
|
|
@@ -16294,6 +16368,18 @@ ${lines.join("\n\n")}`;
|
|
|
16294
16368
|
false,
|
|
16295
16369
|
0
|
|
16296
16370
|
);
|
|
16371
|
+
let coldQmdObserverActive = true;
|
|
16372
|
+
const reportColdQmdDeadline = () => {
|
|
16373
|
+
coldQmdObserverActive = false;
|
|
16374
|
+
try {
|
|
16375
|
+
options.onDegradation?.({
|
|
16376
|
+
backend: "qmd",
|
|
16377
|
+
code: "deadline_exceeded",
|
|
16378
|
+
detail: "cold-tier qmd lookup abandoned (assembly deadline)"
|
|
16379
|
+
});
|
|
16380
|
+
} catch {
|
|
16381
|
+
}
|
|
16382
|
+
};
|
|
16297
16383
|
longTerm = await runColdStepWithinDeadline(
|
|
16298
16384
|
"qmd lookup",
|
|
16299
16385
|
[],
|
|
@@ -16308,10 +16394,17 @@ ${lines.join("\n\n")}`;
|
|
|
16308
16394
|
collection: coldCollection,
|
|
16309
16395
|
queryAwarePrefilter: options.queryAwarePrefilter,
|
|
16310
16396
|
searchOptions: this.buildConfiguredQmdSearchOptions(options.prompt),
|
|
16311
|
-
abortSignal: options.abortSignal
|
|
16397
|
+
abortSignal: options.abortSignal,
|
|
16398
|
+
onDegradation: (degradation) => {
|
|
16399
|
+
if (coldQmdObserverActive) {
|
|
16400
|
+
options.onDegradation?.(degradation);
|
|
16401
|
+
}
|
|
16402
|
+
}
|
|
16312
16403
|
}
|
|
16313
|
-
)
|
|
16404
|
+
),
|
|
16405
|
+
reportColdQmdDeadline
|
|
16314
16406
|
);
|
|
16407
|
+
coldQmdObserverActive = false;
|
|
16315
16408
|
if (longTerm.length > 0) {
|
|
16316
16409
|
log.debug(
|
|
16317
16410
|
`cold-tier recall source=cold-qmd collection=${coldCollection} hits=${longTerm.length}`
|
|
@@ -17242,4 +17335,4 @@ export {
|
|
|
17242
17335
|
resolvePersistedMemoryRelativePath,
|
|
17243
17336
|
Orchestrator
|
|
17244
17337
|
};
|
|
17245
|
-
//# sourceMappingURL=chunk-
|
|
17338
|
+
//# sourceMappingURL=chunk-MHYRRV43.js.map
|