anno-extension 0.1.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/LICENSE +7 -0
- package/README.md +30 -0
- package/THIRD_PARTY_NOTICES.md +8 -0
- package/dist/browser-fs.d.ts +14 -0
- package/dist/browser-fs.d.ts.map +1 -0
- package/dist/browser-fs.js +69 -0
- package/dist/browser-fs.js.map +1 -0
- package/dist/config.d.ts +81 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +82 -0
- package/dist/config.js.map +1 -0
- package/dist/consolidate-v2.d.ts +15 -0
- package/dist/consolidate-v2.d.ts.map +1 -0
- package/dist/consolidate-v2.js +125 -0
- package/dist/consolidate-v2.js.map +1 -0
- package/dist/consolidation.d.ts +12 -0
- package/dist/consolidation.d.ts.map +1 -0
- package/dist/consolidation.js +199 -0
- package/dist/consolidation.js.map +1 -0
- package/dist/dedup.d.ts +18 -0
- package/dist/dedup.d.ts.map +1 -0
- package/dist/dedup.js +85 -0
- package/dist/dedup.js.map +1 -0
- package/dist/diagnostics.d.ts +24 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +53 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/embedding-index.d.ts +27 -0
- package/dist/embedding-index.d.ts.map +1 -0
- package/dist/embedding-index.js +111 -0
- package/dist/embedding-index.js.map +1 -0
- package/dist/engine-archive.d.ts +37 -0
- package/dist/engine-archive.d.ts.map +1 -0
- package/dist/engine-archive.js +155 -0
- package/dist/engine-archive.js.map +1 -0
- package/dist/engine-episode-sync.d.ts +19 -0
- package/dist/engine-episode-sync.d.ts.map +1 -0
- package/dist/engine-episode-sync.js +186 -0
- package/dist/engine-episode-sync.js.map +1 -0
- package/dist/engine-injection-text.d.ts +46 -0
- package/dist/engine-injection-text.d.ts.map +1 -0
- package/dist/engine-injection-text.js +271 -0
- package/dist/engine-injection-text.js.map +1 -0
- package/dist/engine-insights.d.ts +22 -0
- package/dist/engine-insights.d.ts.map +1 -0
- package/dist/engine-insights.js +127 -0
- package/dist/engine-insights.js.map +1 -0
- package/dist/engine-links.d.ts +43 -0
- package/dist/engine-links.d.ts.map +1 -0
- package/dist/engine-links.js +223 -0
- package/dist/engine-links.js.map +1 -0
- package/dist/engine-recall-select.d.ts +84 -0
- package/dist/engine-recall-select.d.ts.map +1 -0
- package/dist/engine-recall-select.js +127 -0
- package/dist/engine-recall-select.js.map +1 -0
- package/dist/engine-reinforce.d.ts +18 -0
- package/dist/engine-reinforce.d.ts.map +1 -0
- package/dist/engine-reinforce.js +116 -0
- package/dist/engine-reinforce.js.map +1 -0
- package/dist/engine-scoring-v2.d.ts +35 -0
- package/dist/engine-scoring-v2.d.ts.map +1 -0
- package/dist/engine-scoring-v2.js +178 -0
- package/dist/engine-scoring-v2.js.map +1 -0
- package/dist/engine-v2-mapping.d.ts +17 -0
- package/dist/engine-v2-mapping.d.ts.map +1 -0
- package/dist/engine-v2-mapping.js +190 -0
- package/dist/engine-v2-mapping.js.map +1 -0
- package/dist/engine.d.ts +339 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1964 -0
- package/dist/engine.js.map +1 -0
- package/dist/eviction.d.ts +14 -0
- package/dist/eviction.d.ts.map +1 -0
- package/dist/eviction.js +26 -0
- package/dist/eviction.js.map +1 -0
- package/dist/extraction.d.ts +11 -0
- package/dist/extraction.d.ts.map +1 -0
- package/dist/extraction.js +261 -0
- package/dist/extraction.js.map +1 -0
- package/dist/full-insights-html.d.ts +9 -0
- package/dist/full-insights-html.d.ts.map +1 -0
- package/dist/full-insights-html.js +422 -0
- package/dist/full-insights-html.js.map +1 -0
- package/dist/full-insights-sections.d.ts +48 -0
- package/dist/full-insights-sections.d.ts.map +1 -0
- package/dist/full-insights-sections.js +231 -0
- package/dist/full-insights-sections.js.map +1 -0
- package/dist/full-insights.d.ts +22 -0
- package/dist/full-insights.d.ts.map +1 -0
- package/dist/full-insights.js +370 -0
- package/dist/full-insights.js.map +1 -0
- package/dist/hash-embedding.d.ts +9 -0
- package/dist/hash-embedding.d.ts.map +1 -0
- package/dist/hash-embedding.js +44 -0
- package/dist/hash-embedding.js.map +1 -0
- package/dist/human-insights.d.ts +28 -0
- package/dist/human-insights.d.ts.map +1 -0
- package/dist/human-insights.js +260 -0
- package/dist/human-insights.js.map +1 -0
- package/dist/i18n.d.ts +64 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +367 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/insights-html.d.ts +9 -0
- package/dist/insights-html.d.ts.map +1 -0
- package/dist/insights-html.js +432 -0
- package/dist/insights-html.js.map +1 -0
- package/dist/linking.d.ts +22 -0
- package/dist/linking.d.ts.map +1 -0
- package/dist/linking.js +192 -0
- package/dist/linking.js.map +1 -0
- package/dist/llm-json.d.ts +10 -0
- package/dist/llm-json.d.ts.map +1 -0
- package/dist/llm-json.js +193 -0
- package/dist/llm-json.js.map +1 -0
- package/dist/privacy.d.ts +17 -0
- package/dist/privacy.d.ts.map +1 -0
- package/dist/privacy.js +53 -0
- package/dist/privacy.js.map +1 -0
- package/dist/procedural-v2.d.ts +9 -0
- package/dist/procedural-v2.d.ts.map +1 -0
- package/dist/procedural-v2.js +123 -0
- package/dist/procedural-v2.js.map +1 -0
- package/dist/reconsolidate-v2.d.ts +19 -0
- package/dist/reconsolidate-v2.d.ts.map +1 -0
- package/dist/reconsolidate-v2.js +115 -0
- package/dist/reconsolidate-v2.js.map +1 -0
- package/dist/scoring.d.ts +32 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +108 -0
- package/dist/scoring.js.map +1 -0
- package/dist/store-v2.d.ts +35 -0
- package/dist/store-v2.d.ts.map +1 -0
- package/dist/store-v2.js +98 -0
- package/dist/store-v2.js.map +1 -0
- package/dist/store.d.ts +22 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/store.js +116 -0
- package/dist/store.js.map +1 -0
- package/dist/turn-context.d.ts +37 -0
- package/dist/turn-context.d.ts.map +1 -0
- package/dist/turn-context.js +31 -0
- package/dist/turn-context.js.map +1 -0
- package/dist/types-v2.d.ts +190 -0
- package/dist/types-v2.d.ts.map +1 -0
- package/dist/types-v2.js +8 -0
- package/dist/types-v2.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/update.d.ts +31 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +250 -0
- package/dist/update.js.map +1 -0
- package/package.json +34 -0
- package/src/browser-fs.ts +67 -0
- package/src/config.ts +138 -0
- package/src/consolidate-v2.ts +158 -0
- package/src/consolidation.ts +229 -0
- package/src/dedup.ts +91 -0
- package/src/diagnostics.ts +81 -0
- package/src/embedding-index.ts +138 -0
- package/src/engine-archive.ts +167 -0
- package/src/engine-episode-sync.ts +237 -0
- package/src/engine-injection-text.ts +334 -0
- package/src/engine-insights.ts +182 -0
- package/src/engine-links.ts +311 -0
- package/src/engine-recall-select.ts +298 -0
- package/src/engine-reinforce.ts +154 -0
- package/src/engine-scoring-v2.ts +188 -0
- package/src/engine-v2-mapping.ts +204 -0
- package/src/engine.ts +2499 -0
- package/src/eviction.ts +38 -0
- package/src/extraction.ts +300 -0
- package/src/full-insights-html.ts +474 -0
- package/src/full-insights-sections.ts +305 -0
- package/src/full-insights.ts +423 -0
- package/src/hash-embedding.ts +48 -0
- package/src/human-insights.ts +345 -0
- package/src/i18n.ts +455 -0
- package/src/index.ts +117 -0
- package/src/insights-html.ts +478 -0
- package/src/linking.ts +228 -0
- package/src/llm-json.ts +194 -0
- package/src/privacy.ts +54 -0
- package/src/procedural-v2.ts +142 -0
- package/src/reconsolidate-v2.ts +145 -0
- package/src/scoring.ts +156 -0
- package/src/store-v2.ts +138 -0
- package/src/store.ts +137 -0
- package/src/turn-context.ts +56 -0
- package/src/types-v2.ts +244 -0
- package/src/types.ts +372 -0
- package/src/update.ts +271 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-reinforce.js","sourceRoot":"","sources":["../src/engine-reinforce.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides currentStructuralAnchor, computeStructuralBoost, scoreEpisodeMemory, scoreEpisodeFacet, scoreV2SemanticMemory, scoreProceduralMemory
|
|
3
|
+
* [FROM]: Depends on ./scoring.js for daysSince, extractTags, tagOverlap; ./types-v2.js for V2 memory types; ./turn-context.js for the generic per-turn hint bus
|
|
4
|
+
* [TO]: Consumed by engine.ts, engine-recall-select.ts, engine-episode-sync.ts, engine-v2-mapping.ts
|
|
5
|
+
* [HERE]: packages/mem-core/src/engine-scoring-v2.ts - V2 memory scoring and structural proximity computation; reads structural anchors from any extension that publishes to the turn-context bus
|
|
6
|
+
*/
|
|
7
|
+
import type { BaseMemoryV2, EpisodeFacet, EpisodeMemory, ProceduralMemory, SemanticMemory } from "./types-v2.js";
|
|
8
|
+
/** Read the current structural anchor (or undefined when no producer has published one). */
|
|
9
|
+
export declare function currentStructuralAnchor(): {
|
|
10
|
+
modulePath?: string;
|
|
11
|
+
filePath?: string;
|
|
12
|
+
} | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Compute structural proximity boost from the active turn's structural anchor.
|
|
15
|
+
* Reads from the generic turn-context bus; returns 0 when no anchor has been
|
|
16
|
+
* published or when no overlap with the entry's paths is found. Producer-agnostic.
|
|
17
|
+
*/
|
|
18
|
+
export declare function computeStructuralBoost(entry: BaseMemoryV2): number;
|
|
19
|
+
/** Score breakdown for eval collection. All fields are the raw component values before final combination. */
|
|
20
|
+
export interface V2ScoreBreakdown {
|
|
21
|
+
recency: number;
|
|
22
|
+
importance: number;
|
|
23
|
+
relevance: number;
|
|
24
|
+
structural: number;
|
|
25
|
+
final: number;
|
|
26
|
+
}
|
|
27
|
+
export declare function breakdownEpisodeMemory(entry: EpisodeMemory, project: string, contextTags: string[], structuralWeight: number): V2ScoreBreakdown;
|
|
28
|
+
export declare function breakdownEpisodeFacet(entry: EpisodeFacet, project: string, contextTags: string[], structuralWeight: number): V2ScoreBreakdown;
|
|
29
|
+
export declare function breakdownV2Semantic(entry: SemanticMemory, project: string, contextTags: string[], structuralWeight: number): V2ScoreBreakdown;
|
|
30
|
+
export declare function breakdownProcedural(entry: ProceduralMemory, project: string, contextTags: string[], structuralWeight: number): V2ScoreBreakdown;
|
|
31
|
+
export declare function scoreEpisodeMemory(entry: EpisodeMemory, project: string, contextTags: string[], structuralWeight: number): number;
|
|
32
|
+
export declare function scoreEpisodeFacet(entry: EpisodeFacet, project: string, contextTags: string[], structuralWeight: number): number;
|
|
33
|
+
export declare function scoreV2SemanticMemory(entry: SemanticMemory, project: string, contextTags: string[], structuralWeight: number): number;
|
|
34
|
+
export declare function scoreProceduralMemory(entry: ProceduralMemory, project: string, contextTags: string[], structuralWeight: number): number;
|
|
35
|
+
//# sourceMappingURL=engine-scoring-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-scoring-v2.d.ts","sourceRoot":"","sources":["../src/engine-scoring-v2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIjH,4FAA4F;AAC5F,wBAAgB,uBAAuB,IAAI;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAOhG;AAWD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CA+ClE;AAED,6GAA6G;AAC7G,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAW/I;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAW7I;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAW7I;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,CAY/I;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAQjI;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAQ/H;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAQrI;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CASvI"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides currentStructuralAnchor, computeStructuralBoost, scoreEpisodeMemory, scoreEpisodeFacet, scoreV2SemanticMemory, scoreProceduralMemory
|
|
3
|
+
* [FROM]: Depends on ./scoring.js for daysSince, extractTags, tagOverlap; ./types-v2.js for V2 memory types; ./turn-context.js for the generic per-turn hint bus
|
|
4
|
+
* [TO]: Consumed by engine.ts, engine-recall-select.ts, engine-episode-sync.ts, engine-v2-mapping.ts
|
|
5
|
+
* [HERE]: packages/mem-core/src/engine-scoring-v2.ts - V2 memory scoring and structural proximity computation; reads structural anchors from any extension that publishes to the turn-context bus
|
|
6
|
+
*/
|
|
7
|
+
import { daysSince, extractTags, tagOverlap } from "./scoring.js";
|
|
8
|
+
import { getTurnContext } from "./turn-context.js";
|
|
9
|
+
/** Read the current structural anchor (or undefined when no producer has published one). */
|
|
10
|
+
export function currentStructuralAnchor() {
|
|
11
|
+
const anchor = getTurnContext("structuralAnchor");
|
|
12
|
+
if (!anchor || (!anchor.modulePath && !anchor.filePath))
|
|
13
|
+
return undefined;
|
|
14
|
+
return {
|
|
15
|
+
modulePath: anchor.modulePath,
|
|
16
|
+
filePath: anchor.filePath,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/** Match two paths that may differ in absolute/relative form. */
|
|
20
|
+
function pathsOverlap(a, b) {
|
|
21
|
+
if (a === b)
|
|
22
|
+
return true;
|
|
23
|
+
if (a.startsWith(b + "/") || b.startsWith(a + "/"))
|
|
24
|
+
return true;
|
|
25
|
+
// Suffix alignment: absolute vs relative (e.g. "/root/proj/core/x.ts" vs "core/x.ts")
|
|
26
|
+
if (a.endsWith("/" + b) || b.endsWith("/" + a))
|
|
27
|
+
return true;
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Compute structural proximity boost from the active turn's structural anchor.
|
|
32
|
+
* Reads from the generic turn-context bus; returns 0 when no anchor has been
|
|
33
|
+
* published or when no overlap with the entry's paths is found. Producer-agnostic.
|
|
34
|
+
*/
|
|
35
|
+
export function computeStructuralBoost(entry) {
|
|
36
|
+
const anchor = getTurnContext("structuralAnchor");
|
|
37
|
+
const anchorPaths = anchor?.candidatePaths;
|
|
38
|
+
if (!anchorPaths || anchorPaths.length === 0)
|
|
39
|
+
return 0;
|
|
40
|
+
const entryPaths = [];
|
|
41
|
+
if (entry.structuralAnchor) {
|
|
42
|
+
if (entry.structuralAnchor.modulePath)
|
|
43
|
+
entryPaths.push(entry.structuralAnchor.modulePath);
|
|
44
|
+
if (entry.structuralAnchor.filePath)
|
|
45
|
+
entryPaths.push(entry.structuralAnchor.filePath);
|
|
46
|
+
}
|
|
47
|
+
if (entry.evidence) {
|
|
48
|
+
for (const ev of entry.evidence) {
|
|
49
|
+
if (ev.filePath)
|
|
50
|
+
entryPaths.push(ev.filePath);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const modifiedFiles = entry.filesModified;
|
|
54
|
+
if (Array.isArray(modifiedFiles)) {
|
|
55
|
+
for (const f of modifiedFiles) {
|
|
56
|
+
if (typeof f === "string")
|
|
57
|
+
entryPaths.push(f);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Fallback: infer module paths from tags when no explicit paths exist.
|
|
61
|
+
// Tags often contain path segments like "core/platform/config" or filenames.
|
|
62
|
+
// Use a weak match (0.5× weight via reduced return) to avoid conflating
|
|
63
|
+
// with the relevance signal which already scores tag overlap.
|
|
64
|
+
if (entryPaths.length === 0) {
|
|
65
|
+
const PATH_LIKE = /^[a-z][\w-]*(?:\/[\w.-]+)+$/;
|
|
66
|
+
const tagPaths = entry.tags.filter((t) => PATH_LIKE.test(t));
|
|
67
|
+
if (tagPaths.length === 0)
|
|
68
|
+
return 0;
|
|
69
|
+
let tagHits = 0;
|
|
70
|
+
for (const t of tagPaths) {
|
|
71
|
+
for (const a of anchorPaths) {
|
|
72
|
+
if (pathsOverlap(t, a)) {
|
|
73
|
+
tagHits++;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Attenuate: tag-inferred paths are weaker evidence than explicit anchors
|
|
79
|
+
return Math.min(tagHits / tagPaths.length, 1) * 0.5;
|
|
80
|
+
}
|
|
81
|
+
let hits = 0;
|
|
82
|
+
for (const p of entryPaths) {
|
|
83
|
+
for (const a of anchorPaths) {
|
|
84
|
+
if (pathsOverlap(p, a)) {
|
|
85
|
+
hits++;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return Math.min(hits / entryPaths.length, 1);
|
|
91
|
+
}
|
|
92
|
+
export function breakdownEpisodeMemory(entry, project, contextTags, structuralWeight) {
|
|
93
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
94
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
95
|
+
const summaryTags = extractTags(`${entry.title ?? ""} ${entry.summary} ${entry.userGoal ?? ""} ${entry.outcome ?? ""}`);
|
|
96
|
+
const semanticScore = tagOverlap(summaryTags, contextTags);
|
|
97
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
98
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
99
|
+
const structural = computeStructuralBoost(entry);
|
|
100
|
+
const relevance = projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore));
|
|
101
|
+
const final = relevance + recency * 0.18 + salienceBoost * 0.22 + structural * structuralWeight;
|
|
102
|
+
return { recency, importance: salienceBoost, relevance, structural, final };
|
|
103
|
+
}
|
|
104
|
+
export function breakdownEpisodeFacet(entry, project, contextTags, structuralWeight) {
|
|
105
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
106
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
107
|
+
const semanticTags = extractTags(`${entry.searchText} ${entry.anchorText ?? ""} ${entry.summary ?? ""}`);
|
|
108
|
+
const semanticScore = tagOverlap(semanticTags, contextTags);
|
|
109
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
110
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
111
|
+
const structural = computeStructuralBoost(entry);
|
|
112
|
+
const relevance = projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore));
|
|
113
|
+
const final = relevance + recency * 0.15 + salienceBoost * 0.24 + structural * structuralWeight;
|
|
114
|
+
return { recency, importance: salienceBoost, relevance, structural, final };
|
|
115
|
+
}
|
|
116
|
+
export function breakdownV2Semantic(entry, project, contextTags, structuralWeight) {
|
|
117
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
118
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
119
|
+
const semanticTags = extractTags(`${entry.name} ${entry.summary} ${entry.detail ?? ""}`);
|
|
120
|
+
const semanticScore = tagOverlap(semanticTags, contextTags);
|
|
121
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
122
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
123
|
+
const structural = computeStructuralBoost(entry);
|
|
124
|
+
const relevance = projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore));
|
|
125
|
+
const final = relevance + recency * 0.14 + salienceBoost * 0.2 + structural * structuralWeight;
|
|
126
|
+
return { recency, importance: salienceBoost, relevance, structural, final };
|
|
127
|
+
}
|
|
128
|
+
export function breakdownProcedural(entry, project, contextTags, structuralWeight) {
|
|
129
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
130
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
131
|
+
const summaryTags = extractTags(`${entry.searchText} ${entry.summary} ${entry.contextText ?? ""}`);
|
|
132
|
+
const semanticScore = tagOverlap(summaryTags, contextTags);
|
|
133
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
134
|
+
const statusBoost = entry.status === "active" ? 0.2 : entry.status === "draft" ? 0.05 : -0.2;
|
|
135
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
136
|
+
const structural = computeStructuralBoost(entry);
|
|
137
|
+
const relevance = projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore));
|
|
138
|
+
const final = relevance + recency * 0.15 + salienceBoost * 0.2 + statusBoost + structural * structuralWeight;
|
|
139
|
+
return { recency, importance: salienceBoost, relevance, structural, final };
|
|
140
|
+
}
|
|
141
|
+
export function scoreEpisodeMemory(entry, project, contextTags, structuralWeight) {
|
|
142
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
143
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
144
|
+
const summaryTags = extractTags(`${entry.title ?? ""} ${entry.summary} ${entry.userGoal ?? ""} ${entry.outcome ?? ""}`);
|
|
145
|
+
const semanticScore = tagOverlap(summaryTags, contextTags);
|
|
146
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
147
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
148
|
+
return projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore)) + recency * 0.18 + salienceBoost * 0.22 + computeStructuralBoost(entry) * structuralWeight;
|
|
149
|
+
}
|
|
150
|
+
export function scoreEpisodeFacet(entry, project, contextTags, structuralWeight) {
|
|
151
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
152
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
153
|
+
const semanticTags = extractTags(`${entry.searchText} ${entry.anchorText ?? ""} ${entry.summary ?? ""}`);
|
|
154
|
+
const semanticScore = tagOverlap(semanticTags, contextTags);
|
|
155
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
156
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
157
|
+
return projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore)) + recency * 0.15 + salienceBoost * 0.24 + computeStructuralBoost(entry) * structuralWeight;
|
|
158
|
+
}
|
|
159
|
+
export function scoreV2SemanticMemory(entry, project, contextTags, structuralWeight) {
|
|
160
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
161
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
162
|
+
const semanticTags = extractTags(`${entry.name} ${entry.summary} ${entry.detail ?? ""}`);
|
|
163
|
+
const semanticScore = tagOverlap(semanticTags, contextTags);
|
|
164
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
165
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
166
|
+
return projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore)) + recency * 0.14 + salienceBoost * 0.2 + computeStructuralBoost(entry) * structuralWeight;
|
|
167
|
+
}
|
|
168
|
+
export function scoreProceduralMemory(entry, project, contextTags, structuralWeight) {
|
|
169
|
+
const projectBoost = !project ? 0.8 : entry.scope?.project === project ? 1 : 0.55;
|
|
170
|
+
const tagScore = tagOverlap(entry.tags, contextTags);
|
|
171
|
+
const summaryTags = extractTags(`${entry.searchText} ${entry.summary} ${entry.contextText ?? ""}`);
|
|
172
|
+
const semanticScore = tagOverlap(summaryTags, contextTags);
|
|
173
|
+
const recency = 1 / (1 + daysSince(entry.updatedAt || entry.createdAt));
|
|
174
|
+
const statusBoost = entry.status === "active" ? 0.2 : entry.status === "draft" ? 0.05 : -0.2;
|
|
175
|
+
const salienceBoost = (entry.salience ?? entry.importance) / 10;
|
|
176
|
+
return projectBoost * (0.45 + 0.55 * Math.max(tagScore, semanticScore)) + recency * 0.15 + salienceBoost * 0.2 + statusBoost + computeStructuralBoost(entry) * structuralWeight;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=engine-scoring-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-scoring-v2.js","sourceRoot":"","sources":["../src/engine-scoring-v2.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,OAAO;QACN,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KACzB,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACzC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAChE,sFAAsF;IACtF,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5D,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAmB;IACzD,MAAM,MAAM,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,EAAE,cAAc,CAAC;IAC3C,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,gBAAgB,CAAC,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,KAAK,CAAC,gBAAgB,CAAC,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,QAAQ;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IACD,MAAM,aAAa,GAAI,KAAiC,CAAC,aAAa,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,uEAAuE;IACvE,6EAA6E;IAC7E,wEAAwE;IACxE,8DAA8D;IAC9D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,6BAA6B,CAAC;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC7B,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,MAAM;gBAAC,CAAC;YAC9C,CAAC;QACF,CAAC;QACD,0EAA0E;QAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IACrD,CAAC;IAED,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAAC,IAAI,EAAE,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC;AAWD,MAAM,UAAU,sBAAsB,CAAC,KAAoB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC5H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IACxH,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAC;IAChG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAmB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC1H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IACzG,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,GAAG,UAAU,GAAG,gBAAgB,CAAC;IAChG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAqB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC1H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,GAAG,UAAU,GAAG,gBAAgB,CAAC;IAC/F,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAuB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC5H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;IACnG,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7F,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,GAAG,WAAW,GAAG,UAAU,GAAG,gBAAgB,CAAC;IAC7G,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAoB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IACxH,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IACxH,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;AACpK,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAmB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IACtH,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;IACzG,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;AACpK,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAqB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC5H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;AACnK,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAuB,EAAE,OAAe,EAAE,WAAqB,EAAE,gBAAwB;IAC9H,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;IACnG,MAAM,aAAa,GAAG,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7F,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAChE,OAAO,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,GAAG,GAAG,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC;AACjL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides inferSemanticRetention/Stability/Importance, mapExtractedItemToSemanticType, upsertSemanticFromExtractedItem, semanticKindToLegacyType, semanticToRuntimeEntry, proceduralToRuntimeEntry
|
|
3
|
+
* [FROM]: Depends on ./privacy.js for filterPII; ./scoring.js for extractTags, tagOverlap; ./types.js, ./types-v2.js; ./engine-scoring-v2.js for currentStructuralAnchor
|
|
4
|
+
* [TO]: Consumed by engine.ts (extractAndStore, buildRuntimeMemoryView)
|
|
5
|
+
* [HERE]: packages/mem-core/src/engine-v2-mapping.ts - V2 type mapping and extraction-to-semantic conversion
|
|
6
|
+
*/
|
|
7
|
+
import type { ExtractedItem, MemoryEntry, MemoryScope } from "./types.js";
|
|
8
|
+
import type { ProceduralMemory, SemanticMemory } from "./types-v2.js";
|
|
9
|
+
export declare function inferSemanticRetention(item: ExtractedItem): SemanticMemory["retention"];
|
|
10
|
+
export declare function inferSemanticStability(item: ExtractedItem): SemanticMemory["stability"];
|
|
11
|
+
export declare function inferSemanticImportance(item: ExtractedItem): number;
|
|
12
|
+
export declare function mapExtractedItemToSemanticType(item: ExtractedItem): SemanticMemory["semanticType"];
|
|
13
|
+
export declare function upsertSemanticFromExtractedItem(semantic: SemanticMemory[], item: ExtractedItem, project: string, defaultScope: MemoryScope | undefined): void;
|
|
14
|
+
export declare function semanticKindToLegacyType(kind: SemanticMemory["semanticType"]): MemoryEntry["type"];
|
|
15
|
+
export declare function semanticToRuntimeEntry(entry: SemanticMemory): MemoryEntry;
|
|
16
|
+
export declare function proceduralToRuntimeEntry(entry: ProceduralMemory): MemoryEntry;
|
|
17
|
+
//# sourceMappingURL=engine-v2-mapping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-v2-mapping.d.ts","sourceRoot":"","sources":["../src/engine-v2-mapping.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,CAevF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,CAavF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAenE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,CAiBlG;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,EAAE,cAAc,EAAE,EAC1B,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,WAAW,GAAG,SAAS,GACnC,IAAI,CAiDN;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAiBlG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,WAAW,CAuBzE;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAsB7E"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [WHO]: Provides inferSemanticRetention/Stability/Importance, mapExtractedItemToSemanticType, upsertSemanticFromExtractedItem, semanticKindToLegacyType, semanticToRuntimeEntry, proceduralToRuntimeEntry
|
|
3
|
+
* [FROM]: Depends on ./privacy.js for filterPII; ./scoring.js for extractTags, tagOverlap; ./types.js, ./types-v2.js; ./engine-scoring-v2.js for currentStructuralAnchor
|
|
4
|
+
* [TO]: Consumed by engine.ts (extractAndStore, buildRuntimeMemoryView)
|
|
5
|
+
* [HERE]: packages/mem-core/src/engine-v2-mapping.ts - V2 type mapping and extraction-to-semantic conversion
|
|
6
|
+
*/
|
|
7
|
+
import { currentStructuralAnchor } from "./engine-scoring-v2.js";
|
|
8
|
+
import { extractTags, tagOverlap } from "./scoring.js";
|
|
9
|
+
import { filterPII } from "./privacy.js";
|
|
10
|
+
export function inferSemanticRetention(item) {
|
|
11
|
+
if (item.retention)
|
|
12
|
+
return item.retention;
|
|
13
|
+
if (item.stability === "situational" || item.stateData)
|
|
14
|
+
return "ambient";
|
|
15
|
+
switch (item.type) {
|
|
16
|
+
case "preference":
|
|
17
|
+
case "pattern":
|
|
18
|
+
return "core";
|
|
19
|
+
case "lesson":
|
|
20
|
+
case "decision":
|
|
21
|
+
case "event":
|
|
22
|
+
case "struggle":
|
|
23
|
+
return "key-event";
|
|
24
|
+
default:
|
|
25
|
+
return "ambient";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export function inferSemanticStability(item) {
|
|
29
|
+
if (item.stability === "situational")
|
|
30
|
+
return "situational";
|
|
31
|
+
if (item.stateData)
|
|
32
|
+
return "volatile";
|
|
33
|
+
switch (item.type) {
|
|
34
|
+
case "preference":
|
|
35
|
+
case "pattern":
|
|
36
|
+
return "stable";
|
|
37
|
+
case "event":
|
|
38
|
+
case "struggle":
|
|
39
|
+
return "situational";
|
|
40
|
+
default:
|
|
41
|
+
return "stable";
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function inferSemanticImportance(item) {
|
|
45
|
+
switch (item.type) {
|
|
46
|
+
case "struggle":
|
|
47
|
+
case "event":
|
|
48
|
+
return 9;
|
|
49
|
+
case "lesson":
|
|
50
|
+
case "decision":
|
|
51
|
+
return 8;
|
|
52
|
+
case "pattern":
|
|
53
|
+
return 7;
|
|
54
|
+
case "preference":
|
|
55
|
+
return 6;
|
|
56
|
+
default:
|
|
57
|
+
return 5;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function mapExtractedItemToSemanticType(item) {
|
|
61
|
+
switch (item.type) {
|
|
62
|
+
case "lesson":
|
|
63
|
+
return "lesson";
|
|
64
|
+
case "preference":
|
|
65
|
+
return "preference";
|
|
66
|
+
case "decision":
|
|
67
|
+
return "decision";
|
|
68
|
+
case "pattern":
|
|
69
|
+
return "pattern";
|
|
70
|
+
case "struggle":
|
|
71
|
+
return "struggle";
|
|
72
|
+
case "event":
|
|
73
|
+
return "event";
|
|
74
|
+
default:
|
|
75
|
+
return "fact";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export function upsertSemanticFromExtractedItem(semantic, item, project, defaultScope) {
|
|
79
|
+
if (item.type === "retract")
|
|
80
|
+
return;
|
|
81
|
+
const detail = filterPII(item.detail || item.content || "");
|
|
82
|
+
const name = item.name || detail.slice(0, 30) || item.summary || "memory";
|
|
83
|
+
const summary = item.summary || detail.slice(0, 150) || name;
|
|
84
|
+
const semanticType = mapExtractedItemToSemanticType(item);
|
|
85
|
+
const tags = extractTags(`${name} ${summary} ${detail}`);
|
|
86
|
+
const now = new Date().toISOString();
|
|
87
|
+
const existing = semantic.find((entry) => entry.semanticType === semanticType &&
|
|
88
|
+
entry.scope?.project === project &&
|
|
89
|
+
(tagOverlap(entry.tags, tags) >= 0.72 ||
|
|
90
|
+
`${entry.name} ${entry.summary}`.trim().toLowerCase() === `${name} ${summary}`.trim().toLowerCase()));
|
|
91
|
+
if (existing) {
|
|
92
|
+
existing.name = name;
|
|
93
|
+
existing.summary = summary;
|
|
94
|
+
existing.detail = detail || existing.detail;
|
|
95
|
+
existing.tags = [...new Set(tags)];
|
|
96
|
+
existing.updatedAt = now;
|
|
97
|
+
existing.retention = inferSemanticRetention(item);
|
|
98
|
+
existing.stability = inferSemanticStability(item);
|
|
99
|
+
existing.salience = Math.max(existing.salience, inferSemanticImportance(item));
|
|
100
|
+
existing.importance = Math.max(existing.importance, inferSemanticImportance(item));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
semantic.push({
|
|
104
|
+
id: `semantic:extract:${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
|
|
105
|
+
kind: "semantic",
|
|
106
|
+
semanticType,
|
|
107
|
+
name,
|
|
108
|
+
summary,
|
|
109
|
+
detail,
|
|
110
|
+
accessCount: 0,
|
|
111
|
+
importance: inferSemanticImportance(item),
|
|
112
|
+
salience: Math.max(4, inferSemanticImportance(item)),
|
|
113
|
+
confidence: 0.8,
|
|
114
|
+
retention: inferSemanticRetention(item),
|
|
115
|
+
stability: inferSemanticStability(item),
|
|
116
|
+
tags,
|
|
117
|
+
evidence: [],
|
|
118
|
+
scope: { ...defaultScope, project },
|
|
119
|
+
createdAt: now,
|
|
120
|
+
updatedAt: now,
|
|
121
|
+
abstractionLevel: semanticType === "event" ? "instance" : "generalization",
|
|
122
|
+
structuralAnchor: currentStructuralAnchor(),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
export function semanticKindToLegacyType(kind) {
|
|
126
|
+
switch (kind) {
|
|
127
|
+
case "lesson":
|
|
128
|
+
return "lesson";
|
|
129
|
+
case "preference":
|
|
130
|
+
return "preference";
|
|
131
|
+
case "decision":
|
|
132
|
+
return "decision";
|
|
133
|
+
case "event":
|
|
134
|
+
return "event";
|
|
135
|
+
case "pattern":
|
|
136
|
+
return "pattern";
|
|
137
|
+
case "struggle":
|
|
138
|
+
return "struggle";
|
|
139
|
+
default:
|
|
140
|
+
return "fact";
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export function semanticToRuntimeEntry(entry) {
|
|
144
|
+
const type = semanticKindToLegacyType(entry.semanticType);
|
|
145
|
+
return {
|
|
146
|
+
id: entry.id,
|
|
147
|
+
type,
|
|
148
|
+
name: entry.name,
|
|
149
|
+
summary: entry.summary,
|
|
150
|
+
detail: entry.detail,
|
|
151
|
+
content: entry.detail || entry.summary,
|
|
152
|
+
tags: entry.tags,
|
|
153
|
+
project: entry.scope?.project || "default",
|
|
154
|
+
importance: entry.importance,
|
|
155
|
+
strength: undefined,
|
|
156
|
+
created: entry.createdAt,
|
|
157
|
+
eventTime: entry.validFrom ?? entry.createdAt,
|
|
158
|
+
lastAccessed: entry.lastAccessedAt,
|
|
159
|
+
accessCount: entry.accessCount,
|
|
160
|
+
relatedIds: [...new Set([...(entry.supersedesIds ?? []), ...(entry.conflictWithIds ?? [])])],
|
|
161
|
+
scope: entry.scope,
|
|
162
|
+
retention: entry.retention === "ambient" ? "ambient" : entry.retention === "core" ? "core" : "key-event",
|
|
163
|
+
salience: entry.salience,
|
|
164
|
+
stability: entry.stability === "volatile" ? "situational" : entry.stability === "stable" ? "stable" : "situational",
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
export function proceduralToRuntimeEntry(entry) {
|
|
168
|
+
return {
|
|
169
|
+
id: entry.id,
|
|
170
|
+
type: "decision",
|
|
171
|
+
name: entry.name,
|
|
172
|
+
summary: entry.summary,
|
|
173
|
+
detail: [entry.contextText, entry.boundaries, entry.steps.map((step) => step.text).join("\n")].filter(Boolean).join("\n"),
|
|
174
|
+
content: entry.summary,
|
|
175
|
+
tags: entry.tags,
|
|
176
|
+
project: entry.scope?.project || "default",
|
|
177
|
+
importance: entry.importance,
|
|
178
|
+
strength: undefined,
|
|
179
|
+
created: entry.createdAt,
|
|
180
|
+
eventTime: entry.validFrom ?? entry.createdAt,
|
|
181
|
+
lastAccessed: entry.lastAccessedAt,
|
|
182
|
+
accessCount: entry.accessCount,
|
|
183
|
+
relatedIds: entry.supersedesIds,
|
|
184
|
+
scope: entry.scope,
|
|
185
|
+
retention: entry.retention === "ambient" ? "ambient" : entry.retention === "core" ? "core" : "key-event",
|
|
186
|
+
salience: entry.salience,
|
|
187
|
+
stability: entry.stability === "volatile" ? "situational" : entry.stability === "stable" ? "stable" : "situational",
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=engine-v2-mapping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-v2-mapping.js","sourceRoot":"","sources":["../src/engine-v2-mapping.ts"],"names":[],"mappings":"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"}
|