abmind 0.2.5 → 0.2.6

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.
Files changed (41) hide show
  1. package/dist/src/fts-utils.d.ts +47 -0
  2. package/dist/src/fts-utils.d.ts.map +1 -0
  3. package/dist/src/fts-utils.js +65 -0
  4. package/dist/src/fts-utils.js.map +1 -0
  5. package/dist/src/memory-index.d.ts +0 -16
  6. package/dist/src/memory-index.d.ts.map +1 -1
  7. package/dist/src/memory-index.js +1 -60
  8. package/dist/src/memory-index.js.map +1 -1
  9. package/dist/src/recall-boosts.d.ts +15 -0
  10. package/dist/src/recall-boosts.d.ts.map +1 -0
  11. package/dist/src/recall-boosts.js +159 -0
  12. package/dist/src/recall-boosts.js.map +1 -0
  13. package/dist/src/recall-engine.d.ts +0 -2
  14. package/dist/src/recall-engine.d.ts.map +1 -1
  15. package/dist/src/recall-engine.js +1 -151
  16. package/dist/src/recall-engine.js.map +1 -1
  17. package/dist/src/sleep/audit.d.ts +6 -0
  18. package/dist/src/sleep/audit.d.ts.map +1 -1
  19. package/dist/src/sleep/audit.js +6 -8
  20. package/dist/src/sleep/audit.js.map +1 -1
  21. package/dist/src/sleep/catchup.d.ts +19 -0
  22. package/dist/src/sleep/catchup.d.ts.map +1 -0
  23. package/dist/src/sleep/catchup.js +159 -0
  24. package/dist/src/sleep/catchup.js.map +1 -0
  25. package/dist/src/sleep/llm-budget.d.ts +29 -0
  26. package/dist/src/sleep/llm-budget.d.ts.map +1 -0
  27. package/dist/src/sleep/llm-budget.js +92 -0
  28. package/dist/src/sleep/llm-budget.js.map +1 -0
  29. package/dist/src/sleep/locks.d.ts +9 -5
  30. package/dist/src/sleep/locks.d.ts.map +1 -1
  31. package/dist/src/sleep/locks.js +8 -11
  32. package/dist/src/sleep/locks.js.map +1 -1
  33. package/dist/src/sleep/orchestrator.d.ts +4 -20
  34. package/dist/src/sleep/orchestrator.d.ts.map +1 -1
  35. package/dist/src/sleep/orchestrator.js +12 -492
  36. package/dist/src/sleep/orchestrator.js.map +1 -1
  37. package/dist/src/sleep/state.d.ts +26 -17
  38. package/dist/src/sleep/state.d.ts.map +1 -1
  39. package/dist/src/sleep/state.js +58 -20
  40. package/dist/src/sleep/state.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * fts-utils.ts — FTS5 query sanitization, row scoring, and recency/emotion helpers.
