@danielmarbach/mnemonic-mcp 0.25.5 → 0.26.1
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/CHANGELOG.md +23 -0
- package/README.md +2 -2
- package/build/cache.d.ts +8 -0
- package/build/cache.d.ts.map +1 -1
- package/build/cache.js +23 -0
- package/build/cache.js.map +1 -1
- package/build/index.js +78 -10
- package/build/index.js.map +1 -1
- package/build/lexical.d.ts +2 -2
- package/build/lexical.d.ts.map +1 -1
- package/build/lexical.js +6 -4
- package/build/lexical.js.map +1 -1
- package/build/recall.d.ts +39 -15
- package/build/recall.d.ts.map +1 -1
- package/build/recall.js +253 -25
- package/build/recall.js.map +1 -1
- package/build/semantic-patch.d.ts.map +1 -1
- package/build/semantic-patch.js +4 -1
- package/build/semantic-patch.js.map +1 -1
- package/package.json +1 -1
- package/skills/mnemonic-rpi-workflow/SKILL.md +21 -1
package/build/lexical.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare function computeInverseDocumentFrequency(documents: string[][]):
|
|
|
42
42
|
* Compute cosine similarity between a query and document TF-IDF vectors.
|
|
43
43
|
*/
|
|
44
44
|
export declare function computeTfIdfCosineSimilarity(query: string, document: string, corpus: string[]): number;
|
|
45
|
-
interface PreparedTfIdfDocument {
|
|
45
|
+
export interface PreparedTfIdfDocument {
|
|
46
46
|
id: string;
|
|
47
47
|
text: string;
|
|
48
48
|
tokens: string[];
|
|
@@ -55,6 +55,7 @@ export declare function prepareTfIdfCorpus(documents: Array<{
|
|
|
55
55
|
id: string;
|
|
56
56
|
text: string;
|
|
57
57
|
}>): PreparedTfIdfCorpus;
|
|
58
|
+
export declare function prepareTfIdfCorpusFromTokenizedDocuments(documents: PreparedTfIdfDocument[]): PreparedTfIdfCorpus;
|
|
58
59
|
/**
|
|
59
60
|
* Rank documents by TF-IDF cosine similarity for a query.
|
|
60
61
|
*/
|
|
@@ -85,5 +86,4 @@ export declare const LEXICAL_RESCUE_RESULT_LIMIT = 3;
|
|
|
85
86
|
* OR when there are no semantic results.
|
|
86
87
|
*/
|
|
87
88
|
export declare function shouldTriggerLexicalRescue(topSemanticScore: number | undefined, semanticResultCount: number): boolean;
|
|
88
|
-
export {};
|
|
89
89
|
//# sourceMappingURL=lexical.d.ts.map
|
package/build/lexical.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAQxE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpE;AAeD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkBjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB1F;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAgCtG;AAED,
|
|
1
|
+
{"version":3,"file":"lexical.d.ts","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAE/C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAQxE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpE;AAeD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAkBjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa1E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB1F;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAgCtG;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,qBAAqB,EAAE,CAAC;IACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,mBAAmB,CAQrB;AAED,wBAAgB,wCAAwC,CACtD,SAAS,EAAE,qBAAqB,EAAE,GACjC,mBAAmB,CAKrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,mBAAmB,GACnC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBtC;AAuED;;GAEG;AACH,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAKT"}
|
package/build/lexical.js
CHANGED
|
@@ -146,14 +146,16 @@ export function computeTfIdfCosineSimilarity(query, document, corpus) {
|
|
|
146
146
|
return dotProduct / (Math.sqrt(queryMagnitude) * Math.sqrt(documentMagnitude));
|
|
147
147
|
}
|
|
148
148
|
export function prepareTfIdfCorpus(documents) {
|
|
149
|
-
|
|
149
|
+
return prepareTfIdfCorpusFromTokenizedDocuments(documents.map((document) => ({
|
|
150
150
|
id: document.id,
|
|
151
151
|
text: document.text,
|
|
152
152
|
tokens: tokenize(document.text),
|
|
153
|
-
}));
|
|
153
|
+
})));
|
|
154
|
+
}
|
|
155
|
+
export function prepareTfIdfCorpusFromTokenizedDocuments(documents) {
|
|
154
156
|
return {
|
|
155
|
-
documents
|
|
156
|
-
idf: computeInverseDocumentFrequency(
|
|
157
|
+
documents,
|
|
158
|
+
idf: computeInverseDocumentFrequency(documents.map((document) => document.tokens)),
|
|
157
159
|
};
|
|
158
160
|
}
|
|
159
161
|
/**
|
package/build/lexical.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexical.js","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lexical.js","sourceRoot":"","sources":["../src/lexical.ts"],"names":[],"mappings":"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"}
|
package/build/recall.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import type { Vault } from "./vault.js";
|
|
2
2
|
import type { EffectiveNoteMetadata } from "./role-suggestions.js";
|
|
3
|
+
import type { RelationshipType } from "./storage.js";
|
|
4
|
+
export interface TemporalQueryHint {
|
|
5
|
+
windowDays: number;
|
|
6
|
+
maxBoost: number;
|
|
7
|
+
confidence: "high" | "medium" | "low";
|
|
8
|
+
filterWindowDays?: number;
|
|
9
|
+
}
|
|
3
10
|
export interface ScoredRecallCandidate {
|
|
4
11
|
id: string;
|
|
5
12
|
score: number;
|
|
6
13
|
/** Semantic plausibility used to gate canonical explanation promotion. */
|
|
7
14
|
semanticScoreForPromotion?: number;
|
|
15
|
+
/** Rank from the initial semantic retrieval ordering (1-based). */
|
|
16
|
+
semanticRank?: number;
|
|
17
|
+
/** Rank from the lexical reranking step (1-based). */
|
|
18
|
+
lexicalRank?: number;
|
|
8
19
|
boosted: number;
|
|
9
20
|
vault: Vault;
|
|
10
21
|
isCurrentProject: boolean;
|
|
@@ -22,33 +33,46 @@ export interface ScoredRecallCandidate {
|
|
|
22
33
|
canonicalExplanationScore?: number;
|
|
23
34
|
}
|
|
24
35
|
export declare function computeRecallMetadataBoost(metadata?: EffectiveNoteMetadata): number;
|
|
36
|
+
export declare function detectTemporalQueryHint(query: string): TemporalQueryHint | undefined;
|
|
37
|
+
export declare function computeTemporalRecencyBoost(updatedAt: string, hint: TemporalQueryHint, now?: Date): number;
|
|
38
|
+
export declare function shouldApplyTemporalFiltering(hint: TemporalQueryHint | undefined): boolean;
|
|
39
|
+
export declare function isWithinTemporalFilterWindow(updatedAt: string, windowDays: number, now?: Date): boolean;
|
|
25
40
|
/**
|
|
26
|
-
* Compute
|
|
27
|
-
*
|
|
41
|
+
* Compute RRF-based hybrid score.
|
|
42
|
+
*
|
|
43
|
+
* Formula:
|
|
44
|
+
* boosted + RRF + canonicalExplanationScore * CANONICAL_HYBRID_WEIGHT
|
|
28
45
|
*
|
|
29
|
-
*
|
|
30
|
-
* boosted
|
|
31
|
-
* + LEXICAL_HYBRID_WEIGHT * lexical
|
|
32
|
-
* + COVERAGE_HYBRID_WEIGHT * coverage
|
|
33
|
-
* + PHRASE_HYBRID_WEIGHT * phrase
|
|
34
|
-
* + canonicalExplanation
|
|
46
|
+
* where RRF = 1/(K + semanticRank) + 1/(K + lexicalRank)
|
|
35
47
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
48
|
+
* When semanticRank is missing but lexicalRank is available (rescue candidates)
|
|
49
|
+
* only the lexical channel contributes. When both are missing the function
|
|
50
|
+
* falls back to pure boosted (pre-RRF scoring stage).
|
|
38
51
|
*/
|
|
39
52
|
export declare function computeHybridScore(candidate: ScoredRecallCandidate): number;
|
|
53
|
+
export declare function assignDenseRanks<T>(items: T[], scoreOf: (item: T) => number, setRank: (item: T, rank: number) => void): void;
|
|
40
54
|
export declare function computeCanonicalExplanationScore(candidate: ScoredRecallCandidate): number;
|
|
41
55
|
export declare function applyCanonicalExplanationPromotion(candidates: ScoredRecallCandidate[]): ScoredRecallCandidate[];
|
|
42
56
|
/**
|
|
43
|
-
* Apply lexical
|
|
57
|
+
* Apply lexical scoring to semantic candidates. Returns the same array.
|
|
44
58
|
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
59
|
+
* Computes lexical overlap, coverage, and phrase scores using projection
|
|
60
|
+
* text. When projection text is unavailable, lexicalScore stays undefined.
|
|
47
61
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
62
|
+
* Also assigns semanticRank (1-based) based on the current boosted ordering.
|
|
63
|
+
* Sorting by RRF + canonical is deferred until applyCanonicalExplanationPromotion
|
|
64
|
+
* so that lexicalRank can be assigned after all scores are known.
|
|
50
65
|
*/
|
|
51
66
|
export declare function applyLexicalReranking(candidates: ScoredRecallCandidate[], query: string, getProjectionText: (id: string) => string | undefined): ScoredRecallCandidate[];
|
|
67
|
+
export declare function enrichRescueCandidateScores(allCandidates: ScoredRecallCandidate[], query: string, getProjectionText: (id: string) => string | undefined): void;
|
|
52
68
|
export declare function selectRecallResults(scored: ScoredRecallCandidate[], limit: number, scope: "project" | "global" | "all"): ScoredRecallCandidate[];
|
|
53
69
|
export declare function selectWorkflowResults(scored: ScoredRecallCandidate[], limit: number, scope: "project" | "global" | "all"): ScoredRecallCandidate[];
|
|
70
|
+
export declare function applyGraphSpreadingActivation(candidates: ScoredRecallCandidate[], getNoteRelationships: (id: string) => Array<{
|
|
71
|
+
id: string;
|
|
72
|
+
type: RelationshipType;
|
|
73
|
+
}> | undefined): ScoredRecallCandidate[];
|
|
74
|
+
export declare function resolveDiscoveredVaults(candidates: ScoredRecallCandidate[], originalCandidateIds: Set<string>, resolveVault: (id: string) => Promise<{
|
|
75
|
+
vault: Vault;
|
|
76
|
+
isCurrentProject: boolean;
|
|
77
|
+
} | undefined>): Promise<void>;
|
|
54
78
|
//# sourceMappingURL=recall.d.ts.map
|
package/build/recall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"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"}
|
package/build/recall.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { computeLexicalScore, tokenize } from "./lexical.js";
|
|
2
|
+
const RRF_K = 60;
|
|
3
|
+
const CANONICAL_HYBRID_WEIGHT = 0.05;
|
|
2
4
|
const RECALL_ALWAYS_LOAD_BOOST = 0.01;
|
|
3
5
|
const RECALL_SUMMARY_BOOST = 0.012;
|
|
4
6
|
const RECALL_DECISION_BOOST = 0.009;
|
|
5
7
|
const RECALL_HIGH_IMPORTANCE_BOOST = 0.006;
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const SPREADING_ENTRY_POINT_LIMIT = 5;
|
|
9
|
+
const SPREADING_HOP_DECAY = 0.5;
|
|
10
|
+
const SPREADING_ACTIVATION_GATE = 0.5;
|
|
11
|
+
const SPREADING_RELATED_TO_MULTIPLIER = 0.8;
|
|
12
|
+
const SPREADING_EXPLAINS_DERIVES_MULTIPLIER = 1.0;
|
|
10
13
|
const MIN_CANONICAL_EXPLANATION_SCORE = 0.5;
|
|
11
14
|
const WORKFLOW_ROLE_BOOSTS = {
|
|
12
15
|
plan: 0.03,
|
|
@@ -35,26 +38,137 @@ export function computeRecallMetadataBoost(metadata) {
|
|
|
35
38
|
}
|
|
36
39
|
return boost;
|
|
37
40
|
}
|
|
41
|
+
const TEMPORAL_QUERY_HINTS = [
|
|
42
|
+
// Ordered by specificity (longer/more specific patterns first) to avoid first-match-wins issues.
|
|
43
|
+
{ pattern: /\b(in\s+the\s+past)\b/i, hint: { windowDays: 365, maxBoost: 0.03, confidence: "low" } },
|
|
44
|
+
{ pattern: /\b(this\s+year|last\s+year)\b/i, hint: { windowDays: 366, maxBoost: 0.03, confidence: "medium" } },
|
|
45
|
+
{ pattern: /\b(last\s+month)\b/i, hint: { windowDays: 62, maxBoost: 0.05, confidence: "medium" } },
|
|
46
|
+
{ pattern: /\b(this\s+month)\b/i, hint: { windowDays: 31, maxBoost: 0.05, confidence: "medium" } },
|
|
47
|
+
{ pattern: /\b(last\s+week)\b/i, hint: { windowDays: 14, maxBoost: 0.06, confidence: "medium" } },
|
|
48
|
+
{ pattern: /\b(this\s+week)\b/i, hint: { windowDays: 7, maxBoost: 0.06, confidence: "medium" } },
|
|
49
|
+
{ pattern: /\b(yesterday)\b/i, hint: { windowDays: 3, maxBoost: 0.08, confidence: "medium" } },
|
|
50
|
+
{ pattern: /\b(today|latest)\b/i, hint: { windowDays: 2, maxBoost: 0.08, confidence: "medium" } },
|
|
51
|
+
{ pattern: /\b(recent|recently|newest)\b/i, hint: { windowDays: 30, maxBoost: 0.05, confidence: "low" } },
|
|
52
|
+
];
|
|
53
|
+
const EXPLICIT_TEMPORAL_WINDOW_PATTERN = /\b(?:past|last|the\s+last|in\s+the\s+last)\s+(\d{1,3})\s+(day|days|week|weeks|month|months|year|years)\b/i;
|
|
54
|
+
function toDays(value, unit) {
|
|
55
|
+
const normalized = unit.toLowerCase();
|
|
56
|
+
if (normalized === "day" || normalized === "days")
|
|
57
|
+
return value;
|
|
58
|
+
if (normalized === "week" || normalized === "weeks")
|
|
59
|
+
return value * 7;
|
|
60
|
+
if (normalized === "month" || normalized === "months")
|
|
61
|
+
return value * 31;
|
|
62
|
+
return value * 366;
|
|
63
|
+
}
|
|
64
|
+
export function detectTemporalQueryHint(query) {
|
|
65
|
+
const explicitWindow = query.match(EXPLICIT_TEMPORAL_WINDOW_PATTERN);
|
|
66
|
+
if (explicitWindow) {
|
|
67
|
+
const value = Number.parseInt(explicitWindow[1], 10);
|
|
68
|
+
const unit = explicitWindow[2];
|
|
69
|
+
if (Number.isFinite(value) && value > 0) {
|
|
70
|
+
const windowDays = toDays(value, unit);
|
|
71
|
+
return {
|
|
72
|
+
windowDays,
|
|
73
|
+
filterWindowDays: windowDays,
|
|
74
|
+
maxBoost: Math.min(0.08, 0.03 + Math.log10(value + 1) * 0.02),
|
|
75
|
+
confidence: "high",
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (const entry of TEMPORAL_QUERY_HINTS) {
|
|
80
|
+
if (entry.pattern.test(query)) {
|
|
81
|
+
return entry.hint;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
export function computeTemporalRecencyBoost(updatedAt, hint, now = new Date()) {
|
|
87
|
+
const updated = new Date(updatedAt);
|
|
88
|
+
if (Number.isNaN(updated.getTime())) {
|
|
89
|
+
return 0;
|
|
90
|
+
}
|
|
91
|
+
const ageDays = Math.max(0, (now.getTime() - updated.getTime()) / (1000 * 60 * 60 * 24));
|
|
92
|
+
if (ageDays > hint.windowDays) {
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
const freshness = 1 - ageDays / hint.windowDays;
|
|
96
|
+
return hint.maxBoost * freshness;
|
|
97
|
+
}
|
|
98
|
+
export function shouldApplyTemporalFiltering(hint) {
|
|
99
|
+
return hint?.confidence === "high" && hint.filterWindowDays !== undefined;
|
|
100
|
+
}
|
|
101
|
+
export function isWithinTemporalFilterWindow(updatedAt, windowDays, now = new Date()) {
|
|
102
|
+
const updated = new Date(updatedAt);
|
|
103
|
+
if (Number.isNaN(updated.getTime())) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
const ageDays = Math.max(0, (now.getTime() - updated.getTime()) / (1000 * 60 * 60 * 24));
|
|
107
|
+
return ageDays <= windowDays;
|
|
108
|
+
}
|
|
38
109
|
/**
|
|
39
|
-
* Compute
|
|
40
|
-
*
|
|
110
|
+
* Compute RRF-based hybrid score.
|
|
111
|
+
*
|
|
112
|
+
* Formula:
|
|
113
|
+
* boosted + RRF + canonicalExplanationScore * CANONICAL_HYBRID_WEIGHT
|
|
41
114
|
*
|
|
42
|
-
*
|
|
43
|
-
* boosted
|
|
44
|
-
* + LEXICAL_HYBRID_WEIGHT * lexical
|
|
45
|
-
* + COVERAGE_HYBRID_WEIGHT * coverage
|
|
46
|
-
* + PHRASE_HYBRID_WEIGHT * phrase
|
|
47
|
-
* + canonicalExplanation
|
|
115
|
+
* where RRF = 1/(K + semanticRank) + 1/(K + lexicalRank)
|
|
48
116
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
117
|
+
* When semanticRank is missing but lexicalRank is available (rescue candidates)
|
|
118
|
+
* only the lexical channel contributes. When both are missing the function
|
|
119
|
+
* falls back to pure boosted (pre-RRF scoring stage).
|
|
51
120
|
*/
|
|
52
121
|
export function computeHybridScore(candidate) {
|
|
122
|
+
const canonical = candidate.canonicalExplanationScore ?? 0;
|
|
123
|
+
if (candidate.semanticRank === undefined && candidate.lexicalRank === undefined) {
|
|
124
|
+
return candidate.boosted + canonical;
|
|
125
|
+
}
|
|
126
|
+
const semanticContribution = candidate.semanticRank !== undefined
|
|
127
|
+
? 1 / (RRF_K + candidate.semanticRank)
|
|
128
|
+
: 0;
|
|
129
|
+
const lexicalContribution = candidate.lexicalRank !== undefined
|
|
130
|
+
? 1 / (RRF_K + candidate.lexicalRank)
|
|
131
|
+
: 0;
|
|
132
|
+
// Scale RRF so its maximum influence is comparable to the old additive
|
|
133
|
+
// lexical weight (~0.12). With K = 60 and two channels the max RRF is
|
|
134
|
+
// roughly 2/60 ≈ 0.033. Multiplied by 3.5 this hits ~0.115, matching the
|
|
135
|
+
// old order-of-magnitude while remaining calibration-free.
|
|
136
|
+
const rrf = semanticContribution + lexicalContribution;
|
|
137
|
+
return candidate.boosted + rrf * 3.5 + canonical * CANONICAL_HYBRID_WEIGHT;
|
|
138
|
+
}
|
|
139
|
+
function computeLexicalRankSignal(candidate) {
|
|
53
140
|
const lexical = candidate.lexicalScore ?? 0;
|
|
54
141
|
const coverage = candidate.coverageScore ?? 0;
|
|
55
142
|
const phrase = candidate.phraseScore ?? 0;
|
|
56
|
-
|
|
57
|
-
|
|
143
|
+
return lexical + coverage * 0.3 + phrase * 0.5;
|
|
144
|
+
}
|
|
145
|
+
const RANK_EPSILON = 1e-9;
|
|
146
|
+
export function assignDenseRanks(items, scoreOf, setRank) {
|
|
147
|
+
let currentRank = 0;
|
|
148
|
+
let previousScore;
|
|
149
|
+
for (let i = 0; i < items.length; i++) {
|
|
150
|
+
const score = scoreOf(items[i]);
|
|
151
|
+
if (previousScore === undefined || Math.abs(score - previousScore) > RANK_EPSILON) {
|
|
152
|
+
currentRank = i + 1;
|
|
153
|
+
previousScore = score;
|
|
154
|
+
}
|
|
155
|
+
setRank(items[i], currentRank);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
function compareByHybridScore(a, b) {
|
|
159
|
+
const hybridDelta = computeHybridScore(b) - computeHybridScore(a);
|
|
160
|
+
if (hybridDelta !== 0) {
|
|
161
|
+
return hybridDelta;
|
|
162
|
+
}
|
|
163
|
+
const boostedDelta = b.boosted - a.boosted;
|
|
164
|
+
if (boostedDelta !== 0) {
|
|
165
|
+
return boostedDelta;
|
|
166
|
+
}
|
|
167
|
+
const lexicalDelta = computeLexicalRankSignal(b) - computeLexicalRankSignal(a);
|
|
168
|
+
if (lexicalDelta !== 0) {
|
|
169
|
+
return lexicalDelta;
|
|
170
|
+
}
|
|
171
|
+
return b.score - a.score;
|
|
58
172
|
}
|
|
59
173
|
export function computeCanonicalExplanationScore(candidate) {
|
|
60
174
|
if ((candidate.semanticScoreForPromotion ?? 0) < MIN_CANONICAL_EXPLANATION_SCORE) {
|
|
@@ -78,7 +192,13 @@ export function applyCanonicalExplanationPromotion(candidates) {
|
|
|
78
192
|
for (const candidate of candidates) {
|
|
79
193
|
candidate.canonicalExplanationScore = computeCanonicalExplanationScore(candidate);
|
|
80
194
|
}
|
|
81
|
-
|
|
195
|
+
// Assign lexicalRank based on lexicalScore (undefined scores rank last).
|
|
196
|
+
const sortedByLexical = [...candidates]
|
|
197
|
+
.sort((a, b) => computeLexicalRankSignal(b) - computeLexicalRankSignal(a) || b.score - a.score);
|
|
198
|
+
assignDenseRanks(sortedByLexical, computeLexicalRankSignal, (candidate, rank) => {
|
|
199
|
+
candidate.lexicalRank = rank;
|
|
200
|
+
});
|
|
201
|
+
return [...candidates].sort(compareByHybridScore);
|
|
82
202
|
}
|
|
83
203
|
function computeSignificantPhraseScore(query, candidateText) {
|
|
84
204
|
const phraseTokens = Array.from(new Set(tokenize(query))).filter((token) => token.length >= 4);
|
|
@@ -108,13 +228,14 @@ function computeWeightedQueryCoverage(query, candidateText, corpusTexts) {
|
|
|
108
228
|
return totalWeight === 0 ? 0 : matchedWeight / totalWeight;
|
|
109
229
|
}
|
|
110
230
|
/**
|
|
111
|
-
* Apply lexical
|
|
231
|
+
* Apply lexical scoring to semantic candidates. Returns the same array.
|
|
112
232
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
233
|
+
* Computes lexical overlap, coverage, and phrase scores using projection
|
|
234
|
+
* text. When projection text is unavailable, lexicalScore stays undefined.
|
|
115
235
|
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
236
|
+
* Also assigns semanticRank (1-based) based on the current boosted ordering.
|
|
237
|
+
* Sorting by RRF + canonical is deferred until applyCanonicalExplanationPromotion
|
|
238
|
+
* so that lexicalRank can be assigned after all scores are known.
|
|
118
239
|
*/
|
|
119
240
|
export function applyLexicalReranking(candidates, query, getProjectionText) {
|
|
120
241
|
const corpusTexts = candidates
|
|
@@ -128,10 +249,35 @@ export function applyLexicalReranking(candidates, query, getProjectionText) {
|
|
|
128
249
|
candidate.phraseScore = computeSignificantPhraseScore(query, projText);
|
|
129
250
|
}
|
|
130
251
|
}
|
|
131
|
-
|
|
252
|
+
// Assign semanticRank using dense semantic score ordering.
|
|
253
|
+
// Tied semantic scores share the same rank so lexical rank can break ties.
|
|
254
|
+
const sortedBySemantic = [...candidates].sort((a, b) => b.score - a.score || b.boosted - a.boosted);
|
|
255
|
+
assignDenseRanks(sortedBySemantic, (candidate) => candidate.score, (candidate, rank) => {
|
|
256
|
+
candidate.semanticRank = rank;
|
|
257
|
+
});
|
|
258
|
+
return candidates;
|
|
259
|
+
}
|
|
260
|
+
export function enrichRescueCandidateScores(allCandidates, query, getProjectionText) {
|
|
261
|
+
const rescueIds = new Set(allCandidates
|
|
262
|
+
.filter((c) => c.coverageScore === undefined && c.lexicalScore !== undefined)
|
|
263
|
+
.map((c) => c.id));
|
|
264
|
+
if (rescueIds.size === 0)
|
|
265
|
+
return;
|
|
266
|
+
const corpusTexts = allCandidates
|
|
267
|
+
.map((candidate) => getProjectionText(candidate.id))
|
|
268
|
+
.filter((text) => Boolean(text));
|
|
269
|
+
for (const candidate of allCandidates) {
|
|
270
|
+
if (!rescueIds.has(candidate.id))
|
|
271
|
+
continue;
|
|
272
|
+
const projText = getProjectionText(candidate.id);
|
|
273
|
+
if (projText) {
|
|
274
|
+
candidate.coverageScore = computeWeightedQueryCoverage(query, projText, corpusTexts);
|
|
275
|
+
candidate.phraseScore = computeSignificantPhraseScore(query, projText);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
132
278
|
}
|
|
133
279
|
export function selectRecallResults(scored, limit, scope) {
|
|
134
|
-
const sorted = [...scored].sort(
|
|
280
|
+
const sorted = [...scored].sort(compareByHybridScore);
|
|
135
281
|
if (scope !== "all") {
|
|
136
282
|
return sorted.slice(0, limit);
|
|
137
283
|
}
|
|
@@ -154,7 +300,13 @@ function computeWorkflowScore(candidate) {
|
|
|
154
300
|
return computeHybridScore(candidate) + roleBoost + temporaryBoost + centralityBoost;
|
|
155
301
|
}
|
|
156
302
|
export function selectWorkflowResults(scored, limit, scope) {
|
|
157
|
-
const sorted = [...scored].sort((a, b) =>
|
|
303
|
+
const sorted = [...scored].sort((a, b) => {
|
|
304
|
+
const workflowDelta = computeWorkflowScore(b) - computeWorkflowScore(a);
|
|
305
|
+
if (workflowDelta !== 0) {
|
|
306
|
+
return workflowDelta;
|
|
307
|
+
}
|
|
308
|
+
return compareByHybridScore(a, b);
|
|
309
|
+
});
|
|
158
310
|
if (scope !== "all") {
|
|
159
311
|
return sorted.slice(0, limit);
|
|
160
312
|
}
|
|
@@ -170,4 +322,80 @@ export function selectWorkflowResults(scored, limit, scope) {
|
|
|
170
322
|
const fallback = sorted.filter((candidate) => !selectedIds.has(candidate.id));
|
|
171
323
|
return [...topProject, ...fallback].slice(0, limit);
|
|
172
324
|
}
|
|
325
|
+
function getRelationshipMultiplier(type) {
|
|
326
|
+
switch (type) {
|
|
327
|
+
case "explains":
|
|
328
|
+
case "derives-from":
|
|
329
|
+
return SPREADING_EXPLAINS_DERIVES_MULTIPLIER;
|
|
330
|
+
case "related-to":
|
|
331
|
+
case "example-of":
|
|
332
|
+
case "supersedes":
|
|
333
|
+
case "follows":
|
|
334
|
+
return SPREADING_RELATED_TO_MULTIPLIER;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
export function applyGraphSpreadingActivation(candidates, getNoteRelationships) {
|
|
338
|
+
if (candidates.length === 0) {
|
|
339
|
+
return candidates;
|
|
340
|
+
}
|
|
341
|
+
const sortedByScore = [...candidates].sort((a, b) => b.score - a.score);
|
|
342
|
+
const entryPoints = sortedByScore.slice(0, SPREADING_ENTRY_POINT_LIMIT);
|
|
343
|
+
const eligibleEntries = entryPoints.filter((e) => e.score >= SPREADING_ACTIVATION_GATE);
|
|
344
|
+
if (eligibleEntries.length === 0) {
|
|
345
|
+
return candidates;
|
|
346
|
+
}
|
|
347
|
+
const candidateMap = new Map(candidates.map((c) => [c.id, c]));
|
|
348
|
+
const discovered = new Map();
|
|
349
|
+
for (const entry of eligibleEntries) {
|
|
350
|
+
const relationships = getNoteRelationships(entry.id);
|
|
351
|
+
if (!relationships)
|
|
352
|
+
continue;
|
|
353
|
+
for (const rel of relationships) {
|
|
354
|
+
const multiplier = getRelationshipMultiplier(rel.type);
|
|
355
|
+
const propagatedScore = entry.score * SPREADING_HOP_DECAY * multiplier;
|
|
356
|
+
const existingCandidate = candidateMap.get(rel.id);
|
|
357
|
+
if (existingCandidate) {
|
|
358
|
+
existingCandidate.score += propagatedScore;
|
|
359
|
+
existingCandidate.boosted += propagatedScore;
|
|
360
|
+
if (existingCandidate.semanticScoreForPromotion !== undefined) {
|
|
361
|
+
existingCandidate.semanticScoreForPromotion += propagatedScore;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
else if (!discovered.has(rel.id)) {
|
|
365
|
+
discovered.set(rel.id, {
|
|
366
|
+
id: rel.id,
|
|
367
|
+
score: propagatedScore,
|
|
368
|
+
semanticScoreForPromotion: propagatedScore,
|
|
369
|
+
boosted: propagatedScore,
|
|
370
|
+
vault: entry.vault,
|
|
371
|
+
isCurrentProject: entry.isCurrentProject,
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
const existing = discovered.get(rel.id);
|
|
376
|
+
existing.score += propagatedScore;
|
|
377
|
+
existing.boosted += propagatedScore;
|
|
378
|
+
if (existing.semanticScoreForPromotion !== undefined) {
|
|
379
|
+
existing.semanticScoreForPromotion += propagatedScore;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
if (discovered.size === 0) {
|
|
385
|
+
return candidates;
|
|
386
|
+
}
|
|
387
|
+
return [...candidates, ...discovered.values()];
|
|
388
|
+
}
|
|
389
|
+
export function resolveDiscoveredVaults(candidates, originalCandidateIds, resolveVault) {
|
|
390
|
+
const discovered = candidates.filter((c) => !originalCandidateIds.has(c.id) && c.vault !== undefined);
|
|
391
|
+
if (discovered.length === 0)
|
|
392
|
+
return Promise.resolve();
|
|
393
|
+
return Promise.all(discovered.map(async (c) => {
|
|
394
|
+
const resolved = await resolveVault(c.id);
|
|
395
|
+
if (resolved) {
|
|
396
|
+
c.vault = resolved.vault;
|
|
397
|
+
c.isCurrentProject = resolved.isCurrentProject;
|
|
398
|
+
}
|
|
399
|
+
})).then(() => { });
|
|
400
|
+
}
|
|
173
401
|
//# sourceMappingURL=recall.js.map
|
package/build/recall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../src/recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-patch.d.ts","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAExB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AA6ED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"semantic-patch.d.ts","sourceRoot":"","sources":["../src/semantic-patch.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GACxB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACnB;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,CAAC;AAExB,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,EAAE,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AA6ED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiFvI"}
|
package/build/semantic-patch.js
CHANGED
|
@@ -73,7 +73,10 @@ export async function applySemanticPatches(body, patches) {
|
|
|
73
73
|
let diagnostic = `Selector not found: ${JSON.stringify(patch.selector)}`;
|
|
74
74
|
if (headings.length > 0) {
|
|
75
75
|
diagnostic += `\nAvailable headings:\n${headings.map((h) => ` - ${h}`).join("\n")}`;
|
|
76
|
-
diagnostic += `\nUse exact heading text (without ## prefix), e.g.: {
|
|
76
|
+
diagnostic += `\nUse exact heading text (without ## prefix), e.g.: { "selector": { "heading": "${headings[0]}" } }`;
|
|
77
|
+
if ("heading" in patch.selector) {
|
|
78
|
+
diagnostic += `\nTip: use headingStartsWith for prefix matching when exact headings are uncertain.`;
|
|
79
|
+
}
|
|
77
80
|
}
|
|
78
81
|
else {
|
|
79
82
|
diagnostic += "\nNo headings in document.";
|