memobank-cli 0.2.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 (128) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/LICENSE +21 -0
  3. package/README.md +300 -0
  4. package/dist/cli.d.ts +7 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +294 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/commands/capture.d.ts +12 -0
  9. package/dist/commands/capture.d.ts.map +1 -0
  10. package/dist/commands/capture.js +191 -0
  11. package/dist/commands/capture.js.map +1 -0
  12. package/dist/commands/import.d.ts +28 -0
  13. package/dist/commands/import.d.ts.map +1 -0
  14. package/dist/commands/import.js +356 -0
  15. package/dist/commands/import.js.map +1 -0
  16. package/dist/commands/index.d.ts +12 -0
  17. package/dist/commands/index.d.ts.map +1 -0
  18. package/dist/commands/index.js +82 -0
  19. package/dist/commands/index.js.map +1 -0
  20. package/dist/commands/install.d.ts +16 -0
  21. package/dist/commands/install.d.ts.map +1 -0
  22. package/dist/commands/install.js +142 -0
  23. package/dist/commands/install.js.map +1 -0
  24. package/dist/commands/lifecycle.d.ts +21 -0
  25. package/dist/commands/lifecycle.d.ts.map +1 -0
  26. package/dist/commands/lifecycle.js +106 -0
  27. package/dist/commands/lifecycle.js.map +1 -0
  28. package/dist/commands/map.d.ts +10 -0
  29. package/dist/commands/map.d.ts.map +1 -0
  30. package/dist/commands/map.js +72 -0
  31. package/dist/commands/map.js.map +1 -0
  32. package/dist/commands/onboarding.d.ts +10 -0
  33. package/dist/commands/onboarding.d.ts.map +1 -0
  34. package/dist/commands/onboarding.js +420 -0
  35. package/dist/commands/onboarding.js.map +1 -0
  36. package/dist/commands/recall.d.ts +13 -0
  37. package/dist/commands/recall.d.ts.map +1 -0
  38. package/dist/commands/recall.js +89 -0
  39. package/dist/commands/recall.js.map +1 -0
  40. package/dist/commands/review.d.ts +11 -0
  41. package/dist/commands/review.d.ts.map +1 -0
  42. package/dist/commands/review.js +66 -0
  43. package/dist/commands/review.js.map +1 -0
  44. package/dist/commands/search.d.ts +13 -0
  45. package/dist/commands/search.d.ts.map +1 -0
  46. package/dist/commands/search.js +107 -0
  47. package/dist/commands/search.js.map +1 -0
  48. package/dist/commands/setup.d.ts +9 -0
  49. package/dist/commands/setup.d.ts.map +1 -0
  50. package/dist/commands/setup.js +354 -0
  51. package/dist/commands/setup.js.map +1 -0
  52. package/dist/commands/write.d.ts +14 -0
  53. package/dist/commands/write.d.ts.map +1 -0
  54. package/dist/commands/write.js +247 -0
  55. package/dist/commands/write.js.map +1 -0
  56. package/dist/config.d.ts +19 -0
  57. package/dist/config.d.ts.map +1 -0
  58. package/dist/config.js +147 -0
  59. package/dist/config.js.map +1 -0
  60. package/dist/core/decay-engine.d.ts +16 -0
  61. package/dist/core/decay-engine.d.ts.map +1 -0
  62. package/dist/core/decay-engine.js +91 -0
  63. package/dist/core/decay-engine.js.map +1 -0
  64. package/dist/core/embedding.d.ts +60 -0
  65. package/dist/core/embedding.d.ts.map +1 -0
  66. package/dist/core/embedding.js +169 -0
  67. package/dist/core/embedding.js.map +1 -0
  68. package/dist/core/lifecycle-manager.d.ts +105 -0
  69. package/dist/core/lifecycle-manager.d.ts.map +1 -0
  70. package/dist/core/lifecycle-manager.js +332 -0
  71. package/dist/core/lifecycle-manager.js.map +1 -0
  72. package/dist/core/memory-template.d.ts +70 -0
  73. package/dist/core/memory-template.d.ts.map +1 -0
  74. package/dist/core/memory-template.js +496 -0
  75. package/dist/core/memory-template.js.map +1 -0
  76. package/dist/core/noise-filter.d.ts +39 -0
  77. package/dist/core/noise-filter.d.ts.map +1 -0
  78. package/dist/core/noise-filter.js +168 -0
  79. package/dist/core/noise-filter.js.map +1 -0
  80. package/dist/core/retriever.d.ts +21 -0
  81. package/dist/core/retriever.d.ts.map +1 -0
  82. package/dist/core/retriever.js +77 -0
  83. package/dist/core/retriever.js.map +1 -0
  84. package/dist/core/sanitizer.d.ts +9 -0
  85. package/dist/core/sanitizer.d.ts.map +1 -0
  86. package/dist/core/sanitizer.js +57 -0
  87. package/dist/core/sanitizer.js.map +1 -0
  88. package/dist/core/smart-extractor.d.ts +12 -0
  89. package/dist/core/smart-extractor.d.ts.map +1 -0
  90. package/dist/core/smart-extractor.js +102 -0
  91. package/dist/core/smart-extractor.js.map +1 -0
  92. package/dist/core/store.d.ts +40 -0
  93. package/dist/core/store.d.ts.map +1 -0
  94. package/dist/core/store.js +233 -0
  95. package/dist/core/store.js.map +1 -0
  96. package/dist/core/tool-config.d.ts +33 -0
  97. package/dist/core/tool-config.d.ts.map +1 -0
  98. package/dist/core/tool-config.js +253 -0
  99. package/dist/core/tool-config.js.map +1 -0
  100. package/dist/engines/engine-adapter.d.ts +22 -0
  101. package/dist/engines/engine-adapter.d.ts.map +1 -0
  102. package/dist/engines/engine-adapter.js +7 -0
  103. package/dist/engines/engine-adapter.js.map +1 -0
  104. package/dist/engines/lancedb-engine.d.ts +55 -0
  105. package/dist/engines/lancedb-engine.d.ts.map +1 -0
  106. package/dist/engines/lancedb-engine.js +279 -0
  107. package/dist/engines/lancedb-engine.js.map +1 -0
  108. package/dist/engines/text-engine.d.ts +30 -0
  109. package/dist/engines/text-engine.d.ts.map +1 -0
  110. package/dist/engines/text-engine.js +100 -0
  111. package/dist/engines/text-engine.js.map +1 -0
  112. package/dist/platforms/claude-code.d.ts +13 -0
  113. package/dist/platforms/claude-code.d.ts.map +1 -0
  114. package/dist/platforms/claude-code.js +85 -0
  115. package/dist/platforms/claude-code.js.map +1 -0
  116. package/dist/platforms/codex.d.ts +9 -0
  117. package/dist/platforms/codex.d.ts.map +1 -0
  118. package/dist/platforms/codex.js +102 -0
  119. package/dist/platforms/codex.js.map +1 -0
  120. package/dist/platforms/cursor.d.ts +9 -0
  121. package/dist/platforms/cursor.d.ts.map +1 -0
  122. package/dist/platforms/cursor.js +112 -0
  123. package/dist/platforms/cursor.js.map +1 -0
  124. package/dist/types.d.ts +55 -0
  125. package/dist/types.d.ts.map +1 -0
  126. package/dist/types.js +6 -0
  127. package/dist/types.js.map +1 -0
  128. package/package.json +87 -0
