@scotthuang/engram 0.5.8 → 0.6.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.
Files changed (49) hide show
  1. package/README.md +42 -0
  2. package/dist/face/src/face-api.d.ts +36 -0
  3. package/dist/face/src/face-api.js +90 -0
  4. package/dist/face/src/face-api.js.map +1 -0
  5. package/dist/face/src/face-store.d.ts +101 -0
  6. package/dist/face/src/face-store.js +361 -0
  7. package/dist/face/src/face-store.js.map +1 -0
  8. package/dist/index.js +11 -8
  9. package/dist/index.js.map +1 -1
  10. package/dist/src/__tests__/bm25.test.d.ts +1 -0
  11. package/dist/src/__tests__/bm25.test.js +198 -0
  12. package/dist/src/__tests__/bm25.test.js.map +1 -0
  13. package/dist/src/__tests__/config.test.d.ts +1 -0
  14. package/dist/src/__tests__/config.test.js +31 -0
  15. package/dist/src/__tests__/config.test.js.map +1 -0
  16. package/dist/src/__tests__/profile.test.d.ts +1 -0
  17. package/dist/src/__tests__/profile.test.js +130 -0
  18. package/dist/src/__tests__/profile.test.js.map +1 -0
  19. package/dist/src/__tests__/recall.test.d.ts +1 -0
  20. package/dist/src/__tests__/recall.test.js +162 -0
  21. package/dist/src/__tests__/recall.test.js.map +1 -0
  22. package/dist/src/bm25.d.ts +60 -0
  23. package/dist/src/bm25.js +271 -0
  24. package/dist/src/bm25.js.map +1 -0
  25. package/dist/src/config.d.ts +47 -0
  26. package/dist/src/config.js +83 -0
  27. package/dist/src/config.js.map +1 -0
  28. package/dist/src/image-store.d.ts +146 -0
  29. package/dist/src/image-store.js +418 -0
  30. package/dist/src/image-store.js.map +1 -0
  31. package/dist/src/index.d.ts +7 -0
  32. package/dist/src/index.js +1236 -0
  33. package/dist/src/index.js.map +1 -0
  34. package/dist/src/logger.d.ts +32 -0
  35. package/dist/src/logger.js +106 -0
  36. package/dist/src/logger.js.map +1 -0
  37. package/dist/src/profile.d.ts +37 -0
  38. package/dist/src/profile.js +107 -0
  39. package/dist/src/profile.js.map +1 -0
  40. package/dist/src/recall.d.ts +98 -0
  41. package/dist/src/recall.js +729 -0
  42. package/dist/src/recall.js.map +1 -0
  43. package/dist/src/settle.d.ts +83 -0
  44. package/dist/src/settle.js +687 -0
  45. package/dist/src/settle.js.map +1 -0
  46. package/dist/src/vector.d.ts +67 -0
  47. package/dist/src/vector.js +284 -0
  48. package/dist/src/vector.js.map +1 -0
  49. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Memory System Plugin - Logger