3
+ * Extracted from memory-index.ts (#1229).
4
+ */
5
+ import type { MemorySearchResult } from "./mem-types.js";
6
+ /** Weight applied to the log1p emotion boost in search ranking. */
7
+ export declare const EMOTION_BOOST_WEIGHT = 0.5;
8
+ /** Compute recency factor with emotion override. */
9
+ export declare function recencyFactor(createdAt: number, emotionScore: number): number;
10
+ /** Strip diacritical marks (accents) from a string using Unicode NFD decomposition. */
11
+ export declare function stripAccents(str: string): string;
12
+ /**
13
+ * Sanitize a raw query string for safe use in an FTS5 MATCH clause.
14
+ *
15
+ * Wraps each whitespace-delimited token in double quotes (stripping any
16
+ * internal quotes) with a trailing `*` for prefix matching. Quoting
17
+ * neutralizes all FTS5 operators (OR, NOT, NEAR, ^, *, :, -, etc.)
18
+ * without needing a blacklist. Prefix matching is critical for
19
+ * agglutinative languages (e.g. Hungarian) where "jelszó" needs to
20
+ * match "jelszóra", "jelszót", etc.
21
+ * Returns empty string if no valid tokens remain.
22
+ */
23
+ export declare function sanitizeFtsQuery(query: string, mode?: "or" | "and"): string;
24
+ /** Row shape returned by extracted memory FTS queries. */
25
+ export type ExtractedFtsRow = {
26
+ id: number;
27
+ content_en: string;
28
+ content_original: string;
29
+ memory_type: string;
30
+ created_at: number;
31
+ preserve_original: number;
32
+ emotion_score: number;
33
+ recall_count: number;
34
+ relevance_score: number;
35
+ source_message_ids: string | null;
36
+ trust: number | null;
37
+ integrity: number | null;
38
+ credibility: number | null;
39
+ classification: number | null;
40
+ rank: number;
41
+ tier: string | null;
42
+ };
43
+ /** Compute final score for an extracted memory FTS row. */
44
+ export declare function scoreExtractedRow(row: ExtractedFtsRow, baseScore: number): number;
45
+ /** Map an extracted memory FTS row to a MemorySearchResult. */
46
+ export declare function mapExtractedRow(row: ExtractedFtsRow, score: number): MemorySearchResult;
47
+ //# sourceMappingURL=fts-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-utils.d.ts","sourceRoot":"","sources":["../../src/fts-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAIxC,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,KAAa,GAAG,MAAM,CAKlF;AAED,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAC9E,UAAU,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IACrE,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAClE,CAAC;AAEF,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQjF;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAevF"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * fts-utils.ts — FTS5 query sanitization, row scoring, and recency/emotion helpers.
3
+ * Extracted from memory-index.ts (#1229).
4
+ */
5
+ import { getAbmindEnv } from "./env-schema.js";
6
+ /** Weight applied to the log1p emotion boost in search ranking. */
7
+ export const EMOTION_BOOST_WEIGHT = 0.5;
8
+ // Time-decay: recent memories score higher, emotional ones resist decay
9
+ /** Compute recency factor with emotion override. */
10
+ export function recencyFactor(createdAt, emotionScore) {
11
+ const ageDays = (Date.now() - createdAt) / (24 * 3600000);
12
+ const decay = Math.max(getAbmindEnv().recallDecayFloor, 1 - ageDays / getAbmindEnv().recallDecayDays);
13
+ const emotionBoost = 1 + Math.abs(emotionScore) * getAbmindEnv().recallEmotionBoost;
14
+ return decay * emotionBoost;
15
+ }
16
+ /** Strip diacritical marks (accents) from a string using Unicode NFD decomposition. */
17
+ export function stripAccents(str) {
18
+ return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
19
+ }
20
+ /**
21
+ * Sanitize a raw query string for safe use in an FTS5 MATCH clause.
22
+ *
23
+ * Wraps each whitespace-delimited token in double quotes (stripping any
24
+ * internal quotes) with a trailing `*` for prefix matching. Quoting
25
+ * neutralizes all FTS5 operators (OR, NOT, NEAR, ^, *, :, -, etc.)
26
+ * without needing a blacklist. Prefix matching is critical for
27
+ * agglutinative languages (e.g. Hungarian) where "jelszó" needs to
28
+ * match "jelszóra", "jelszót", etc.
29
+ * Returns empty string if no valid tokens remain.
30
+ */
31
+ export function sanitizeFtsQuery(query, mode = "and") {
32
+ const tokens = query.split(/\s+/).filter(Boolean);
33
+ if (tokens.length === 0)
34
+ return "";
35
+ const joiner = mode === "or" ? " OR " : " ";
36
+ return tokens.map((t) => `"${t.replace(/"/g, "")}"*`).join(joiner);
37
+ }
38
+ /** Compute final score for an extracted memory FTS row. */
39
+ export function scoreExtractedRow(row, baseScore) {
40
+ const emotionBoost = EMOTION_BOOST_WEIGHT * Math.log(1 + Math.abs(row.emotion_score));
41
+ const recallBoost = 0.1 * (row.recall_count ?? 0);
42
+ const relevanceBoost = (row.relevance_score ?? 0) > 0 ? 0.2 : 0;
43
+ const trustFactor = 0.5 + 0.5 * (row.trust ?? 0) / 3;
44
+ const credibilityFactor = (row.credibility !== null && row.credibility <= 2) ? 1.25 : 1;
45
+ const tierBoost = row.tier === "core" ? 1.3 : 1;
46
+ return (baseScore + emotionBoost) * (1 + recallBoost) * (1 + relevanceBoost) * trustFactor * credibilityFactor * tierBoost * recencyFactor(row.created_at, row.emotion_score);
47
+ }
48
+ /** Map an extracted memory FTS row to a MemorySearchResult. */
49
+ export function mapExtractedRow(row, score) {
50
+ return {
51
+ id: row.id,
52
+ content: row.content_en,
53
+ content_original: row.content_original,
54
+ memory_type: row.memory_type,
55
+ created_at: row.created_at,
56
+ source_message_ids: row.source_message_ids ?? undefined,
57
+ trust: row.trust ?? 0,
58
+ integrity: row.integrity ?? 2,
59
+ credibility: row.credibility ?? 6,
60
+ classification: row.classification ?? 1,
61
+ tier: "extracted",
62
+ score,
63
+ };
64
+ }
65
+ //# sourceMappingURL=fts-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-utils.js","sourceRoot":"","sources":["../../src/fts-utils.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,6 @@
1
1
  import type Database from "better-sqlite3";
2
2
  import type { MessageRecord, SearchResult } from "./mem-types.js";
3
3
  import type { ExtractedMemory, MemorySearchResult } from "./mem-types.js";
4
- /** Weight applied to the log1p emotion boost in search ranking. */
5
- export declare const EMOTION_BOOST_WEIGHT = 0.5;
6
- /** Compute recency factor with emotion override. */
7
- export declare function recencyFactor(createdAt: number, emotionScore: number): number;
8
- /**
9
- * Sanitize a raw query string for safe use in an FTS5 MATCH clause.
10
- *
11
- * Wraps each whitespace-delimited token in double quotes (stripping any
12
- * internal quotes) with a trailing `*` for prefix matching. Quoting
13
- * neutralizes all FTS5 operators (OR, NOT, NEAR, ^, *, :, -, etc.)
14
- * without needing a blacklist. Prefix matching is critical for
15
- * agglutinative languages (e.g. Hungarian) where "jelszó" needs to
16
- * match "jelszóra", "jelszót", etc.
17
- * Returns empty string if no valid tokens remain.
18
- */
19
- export declare function sanitizeFtsQuery(query: string, mode?: "or" | "and"): string;
20
4
  /**
21
5
  * SQLite FTS5 full-text search index over conversation messages.
22
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"memory-index.d.ts","sourceRoot":"","sources":["../../src/memory-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAI1E,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAOxC,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAK7E;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAI,GAAG,KAAa,GAAG,MAAM,CAKlF;AAwCD;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;gBAE3B,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAoBpC;;;;;OAKG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EACD,IAAI,GAAE,IAAI,GAAG,KAAa,GACzB,YAAY,EAAE;IAgEjB,gDAAgD;IAChD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMtD;;;;;OAKG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EACD,IAAI,GAAE,IAAI,GAAG,KAAY,GACxB,YAAY,EAAE;IAyEjB,kFAAkF;IAClF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAUhD;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5G,IAAI,GAAE,IAAI,GAAG,KAAa,GACzB,kBAAkB,EAAE;IAyDvB,iFAAiF;IACjF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAapC,sEAAsE;IACtE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAUnC,gGAAgG;IAChG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAUtC;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAUrE"}
1
+ {"version":3,"file":"memory-index.d.ts","sourceRoot":"","sources":["../../src/memory-index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAM1E;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;gBAE3B,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM;IAoBpC;;;;;OAKG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EACD,IAAI,GAAE,IAAI,GAAG,KAAa,GACzB,YAAY,EAAE;IAgEjB,gDAAgD;IAChD,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMtD;;;;;OAKG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,EACD,IAAI,GAAE,IAAI,GAAG,KAAY,GACxB,YAAY,EAAE;IAyEjB,kFAAkF;IAClF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAUhD;;;;;;OAMG;IACH,eAAe,CACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5G,IAAI,GAAE,IAAI,GAAG,KAAa,GACzB,kBAAkB,EAAE;IAyDvB,iFAAiF;IACjF,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAapC,sEAAsE;IACtE,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAUnC,gGAAgG;IAChG,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAUtC;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAUrE"}
@@ -1,65 +1,6 @@
1
- import { getAbmindEnv } from "./env-schema.js";
2
1
  import { logWarn } from "./mem-logger.js";
3
2
  import { classifyTurn } from "./turn-classifier.js";
4
- /** Weight applied to the log1p emotion boost in search ranking. */
5
- export const EMOTION_BOOST_WEIGHT = 0.5;
6
- // Time-decay: recent memories score higher, emotional ones resist decay
7
- /** Compute recency factor with emotion override. */
8
- export function recencyFactor(createdAt, emotionScore) {
9
- const ageDays = (Date.now() - createdAt) / (24 * 3600000);
10
- const decay = Math.max(getAbmindEnv().recallDecayFloor, 1 - ageDays / getAbmindEnv().recallDecayDays);
11
- const emotionBoost = 1 + Math.abs(emotionScore) * getAbmindEnv().recallEmotionBoost;
12
- return decay * emotionBoost;
13
- }
14
- /** Strip diacritical marks (accents) from a string using Unicode NFD decomposition. */
15
- function stripAccents(str) {
16
- return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
17
- }
18
- /**
19
- * Sanitize a raw query string for safe use in an FTS5 MATCH clause.
20
- *
21
- * Wraps each whitespace-delimited token in double quotes (stripping any
22
- * internal quotes) with a trailing `*` for prefix matching. Quoting
23
- * neutralizes all FTS5 operators (OR, NOT, NEAR, ^, *, :, -, etc.)
24
- * without needing a blacklist. Prefix matching is critical for
25
- * agglutinative languages (e.g. Hungarian) where "jelszó" needs to
26
- * match "jelszóra", "jelszót", etc.
27
- * Returns empty string if no valid tokens remain.
28
- */
29
- export function sanitizeFtsQuery(query, mode = "and") {
30
- const tokens = query.split(/\s+/).filter(Boolean);
31
- if (tokens.length === 0)
32
- return "";
33
- const joiner = mode === "or" ? " OR " : " ";
34
- return tokens.map((t) => `"${t.replace(/"/g, "")}"*`).join(joiner);
35
- }
36
- /** Compute final score for an extracted memory FTS row. */
37
- function scoreExtractedRow(row, baseScore) {
38
- const emotionBoost = EMOTION_BOOST_WEIGHT * Math.log(1 + Math.abs(row.emotion_score));
39
- const recallBoost = 0.1 * (row.recall_count ?? 0);
40
- const relevanceBoost = (row.relevance_score ?? 0) > 0 ? 0.2 : 0;
41
- const trustFactor = 0.5 + 0.5 * (row.trust ?? 0) / 3;
42
- const credibilityFactor = (row.credibility !== null && row.credibility <= 2) ? 1.25 : 1;
43
- const tierBoost = row.tier === "core" ? 1.3 : 1;
44
- return (baseScore + emotionBoost) * (1 + recallBoost) * (1 + relevanceBoost) * trustFactor * credibilityFactor * tierBoost * recencyFactor(row.created_at, row.emotion_score);
45
- }
46
- /** Map an extracted memory FTS row to a MemorySearchResult. */
47
- function mapExtractedRow(row, score) {
48
- return {
49
- id: row.id,
50
- content: row.content_en,
51
- content_original: row.content_original,
52
- memory_type: row.memory_type,
53
- created_at: row.created_at,
54
- source_message_ids: row.source_message_ids ?? undefined,
55
- trust: row.trust ?? 0,
56
- integrity: row.integrity ?? 2,
57
- credibility: row.credibility ?? 6,
58
- classification: row.classification ?? 1,
59
- tier: "extracted",
60
- score,
61
- };
62
- }
3
+ import { stripAccents, sanitizeFtsQuery, scoreExtractedRow, mapExtractedRow } from "./fts-utils.js";
63
4
  /**
64
5
  * SQLite FTS5 full-text search index over conversation messages.
65
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"memory-index.js","sourceRoot":"","sources":["../../src/memory-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-index.js","sourceRoot":"","sources":["../../src/memory-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * recall-boosts.ts — Context, spacing, emotion, and quality boost helpers for the recall pipeline.
3
+ * Extracted from recall-engine.ts (#1229).
4
+ * Uses `import type` for RecallHit/RecallContext to avoid a runtime circular dependency
5
+ * (recall-engine.ts imports these functions; this module imports the types from recall-engine.ts).
6
+ */
7
+ import type Database from "better-sqlite3";
8
+ import type { RecallHit, RecallContext } from "./recall-engine.js";
9
+ export declare function applyContextBoost(results: RecallHit[], ctx: RecallContext): RecallHit[];
10
+ export declare function applySpacingBoost(results: RecallHit[], db: Database.Database): RecallHit[];
11
+ /** Recall-engine emotion boost multiplier: |emotion_score| * this = additive boost. */
12
+ export declare const RECALL_EMOTION_MULT = 0.02;
13
+ export declare function applyEmotionBoost(results: RecallHit[], db: Database.Database): RecallHit[];
14
+ export declare function applyQualityBoost(results: RecallHit[], db: Database.Database): RecallHit[];
15
+ //# sourceMappingURL=recall-boosts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall-boosts.d.ts","sourceRoot":"","sources":["../../src/recall-boosts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAqBnE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,CA6BvF;AAcD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,EAAE,CAc1F;AAgBD,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,EAAE,CAgB1F;AAQD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,SAAS,EAAE,CAgC1F"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * recall-boosts.ts — Context, spacing, emotion, and quality boost helpers for the recall pipeline.
3
+ * Extracted from recall-engine.ts (#1229).
4
+ * Uses `import type` for RecallHit/RecallContext to avoid a runtime circular dependency
5
+ * (recall-engine.ts imports these functions; this module imports the types from recall-engine.ts).
6
+ */
7
+ import { logDebug } from "./mem-logger.js";
8
+ const TAG = "recall";
9
+ const DAY_MS = 86400000;
10
+ // ── Context boost weights (env-tunable) ─────────────────────────────────────
11
+ const CTX_HOUR_BOOST = parseFloat(process.env.RECALL_CONTEXT_HOUR_BOOST ?? "0.02");
12
+ const CTX_DOW_BOOST = parseFloat(process.env.RECALL_CONTEXT_DOW_BOOST ?? "0.015");
13
+ const CTX_TOPIC_BOOST = parseFloat(process.env.RECALL_CONTEXT_TOPIC_BOOST ?? "0.03");
14
+ function hourBucket(hour) {
15
+ if (hour >= 6 && hour < 12)
16
+ return 0; // morning
17
+ if (hour >= 12 && hour < 18)
18
+ return 1; // afternoon
19
+ if (hour >= 18 && hour < 23)
20
+ return 2; // evening
21
+ return 3; // night
22
+ }
23
+ function isWeekend(dow) { return dow === 0 || dow === 6; }
24
+ export function applyContextBoost(results, ctx) {
25
+ if (!ctx.hour && ctx.hour !== 0 && !ctx.dayOfWeek && ctx.dayOfWeek !== 0 && !ctx.topic)
26
+ return results;
27
+ let boostedCount = 0;
28
+ const boosted = results.map(hit => {
29
+ let boost = 0;
30
+ const ts = hit.createdAt;
31
+ if (ts && (ctx.hour != null || ctx.dayOfWeek != null)) {
32
+ const d = new Date(ts);
33
+ if (ctx.hour != null && hourBucket(d.getHours()) === hourBucket(ctx.hour)) {
34
+ boost += CTX_HOUR_BOOST;
35
+ }
36
+ if (ctx.dayOfWeek != null) {
37
+ const storedDow = d.getDay();
38
+ if (storedDow === ctx.dayOfWeek)
39
+ boost += CTX_DOW_BOOST;
40
+ else if (isWeekend(storedDow) === isWeekend(ctx.dayOfWeek))
41
+ boost += CTX_DOW_BOOST * 0.5;
42
+ }
43
+ }
44
+ if (ctx.topic && hit.topic && hit.topic !== "general" && hit.topic === ctx.topic) {
45
+ boost += CTX_TOPIC_BOOST;
46
+ }
47
+ if (boost > 0)
48
+ boostedCount++;
49
+ return boost > 0 ? { ...hit, score: hit.score + boost } : hit;
50
+ });
51
+ if (boostedCount > 0) {
52
+ logDebug(TAG, `context-boost applied to ${boostedCount}/${results.length} candidates`);
53
+ }
54
+ return boosted;
55
+ }
56
+ // ── Spacing boost (#244) ────────────────────────────────────────────────────
57
+ function spacingBoost(timestamps) {
58
+ if (timestamps.length < 2)
59
+ return 1.0;
60
+ const intervals = [];
61
+ for (let i = 1; i < timestamps.length; i++)
62
+ intervals.push(timestamps[i] - timestamps[i - 1]);
63
+ const avg = intervals.reduce((a, b) => a + b, 0) / intervals.length;
64
+ if (avg >= 7 * DAY_MS)
65
+ return 1.3;
66
+ if (avg >= 1 * DAY_MS)
67
+ return 1.15;
68
+ return 1.0;
69
+ }
70
+ export function applySpacingBoost(results, db) {
71
+ if (results.length === 0)
72
+ return results;
73
+ const ids = results.filter(r => r.id != null).map(r => r.id);
74
+ if (ids.length === 0)
75
+ return results;
76
+ const ph = ids.map(() => "?").join(",");
77
+ const rows = db.prepare(`SELECT id, recall_timestamps FROM extracted_memories WHERE id IN (${ph})`).all(...ids);
78
+ const tsMap = new Map(rows.map(r => [r.id, JSON.parse(r.recall_timestamps ?? "[]")]));
79
+ return results.map(hit => {
80
+ if (!hit.id)
81
+ return hit;
82
+ const ts = tsMap.get(hit.id);
83
+ if (!ts || ts.length < 2)
84
+ return hit;
85
+ const mult = spacingBoost(ts);
86
+ return mult > 1.0 ? { ...hit, score: hit.score * mult } : hit;
87
+ });
88
+ }
89
+ // ── Emotion boost (#404) ────────────────────────────────────────────────────
90
+ //
91
+ // Tie-breaker-only boost for emotionally charged memories. Linear: |e| * 0.02,
92
+ // max +0.10 at |e|=5. Intentionally small — recall-engine scores are in the
93
+ // 0.4-1.2 range (darwinism ~0.95-1.25, cosine ~0-1, hamming ~0-1, hardcoded
94
+ // 0.5/0.6), so +0.10 is ~10% — enough to break ties, not enough to override a
95
+ // relevance gap of 0.2+.
96
+ //
97
+ // NOT the same weight as memory-index.ts EMOTION_BOOST_WEIGHT (0.5 * log(1+|e|)).
98
+ // That path operates on BM25 scores (5-20+), where +0.9 is proportionate.
99
+ // Different score regime, different weight — same direction (boost), same
100
+ // concept (emotional salience as tie-breaker). Each path applies the boost
101
+ // exactly once. Do NOT sum results across the two paths.
102
+ /** Recall-engine emotion boost multiplier: |emotion_score| * this = additive boost. */
103
+ export const RECALL_EMOTION_MULT = 0.02;
104
+ export function applyEmotionBoost(results, db) {
105
+ if (results.length === 0)
106
+ return results;
107
+ const ids = results.filter(r => r.id != null).map(r => r.id);
108
+ if (ids.length === 0)
109
+ return results;
110
+ const ph = ids.map(() => "?").join(",");
111
+ const rows = db.prepare(`SELECT id, emotion_score FROM extracted_memories WHERE id IN (${ph})`).all(...ids);
112
+ const emMap = new Map(rows.map(r => [r.id, r.emotion_score]));
113
+ return results.map(hit => {
114
+ if (hit.id == null)
115
+ return hit;
116
+ const e = emMap.get(hit.id);
117
+ if (e == null || e === 0)
118
+ return hit;
119
+ const boost = Math.abs(e) * RECALL_EMOTION_MULT;
120
+ return { ...hit, score: hit.score + boost, emotionScore: e };
121
+ });
122
+ }
123
+ // ── Quality boost (#824) ────────────────────────────────────────────────────
124
+ //
125
+ // Citation/rejection signal: memories the agent actually used get boosted,
126
+ // memories the user rejected get penalized. Uses (cited - rejected) / surfaced.
127
+ // Also applies ×0.85 penalty for memories recalled 5+ times in last 30d with 0 citations.
128
+ export function applyQualityBoost(results, db) {
129
+ if (results.length === 0)
130
+ return results;
131
+ const ids = results.filter(r => r.id != null).map(r => r.id);
132
+ if (ids.length === 0)
133
+ return results;
134
+ const ph = ids.map(() => "?").join(",");
135
+ const rows = db.prepare(`SELECT id, recall_count, cited_count, rejected_count, recall_timestamps FROM extracted_memories WHERE id IN (${ph})`).all(...ids);
136
+ const qMap = new Map(rows.map(r => [r.id, r]));
137
+ const now = Date.now();
138
+ const thirtyDays = 30 * DAY_MS;
139
+ return results.map(hit => {
140
+ if (hit.id == null)
141
+ return hit;
142
+ const row = qMap.get(hit.id);
143
+ if (!row || row.recall_count === 0)
144
+ return hit;
145
+ // Quality score: (cited - rejected) / recall_count, clamped to [-0.10, +0.15]
146
+ const qualityScore = (row.cited_count - row.rejected_count) / Math.max(row.recall_count, 1);
147
+ const boost = Math.max(-0.10, Math.min(0.15, qualityScore * 0.15));
148
+ // Penalty: 5+ recent recalls with 0 citations → ×0.85
149
+ let penalty = 1.0;
150
+ if (row.cited_count === 0 && row.recall_count >= 5) {
151
+ const timestamps = JSON.parse(row.recall_timestamps ?? "[]");
152
+ const recentRecalls = timestamps.filter(t => (now - t) < thirtyDays).length;
153
+ if (recentRecalls >= 5)
154
+ penalty = 0.85;
155
+ }
156
+ return { ...hit, score: (hit.score + boost) * penalty };
157
+ });
158
+ }
159
+ //# sourceMappingURL=recall-boosts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall-boosts.js","sourceRoot":"","sources":["../../src/recall-boosts.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,5 @@ export type RecallDeps = {
77
77
  /** Optional — when provided, Se stage uses it instead of loading a fresh ollama client (#173). */
78
78
  embeddingProvider?: import("./embedding-provider.js").IEmbeddingProvider;
79
79
  };
80
- export declare function applyContextBoost(results: RecallHit[], ctx: RecallContext): RecallHit[];
81
- export declare function applyEmotionBoost(results: RecallHit[], db: Database.Database): RecallHit[];
82
80
  export declare function recallSearch(deps: RecallDeps, params: RecallParams): Promise<RecallResult>;
83
81
  //# sourceMappingURL=recall-engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recall-engine.d.ts","sourceRoot":"","sources":["../../src/recall-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recall-engine.d.ts","sourceRoot":"","sources":["../../src/recall-engine.ts"],"names":[],"mappings":"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"}