@aman_asmuei/amem 0.19.0 → 0.20.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 (85) hide show
  1. package/dist/cli.js +6 -7
  2. package/dist/cli.js.map +1 -1
  3. package/dist/dashboard.d.ts +1 -1
  4. package/dist/dashboard.js +1 -1
  5. package/dist/dashboard.js.map +1 -1
  6. package/dist/index.js +3 -7
  7. package/dist/index.js.map +1 -1
  8. package/dist/tools/advanced.d.ts +1 -1
  9. package/dist/tools/advanced.js +1 -5
  10. package/dist/tools/advanced.js.map +1 -1
  11. package/dist/tools/graph.d.ts +1 -1
  12. package/dist/tools/graph.js +1 -2
  13. package/dist/tools/graph.js.map +1 -1
  14. package/dist/tools/index.d.ts +2 -2
  15. package/dist/tools/index.js +2 -2
  16. package/dist/tools/index.js.map +1 -1
  17. package/dist/tools/log.d.ts +1 -1
  18. package/dist/tools/log.js +1 -2
  19. package/dist/tools/log.js.map +1 -1
  20. package/dist/tools/memory.d.ts +1 -2
  21. package/dist/tools/memory.js +16 -22
  22. package/dist/tools/memory.js.map +1 -1
  23. package/dist/tools/reminders.d.ts +1 -1
  24. package/dist/tools/reminders.js +4 -5
  25. package/dist/tools/reminders.js.map +1 -1
  26. package/dist/tools/versions.d.ts +1 -1
  27. package/dist/tools/versions.js +3 -4
  28. package/dist/tools/versions.js.map +1 -1
  29. package/dist/tools.test.js +1 -2
  30. package/dist/tools.test.js.map +1 -1
  31. package/package.json +3 -9
  32. package/dist/ann.d.ts +0 -26
  33. package/dist/ann.js +0 -155
  34. package/dist/ann.js.map +0 -1
  35. package/dist/auto-relate.d.ts +0 -14
  36. package/dist/auto-relate.js +0 -47
  37. package/dist/auto-relate.js.map +0 -1
  38. package/dist/config.d.ts +0 -51
  39. package/dist/config.js +0 -130
  40. package/dist/config.js.map +0 -1
  41. package/dist/database.d.ts +0 -165
  42. package/dist/database.js +0 -831
  43. package/dist/database.js.map +0 -1
  44. package/dist/database.test.d.ts +0 -1
  45. package/dist/database.test.js +0 -275
  46. package/dist/database.test.js.map +0 -1
  47. package/dist/doctor.d.ts +0 -23
  48. package/dist/doctor.js +0 -107
  49. package/dist/doctor.js.map +0 -1
  50. package/dist/embeddings.d.ts +0 -38
  51. package/dist/embeddings.js +0 -251
  52. package/dist/embeddings.js.map +0 -1
  53. package/dist/embeddings.test.d.ts +0 -1
  54. package/dist/embeddings.test.js +0 -106
  55. package/dist/embeddings.test.js.map +0 -1
  56. package/dist/extractor.d.ts +0 -13
  57. package/dist/extractor.js +0 -89
  58. package/dist/extractor.js.map +0 -1
  59. package/dist/memory.d.ts +0 -134
  60. package/dist/memory.js +0 -432
  61. package/dist/memory.js.map +0 -1
  62. package/dist/memory.test.d.ts +0 -1
  63. package/dist/memory.test.js +0 -172
  64. package/dist/memory.test.js.map +0 -1
  65. package/dist/query-expand.d.ts +0 -9
  66. package/dist/query-expand.js +0 -71
  67. package/dist/query-expand.js.map +0 -1
  68. package/dist/reflection.d.ts +0 -82
  69. package/dist/reflection.js +0 -414
  70. package/dist/reflection.js.map +0 -1
  71. package/dist/reflection.test.d.ts +0 -1
  72. package/dist/reflection.test.js +0 -453
  73. package/dist/reflection.test.js.map +0 -1
  74. package/dist/repair.d.ts +0 -8
  75. package/dist/repair.js +0 -90
  76. package/dist/repair.js.map +0 -1
  77. package/dist/schemas.d.ts +0 -1075
  78. package/dist/schemas.js +0 -311
  79. package/dist/schemas.js.map +0 -1
  80. package/dist/sync.d.ts +0 -85
  81. package/dist/sync.js +0 -304
  82. package/dist/sync.js.map +0 -1
  83. package/dist/tools/helpers.d.ts +0 -7
  84. package/dist/tools/helpers.js +0 -23
  85. package/dist/tools/helpers.js.map +0 -1
