memory-forge 0.3.12 → 0.4.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.
@@ -2,13 +2,15 @@
2
2
  * 后台自动化引擎: 全部用户无感知。
3
3
  */
4
4
  import type { MemoryStore, Memory } from "../store.js";
5
- /** 自动命名: 从内容中提取前几个字作为名称 */
5
+ /** 自动命名: 首句提取 + 词边界截断。不切词,不停半截。
6
+ * 用户可通过 memory_store({ name: "..." }) 覆盖。 */
6
7
  export declare function autoName(content: string): string;
7
- /** 自动合并: 检测相似内容并合并(异步,重新计算向量) */
8
+ /** 自动合并: 向量预筛 top-10 候选 + Jaccard 确认,避免全扫描。 */
8
9
  export declare function autoMerge(store: MemoryStore, newMemory: Memory): Promise<Memory | null>;
9
10
  /** 自动优先级: 基于访问频率 */
10
11
  export declare function autoPriority(memory: Memory): number;
11
12
  /** 自动衰减: Ebbinghaus 遗忘曲线 */
12
13
  export declare function autoDecay(memory: Memory): number;
13
- /** 生成上下文摘要给 Agent 注入 */
14
+ /** 生成上下文摘要给 Agent 注入。
15
+ * Recency 主导排序(最近使用的优先),分类衰减作 tiebreaker,priority=10 常青保护。 */
14
16
  export declare function generateContextSummary(store: MemoryStore, limit?: number): string;
@@ -1,30 +1,70 @@
1
1
  /**
2
2
  * 后台自动化引擎: 全部用户无感知。
3
3
  */
4
+ import { contentOverlap, safeTruncate } from "../store.js";
4
5
  import { saveMemory } from "../storage/local.js";
5
6
  import { embed } from "../embedding.js";
6
- /** 自动命名: 从内容中提取前几个字作为名称 */
7
+ /** 自动命名: 首句提取 + 词边界截断。不切词,不停半截。
8
+ * 用户可通过 memory_store({ name: "..." }) 覆盖。 */
7
9
  export function autoName(content) {
8
- // Strip code blocks, trim to ~30 chars
9
- const clean = content.replace(/```[\s\S]*?```/g, "").replace(/`/g, "").trim();
10
- const name = clean.slice(0, 40).replace(/\n/g, " ").trim();
10
+ // Strip code blocks and inline code
11
+ const clean = content
12
+ .replace(/```[\s\S]*?```/g, "")
13
+ .replace(/`/g, "")
14
+ .replace(/\n/g, ". ") // newlines as sentence boundaries
15
+ .replace(/\s+/g, " ")
16
+ .trim();
17
+ if (!clean)
18
+ return "memory";
19
+ // Find first natural sentence boundary
20
+ const endMarkers = [". ", "? ", "! ", ".\" ", ".\n"];
21
+ let end = -1;
22
+ for (const marker of endMarkers) {
23
+ const idx = clean.indexOf(marker);
24
+ if (idx > 0 && (end < 0 || idx < end))
25
+ end = idx + 1; // include the marker
26
+ }
27
+ // Take up to first boundary, capped at 60 chars
28
+ const maxLen = 60;
29
+ let name;
30
+ if (end > 0 && end <= maxLen) {
31
+ name = clean.slice(0, end).trim();
32
+ }
33
+ else if (clean.length <= maxLen) {
34
+ name = clean;
35
+ }
36
+ else {
37
+ // Truncate at last space before maxLen (word boundary)
38
+ const truncated = clean.slice(0, maxLen);
39
+ const lastSpace = truncated.lastIndexOf(" ");
40
+ name = lastSpace > maxLen * 0.5 ? truncated.slice(0, lastSpace) : truncated;
41
+ }
11
42
  return name || "memory";
12
43
  }
