nlm-memory 0.5.22 → 0.7.0
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/README.md +106 -14
- package/dist/cli/classify-parity.js +1 -1
- package/dist/cli/classify-parity.js.map +1 -1
- package/dist/cli/nlm.js +152 -12
- package/dist/cli/nlm.js.map +1 -1
- package/dist/core/adapters/pi.js +13 -3
- package/dist/core/adapters/pi.js.map +1 -1
- package/dist/core/classifier/prompt.d.ts +1 -1
- package/dist/core/classifier/prompt.js +1 -1
- package/dist/core/hook/pointer-block.d.ts +12 -1
- package/dist/core/hook/pointer-block.js +25 -8
- package/dist/core/hook/pointer-block.js.map +1 -1
- package/dist/core/providers/provider-registry.js +1 -1
- package/dist/core/providers/provider-registry.js.map +1 -1
- package/dist/core/recall/recall-service.d.ts +9 -0
- package/dist/core/recall/recall-service.js +81 -18
- package/dist/core/recall/recall-service.js.map +1 -1
- package/dist/core/recall-facts/fact-recall-service.d.ts +11 -0
- package/dist/core/recall-facts/fact-recall-service.js +69 -4
- package/dist/core/recall-facts/fact-recall-service.js.map +1 -1
- package/dist/core/scheduler/scheduler.d.ts +7 -0
- package/dist/core/scheduler/scheduler.js +26 -0
- package/dist/core/scheduler/scheduler.js.map +1 -1
- package/dist/core/signals/aggregate.d.ts +21 -0
- package/dist/core/signals/aggregate.js +34 -0
- package/dist/core/signals/aggregate.js.map +1 -0
- package/dist/core/signals/failure-mode-recall.d.ts +18 -0
- package/dist/core/signals/failure-mode-recall.js +28 -0
- package/dist/core/signals/failure-mode-recall.js.map +1 -0
- package/dist/core/signals/ingest-signal.d.ts +19 -0
- package/dist/core/signals/ingest-signal.js +63 -0
- package/dist/core/signals/ingest-signal.js.map +1 -0
- package/dist/core/signals/install-scope.d.ts +8 -0
- package/dist/core/signals/install-scope.js +41 -0
- package/dist/core/signals/install-scope.js.map +1 -0
- package/dist/core/signals/recommend.d.ts +13 -0
- package/dist/core/signals/recommend.js +24 -0
- package/dist/core/signals/recommend.js.map +1 -0
- package/dist/core/storage/pg-fact-store.d.ts +5 -0
- package/dist/core/storage/pg-fact-store.js +29 -0
- package/dist/core/storage/pg-fact-store.js.map +1 -1
- package/dist/core/storage/pg-signal-store.d.ts +16 -0
- package/dist/core/storage/pg-signal-store.js +100 -0
- package/dist/core/storage/pg-signal-store.js.map +1 -0
- package/dist/core/storage/pg-storage.d.ts +2 -0
- package/dist/core/storage/pg-storage.js +3 -0
- package/dist/core/storage/pg-storage.js.map +1 -1
- package/dist/core/storage/pg-tx-context.d.ts +5 -0
- package/dist/core/storage/pg-tx-context.js +3 -0
- package/dist/core/storage/pg-tx-context.js.map +1 -1
- package/dist/core/storage/sqlite-fact-store.d.ts +5 -0
- package/dist/core/storage/sqlite-fact-store.js +30 -0
- package/dist/core/storage/sqlite-fact-store.js.map +1 -1
- package/dist/core/storage/sqlite-signal-store.d.ts +20 -0
- package/dist/core/storage/sqlite-signal-store.js +112 -0
- package/dist/core/storage/sqlite-signal-store.js.map +1 -0
- package/dist/core/storage/sqlite-storage.d.ts +2 -0
- package/dist/core/storage/sqlite-storage.js +6 -2
- package/dist/core/storage/sqlite-storage.js.map +1 -1
- package/dist/hook/prompt-recall-hook.d.ts +10 -1
- package/dist/hook/prompt-recall-hook.js +10 -4
- package/dist/hook/prompt-recall-hook.js.map +1 -1
- package/dist/hook/recall-over-http.d.ts +11 -1
- package/dist/hook/recall-over-http.js +16 -4
- package/dist/hook/recall-over-http.js.map +1 -1
- package/dist/hook/session-start-hook.d.ts +2 -0
- package/dist/hook/session-start-hook.js +32 -2
- package/dist/hook/session-start-hook.js.map +1 -1
- package/dist/hook/stop-hook.js +16 -0
- package/dist/hook/stop-hook.js.map +1 -1
- package/dist/http/app.d.ts +9 -0
- package/dist/http/app.js +124 -11
- package/dist/http/app.js.map +1 -1
- package/dist/install/codex.d.ts +1 -1
- package/dist/install/codex.js +4 -4
- package/dist/install/codex.js.map +1 -1
- package/dist/install/ollama.d.ts +10 -0
- package/dist/install/ollama.js +19 -3
- package/dist/install/ollama.js.map +1 -1
- package/dist/install/pi.d.ts +1 -1
- package/dist/install/pi.js +1 -1
- package/dist/install/setup.js +63 -10
- package/dist/install/setup.js.map +1 -1
- package/dist/llm/classifier-box.d.ts +2 -1
- package/dist/llm/classifier-box.js +3 -0
- package/dist/llm/classifier-box.js.map +1 -1
- package/dist/llm/deepseek-client.d.ts +5 -2
- package/dist/llm/deepseek-client.js +51 -1
- package/dist/llm/deepseek-client.js.map +1 -1
- package/dist/llm/ollama-client.d.ts +3 -2
- package/dist/llm/ollama-client.js +45 -2
- package/dist/llm/ollama-client.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +22 -3
- package/dist/mcp/server.js.map +1 -1
- package/dist/ports/fact-store.d.ts +0 -0
- package/dist/ports/fact-store.js +0 -0
- package/dist/ports/fact-store.js.map +1 -1
- package/dist/ports/llm-client.d.ts +24 -0
- package/dist/ports/signal-store.d.ts +30 -0
- package/dist/ports/signal-store.js +9 -0
- package/dist/ports/signal-store.js.map +1 -0
- package/dist/ports/storage.d.ts +2 -0
- package/dist/ports/transcript-adapter.d.ts +6 -0
- package/dist/shared/types.d.ts +76 -0
- package/dist/ui/assets/index-BTj60bAH.js +11 -0
- package/dist/ui/assets/index-Baw2qIKc.css +1 -0
- package/dist/ui/index.html +2 -2
- package/nlm/README.md +1 -1
- package/nlm/index.js +40 -17
- package/package.json +19 -18
- package/plugin/.codex-plugin/plugin.json +2 -2
- package/plugin/README.md +3 -3
- package/plugin/scripts/prompt-recall-hook.mjs +40 -17
- package/plugin/scripts/stop-hook.mjs +80 -6
- package/dist/ui/assets/index-BR1BHwew.js +0 -69
- package/dist/ui/assets/index-CgHq6xeZ.css +0 -1
|
@@ -9,9 +9,18 @@ import { LLMUnreachableError } from "../../ports/llm-client.js";
|
|
|
9
9
|
import { applyFilter } from "./filter.js";
|
|
10
10
|
import { keywordMatchFields } from "./match-fields.js";
|
|
11
11
|
import { detectQueryShape } from "./query-shape.js";
|
|
12
|
+
import { recencyMultiplier } from "./recency.js";
|
|
13
|
+
import { pickRelatedFacts } from "./related-facts.js";
|
|
14
|
+
import { RewriteCache } from "./rewrite-cache.js";
|
|
12
15
|
import { tokenSet } from "./tokenize.js";
|
|
13
16
|
const DEFAULT_LIMIT = 20;
|
|
14
17
|
const MAX_LIMIT = 100;
|
|
18
|
+
function isFactInjectionEnabled() {
|
|
19
|
+
const raw = process.env["NLM_HOOK_INJECT_FACTS"];
|
|
20
|
+
if (raw === undefined)
|
|
21
|
+
return true;
|
|
22
|
+
return raw !== "0" && raw.toLowerCase() !== "false";
|
|
23
|
+
}
|
|
15
24
|
// Reciprocal Rank Fusion constant (Cormack et al. 2009). k=60 is the
|
|
16
25
|
// canonical literature default. RRF combines ranked lists from multiple
|
|
17
26
|
// retrievers by summing 1/(k + rank) per retriever, ignoring raw scores —
|
|
@@ -22,6 +31,7 @@ const SEMANTIC_OVERFETCH = 3;
|
|
|
22
31
|
const KEYWORD_OVERFETCH = 3;
|
|
23
32
|
export class RecallService {
|
|
24
33
|
deps;
|
|
34
|
+
rewriteCache = new RewriteCache();
|
|
25
35
|
constructor(deps) {
|
|
26
36
|
this.deps = deps;
|
|
27
37
|
}
|
|
@@ -41,15 +51,40 @@ export class RecallService {
|
|
|
41
51
|
};
|
|
42
52
|
if (!input.query && !entity && !kind)
|
|
43
53
|
return empty;
|
|
54
|
+
// 0. Optional query rewrite. Fails open on LLM unreachable / parse error:
|
|
55
|
+
// keyword and semantic both fall back to the raw query, preserving
|
|
56
|
+
// pre-spec-C behavior. Cached for 5min to amortize repeat calls.
|
|
57
|
+
let keywordQuery = input.query;
|
|
58
|
+
let semanticQuery = input.query;
|
|
59
|
+
if (input.rewrite === true && input.query) {
|
|
60
|
+
const cached = this.rewriteCache.get(input.query);
|
|
61
|
+
if (cached) {
|
|
62
|
+
keywordQuery = cached.keywordQuery;
|
|
63
|
+
semanticQuery = cached.semanticQuery;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
try {
|
|
67
|
+
const rewritten = await this.deps.llm.rewriteForRecall(input.query);
|
|
68
|
+
this.rewriteCache.set(input.query, rewritten);
|
|
69
|
+
keywordQuery = rewritten.keywordQuery;
|
|
70
|
+
semanticQuery = rewritten.semanticQuery;
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
if (!(err instanceof LLMUnreachableError))
|
|
74
|
+
throw err;
|
|
75
|
+
// fail-open: keywordQuery / semanticQuery already set to raw input.query
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
44
79
|
// 1. Search legs — ranked neighbor IDs only. No session bodies loaded.
|
|
45
|
-
const kwNeighbors = (mode === "keyword" || mode === "hybrid") &&
|
|
46
|
-
? await this.deps.store.keywordSearch(
|
|
80
|
+
const kwNeighbors = (mode === "keyword" || mode === "hybrid") && keywordQuery
|
|
81
|
+
? await this.deps.store.keywordSearch(keywordQuery, limit * KEYWORD_OVERFETCH)
|
|
47
82
|
: [];
|
|
48
83
|
let semNeighbors = [];
|
|
49
84
|
let semError = null;
|
|
50
|
-
if ((mode === "semantic" || mode === "hybrid") &&
|
|
85
|
+
if ((mode === "semantic" || mode === "hybrid") && semanticQuery) {
|
|
51
86
|
try {
|
|
52
|
-
const embedding = await this.deps.llm.embed(
|
|
87
|
+
const embedding = await this.deps.llm.embed(semanticQuery, "query");
|
|
53
88
|
semNeighbors = await this.deps.store.semanticSearch(embedding.vector, limit * SEMANTIC_OVERFETCH);
|
|
54
89
|
}
|
|
55
90
|
catch (err) {
|
|
@@ -76,8 +111,10 @@ export class RecallService {
|
|
|
76
111
|
filterArgs.kind = input.kind;
|
|
77
112
|
const byId = new Map(applyFilter(hitSessions, filterArgs).map((s) => [s.id, s]));
|
|
78
113
|
// 3. Build hits from the resolved sessions, preserving leg rank order.
|
|
79
|
-
|
|
80
|
-
|
|
114
|
+
// matchedIn uses the keyword (possibly rewritten) query so the badge
|
|
115
|
+
// reflects the tokens that actually drove the search.
|
|
116
|
+
const queryTokens = keywordQuery
|
|
117
|
+
? new Set(tokenSet(keywordQuery))
|
|
81
118
|
: new Set();
|
|
82
119
|
const kwHits = [];
|
|
83
120
|
for (const n of kwNeighbors) {
|
|
@@ -98,19 +135,33 @@ export class RecallService {
|
|
|
98
135
|
semHits.push({ session, similarity: cosineFromL2(n.distance) });
|
|
99
136
|
}
|
|
100
137
|
// 4. Finalize per mode.
|
|
138
|
+
let result;
|
|
101
139
|
if (mode === "keyword") {
|
|
102
|
-
|
|
140
|
+
result = finalize(input.query, entity, kind, mode, limit, kwHits.map(toKeywordHit));
|
|
141
|
+
}
|
|
142
|
+
else if (mode === "semantic") {
|
|
143
|
+
result = finalize(input.query, entity, kind, mode, limit, semHits.map(toSemanticHit));
|
|
103
144
|
}
|
|
104
|
-
|
|
105
|
-
|
|
145
|
+
else {
|
|
146
|
+
const merged = mergeHybrid(kwHits, semHits);
|
|
147
|
+
const shape = detectQueryShape(input.query);
|
|
148
|
+
const forceIncluded = (shape.hasTemporal && shape.hasNamedEntity)
|
|
149
|
+
? forceIncludeKeywordTop(merged, kwHits, limit)
|
|
150
|
+
: merged;
|
|
151
|
+
result = finalize(input.query, entity, kind, mode, limit, forceIncluded);
|
|
152
|
+
if (semError)
|
|
153
|
+
result = { ...result, modeUnavailable: semError };
|
|
154
|
+
}
|
|
155
|
+
// 5. Spec G.2: optionally attach high-confidence facts about top entities.
|
|
156
|
+
// Only runs when the caller opts in AND a FactStore is wired. Failures
|
|
157
|
+
// silently no-op so recall never breaks because of fact lookup.
|
|
158
|
+
if (input.withRelatedFacts === true && this.deps.factStore && isFactInjectionEnabled()) {
|
|
159
|
+
const relatedFacts = await pickRelatedFacts(result.results, this.deps.factStore);
|
|
160
|
+
if (relatedFacts.length > 0) {
|
|
161
|
+
result = { ...result, relatedFacts };
|
|
162
|
+
}
|
|
106
163
|
}
|
|
107
|
-
|
|
108
|
-
const shape = detectQueryShape(input.query);
|
|
109
|
-
const forceIncluded = (shape.hasTemporal && shape.hasNamedEntity)
|
|
110
|
-
? forceIncludeKeywordTop(merged, kwHits, limit)
|
|
111
|
-
: merged;
|
|
112
|
-
const result = finalize(input.query, entity, kind, mode, limit, forceIncluded);
|
|
113
|
-
return semError ? { ...result, modeUnavailable: semError } : result;
|
|
164
|
+
return result;
|
|
114
165
|
}
|
|
115
166
|
}
|
|
116
167
|
function uniqueIds(kw, sem) {
|
|
@@ -213,14 +264,26 @@ function sessionHitFields(s) {
|
|
|
213
264
|
};
|
|
214
265
|
}
|
|
215
266
|
function finalize(query, entity, kind, mode, limit, hits) {
|
|
267
|
+
// Apply recency decay to every hit, then re-sort by adjusted score so
|
|
268
|
+
// newer sessions surface ahead of equally-relevant older ones. The decay
|
|
269
|
+
// is multiplicative; within a single query all hits use the same scale
|
|
270
|
+
// (BM25, similarity, or RRF) so the multiplier preserves intra-mode
|
|
271
|
+
// ranking when ages are similar and skews recent when ages diverge.
|
|
272
|
+
// Disable per-deployment with NLM_RECALL_DECAY_HALF_LIFE_DAYS=0.
|
|
273
|
+
const now = Date.now();
|
|
274
|
+
const adjusted = hits.map((h) => ({
|
|
275
|
+
...h,
|
|
276
|
+
matchScore: round4(h.matchScore * recencyMultiplier(h.startedAt, now)),
|
|
277
|
+
}));
|
|
278
|
+
adjusted.sort((a, b) => b.matchScore - a.matchScore);
|
|
216
279
|
return {
|
|
217
280
|
query,
|
|
218
281
|
entity,
|
|
219
282
|
kind,
|
|
220
283
|
mode,
|
|
221
284
|
limit,
|
|
222
|
-
total:
|
|
223
|
-
results:
|
|
285
|
+
total: adjusted.length,
|
|
286
|
+
results: adjusted.slice(0, limit),
|
|
224
287
|
};
|
|
225
288
|
}
|
|
226
289
|
function clampLimit(limit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall-service.js","sourceRoot":"","sources":["../../../src/core/recall/recall-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAc3D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,qEAAqE;AACrE,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,8CAA8C;AAC9C,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAO5B,MAAM,OAAO,aAAa;IACK;IAA7B,YAA6B,IAAuB;QAAvB,SAAI,GAAJ,IAAI,CAAmB;IAAG,CAAC;IAExD,KAAK,CAAC,MAAM,CAAC,KAAkB;QAC7B,MAAM,IAAI,GAAe,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;QAEhC,MAAM,KAAK,GAAiB;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM;YACN,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAEnD,uEAAuE;QACvE,MAAM,WAAW,GACf,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK;YACtD,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC;YAC7E,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,YAAY,GAAoC,EAAE,CAAC;QACvD,IAAI,QAAQ,GAAgC,IAAI,CAAC;QACjD,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAClE,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CACjD,SAAS,CAAC,MAAM,EAChB,KAAK,GAAG,kBAAkB,CAC3B,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;oBACvC,QAAQ,GAAG,oBAAoB,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;QACjD,CAAC;QAED,iEAAiE;QACjE,uEAAuE;QACvE,mEAAmE;QACnE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAkD,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACjE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAC3D,CAAC;QAEF,uEAAuE;QACvE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK;YAC7B,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAEtB,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO;gBACP,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,SAAS,EAAE,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,cAAc,CAAC;YAC/D,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;YAC/C,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC;CACF;AAED,SAAS,SAAS,CAChB,EAAkC,EAClC,GAAoC;IAEpC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AAClB,CAAC;AAaD;;;;;;;;;;;GAWG;AACH,SAAS,WAAW,CAClB,MAAiC,EACjC,OAAmC;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAE,CAAC,OAAO,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,GAAG,GACP,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,EAAE,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,UAAU,CAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,gBAAgB,CAAC,OAAO,CAAC;YAC5B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC;YACvB,SAAS;YACT,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACzD,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,sBAAsB,CAC7B,MAAgC,EAChC,MAAiC,EACjC,KAAa;IAEb,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,YAAY,CAAC,CAAa;IACjC,OAAO;QACL,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9B,UAAU,EAAE,CAAC,CAAC,KAAK;QACnB,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,CAAc;IACnC,OAAO;QACL,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,UAAU,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAU;IAClC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;KACR,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CACf,KAAa,EACb,MAAqB,EACrB,IAA0B,EAC1B,IAAgB,EAChB,KAAa,EACb,IAA8B;IAE9B,OAAO;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CACnB,CAA4B,EAC5B,CAA4B;IAE5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAc,CAAC;IACnC,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"recall-service.js","sourceRoot":"","sources":["../../../src/core/recall/recall-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,5 +30,16 @@ export declare class FactRecallService {
|
|
|
30
30
|
private readonly deps;
|
|
31
31
|
constructor(deps: FactRecallServiceDeps);
|
|
32
32
|
search(input: FactRecallQuery): Promise<FactRecallResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Fetch corroboration counts for the candidate hits and apply a log-scale
|
|
35
|
+
* boost to matchScore. Sessions that asserted the same (subject, predicate,
|
|
36
|
+
* value) get a multiplicative bonus capped at NLM_FACT_CORROBORATION_BOOST_CAP
|
|
37
|
+
* (default 2.0). Set the env var to 1.0 to disable the boost while still
|
|
38
|
+
* returning the count on each hit.
|
|
39
|
+
*
|
|
40
|
+
* Failure mode: any DB error reverts to returning the raw hits unchanged.
|
|
41
|
+
* The boost is a quality improvement, not a correctness contract.
|
|
42
|
+
*/
|
|
43
|
+
private applyCorroboration;
|
|
33
44
|
private runSemantic;
|
|
34
45
|
}
|
|
@@ -28,6 +28,16 @@ const STORAGE_FETCH_CAP = 500;
|
|
|
28
28
|
const HYBRID_KW_WEIGHT = 0.4;
|
|
29
29
|
const HYBRID_SEM_WEIGHT = 0.6;
|
|
30
30
|
const SEMANTIC_OVERFETCH = 3;
|
|
31
|
+
const DEFAULT_BOOST_CAP = 2.0;
|
|
32
|
+
function readBoostCap() {
|
|
33
|
+
const raw = process.env["NLM_FACT_CORROBORATION_BOOST_CAP"];
|
|
34
|
+
if (raw === undefined)
|
|
35
|
+
return DEFAULT_BOOST_CAP;
|
|
36
|
+
const parsed = Number.parseFloat(raw);
|
|
37
|
+
if (!Number.isFinite(parsed) || parsed < 1)
|
|
38
|
+
return DEFAULT_BOOST_CAP;
|
|
39
|
+
return parsed;
|
|
40
|
+
}
|
|
31
41
|
const FIELD_WEIGHTS = {
|
|
32
42
|
value: 3,
|
|
33
43
|
subject: 1,
|
|
@@ -104,19 +114,74 @@ export class FactRecallService {
|
|
|
104
114
|
const rows = candidates
|
|
105
115
|
.slice(0, limit)
|
|
106
116
|
.map((f) => factToHit(f, 0, []));
|
|
107
|
-
|
|
117
|
+
const boosted = await this.applyCorroboration(rows);
|
|
118
|
+
return finalize(queryText, subject, predicate, kind, mode, limit, boosted);
|
|
108
119
|
}
|
|
109
120
|
if (mode === "keyword") {
|
|
110
|
-
|
|
121
|
+
const boosted = await this.applyCorroboration(kwHits.map(toKeywordHit));
|
|
122
|
+
return finalize(queryText, subject, predicate, kind, mode, limit, boosted);
|
|
111
123
|
}
|
|
112
124
|
if (mode === "semantic") {
|
|
113
|
-
|
|
125
|
+
const boosted = await this.applyCorroboration(semHits.map(toSemanticHit));
|
|
126
|
+
return finalize(queryText, subject, predicate, kind, mode, limit, boosted);
|
|
114
127
|
}
|
|
115
128
|
// hybrid
|
|
116
129
|
const merged = mergeHybrid(kwHits, semHits, byId);
|
|
117
|
-
const
|
|
130
|
+
const boosted = await this.applyCorroboration(merged);
|
|
131
|
+
const result = finalize(queryText, subject, predicate, kind, mode, limit, boosted);
|
|
118
132
|
return semError ? { ...result, modeUnavailable: semError } : result;
|
|
119
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Fetch corroboration counts for the candidate hits and apply a log-scale
|
|
136
|
+
* boost to matchScore. Sessions that asserted the same (subject, predicate,
|
|
137
|
+
* value) get a multiplicative bonus capped at NLM_FACT_CORROBORATION_BOOST_CAP
|
|
138
|
+
* (default 2.0). Set the env var to 1.0 to disable the boost while still
|
|
139
|
+
* returning the count on each hit.
|
|
140
|
+
*
|
|
141
|
+
* Failure mode: any DB error reverts to returning the raw hits unchanged.
|
|
142
|
+
* The boost is a quality improvement, not a correctness contract.
|
|
143
|
+
*/
|
|
144
|
+
async applyCorroboration(hits) {
|
|
145
|
+
if (hits.length === 0)
|
|
146
|
+
return hits;
|
|
147
|
+
try {
|
|
148
|
+
const triples = hits.map((h) => ({
|
|
149
|
+
subject: h.subject,
|
|
150
|
+
predicate: h.predicate,
|
|
151
|
+
value: h.value,
|
|
152
|
+
}));
|
|
153
|
+
const counts = await this.deps.factStore.corroborationCounts(triples);
|
|
154
|
+
const cap = readBoostCap();
|
|
155
|
+
const boosted = hits.map((h) => {
|
|
156
|
+
const key = `${h.subject} ${h.predicate} ${h.value}`;
|
|
157
|
+
const count = counts.get(key) ?? 1;
|
|
158
|
+
const factor = Math.min(cap, 1 + Math.log10(Math.max(1, count)));
|
|
159
|
+
return {
|
|
160
|
+
...h,
|
|
161
|
+
matchScore: round4(h.matchScore * factor),
|
|
162
|
+
corroborationCount: count,
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
// Sort by matchScore, then corroborationCount as tiebreaker — but only
|
|
166
|
+
// when the boost is active (cap > 1). Cap = 1 means "count is reported
|
|
167
|
+
// but never affects ranking", so the tiebreaker is skipped to preserve
|
|
168
|
+
// native order on ties.
|
|
169
|
+
if (cap > 1) {
|
|
170
|
+
boosted.sort((a, b) => {
|
|
171
|
+
if (b.matchScore !== a.matchScore)
|
|
172
|
+
return b.matchScore - a.matchScore;
|
|
173
|
+
return (b.corroborationCount ?? 0) - (a.corroborationCount ?? 0);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
boosted.sort((a, b) => b.matchScore - a.matchScore);
|
|
178
|
+
}
|
|
179
|
+
return boosted;
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return hits;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
120
185
|
async runSemantic(query, byId, fetchLimit) {
|
|
121
186
|
const embedding = await this.deps.llm.embed(query, "query");
|
|
122
187
|
const neighbors = await this.deps.factStore.semanticSearch(embedding.vector, fetchLimit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact-recall-service.js","sourceRoot":"","sources":["../../../src/core/recall-facts/fact-recall-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAS3D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;CACJ,CAAC;AAOX,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;IAAG,CAAC;IAE5D,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,MAAM,IAAI,GAAe,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE7C,MAAM,KAAK,GAAqB;YAC9B,KAAK,EAAE,SAAS;YAChB,OAAO;YACP,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,CAAC,SAAS,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAA8C;YACxD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,KAAK,IAAI;YACnD,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,sBAAsB;YAC5D,KAAK,EAAE,iBAAiB;YACxB,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAe,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAEjF,MAAM,MAAM,GACV,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;YACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;YACnC,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,OAAO,GAA+B,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAAgC,IAAI,CAAC;QACjD,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,GAAG,kBAAkB,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;oBACvC,QAAQ,GAAG,oBAAoB,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;QACjD,CAAC;QAED,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,mEAAmE;QACnE,sDAAsD;QACtD,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,UAAU;iBACpB,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACnC,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,SAAS;QACT,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,KAAa,EACb,IAA+B,EAC/B,UAAkB;QAElB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACzF,MAAM,IAAI,GAAkB,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI;gBAAE,SAAS,CAAC,uDAAuD;YAC5E,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAaD,SAAS,QAAQ,CACf,KAA0B,EAC1B,WAAgC;IAEhC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAChB,IAAU,EACV,WAAgC;IAEhC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,SAAS,GAAqB,EAAE,CAAC;IAEvC,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,aAAa,CAAC,KAAK,GAAG,YAAY,CAAC;QAC5C,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,IAAI,aAAa,CAAC,OAAO,GAAG,cAAc,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,aAAa,CAAC,SAAS,GAAG,gBAAgB,CAAC;QACpD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAClB,MAAiC,EACjC,OAAmC,EACnC,IAA+B;IAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAqB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,GAAG,OAAO,GAAG,gBAAgB,GAAG,MAAM,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,YAAY,CAC5B,EAAE,EAAE,SAAS,IAAI,EAAE,EACnB,GAAG,CAAC,CAAC,CAAE,CAAC,UAAU,CAAsB,CAAC,CAAC,CAAC,EAAE,CAC9C,CAAC;QACF,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,IAAI;YACP,UAAU,EAAE,QAAQ;YACpB,SAAS;YACT,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;YAC5B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAChB,IAAU,EACV,KAAa,EACb,SAAwC;IAExC,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,CAAa;IACjC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,CAAc;IACnC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,QAAQ,CACf,KAAa,EACb,OAAsB,EACtB,SAAwB,EACxB,IAA8B,EAC9B,IAAgB,EAChB,KAAa,EACb,IAA4B;IAE5B,OAAO;QACL,KAAK;QACL,OAAO;QACP,SAAS;QACT,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK,EAAE,IAAI,CAAC,MAAM;QAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,MAAM,CAAC,GAAG,KAAK,IAAI,aAAa,CAAC;IACjC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAI,CAAiB,EAAE,CAAiB;IAC/D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CACnB,CAAgC,EAChC,CAAgC;IAEhC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"fact-recall-service.js","sourceRoot":"","sources":["../../../src/core/recall-facts/fact-recall-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import type { LLMClient } from "../../ports/llm-client.js";
|
|
20
20
|
import type { TranscriptAdapter } from "../../ports/transcript-adapter.js";
|
|
21
|
+
import type { SignalStore } from "../../ports/signal-store.js";
|
|
21
22
|
import type { SqliteFactStore } from "../storage/sqlite-fact-store.js";
|
|
22
23
|
import type { SqliteSessionStore } from "../storage/sqlite-session-store.js";
|
|
23
24
|
export interface SchedulerOptions {
|
|
@@ -33,6 +34,11 @@ export interface SchedulerOptions {
|
|
|
33
34
|
* updated, and for any future caller that wants facts off).
|
|
34
35
|
*/
|
|
35
36
|
readonly factStore?: SqliteFactStore | null;
|
|
37
|
+
/** SignalStore for the self-improvement lane. When set, the tick drains
|
|
38
|
+
* each chunk's embedded nlm.signal payloads, decoupled from classification. */
|
|
39
|
+
readonly signalStore?: SignalStore | null;
|
|
40
|
+
/** Per-install scope stamped on drained signals. Required when signalStore is set. */
|
|
41
|
+
readonly installScope?: string;
|
|
36
42
|
readonly intervalMs?: number;
|
|
37
43
|
readonly classifyTimeoutMs?: number;
|
|
38
44
|
readonly confidenceFloor?: number;
|
|
@@ -56,4 +62,5 @@ export declare class ScanScheduler {
|
|
|
56
62
|
stop(): void;
|
|
57
63
|
private scheduleNext;
|
|
58
64
|
tick(): Promise<TickReport>;
|
|
65
|
+
private drainSignals;
|
|
59
66
|
}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* are skipped rather than persisted as low-quality noise.
|
|
18
18
|
*/
|
|
19
19
|
import { extractFacts } from "../facts/extract-facts.js";
|
|
20
|
+
import { normalizeSignal } from "../signals/ingest-signal.js";
|
|
20
21
|
import { MAX_CLASSIFY_FAILURES, getFileSize, recordClassified, recordFailed, recordFailedPg, scanOnce, scanOncePg } from "./scan-once.js";
|
|
21
22
|
const DEFAULT_INTERVAL_MS = 30 * 60 * 1000; // 30 min, matches Python default
|
|
22
23
|
const DEFAULT_CLASSIFY_TIMEOUT_MS = 120_000;
|
|
@@ -34,6 +35,8 @@ export class ScanScheduler {
|
|
|
34
35
|
classifier: opts.classifier,
|
|
35
36
|
embedder: opts.embedder ?? null,
|
|
36
37
|
factStore: opts.factStore ?? null,
|
|
38
|
+
signalStore: opts.signalStore ?? null,
|
|
39
|
+
installScope: opts.installScope ?? "default",
|
|
37
40
|
intervalMs: opts.intervalMs ?? DEFAULT_INTERVAL_MS,
|
|
38
41
|
classifyTimeoutMs: opts.classifyTimeoutMs ?? DEFAULT_CLASSIFY_TIMEOUT_MS,
|
|
39
42
|
confidenceFloor: opts.confidenceFloor ?? DEFAULT_CONFIDENCE_FLOOR,
|
|
@@ -81,6 +84,7 @@ export class ScanScheduler {
|
|
|
81
84
|
}
|
|
82
85
|
for (const { chunk, supersedes } of results) {
|
|
83
86
|
chunksSeen += 1;
|
|
87
|
+
await this.drainSignals(chunk);
|
|
84
88
|
let classification;
|
|
85
89
|
try {
|
|
86
90
|
classification = await withTimeout(this.opts.classifier.classify(chunk.text), this.opts.classifyTimeoutMs);
|
|
@@ -153,6 +157,28 @@ export class ScanScheduler {
|
|
|
153
157
|
}
|
|
154
158
|
return { inserted, skippedLowConfidence, classifyFailures, storageFailures, chunksSeen };
|
|
155
159
|
}
|
|
160
|
+
async drainSignals(chunk) {
|
|
161
|
+
if (process.env["NLM_SIGNALS_ENABLED"] === "0")
|
|
162
|
+
return;
|
|
163
|
+
if (!this.opts.signalStore || !chunk.signals?.length)
|
|
164
|
+
return;
|
|
165
|
+
try {
|
|
166
|
+
const normalized = [];
|
|
167
|
+
for (const raw of chunk.signals) {
|
|
168
|
+
try {
|
|
169
|
+
normalized.push(normalizeSignal(raw, this.opts.installScope));
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// skip a malformed embedded signal; one bad entry must not lose the rest
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (normalized.length > 0)
|
|
176
|
+
await this.opts.signalStore.insertMany(normalized);
|
|
177
|
+
}
|
|
178
|
+
catch (e) {
|
|
179
|
+
this.opts.logger(`[scheduler] signal drain failed for ${chunk.id}: ${e instanceof Error ? e.message : String(e)}`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
156
182
|
}
|
|
157
183
|
class TimeoutError extends Error {
|
|
158
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/core/scheduler/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/core/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure roll-up of signals into threshold-gated failure modes. No I/O, no LLM
|
|
3
|
+
* (LLM polish lives in the UI / `nlm improve` layer only). The caller passes a
|
|
4
|
+
* pre-filtered, pre-windowed slice from the SignalStore.
|
|
5
|
+
*/
|
|
6
|
+
import type { Signal } from "../../shared/types.js";
|
|
7
|
+
export interface FailureMode {
|
|
8
|
+
readonly repo: string;
|
|
9
|
+
readonly model: string;
|
|
10
|
+
readonly kind: string;
|
|
11
|
+
readonly step: string | null;
|
|
12
|
+
readonly total: number;
|
|
13
|
+
readonly failures: number;
|
|
14
|
+
readonly failRate: number;
|
|
15
|
+
readonly lastTs: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AggregateOptions {
|
|
18
|
+
readonly minFailRate?: number;
|
|
19
|
+
readonly minSamples?: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function aggregateFailureModes(signals: ReadonlyArray<Signal>, opts?: AggregateOptions): ReadonlyArray<FailureMode>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure roll-up of signals into threshold-gated failure modes. No I/O, no LLM
|
|
3
|
+
* (LLM polish lives in the UI / `nlm improve` layer only). The caller passes a
|
|
4
|
+
* pre-filtered, pre-windowed slice from the SignalStore.
|
|
5
|
+
*/
|
|
6
|
+
const FAILING = new Set(["fail", "exhausted"]);
|
|
7
|
+
export function aggregateFailureModes(signals, opts = {}) {
|
|
8
|
+
const minFailRate = opts.minFailRate ?? 0.2;
|
|
9
|
+
const minSamples = opts.minSamples ?? 10;
|
|
10
|
+
const buckets = new Map();
|
|
11
|
+
for (const s of signals) {
|
|
12
|
+
const key = [s.repo, s.model, s.kind, s.step ?? ""].join("\0");
|
|
13
|
+
let b = buckets.get(key);
|
|
14
|
+
if (!b) {
|
|
15
|
+
b = { repo: s.repo, model: s.model, kind: s.kind, step: s.step, total: 0, failures: 0, lastTs: s.ts };
|
|
16
|
+
buckets.set(key, b);
|
|
17
|
+
}
|
|
18
|
+
b.total += 1;
|
|
19
|
+
if (FAILING.has(s.outcome))
|
|
20
|
+
b.failures += 1;
|
|
21
|
+
if (s.ts > b.lastTs)
|
|
22
|
+
b.lastTs = s.ts;
|
|
23
|
+
}
|
|
24
|
+
const modes = [];
|
|
25
|
+
for (const b of buckets.values()) {
|
|
26
|
+
const failRate = b.total === 0 ? 0 : b.failures / b.total;
|
|
27
|
+
if (b.total >= minSamples && failRate >= minFailRate) {
|
|
28
|
+
modes.push({ repo: b.repo, model: b.model, kind: b.kind, step: b.step, total: b.total, failures: b.failures, failRate, lastTs: b.lastTs });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
modes.sort((a, b) => b.failRate - a.failRate || b.total - a.total);
|
|
32
|
+
return modes;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/core/signals/aggregate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,MAAM,OAAO,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEpE,MAAM,UAAU,qBAAqB,CACnC,OAA8B,EAC9B,OAAyB,EAAE;IAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAGzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACb,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1D,IAAI,CAAC,CAAC,KAAK,IAAI,UAAU,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7I,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build the deterministic "Known failure modes" block injected at session
|
|
3
|
+
* start. No LLM on this path - it runs inside the SessionStart hook's ~2s
|
|
4
|
+
* budget. Threshold-gated via the aggregator.
|
|
5
|
+
*/
|
|
6
|
+
import type { SignalStore } from "../../ports/signal-store.js";
|
|
7
|
+
import { type AggregateOptions, type FailureMode } from "./aggregate.js";
|
|
8
|
+
export interface FailureModeRecallOptions extends AggregateOptions {
|
|
9
|
+
readonly windowDays?: number;
|
|
10
|
+
readonly maxModes?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function renderFailureMode(mode: FailureMode, windowDays: number): string;
|
|
13
|
+
export declare function buildFailureModeBlock(store: SignalStore, args: {
|
|
14
|
+
installScope: string;
|
|
15
|
+
repo: string;
|
|
16
|
+
model?: string;
|
|
17
|
+
now?: () => Date;
|
|
18
|
+
}, opts?: FailureModeRecallOptions): Promise<string>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build the deterministic "Known failure modes" block injected at session
|
|
3
|
+
* start. No LLM on this path - it runs inside the SessionStart hook's ~2s
|
|
4
|
+
* budget. Threshold-gated via the aggregator.
|
|
5
|
+
*/
|
|
6
|
+
import { aggregateFailureModes } from "./aggregate.js";
|
|
7
|
+
export function renderFailureMode(mode, windowDays) {
|
|
8
|
+
const pct = Math.round(mode.failRate * 100);
|
|
9
|
+
const where = mode.step ? `\`${mode.step}\`` : mode.kind;
|
|
10
|
+
return `- ${mode.model} failed ${where} on ${pct}% of ${mode.kind} checks in this repo (n=${mode.total}, ${windowDays}d).`;
|
|
11
|
+
}
|
|
12
|
+
export async function buildFailureModeBlock(store, args, opts = {}) {
|
|
13
|
+
const windowDays = opts.windowDays ?? 14;
|
|
14
|
+
const maxModes = opts.maxModes ?? 3;
|
|
15
|
+
const now = (args.now ?? (() => new Date()))();
|
|
16
|
+
const sinceTs = new Date(now.getTime() - windowDays * 86_400_000).toISOString();
|
|
17
|
+
const signals = await store.listForAggregation({
|
|
18
|
+
installScope: args.installScope,
|
|
19
|
+
repo: args.repo,
|
|
20
|
+
...(args.model ? { model: args.model } : {}),
|
|
21
|
+
sinceTs,
|
|
22
|
+
});
|
|
23
|
+
const modes = aggregateFailureModes(signals, opts).slice(0, maxModes);
|
|
24
|
+
if (modes.length === 0)
|
|
25
|
+
return "";
|
|
26
|
+
return ["## Known failure modes for this repo", ...modes.map((m) => renderFailureMode(m, windowDays))].join("\n");
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=failure-mode-recall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-mode-recall.js","sourceRoot":"","sources":["../../../src/core/signals/failure-mode-recall.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,qBAAqB,EAA2C,MAAM,gBAAgB,CAAC;AAOhG,MAAM,UAAU,iBAAiB,CAAC,IAAiB,EAAE,UAAkB;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,OAAO,KAAK,IAAI,CAAC,KAAK,WAAW,KAAK,OAAO,GAAG,QAAQ,IAAI,CAAC,IAAI,2BAA2B,IAAI,CAAC,KAAK,KAAK,UAAU,KAAK,CAAC;AAC7H,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,KAAkB,EAClB,IAA8E,EAC9E,OAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;IAEhF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC;QAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,OAAO,CAAC,sCAAsC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boundary validation + normalization for inbound signals (HTTP and
|
|
3
|
+
* session-embedded share this). kind/outcome are the lane definers - invalid
|
|
4
|
+
* values throw (fail loud at the boundary). producer/model/repo/ts soft-default
|
|
5
|
+
* so a sloppy-but-valid producer still records data rather than being dropped.
|
|
6
|
+
*
|
|
7
|
+
* The id is deterministic over (session, producer, ts, step, outcome) so a
|
|
8
|
+
* session file re-parsed after it grows re-emits the same ids and the store's
|
|
9
|
+
* ON CONFLICT DO NOTHING makes re-ingest a no-op.
|
|
10
|
+
*/
|
|
11
|
+
import type { Signal } from "../../shared/types.js";
|
|
12
|
+
export declare function signalId(parts: {
|
|
13
|
+
sessionId: string | null;
|
|
14
|
+
producer: string;
|
|
15
|
+
ts: string;
|
|
16
|
+
step: string | null;
|
|
17
|
+
outcome: string;
|
|
18
|
+
}): string;
|
|
19
|
+
export declare function normalizeSignal(raw: unknown, installScope: string, now?: () => string): Signal;
|