package/dist/sync.js DELETED
@@ -1,304 +0,0 @@
1
- /**
2
- * Sync engine: imports Claude Code auto-memory files into amem.
3
- *
4
- * Claude Code stores auto-memory as markdown files with YAML frontmatter:
5
- * ~/.claude/projects/<escaped-path>/memory/MEMORY.md (index)
6
- * ~/.claude/projects/<escaped-path>/memory/<name>.md (individual memories)
7
- *
8
- * Frontmatter format:
9
- * ---
10
- * name: <title>
11
- * description: <one-line summary>
12
- * type: user | feedback | project | reference
13
- * ---
14
- * <markdown body>
15
- *
16
- * Type mapping (Claude auto-memory → amem):
17
- * feedback → correction (user corrections, constraints)
18
- * project → decision (project-level decisions, architecture)
19
- * user → preference (user profile, preferences)
20
- * reference → topology (pointers to external resources, codebase locations)
21
- */
22
- import path from "node:path";
23
- import os from "node:os";
24
- import fs from "node:fs";
25
- import { generateEmbedding } from "./embeddings.js";
26
- // ── Type mapping ────────────────────────────────────────
27
- const CLAUDE_TO_AMEM_TYPE = {
28
- feedback: "correction",
29
- project: "decision",
30
- user: "preference",
31
- reference: "topology",
32
- };
33
- const CLAUDE_TO_CONFIDENCE = {
34
- feedback: 1.0, // Corrections are high-confidence
35
- project: 0.85,
36
- user: 0.8,
37
- reference: 0.7,
38
- };
39
- function parseFrontmatter(content, filePath) {
40
- const match = content.match(/^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/);
41
- if (!match)
42
- return null;
43
- const frontmatter = match[1];
44
- const body = match[2].trim();
45
- // Simple YAML key-value parser (no dependency needed)
46
- const fields = {};
47
- for (const line of frontmatter.split("\n")) {
48
- const kv = line.match(/^(\w+)\s*:\s*(.+)$/);
49
- if (kv)
50
- fields[kv[1]] = kv[2].trim();
51
- }
52
- if (!fields.name || !fields.type)
53
- return null;
54
- return {
55
- name: fields.name,
56
- description: fields.description || "",
57
- type: fields.type,
58
- body,
59
- filePath,
60
- };
61
- }
62
- // ── Discovery ───────────────────────────────────────────
63
- /**
64
- * Find all Claude auto-memory directories.
65
- * Returns map of project path → memory directory.
66
- */
67
- export function discoverClaudeMemories() {
68
- const claudeDir = path.join(os.homedir(), ".claude", "projects");
69
- const results = new Map();
70
- if (!fs.existsSync(claudeDir))
71
- return results;
72
- try {
73
- for (const entry of fs.readdirSync(claudeDir)) {
74
- const memDir = path.join(claudeDir, entry, "memory");
75
- if (fs.existsSync(memDir) && fs.statSync(memDir).isDirectory()) {
76
- // Decode project path from directory name
77
- const projectPath = entry.replace(/^-/, "/").replace(/-/g, "/");
78
- results.set(projectPath, memDir);
79
- }
80
- }
81
- }
82
- catch {
83
- // Permission errors etc.
84
- }
85
- return results;
86
- }
87
- /**
88
- * Read all memory files from a Claude auto-memory directory.
89
- */
90
- export function readClaudeMemoryDir(memDir) {
91
- const files = [];
92
- try {
93
- for (const name of fs.readdirSync(memDir)) {
94
- if (name === "MEMORY.md")
95
- continue; // Skip index file
96
- if (!name.endsWith(".md"))
97
- continue;
98
- const filePath = path.join(memDir, name);
99
- const content = fs.readFileSync(filePath, "utf-8");
100
- const parsed = parseFrontmatter(content, filePath);
101
- if (parsed)
102
- files.push(parsed);
103
- }
104
- }
105
- catch {
106
- // Read errors
107
- }
108
- return files;
109
- }
110
- /**
111
- * Sync Claude auto-memory into amem.
112
- *
113
- * @param db - amem database
114
- * @param projectFilter - only sync this project path (optional, syncs all if omitted)
115
- * @param dryRun - preview without writing (default: false)
116
- */
117
- export async function syncFromClaude(db, projectFilter, dryRun = false) {
118
- const discovered = discoverClaudeMemories();
119
- const result = {
120
- imported: 0,
121
- skipped: 0,
122
- updated: 0,
123
- details: [],
124
- projectsScanned: 0,
125
- };
126
- for (const [projectPath, memDir] of discovered) {
127
- if (projectFilter && !projectPath.includes(projectFilter))
128
- continue;
129
- result.projectsScanned++;
130
- const files = readClaudeMemoryDir(memDir);
131
- const scope = `project:${projectPath}`;
132
- for (const file of files) {
133
- const amemType = CLAUDE_TO_AMEM_TYPE[file.type];
134
- if (!amemType) {
135
- result.skipped++;
136
- result.details.push({
137
- action: "skipped",
138
- name: file.name,
139
- type: file.type,
140
- reason: `Unknown Claude memory type: ${file.type}`,
141
- });
142
- continue;
143
- }
144
- // Build the memory content: combine name + body for richness
145
- const content = file.body.length > 0
146
- ? `${file.name}: ${file.body}`
147
- : file.name;
148
- // Truncate very long memories (Claude project overviews can be huge)
149
- const truncated = content.length > 5000
150
- ? content.slice(0, 5000) + "\n\n[truncated from Claude auto-memory]"
151
- : content;
152
- // Check for existing duplicate by content hash
153
- const existing = db.findByContentHash(truncated);
154
- if (existing) {
155
- result.skipped++;
156
- result.details.push({
157
- action: "skipped",
158
- name: file.name,
159
- type: amemType,
160
- reason: "Already exists in amem (content hash match)",
161
- });
162
- continue;
163
- }
164
- // Check for semantic near-duplicate by name
165
- const nameMatch = db.fullTextSearch(file.name, 1);
166
- if (nameMatch.length > 0 && nameMatch[0].content.includes(file.name.split(":")[0])) {
167
- result.skipped++;
168
- result.details.push({
169
- action: "skipped",
170
- name: file.name,
171
- type: amemType,
172
- reason: `Similar memory already exists: "${nameMatch[0].content.slice(0, 60)}..."`,
173
- });
174
- continue;
175
- }
176
- if (dryRun) {
177
- result.imported++;
178
- result.details.push({
179
- action: "imported",
180
- name: file.name,
181
- type: amemType,
182
- reason: "(dry run)",
183
- });
184
- continue;
185
- }
186
- // Generate embedding and store
187
- const embedding = await generateEmbedding(truncated);
188
- const confidence = CLAUDE_TO_CONFIDENCE[file.type] ?? 0.7;
189
- // Use global scope for user/feedback, project scope for project/reference
190
- const memScope = (file.type === "user" || file.type === "feedback") ? "global" : scope;
191
- const tags = ["claude-sync", file.type];
192
- if (file.description) {
193
- // Extract potential tags from description
194
- const words = file.description.toLowerCase().split(/[\s,\-]+/);
195
- for (const w of words) {
196
- if (w.length > 3 && w.length < 20 && !tags.includes(w)) {
197
- tags.push(w);
198
- if (tags.length >= 8)
199
- break;
200
- }
201
- }
202
- }
203
- db.insertMemory({
204
- content: truncated,
205
- type: amemType,
206
- tags,
207
- confidence,
208
- source: "claude-auto-memory",
209
- embedding,
210
- scope: memScope,
211
- });
212
- result.imported++;
213
- result.details.push({
214
- action: "imported",
215
- name: file.name,
216
- type: amemType,
217
- });
218
- }
219
- }
220
- return result;
221
- }
222
- /**
223
- * Export shareable memories as a JSON file for team sync.
224
- * Filters out private/personal memories (type=preference with non-global scope).
225
- */
226
- export async function exportForTeam(db, outputDir, options) {
227
- const { userId, includeTypes, minConfidence } = options;
228
- const allowedTypes = includeTypes ?? ["correction", "decision", "pattern", "topology", "fact"];
229
- const all = db.getAll();
230
- const filtered = all.filter((m) => {
231
- // Filter out private/personal preferences (non-global scope)
232
- if (m.type === "preference" && m.scope !== "global")
233
- return false;
234
- // Only include allowed types
235
- if (!allowedTypes.includes(m.type))
236
- return false;
237
- // Min confidence filter
238
- if (minConfidence !== undefined && m.confidence < minConfidence)
239
- return false;
240
- return true;
241
- });
242
- const memories = filtered.map((m) => ({
243
- content: m.content,
244
- type: m.type,
245
- tags: m.tags,
246
- confidence: m.confidence,
247
- source: m.source,
248
- scope: m.scope,
249
- createdAt: m.createdAt,
250
- }));
251
- const exportData = {
252
- version: 1,
253
- userId,
254
- exportedAt: Date.now(),
255
- memories,
256
- };
257
- const timestamp = Date.now();
258
- const fileName = `amem-team-${userId}-${timestamp}.json`;
259
- const filePath = path.join(outputDir, fileName);
260
- fs.mkdirSync(outputDir, { recursive: true });
261
- fs.writeFileSync(filePath, JSON.stringify(exportData, null, 2) + "\n");
262
- return { file: filePath, count: memories.length };
263
- }
264
- /**
265
- * Import a teammate's exported memory file.
266
- * Deduplicates by content hash and lowers confidence by 0.1 for second-hand memories.
267
- */
268
- export async function importFromTeam(db, filePath, options) {
269
- const dryRun = options?.dryRun ?? false;
270
- const raw = fs.readFileSync(filePath, "utf-8");
271
- const data = JSON.parse(raw);
272
- const fromUser = data.userId;
273
- let imported = 0;
274
- let skipped = 0;
275
- for (const entry of data.memories) {
276
- // Dedup: skip if content already exists
277
- const existing = db.findByContentHash(entry.content);
278
- if (existing) {
279
- skipped++;
280
- continue;
281
- }
282
- if (dryRun) {
283
- imported++;
284
- continue;
285
- }
286
- // Lower confidence by 0.1 for second-hand memories, floor at 0.1
287
- const confidence = Math.max(0.1, entry.confidence - 0.1);
288
- // Tag with team-sync and the original userId
289
- const tags = [...entry.tags, "team-sync", `from:${fromUser}`];
290
- const embedding = await generateEmbedding(entry.content);
291
- db.insertMemory({
292
- content: entry.content,
293
- type: entry.type,
294
- tags,
295
- confidence,
296
- source: `team-sync:${fromUser}`,
297
- embedding,
298
- scope: entry.scope,
299
- });
300
- imported++;
301
- }
302
- return { imported, skipped, from: fromUser };
303
- }
304
- //# sourceMappingURL=sync.js.map
package/dist/sync.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,2DAA2D;AAE3D,MAAM,mBAAmB,GAAoC;IAC3D,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF,MAAM,oBAAoB,GAA2B;IACnD,QAAQ,EAAE,GAAG,EAAK,kCAAkC;IACpD,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,GAAG;IACT,SAAS,EAAE,GAAG;CACf,CAAC;AAYF,SAAS,gBAAgB,CAAC,OAAe,EAAE,QAAgB;IACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7B,sDAAsD;IACtD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAC5C,IAAI,EAAE;YAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,2DAA2D;AAE3D;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAE9C,IAAI,CAAC;QACH,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACrD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/D,0CAA0C;gBAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAChE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,KAAK,GAAuB,EAAE,CAAC;IAErC,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,KAAK,WAAW;gBAAE,SAAS,CAAC,kBAAkB;YACtD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,SAAS;YAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAiBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAgB,EAChB,aAAsB,EACtB,MAAM,GAAG,KAAK;IAEd,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,CAAC;KACnB,CAAC;IAEF,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC/C,IAAI,aAAa,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;YAAE,SAAS;QACpE,MAAM,CAAC,eAAe,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,WAAW,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,+BAA+B,IAAI,CAAC,IAAI,EAAE;iBACnD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,6DAA6D;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBAClC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAEd,qEAAqE;YACrE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI;gBACrC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,yCAAyC;gBACpE,CAAC,CAAC,OAAO,CAAC;YAEZ,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,6CAA6C;iBACtD,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,4CAA4C;YAC5C,MAAM,SAAS,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,mCAAmC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;iBACnF,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,+BAA+B;YAC/B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;YAE1D,0EAA0E;YAC1E,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YAEvF,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,0CAA0C;gBAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACb,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;4BAAE,MAAM;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,EAAE,CAAC,YAAY,CAAC;gBACd,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI;gBACJ,UAAU;gBACV,MAAM,EAAE,oBAAoB;gBAC5B,SAAS;gBACT,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAClB,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAqCD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAgB,EAChB,SAAiB,EACjB,OAA0B;IAE1B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IACxD,MAAM,YAAY,GAAG,YAAY,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAE/F,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;IAExB,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,6DAA6D;QAC7D,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAElE,6BAA6B;QAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjD,wBAAwB;QACxB,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,GAAG,aAAa;YAAE,OAAO,KAAK,CAAC;QAE9E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,CAAC,CAAC,SAAS;KACvB,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAmB;QACjC,OAAO,EAAE,CAAC;QACV,MAAM;QACN,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,QAAQ;KACT,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,aAAa,MAAM,IAAI,SAAS,OAAO,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhD,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEvE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAgB,EAChB,QAAgB,EAChB,OAA2B;IAE3B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IAExC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7B,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,wCAAwC;QACxC,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,iEAAiE;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAEzD,6CAA6C;QAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,QAAQ,EAAE,CAAC,CAAC;QAE9D,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzD,EAAE,CAAC,YAAY,CAAC;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI;YACJ,UAAU;YACV,MAAM,EAAE,aAAa,QAAQ,EAAE;YAC/B,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;QAEH,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
@@ -1,7 +0,0 @@
1
- import { type MemoryTypeValue } from "../memory.js";
2
- export declare const MEMORY_TYPES: ("correction" | "decision" | "pattern" | "preference" | "topology" | "fact")[];
3
- export declare const CHARACTER_LIMIT = 50000;
4
- export declare const SHORT_ID_LENGTH = 8;
5
- export declare const TYPE_ORDER: MemoryTypeValue[];
6
- export declare function shortId(id: string): string;
7
- export declare function formatAge(timestamp: number): string;
@@ -1,23 +0,0 @@
1
- import { MemoryType } from "../memory.js";
2
- export const MEMORY_TYPES = Object.values(MemoryType);
3
- export const CHARACTER_LIMIT = 50_000;
4
- export const SHORT_ID_LENGTH = 8;
5
- export const TYPE_ORDER = ["correction", "decision", "pattern", "preference", "topology", "fact"];
6
- export function shortId(id) {
7
- return id.slice(0, SHORT_ID_LENGTH);
8
- }
9
- export function formatAge(timestamp) {
10
- const ms = Date.now() - timestamp;
11
- const minutes = Math.floor(ms / 60000);
12
- if (minutes < 60)
13
- return `${minutes}m ago`;
14
- const hours = Math.floor(minutes / 60);
15
- if (hours < 24)
16
- return `${hours}h ago`;
17
- const days = Math.floor(hours / 24);
18
- if (days < 30)
19
- return `${days}d ago`;
20
- const months = Math.floor(days / 30);
21
- return `${months}mo ago`;
22
- }
23
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,cAAc,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,UAAU,GAAsB,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAErH,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;IACvC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,OAAO,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACrC,OAAO,GAAG,MAAM,QAAQ,CAAC;AAC3B,CAAC"}