13
- /** 自动合并: 检测相似内容并合并(异步,重新计算向量) */
44
+ /** 自动合并: 向量预筛 top-10 候选 + Jaccard 确认,避免全扫描。 */
14
45
  export async function autoMerge(store, newMemory) {
15
- const all = [...store.list({ limit: 100, offset: 0 })];
16
- if (all.length === 0)
46
+ // Vector pre-filter: find top-10 semantically similar candidates
47
+ let candidates;
48
+ if (newMemory.vector.length > 0) {
49
+ candidates = store.search("", {
50
+ limit: 10, minSimilarity: 0.7,
51
+ queryVec: new Float32Array(newMemory.vector),
52
+ });
53
+ }
54
+ else {
55
+ // No vector yet — fall back to most recent 20
56
+ candidates = store.list({ limit: 20, offset: 0 });
57
+ }
58
+ if (candidates.length === 0)
17
59
  return null;
18
- for (const existing of all) {
60
+ for (const existing of candidates) {
19
61
  if (existing.id === newMemory.id)
20
62
  continue;
21
63
  const similarity = contentOverlap(existing.content, newMemory.content);
22
64
  if (similarity > 0.8) {
23
- // Merge: update existing with new content + fresh vector
24
65
  existing.content = newMemory.content;
25
66
  existing.access_count++;
26
67
  existing.last_accessed = new Date().toISOString();
27
- // Recompute vector for merged content
28
68
  const vec = await embed(existing.content);
29
69
  if (vec)
30
70
  existing.vector = Array.from(vec);
@@ -62,50 +102,52 @@ export function autoDecay(memory) {
62
102
  return 0.2;
63
103
  return 0; // archive
64
104
  }
65
- /** 内容重叠度 (Jaccard 近似) */
66
- function contentOverlap(a, b) {
67
- const setA = new Set(a.toLowerCase().split(/\s+/).filter((w) => w.length > 2));
68
- const setB = new Set(b.toLowerCase().split(/\s+/).filter((w) => w.length > 2));
69
- if (setA.size === 0 || setB.size === 0)
70
- return 0;
71
- let intersection = 0;
72
- for (const w of setA) {
73
- if (setB.has(w))
74
- intersection++;
75
- }
76
- return intersection / Math.min(setA.size, setB.size);
77
- }
78
- /** 生成上下文摘要给 Agent 注入 */
105
+ /** 生成上下文摘要给 Agent 注入。
106
+ * Recency 主导排序(最近使用的优先),分类衰减作 tiebreaker,priority=10 常青保护。 */
79
107
  export function generateContextSummary(store, limit = 5) {
80
- const all = store.list({ limit: 100, offset: 0 });
81
- // Category boost: decision-log and project-context are more useful as quick context
82
- // than raw session transcripts or generic memories
83
- const CATEGORY_BOOST = {
84
- "decision-log": 2.0,
85
- "project-context": 1.8,
86
- "user-preference": 1.2,
87
- "code-pattern": 1.1,
88
- "session-transcript": 0, // excluded — raw transcripts are for deep recall, not quick context
89
- "general": 1.0,
108
+ // Category half-life (days) YourMemory-style decay rates.
109
+ // Strategic decisions decay slowly, casual notes decay fast.
110
+ const CATEGORY_HALFLIFE = {
111
+ "decision-log": 38,
112
+ "project-context": 30,
113
+ "user-preference": 24,
114
+ "code-pattern": 20,
115
+ "session-transcript": 0, // excluded from context injection
116
+ "general": 14,
90
117
  };
91
- // Filter + recency-first with category boost, priority as final tiebreaker
92
- const ranked = all
93
- .filter((m) => {
94
- const boost = CATEGORY_BOOST[m.category];
95
- return boost !== undefined ? boost > 0 : true; // exclude categories with boost=0
96
- })
97
- .sort((a, b) => {
118
+ const now = Date.now();
119
+ // Widen pool (3× limit) so recency reordering has room
120
+ const pool = store.list({ limit: Math.max(limit * 3, 50), offset: 0 });
121
+ // Filter out excluded categories
122
+ const eligible = pool.filter((m) => {
123
+ const hl = CATEGORY_HALFLIFE[m.category];
124
+ return hl === undefined || hl > 0;
125
+ });
126
+ // Split: evergreen (priority=10, force-include) vs normal
127
+ const evergreen = eligible.filter((m) => m.priority >= 10);
128
+ const normal = eligible.filter((m) => m.priority < 10);
129
+ // Sort normal: recency first (last_accessed > created_at), decay as tiebreaker
130
+ normal.sort((a, b) => {
98
131
  const aTime = a.last_accessed ? new Date(a.last_accessed).getTime() : new Date(a.created_at).getTime();
99
132
  const bTime = b.last_accessed ? new Date(b.last_accessed).getTime() : new Date(b.created_at).getTime();
100
- const aBoost = CATEGORY_BOOST[a.category] ?? 1.0;
101
- const bBoost = CATEGORY_BOOST[b.category] ?? 1.0;
102
- const aScore = aTime * aBoost;
103
- const bScore = bTime * bBoost;
104
- if (bScore !== aScore)
105
- return bScore - aScore;
106
- return (b.priority || 5) - (a.priority || 5);
133
+ // Recency primary: newer first
134
+ if (bTime !== aTime)
135
+ return bTime - aTime;
136
+ // Same recency category decay × priority decider
137
+ const aDays = (now - aTime) / 86400000;
138
+ const bDays = (now - bTime) / 86400000;
139
+ const aHalf = CATEGORY_HALFLIFE[a.category] ?? 14;
140
+ const bHalf = CATEGORY_HALFLIFE[b.category] ?? 14;
141
+ const aDecay = Math.pow(0.5, aDays / aHalf);
142
+ const bDecay = Math.pow(0.5, bDays / bHalf);
143
+ const aScore = aDecay * (a.priority || 5);
144
+ const bScore = bDecay * (b.priority || 5);
145
+ return bScore - aScore;
107
146
  });
108
- // Dedup: skip entries too similar to ones already selected (keep more recent)
147
+ // Merge: evergreen first (priority desc), then recency-sorted normal
148
+ evergreen.sort((a, b) => (b.priority || 10) - (a.priority || 10));
149
+ const ranked = [...evergreen, ...normal];
150
+ // Dedup: skip entries too similar to ones already selected
109
151
  const top = [];
110
152
  for (const m of ranked) {
111
153
  if (top.some((t) => contentOverlap(t.content, m.content) > 0.6))
@@ -134,18 +176,17 @@ export function generateContextSummary(store, limit = 5) {
134
176
  lines.push(`- [${m.name}] ${dateStr} | ${m.category}\n ${preview}`);
135
177
  }
136
178
  // Token budget note: tell agent if context is truncated
137
- const eligibleTotal = all.filter((m) => {
138
- const boost = CATEGORY_BOOST[m.category];
139
- return boost !== undefined ? boost > 0 : true;
140
- }).length;
179
+ const eligibleTotal = eligible.length + evergreen.length;
141
180
  if (eligibleTotal > limit) {
142
181
  lines.push("", `[MemoryForge] Showing top ${limit} of ${eligibleTotal} eligible memories. ` +
143
182
  `Use memory_search or memory_recall to find more.`);
144
183
  }
145
- // Agent instruction: actively reference this context
146
- lines.push("", "[MemoryForge] When the user asks about previous work, \"what we were doing\", " +
147
- "\"continue yesterday\", or similar reference the context above. " +
148
- "Briefly summarize what was happening last session before asking what to do next.");
184
+ // Proactive greeting: agent acknowledges context in first response
185
+ lines.push("", "[MemoryForge] IMPORTANT In your FIRST response to the user (even to a simple " +
186
+ "\"hi\" or \"continue\"), acknowledge the context above. Summarize in 1-2 lines what " +
187
+ "was happening last session. Example: \"Loaded context from last session: we were " +
188
+ "working on [topic]. [N] memories available. What should we do next?\" " +
189
+ "This makes the user aware their context was loaded successfully.");
149
190
  return lines.join("\n\n");
150
191
  }
151
192
  /** Redact sensitive patterns from context preview to prevent key leakage to LLM APIs */
@@ -179,7 +220,7 @@ function smartPreview(content, maxLen) {
179
220
  if (meaningful.length === 0) {
180
221
  // No meaningful paragraphs found — raw truncation
181
222
  return content.length > maxLen
182
- ? content.slice(0, maxLen).replace(/\n/g, " ").trim() + "…"
223
+ ? safeTruncate(content, maxLen).replace(/\n/g, " ").trim() + "…"
183
224
  : content;
184
225
  }
185
226
  // Build preview from first meaningful paragraph(s)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auto/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auto/index.ts"],"names":[],"mappings":"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"}
package/dist/embedding.js CHANGED
@@ -20,8 +20,20 @@ async function getEmbedder() {
20
20
  return loading;
21
21
  loading = (async () => {
22
22
  try {
23
+ console.error("[MemoryForge] Loading embedding model (~23MB, one-time download)…");
23
24
  const { pipeline } = await import("@huggingface/transformers");
24
- const engine = await pipeline("feature-extraction", "Xenova/all-MiniLM-L6-v2");
25
+ const engine = await pipeline("feature-extraction", "Xenova/all-MiniLM-L6-v2", {
26
+ progress_callback: (progress) => {
27
+ if (progress?.status === "downloading") {
28
+ const pct = progress?.progress ? Math.round(progress.progress) : 0;
29
+ const file = progress?.file ?? "";
30
+ if (pct > 0)
31
+ process.stderr.write(`\r[MemoryForge] Downloading model… ${pct}%`);
32
+ if (pct === 100)
33
+ process.stderr.write("\n");
34
+ }
35
+ },
36
+ });
25
37
  embedFn = async (text) => {
26
38
  const result = await engine(text, { pooling: "mean", normalize: true });
27
39
  return new Float32Array(result.data);
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,IAAI,OAAO,GAAmB,IAAI,CAAC;AACnC,IAAI,OAAO,GAA4B,IAAI,CAAC;AAC5C,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,mCAAmC;AAE7D,KAAK,UAAU,WAAW;IACxB,2EAA2E;IAC3E,IAAI,OAAO,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAC5B,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;YAC/E,OAAO,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC;YACF,WAAW,GAAG,CAAC,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACvF,OAAO,CAAC,KAAK,CAAC,4DAA4D,QAAQ,GAAG,IAAI,KAAK,CAAC,CAAC;YAChG,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO;IAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,QAAQ;QAAE,OAAO;IAEhD,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,GAAG,IAAI,CAAC;IACf,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAY;IACtC,MAAM,EAAE,GAAG,MAAM,WAAW,EAAE,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,OAAO;IACrB,WAAW,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * MemoryForge — AI Agent 持久记忆引擎 (MVP)
4
4
  *
5
- * 8 MCP 工具 + 5 个后台自动化引擎 + Pro Shelby 云同步。
6
- * 嵌入: Transformers.js (23MB, 进程内)
7
- * 存储: Free 层本地 Markdown; Pro Shelby 云。
5
+ * 9 MCP tools + 5 auto-engines + Pro Shelby cloud sync.
6
+ * Embedding: Transformers.js (23MB, in-process).
7
+ * Storage: Free = local Markdown; Pro = Shelby cloud.
8
8
  *
9
- * 一键嵌入:
10
- * claude mcp add memory-forge -- npx memory-forge
9
+ * Quick start:
10
+ * npx memory-forge setup
11
11
  */
12
12
  export {};