3
+ *
4
+ * 按天写日志文件,方便长期回溯记忆召回问题。
5
+ * - 传入 logDir:在 logDir/engram/ 下按天创建日志文件(YYYY-MM-DD.log)
6
+ * - 不传入 logDir:fallback 到 console.log / console.error
7
+ */
8
+ export type LogLevel = "INFO" | "WARN" | "ERROR";
9
+ declare class Logger {
10
+ private logDir;
11
+ private currentDate;
12
+ private currentLogPath;
13
+ /**
14
+ * 初始化 logger
15
+ * @param parentDir 父目录路径,会在下面创建 engram/ 子文件夹。不传则用 console 输出。
16
+ */
17
+ init(parentDir?: string): void;
18
+ /**
19
+ * 确保当天的日志文件路径是最新的(使用本地日期)
20
+ */
21
+ private ensureLogFile;
22
+ /**
23
+ * 写一行日志
24
+ */
25
+ private write;
26
+ info(message: string): void;
27
+ warn(message: string): void;
28
+ error(message: string): void;
29
+ }
30
+ /** 全局单例 */
31
+ export declare const logger: Logger;
32
+ export {};
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Memory System Plugin - Logger
3
+ *
4
+ * 按天写日志文件,方便长期回溯记忆召回问题。
5
+ * - 传入 logDir:在 logDir/engram/ 下按天创建日志文件(YYYY-MM-DD.log)
6
+ * - 不传入 logDir:fallback 到 console.log / console.error
7
+ */
8
+ import { mkdirSync, appendFileSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ /**
11
+ * 格式化本地时间为 YYYY-MM-DD HH:mm:ss.SSS 格式
12
+ * 使用本机时区而非 UTC,方便阅读和按天归档
13
+ */
14
+ function localTimestamp(now) {
15
+ const y = now.getFullYear();
16
+ const M = String(now.getMonth() + 1).padStart(2, "0");
17
+ const d = String(now.getDate()).padStart(2, "0");
18
+ const h = String(now.getHours()).padStart(2, "0");
19
+ const m = String(now.getMinutes()).padStart(2, "0");
20
+ const s = String(now.getSeconds()).padStart(2, "0");
21
+ const ms = String(now.getMilliseconds()).padStart(3, "0");
22
+ return `${y}-${M}-${d} ${h}:${m}:${s}.${ms}`;
23
+ }
24
+ /**
25
+ * 获取本地日期字符串 YYYY-MM-DD(用于日志文件名)
26
+ */
27
+ function localDateStr(now) {
28
+ const y = now.getFullYear();
29
+ const M = String(now.getMonth() + 1).padStart(2, "0");
30
+ const d = String(now.getDate()).padStart(2, "0");
31
+ return `${y}-${M}-${d}`;
32
+ }
33
+ class Logger {
34
+ logDir = null;
35
+ currentDate = "";
36
+ currentLogPath = "";
37
+ /**
38
+ * 初始化 logger
39
+ * @param parentDir 父目录路径,会在下面创建 engram/ 子文件夹。不传则用 console 输出。
40
+ */
41
+ init(parentDir) {
42
+ if (!parentDir) {
43
+ this.logDir = null;
44
+ console.log("[engram:logger] No logDir configured, using console output");
45
+ return;
46
+ }
47
+ this.logDir = join(parentDir, "engram");
48
+ try {
49
+ mkdirSync(this.logDir, { recursive: true });
50
+ console.log(`[engram:logger] Log directory: ${this.logDir}`);
51
+ }
52
+ catch (err) {
53
+ console.error(`[engram:logger] Failed to create log directory ${this.logDir}: ${err}`);
54
+ this.logDir = null;
55
+ }
56
+ }
57
+ /**
58
+ * 确保当天的日志文件路径是最新的(使用本地日期)
59
+ */
60
+ ensureLogFile() {
61
+ if (!this.logDir)
62
+ return null;
63
+ const today = localDateStr(new Date());
64
+ if (today !== this.currentDate) {
65
+ this.currentDate = today;
66
+ this.currentLogPath = join(this.logDir, `${today}.log`);
67
+ }
68
+ return this.currentLogPath;
69
+ }
70
+ /**
71
+ * 写一行日志
72
+ */
73
+ write(level, message) {
74
+ const timestamp = localTimestamp(new Date());
75
+ const line = `${timestamp} [${level}] ${message}`;
76
+ // 始终输出到 console(保持现有行为)
77
+ if (level === "ERROR") {
78
+ console.error(line);
79
+ }
80
+ else {
81
+ console.log(line);
82
+ }
83
+ // 如果有文件日志目录,同时写文件
84
+ const logFile = this.ensureLogFile();
85
+ if (logFile) {
86
+ try {
87
+ appendFileSync(logFile, line + "\n");
88
+ }
89
+ catch {
90
+ // 写文件失败不应影响主流程,静默忽略
91
+ }
92
+ }
93
+ }
94
+ info(message) {
95
+ this.write("INFO", message);
96
+ }
97
+ warn(message) {
98
+ this.write("WARN", message);
99
+ }
100
+ error(message) {
101
+ this.write("ERROR", message);
102
+ }
103
+ }
104
+ /** 全局单例 */
105
+ export const logger = new Logger();
106
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Memory System Plugin - Profile (语义画像)
3
+ *
4
+ * 画像 JSON 结构 + 读写 + 压缩摘要
5
+ */
6
+ export type ProfileTag = {
7
+ value: string;
8
+ confidence: number;
9
+ lastSeen: string;
10
+ };
11
+ export type SemanticProfile = {
12
+ summary: string;
13
+ coreTags: string[];
14
+ tags: Record<string, ProfileTag[]>;
15
+ updatedAt: string;
16
+ };
17
+ export declare const EMPTY_PROFILE: SemanticProfile;
18
+ export declare class ProfileManager {
19
+ private profile;
20
+ private profilePath;
21
+ constructor(workspaceDir: string);
22
+ ensureDir(): Promise<void>;
23
+ load(): Promise<SemanticProfile>;
24
+ save(profile: SemanticProfile): Promise<void>;
25
+ /**
26
+ * 获取召回用的摘要信息(控制 token 消耗)
27
+ */
28
+ getRecallContext(profile: SemanticProfile): string;
29
+ /**
30
+ * 添加标签(增量更新)
31
+ */
32
+ addTag(profile: SemanticProfile, dimension: string, value: string): SemanticProfile;
33
+ /**
34
+ * 降低标签置信度(遗忘)
35
+ */
36
+ decayTags(profile: SemanticProfile, factor?: number): SemanticProfile;
37
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Memory System Plugin - Profile (语义画像)
3
+ *
4
+ * 画像 JSON 结构 + 读写 + 压缩摘要
5
+ */
6
+ import { promises as fs } from "node:fs";
7
+ import { logger } from "./logger.js";
8
+ import { join } from "node:path";
9
+ export const EMPTY_PROFILE = {
10
+ summary: "",
11
+ coreTags: [],
12
+ tags: {},
13
+ updatedAt: new Date().toISOString(),
14
+ };
15
+ export class ProfileManager {
16
+ profile = null;
17
+ profilePath;
18
+ constructor(workspaceDir) {
19
+ this.profilePath = join(workspaceDir, "memory-engram", "profile", "semantic_profile.json");
20
+ }
21
+ async ensureDir() {
22
+ await fs.mkdir(join(this.profilePath, ".."), { recursive: true });
23
+ }
24
+ async load() {
25
+ if (this.profile)
26
+ return this.profile;
27
+ try {
28
+ const raw = await fs.readFile(this.profilePath, "utf-8");
29
+ this.profile = JSON.parse(raw);
30
+ const tagCount = Object.values(this.profile.tags).reduce((sum, tags) => sum + tags.length, 0);
31
+ logger.info(`[engram:profile] Loaded profile: ${tagCount} tags, ${Object.keys(this.profile.tags).length} dimensions, coreTags=[${this.profile.coreTags.join(", ")}]`);
32
+ }
33
+ catch {
34
+ logger.info(`[engram:profile] Profile not found at ${this.profilePath}, using empty profile`);
35
+ this.profile = { ...EMPTY_PROFILE };
36
+ }
37
+ return this.profile;
38
+ }
39
+ async save(profile) {
40
+ this.profile = profile;
41
+ profile.updatedAt = new Date().toISOString();
42
+ await this.ensureDir();
43
+ await fs.writeFile(this.profilePath, JSON.stringify(profile, null, 2), "utf-8");
44
+ const tagCount = Object.values(profile.tags).reduce((sum, tags) => sum + tags.length, 0);
45
+ logger.info(`[engram:profile] Saved profile: ${tagCount} tags, summary="${(profile.summary || "").slice(0, 50)}"`);
46
+ }
47
+ /**
48
+ * 获取召回用的摘要信息(控制 token 消耗)
49
+ */
50
+ getRecallContext(profile) {
51
+ if (!profile.summary && profile.coreTags.length === 0) {
52
+ return "";
53
+ }
54
+ const parts = [];
55
+ if (profile.summary) {
56
+ parts.push(`【用户画像】${profile.summary}`);
57
+ }
58
+ if (profile.coreTags.length > 0) {
59
+ parts.push(`【核心标签】${profile.coreTags.join(", ")}`);
60
+ }
61
+ return parts.join("\n");
62
+ }
63
+ /**
64
+ * 添加标签(增量更新)
65
+ */
66
+ addTag(profile, dimension, value) {
67
+ if (!profile.tags[dimension]) {
68
+ profile.tags[dimension] = [];
69
+ }
70
+ // 避免重复
71
+ const existing = profile.tags[dimension].find(t => t.value === value);
72
+ if (existing) {
73
+ existing.confidence = Math.min(1.0, existing.confidence + 0.1);
74
+ existing.lastSeen = new Date().toISOString();
75
+ }
76
+ else {
77
+ profile.tags[dimension].push({
78
+ value,
79
+ confidence: 0.7,
80
+ lastSeen: new Date().toISOString(),
81
+ });
82
+ }
83
+ return profile;
84
+ }
85
+ /**
86
+ * 降低标签置信度(遗忘)
87
+ */
88
+ decayTags(profile, factor = 0.95) {
89
+ let decayed = 0;
90
+ let pruned = 0;
91
+ for (const dimension of Object.keys(profile.tags)) {
92
+ const before = profile.tags[dimension].length;
93
+ profile.tags[dimension] = profile.tags[dimension]
94
+ .map(t => ({ ...t, confidence: t.confidence * factor }))
95
+ .filter(t => t.confidence > 0.2); // 淘汰低置信度标签
96
+ decayed += profile.tags[dimension].length;
97
+ pruned += before - profile.tags[dimension].length;
98
+ // 清理空维度
99
+ if (profile.tags[dimension].length === 0) {
100
+ delete profile.tags[dimension];
101
+ }
102
+ }
103
+ logger.info(`[engram:profile] decayTags: factor=${factor}, decayed=${decayed} tags, pruned=${pruned} low-confidence tags`);
104
+ return profile;
105
+ }
106
+ }
107
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Memory System Plugin - Recall (自动召回)
3
+ *
4
+ * 双路召回:BM25(短期记忆) + Vector(长期记忆)
5
+ * 查询重写 → 多子查询召回 → 分数融合 → 排重 → 时间衰减 → MMR 去重 → 画像注入
6
+ */
7
+ import { type MemorySystemConfig } from "./config.js";
8
+ export type RecallResult = {
9
+ id?: string;
10
+ text: string;
11
+ source: "short-term" | "vector";
12
+ score: number;
13
+ date?: string;
14
+ category?: string;
15
+ };
16
+ /** recall-hits.json v2 格式:每个文件的命中统计 */
17
+ export type RecallHitEntry = {
18
+ /** 被召回命中的总次数 */
19
+ hitCount: number;
20
+ /** 第一次命中的时间戳 (ms) */
21
+ firstHit: number;
22
+ /** 最后一次命中的时间戳 (ms) */
23
+ lastHit: number;
24
+ /** 是否已沉淀到长期记忆 */
25
+ settled: boolean;
26
+ };
27
+ export declare class RecallEngine {
28
+ private bm25;
29
+ private profileManager;
30
+ private config;
31
+ private workspaceDir;
32
+ private vectorSearch?;
33
+ private reinforceCallback?;
34
+ /** recall-hits.json 路径 */
35
+ private get recallHitsPath();
36
+ constructor(workspaceDir: string, config: MemorySystemConfig);
37
+ /**
38
+ * 设置向量搜索回调(由 Plugin 主入口注入)
39
+ */
40
+ setVectorSearch(fn: (query: string, limit: number) => Promise<RecallResult[]>): void;
41
+ /**
42
+ * 设置记忆强化回调(由 Plugin 主入口注入)
43
+ */
44
+ setReinforceCallback(fn: (ids: string[]) => Promise<void>): void;
45
+ /**
46
+ * 检查是否已设置向量搜索
47
+ */
48
+ hasVectorSearch(): boolean;
49
+ /**
50
+ * 启动时初始化:加载画像 + 构建 BM25 索引
51
+ */
52
+ startup(): Promise<void>;
53
+ /**
54
+ * 增量重建 BM25 索引(在新增文件后调用)
55
+ */
56
+ rebuildBM25(): Promise<void>;
57
+ /**
58
+ * recall-hits.json 条目格式(v2)
59
+ */
60
+ static readonly RECALL_HITS_VERSION = 2;
61
+ /**
62
+ * 读取 recall-hits.json(兼容 v1 和 v2 格式)
63
+ * v1: { "filename": timestamp }
64
+ * v2: { "filename": { hitCount, firstHit, lastHit, settled } }
65
+ */
66
+ loadRecallHits(): Promise<Record<string, RecallHitEntry>>;
67
+ /**
68
+ * 记录被 BM25 召回命中的短期记忆文件
69
+ * 累加 hitCount,更新 lastHit
70
+ * 异步 fire-and-forget,不阻塞召回返回
71
+ */
72
+ private trackHitFiles;
73
+ /**
74
+ * 查询重写:调用云 LLM 将混合意图拆分为多个聚焦子查询
75
+ * 返回 { queries: 子查询数组, primary: 主查询索引 }
76
+ */
77
+ private rewriteQuery;
78
+ /**
79
+ * 单子查询召回(内部方法)
80
+ * 对一个子查询执行 BM25 + Vector 双路召回,返回原始候选列表
81
+ * 不做加权和衰减 — 这些统一在 recall() 的 byId 合并阶段处理
82
+ */
83
+ private recallSingle;
84
+ /**
85
+ * 核心:双路召回(支持查询重写)
86
+ *
87
+ * 流水线(参考 OpenClaw hybrid.ts):
88
+ * 1. 查询重写 → 多子查询
89
+ * 2. 每个子查询:BM25 + Vector 双路召回
90
+ * 3. byId Map 合并(同一条记忆只保留一条,两路分数加权求和)
91
+ * 4. 时间衰减(仅对短期记忆,向量长期记忆豁免)
92
+ * 5. 排序 → 去重 → 过滤低分 → MMR 重排 → Top-K
93
+ */
94
+ recall(query: string): Promise<{
95
+ results: string;
96
+ memoryContext: string;
97
+ }>;
98
+ }