@@ -0,0 +1,356 @@
1
+ "use strict";
2
+ /**
3
+ * Import Command
4
+ * Import memories from other AI tools (Claude Code, Gemini CLI, Qwen Code)
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.detectAvailableTools = detectAvailableTools;
41
+ exports.importMemories = importMemories;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const os = __importStar(require("os"));
45
+ const store_1 = require("../core/store");
46
+ const store_2 = require("../core/store");
47
+ const memory_template_1 = require("../core/memory-template");
48
+ /**
49
+ * Get Claude Code memory directory
50
+ */
51
+ function getClaudeMemoryDir() {
52
+ return path.join(os.homedir(), '.claude', 'projects');
53
+ }
54
+ /**
55
+ * Get Gemini CLI memory file
56
+ */
57
+ function getGeminiMemoryFiles() {
58
+ const home = os.homedir();
59
+ return {
60
+ global: path.join(home, '.gemini', 'GEMINI.md'),
61
+ project: path.join(process.cwd(), 'GEMINI.md'),
62
+ };
63
+ }
64
+ /**
65
+ * Get Qwen Code memory file
66
+ */
67
+ function getQwenMemoryFile() {
68
+ return path.join(os.homedir(), '.qwen', 'QWEN.md');
69
+ }
70
+ /**
71
+ * Detect available tools with memories
72
+ */
73
+ function detectAvailableTools() {
74
+ const tools = [];
75
+ // Claude Code - check projects directory
76
+ const claudeDir = getClaudeMemoryDir();
77
+ if (fs.existsSync(claudeDir)) {
78
+ const projects = fs
79
+ .readdirSync(claudeDir, { withFileTypes: true })
80
+ .filter((d) => d.isDirectory())
81
+ .map((d) => ({
82
+ name: d.name,
83
+ path: path.join(claudeDir, d.name, 'memory', 'MEMORY.md'),
84
+ }));
85
+ for (const project of projects) {
86
+ if (fs.existsSync(project.path)) {
87
+ const content = fs.readFileSync(project.path, 'utf-8');
88
+ tools.push({
89
+ name: `Claude Code: ${project.name}`,
90
+ path: project.path,
91
+ content,
92
+ exists: true,
93
+ });
94
+ }
95
+ }
96
+ }
97
+ // Gemini CLI - global memory
98
+ const geminiFiles = getGeminiMemoryFiles();
99
+ if (fs.existsSync(geminiFiles.global)) {
100
+ const content = fs.readFileSync(geminiFiles.global, 'utf-8');
101
+ tools.push({
102
+ name: 'Gemini CLI: Global',
103
+ path: geminiFiles.global,
104
+ content,
105
+ exists: true,
106
+ });
107
+ }
108
+ // Gemini CLI - project memory
109
+ if (geminiFiles.project && fs.existsSync(geminiFiles.project)) {
110
+ const content = fs.readFileSync(geminiFiles.project, 'utf-8');
111
+ tools.push({
112
+ name: 'Gemini CLI: Project',
113
+ path: geminiFiles.project,
114
+ content,
115
+ exists: true,
116
+ });
117
+ }
118
+ // Qwen Code
119
+ const qwenFile = getQwenMemoryFile();
120
+ if (fs.existsSync(qwenFile)) {
121
+ const content = fs.readFileSync(qwenFile, 'utf-8');
122
+ tools.push({
123
+ name: 'Qwen Code: Global',
124
+ path: qwenFile,
125
+ content,
126
+ exists: true,
127
+ });
128
+ }
129
+ return tools;
130
+ }
131
+ /**
132
+ * Parse Claude Code MEMORY.md content
133
+ */
134
+ function parseClaudeMemory(content, projectName) {
135
+ const memories = [];
136
+ // Split by markdown headers
137
+ const sections = content.split(/^##+\s+/m).filter((s) => s.trim());
138
+ for (const section of sections) {
139
+ const lines = section.split('\n').filter((l) => l.trim());
140
+ if (lines.length === 0)
141
+ continue;
142
+ const title = lines[0]?.trim() ?? '';
143
+ const body = lines.slice(1).join('\n').trim();
144
+ if (!title || body.length < 20)
145
+ continue; // Skip very short sections
146
+ // Infer type from section title
147
+ let type = 'lesson';
148
+ if (title.toLowerCase().includes('decision') || title.toLowerCase().includes('choice')) {
149
+ type = 'decision';
150
+ }
151
+ else if (title.toLowerCase().includes('workflow') ||
152
+ title.toLowerCase().includes('process')) {
153
+ type = 'workflow';
154
+ }
155
+ else if (title.toLowerCase().includes('architecture') ||
156
+ title.toLowerCase().includes('structure')) {
157
+ type = 'architecture';
158
+ }
159
+ // Extract tags from content
160
+ const tags = [];
161
+ const tagMatch = body.match(/tags?:\s*([^\n]+)/i);
162
+ if (tagMatch?.[1]) {
163
+ tags.push(...tagMatch[1]
164
+ .split(',')
165
+ .map((t) => t.trim())
166
+ .filter((t) => t));
167
+ }
168
+ memories.push({
169
+ type,
170
+ description: title,
171
+ content: `## ${title}\n\n${body}`,
172
+ tags: [...tags, 'claude-imported', projectName],
173
+ });
174
+ }
175
+ return memories;
176
+ }
177
+ /**
178
+ * Parse Gemini/Qwen memory content
179
+ */
180
+ function parseGenericMemory(content, source) {
181
+ const memories = [];
182
+ // Split by markdown headers
183
+ const sections = content.split(/^##+\s+/m).filter((s) => s.trim());
184
+ for (const section of sections) {
185
+ const lines = section.split('\n').filter((l) => l.trim());
186
+ if (lines.length === 0)
187
+ continue;
188
+ const title = lines[0]?.trim() ?? '';
189
+ const body = lines.slice(1).join('\n').trim();
190
+ // Skip Qwen Added Memories header
191
+ if (title.includes('Qwen Added Memories'))
192
+ continue;
193
+ if (!title || body.length < 10)
194
+ continue;
195
+ // Infer type
196
+ let type = 'lesson';
197
+ const lowerTitle = title.toLowerCase();
198
+ const lowerBody = body.toLowerCase();
199
+ if (lowerTitle.includes('decision') ||
200
+ lowerBody.includes('we decided') ||
201
+ lowerBody.includes('chose to')) {
202
+ type = 'decision';
203
+ }
204
+ else if (lowerTitle.includes('workflow') ||
205
+ lowerTitle.includes('process') ||
206
+ lowerBody.includes('steps to')) {
207
+ type = 'workflow';
208
+ }
209
+ else if (lowerTitle.includes('architecture') || lowerTitle.includes('structure')) {
210
+ type = 'architecture';
211
+ }
212
+ memories.push({
213
+ type,
214
+ description: title,
215
+ content: `## ${title}\n\n${body}`,
216
+ tags: [source.toLowerCase().replace(' ', '-'), 'imported'],
217
+ });
218
+ }
219
+ // If no sections found, treat entire content as one memory
220
+ if (memories.length === 0 && content.trim().length > 50) {
221
+ memories.push({
222
+ type: 'lesson',
223
+ description: 'Imported preferences and instructions',
224
+ content: content.trim(),
225
+ tags: [source.toLowerCase().replace(' ', '-'), 'imported'],
226
+ });
227
+ }
228
+ return memories;
229
+ }
230
+ /**
231
+ * Import memories from specified tools
232
+ */
233
+ async function importMemories(options = {}) {
234
+ const cwd = process.cwd();
235
+ const repoRoot = (0, store_1.findRepoRoot)(cwd, options.repo);
236
+ // Detect available tools
237
+ const availableTools = detectAvailableTools();
238
+ if (availableTools.length === 0) {
239
+ console.log('No existing AI tool memories found to import.');
240
+ console.log('\nSupported tools:');
241
+ console.log(' - Claude Code (~/.claude/projects/<project>/memory/)');
242
+ console.log(' - Gemini CLI (~/.gemini/GEMINI.md, ./GEMINI.md)');
243
+ console.log(' - Qwen Code (~/.qwen/QWEN.md)');
244
+ return;
245
+ }
246
+ // Determine which tools to import
247
+ let toolsToImport = availableTools;
248
+ if (options.claude) {
249
+ toolsToImport = availableTools.filter((t) => t.name.toLowerCase().includes('claude'));
250
+ }
251
+ else if (options.gemini) {
252
+ toolsToImport = availableTools.filter((t) => t.name.toLowerCase().includes('gemini'));
253
+ }
254
+ else if (options.qwen) {
255
+ toolsToImport = availableTools.filter((t) => t.name.toLowerCase().includes('qwen'));
256
+ }
257
+ if (toolsToImport.length === 0) {
258
+ console.log('No memories found for the specified tool(s).');
259
+ return;
260
+ }
261
+ console.log(`Found ${toolsToImport.length} memory source(s):\n`);
262
+ toolsToImport.forEach((t, i) => {
263
+ console.log(` ${i + 1}. ${t.name}`);
264
+ console.log(` ${t.path}`);
265
+ });
266
+ console.log();
267
+ let totalImported = 0;
268
+ for (const tool of toolsToImport) {
269
+ console.log(`\n📥 Importing from ${tool.name}...`);
270
+ // Parse memories based on source
271
+ let parsedMemories;
272
+ if (tool.name.toLowerCase().includes('claude')) {
273
+ // Extract project name from path
274
+ const projectMatch = tool.path.match(/\/projects\/([^/]+)\/memory/);
275
+ const projectName = projectMatch?.[1] ?? 'unknown';
276
+ parsedMemories = parseClaudeMemory(tool.content ?? '', projectName);
277
+ }
278
+ else {
279
+ const sourceName = tool.name.split(':')[0] ?? 'unknown';
280
+ parsedMemories = parseGenericMemory(tool.content ?? '', sourceName);
281
+ }
282
+ if (parsedMemories.length === 0) {
283
+ console.log(' No parseable memories found.');
284
+ continue;
285
+ }
286
+ console.log(` Found ${parsedMemories.length} memories to import.`);
287
+ // Write memories
288
+ for (const memory of parsedMemories) {
289
+ // Sanitize content
290
+ const { sanitized, redacted } = (0, memory_template_1.sanitizeContent)(memory.content);
291
+ if (redacted.length > 0 && !options.dryRun) {
292
+ console.log(` ⚠️ Redacting ${redacted.length} sensitive item(s) from: ${memory.description}`);
293
+ memory.content = sanitized;
294
+ }
295
+ // Validate
296
+ const validation = (0, memory_template_1.validateMemoryContent)(memory.content);
297
+ if (validation.errors.length > 0) {
298
+ if (!options.dryRun) {
299
+ console.log(` ✗ Skipping (validation failed): ${memory.description}`);
300
+ }
301
+ continue;
302
+ }
303
+ // Check abstraction level
304
+ const abstractionLevel = (0, memory_template_1.checkAbstractionLevel)(memory.content);
305
+ if (abstractionLevel === 'too-specific') {
306
+ if (!options.dryRun) {
307
+ console.log(` ✗ Skipping (too specific): ${memory.description}`);
308
+ }
309
+ continue;
310
+ }
311
+ if (options.dryRun) {
312
+ console.log(` [DRY RUN] Would create: [${memory.type}] ${memory.description}`);
313
+ continue;
314
+ }
315
+ try {
316
+ const slug = memory.description
317
+ .toLowerCase()
318
+ .replace(/[^a-z0-9]+/g, '-')
319
+ .replace(/^-+|-+$/g, '')
320
+ .slice(0, 50);
321
+ const { fileName } = (0, memory_template_1.generateMemoryFile)({
322
+ name: slug,
323
+ type: memory.type,
324
+ description: memory.description,
325
+ tags: memory.tags,
326
+ created: new Date().toISOString(),
327
+ content: memory.content,
328
+ confidence: 'medium',
329
+ });
330
+ (0, store_2.writeMemory)(repoRoot, {
331
+ type: memory.type,
332
+ name: fileName.replace('.md', '').replace(/^\d{4}-\d{2}-\d{2}-/, ''),
333
+ description: memory.description,
334
+ tags: memory.tags,
335
+ content: memory.content,
336
+ confidence: 'medium',
337
+ created: new Date().toISOString(),
338
+ });
339
+ totalImported++;
340
+ console.log(` ✓ [${memory.type}] ${memory.description} (${abstractionLevel}-level)`);
341
+ }
342
+ catch (error) {
343
+ console.log(` ✗ Failed to import: ${memory.description}`);
344
+ console.log(` Error: ${error.message}`);
345
+ }
346
+ }
347
+ }
348
+ console.log(`\n${options.dryRun ? '[DRY RUN] ' : ''}Import complete!`);
349
+ console.log(`Total memories imported: ${totalImported}`);
350
+ if (!options.dryRun) {
351
+ console.log('\nNext steps:');
352
+ console.log(' memo map # View memory statistics');
353
+ console.log(' memo recall "query" # Search imported memories');
354
+ }
355
+ }
356
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Index command
3
+ * Build or update the search index
4
+ */
5
+ export interface IndexOptions {
6
+ incremental?: boolean;
7
+ engine?: string;
8
+ force?: boolean;
9
+ repo?: string;
10
+ }
11
+ export declare function indexCommand(options?: IndexOptions): Promise<void>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC5E"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Index command
4
+ * Build or update the search index
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.indexCommand = indexCommand;
41
+ const store_1 = require("../core/store");
42
+ const config_1 = require("../config");
43
+ const embedding_1 = require("../core/embedding");
44
+ async function indexCommand(options = {}) {
45
+ const cwd = process.cwd();
46
+ const repoRoot = (0, store_1.findRepoRoot)(cwd, options.repo);
47
+ const config = (0, config_1.loadConfig)(repoRoot);
48
+ const engineName = options.engine ?? config.embedding.engine;
49
+ // Text engine: no-op (searches live files directly)
50
+ if (engineName === 'text') {
51
+ const memories = (0, store_1.loadAll)(repoRoot);
52
+ console.log(`text engine: no index needed`);
53
+ console.log(`Loaded ${memories.length} memories from disk`);
54
+ return;
55
+ }
56
+ // LanceDB engine
57
+ if (engineName === 'lancedb') {
58
+ try {
59
+ const { LanceDbEngine } = await Promise.resolve().then(() => __importStar(require('../engines/lancedb-engine')));
60
+ const embedConfig = embedding_1.EmbeddingGenerator.fromMemoConfig(config);
61
+ if (!embedConfig) {
62
+ throw new Error('OPENAI_API_KEY not set or embedding config missing');
63
+ }
64
+ const embeddingGenerator = new embedding_1.EmbeddingGenerator(embedConfig);
65
+ const engine = new LanceDbEngine(repoRoot, embeddingGenerator);
66
+ const memories = (0, store_1.loadAll)(repoRoot);
67
+ console.log(`Indexing ${memories.length} memories...`);
68
+ await engine.index(memories, options.incremental ?? false);
69
+ console.log('Index updated successfully');
70
+ }
71
+ catch (error) {
72
+ if (error.code === 'MODULE_NOT_FOUND') {
73
+ console.error('LanceDB engine requires: npm install @lancedb/lancedb @lancedb/core openai');
74
+ console.error('Or use the default text engine (no setup needed).');
75
+ }
76
+ else {
77
+ console.error(`Index error: ${error.message}`);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,oCAyCC;AArDD,yCAAsD;AACtD,sCAAuC;AAEvC,iDAAuD;AAShD,KAAK,UAAU,YAAY,CAAC,UAAwB,EAAE;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;IAE7D,oDAAoD;IACpD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,2BAA2B,GAAC,CAAC;YACpE,MAAM,WAAW,GAAG,8BAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,kBAAkB,GAAG,IAAI,8BAAkB,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAE/D,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC;YAEvD,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;YAE3D,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACjE,OAAO,CAAC,KAAK,CAAC,4EAA4E,CAAC,CAAC;gBAC5F,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,gBAAiB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Install command
3
+ * Sets up memobank directory structure and platform integrations
4
+ */
5
+ export interface InstallOptions {
6
+ repo?: string;
7
+ claudeCode?: boolean;
8
+ codex?: boolean;
9
+ cursor?: boolean;
10
+ all?: boolean;
11
+ }
12
+ /**
13
+ * Install memobank
14
+ */
15
+ export declare function installCommand(options?: InstallOptions): Promise<void>;
16
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA2CD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DhF"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * Install command
4
+ * Sets up memobank directory structure and platform integrations
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.installCommand = installCommand;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const os = __importStar(require("os"));
44
+ const child_process_1 = require("child_process");
45
+ const util_1 = require("util");
46
+ const config_1 = require("../config");
47
+ const claude_code_1 = require("../platforms/claude-code");
48
+ const codex_1 = require("../platforms/codex");
49
+ const cursor_1 = require("../platforms/cursor");
50
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
51
+ const MEMORY_TYPES = ['lesson', 'decision', 'workflow', 'architecture'];
52
+ /**
53
+ * Detect git repo name
54
+ */
55
+ async function detectGitRepoName(cwd) {
56
+ try {
57
+ const { stdout } = await execAsync('git rev-parse --show-toplevel', { cwd });
58
+ const gitRoot = stdout.trim();
59
+ return path.basename(gitRoot);
60
+ }
61
+ catch (error) {
62
+ // Not a git repo, use directory name
63
+ return path.basename(cwd);
64
+ }
65
+ }
66
+ /**
67
+ * Create directory structure
68
+ */
69
+ function createDirectoryStructure(repoRoot) {
70
+ // Create memory type directories
71
+ for (const type of MEMORY_TYPES) {
72
+ const typeDir = path.join(repoRoot, type);
73
+ if (!fs.existsSync(typeDir)) {
74
+ fs.mkdirSync(typeDir, { recursive: true });
75
+ }
76
+ }
77
+ // Create memory directory
78
+ const memoryDir = path.join(repoRoot, 'memory');
79
+ if (!fs.existsSync(memoryDir)) {
80
+ fs.mkdirSync(memoryDir, { recursive: true });
81
+ }
82
+ // Create meta directory
83
+ const metaDir = path.join(repoRoot, 'meta');
84
+ if (!fs.existsSync(metaDir)) {
85
+ fs.mkdirSync(metaDir, { recursive: true });
86
+ }
87
+ }
88
+ /**
89
+ * Install memobank
90
+ */
91
+ async function installCommand(options = {}) {
92
+ const cwd = process.cwd();
93
+ // Determine mode and repo root
94
+ let repoRoot;
95
+ let projectName;
96
+ if (options.repo) {
97
+ // Mode A: Explicit repo path
98
+ repoRoot = path.resolve(options.repo);
99
+ projectName = path.basename(repoRoot);
100
+ }
101
+ else {
102
+ // Mode B: Auto-detect or use ~/.memobank/<project>/
103
+ projectName = await detectGitRepoName(cwd);
104
+ repoRoot = path.join(os.homedir(), '.memobank', projectName);
105
+ }
106
+ console.log(`Setting up memobank at: ${repoRoot}`);
107
+ // Create directory structure
108
+ createDirectoryStructure(repoRoot);
109
+ console.log(`✓ Directory structure created`);
110
+ // Write config if missing
111
+ const configPath = path.join(repoRoot, 'meta', 'config.yaml');
112
+ if (!fs.existsSync(configPath)) {
113
+ (0, config_1.initConfig)(repoRoot, projectName);
114
+ console.log(`✓ Config initialized`);
115
+ }
116
+ else {
117
+ console.log(`⊘ Config already exists`);
118
+ }
119
+ // Platform installs
120
+ const allPlatforms = options.all ?? (!options.claudeCode && !options.codex && !options.cursor);
121
+ if (allPlatforms || options.claudeCode) {
122
+ await (0, claude_code_1.installClaudeCode)(repoRoot);
123
+ }
124
+ if (allPlatforms || options.codex) {
125
+ await (0, codex_1.installCodex)(cwd);
126
+ }
127
+ if (allPlatforms || options.cursor) {
128
+ await (0, cursor_1.installCursor)(cwd);
129
+ }
130
+ // Print success summary
131
+ console.log();
132
+ console.log(`✓ memobank ready at ${repoRoot}`);
133
+ console.log();
134
+ console.log('Next steps:');
135
+ console.log(` memo setup # Interactive configuration`);
136
+ console.log(` memo import # Import memories from other AI tools`);
137
+ console.log(` memo recall "project context" # Test recall`);
138
+ console.log(` memo write lesson # Create a memory`);
139
+ console.log(` memo map # View memory summary`);
140
+ console.log(` memo --help # See all commands`);
141
+ }
142
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}