claude-memory-store 0.1.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 (158) hide show
  1. package/README.md +364 -0
  2. package/dist/acknowledgement.d.ts +14 -0
  3. package/dist/acknowledgement.d.ts.map +1 -0
  4. package/dist/acknowledgement.js +55 -0
  5. package/dist/acknowledgement.js.map +1 -0
  6. package/dist/atlas/client.d.ts +9 -0
  7. package/dist/atlas/client.d.ts.map +1 -0
  8. package/dist/atlas/client.js +64 -0
  9. package/dist/atlas/client.js.map +1 -0
  10. package/dist/atlas/embeddings.d.ts +18 -0
  11. package/dist/atlas/embeddings.d.ts.map +1 -0
  12. package/dist/atlas/embeddings.js +56 -0
  13. package/dist/atlas/embeddings.js.map +1 -0
  14. package/dist/atlas/indexes.d.ts +4 -0
  15. package/dist/atlas/indexes.d.ts.map +1 -0
  16. package/dist/atlas/indexes.js +78 -0
  17. package/dist/atlas/indexes.js.map +1 -0
  18. package/dist/atlas/vector.d.ts +17 -0
  19. package/dist/atlas/vector.d.ts.map +1 -0
  20. package/dist/atlas/vector.js +61 -0
  21. package/dist/atlas/vector.js.map +1 -0
  22. package/dist/bin/claude-memory.d.ts +3 -0
  23. package/dist/bin/claude-memory.d.ts.map +1 -0
  24. package/dist/bin/claude-memory.js +648 -0
  25. package/dist/bin/claude-memory.js.map +1 -0
  26. package/dist/bin/mcp-server.d.ts +3 -0
  27. package/dist/bin/mcp-server.d.ts.map +1 -0
  28. package/dist/bin/mcp-server.js +165 -0
  29. package/dist/bin/mcp-server.js.map +1 -0
  30. package/dist/cache/command-cache.d.ts +12 -0
  31. package/dist/cache/command-cache.d.ts.map +1 -0
  32. package/dist/cache/command-cache.js +63 -0
  33. package/dist/cache/command-cache.js.map +1 -0
  34. package/dist/cleanup.d.ts +8 -0
  35. package/dist/cleanup.d.ts.map +1 -0
  36. package/dist/cleanup.js +22 -0
  37. package/dist/cleanup.js.map +1 -0
  38. package/dist/config.d.ts +10 -0
  39. package/dist/config.d.ts.map +1 -0
  40. package/dist/config.js +97 -0
  41. package/dist/config.js.map +1 -0
  42. package/dist/detector.d.ts +20 -0
  43. package/dist/detector.d.ts.map +1 -0
  44. package/dist/detector.js +92 -0
  45. package/dist/detector.js.map +1 -0
  46. package/dist/editor/file-editor.d.ts +7 -0
  47. package/dist/editor/file-editor.d.ts.map +1 -0
  48. package/dist/editor/file-editor.js +73 -0
  49. package/dist/editor/file-editor.js.map +1 -0
  50. package/dist/editor/tui.d.ts +11 -0
  51. package/dist/editor/tui.d.ts.map +1 -0
  52. package/dist/editor/tui.js +75 -0
  53. package/dist/editor/tui.js.map +1 -0
  54. package/dist/hooks/post-tool-use.d.ts +11 -0
  55. package/dist/hooks/post-tool-use.d.ts.map +1 -0
  56. package/dist/hooks/post-tool-use.js +36 -0
  57. package/dist/hooks/post-tool-use.js.map +1 -0
  58. package/dist/hooks/pre-tool-use.d.ts +5 -0
  59. package/dist/hooks/pre-tool-use.d.ts.map +1 -0
  60. package/dist/hooks/pre-tool-use.js +103 -0
  61. package/dist/hooks/pre-tool-use.js.map +1 -0
  62. package/dist/hooks/startup.d.ts +25 -0
  63. package/dist/hooks/startup.d.ts.map +1 -0
  64. package/dist/hooks/startup.js +62 -0
  65. package/dist/hooks/startup.js.map +1 -0
  66. package/dist/hooks/stop.d.ts +39 -0
  67. package/dist/hooks/stop.d.ts.map +1 -0
  68. package/dist/hooks/stop.js +102 -0
  69. package/dist/hooks/stop.js.map +1 -0
  70. package/dist/index.d.ts +35 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +166 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/memory/commands.d.ts +15 -0
  75. package/dist/memory/commands.d.ts.map +1 -0
  76. package/dist/memory/commands.js +55 -0
  77. package/dist/memory/commands.js.map +1 -0
  78. package/dist/memory/developer.d.ts +17 -0
  79. package/dist/memory/developer.d.ts.map +1 -0
  80. package/dist/memory/developer.js +233 -0
  81. package/dist/memory/developer.js.map +1 -0
  82. package/dist/memory/project.d.ts +25 -0
  83. package/dist/memory/project.d.ts.map +1 -0
  84. package/dist/memory/project.js +341 -0
  85. package/dist/memory/project.js.map +1 -0
  86. package/dist/memory/threads.d.ts +10 -0
  87. package/dist/memory/threads.d.ts.map +1 -0
  88. package/dist/memory/threads.js +57 -0
  89. package/dist/memory/threads.js.map +1 -0
  90. package/dist/memory/working.d.ts +16 -0
  91. package/dist/memory/working.d.ts.map +1 -0
  92. package/dist/memory/working.js +80 -0
  93. package/dist/memory/working.js.map +1 -0
  94. package/dist/natural-language/intent.d.ts +4 -0
  95. package/dist/natural-language/intent.d.ts.map +1 -0
  96. package/dist/natural-language/intent.js +169 -0
  97. package/dist/natural-language/intent.js.map +1 -0
  98. package/dist/natural-language/parser.d.ts +5 -0
  99. package/dist/natural-language/parser.d.ts.map +1 -0
  100. package/dist/natural-language/parser.js +63 -0
  101. package/dist/natural-language/parser.js.map +1 -0
  102. package/dist/natural-language/router.d.ts +9 -0
  103. package/dist/natural-language/router.d.ts.map +1 -0
  104. package/dist/natural-language/router.js +171 -0
  105. package/dist/natural-language/router.js.map +1 -0
  106. package/dist/project-id.d.ts +5 -0
  107. package/dist/project-id.d.ts.map +1 -0
  108. package/dist/project-id.js +78 -0
  109. package/dist/project-id.js.map +1 -0
  110. package/dist/slash-commands/edit.d.ts +10 -0
  111. package/dist/slash-commands/edit.d.ts.map +1 -0
  112. package/dist/slash-commands/edit.js +312 -0
  113. package/dist/slash-commands/edit.js.map +1 -0
  114. package/dist/slash-commands/memory.d.ts +3 -0
  115. package/dist/slash-commands/memory.d.ts.map +1 -0
  116. package/dist/slash-commands/memory.js +69 -0
  117. package/dist/slash-commands/memory.js.map +1 -0
  118. package/dist/slash-commands/recall.d.ts +2 -0
  119. package/dist/slash-commands/recall.d.ts.map +1 -0
  120. package/dist/slash-commands/recall.js +81 -0
  121. package/dist/slash-commands/recall.js.map +1 -0
  122. package/dist/slash-commands/remember.d.ts +2 -0
  123. package/dist/slash-commands/remember.d.ts.map +1 -0
  124. package/dist/slash-commands/remember.js +21 -0
  125. package/dist/slash-commands/remember.js.map +1 -0
  126. package/dist/slash-commands/stats.d.ts +2 -0
  127. package/dist/slash-commands/stats.d.ts.map +1 -0
  128. package/dist/slash-commands/stats.js +55 -0
  129. package/dist/slash-commands/stats.js.map +1 -0
  130. package/dist/slash-commands/threads.d.ts +4 -0
  131. package/dist/slash-commands/threads.d.ts.map +1 -0
  132. package/dist/slash-commands/threads.js +36 -0
  133. package/dist/slash-commands/threads.js.map +1 -0
  134. package/dist/startup/conversation.d.ts +17 -0
  135. package/dist/startup/conversation.d.ts.map +1 -0
  136. package/dist/startup/conversation.js +78 -0
  137. package/dist/startup/conversation.js.map +1 -0
  138. package/dist/startup/feature-search.d.ts +9 -0
  139. package/dist/startup/feature-search.d.ts.map +1 -0
  140. package/dist/startup/feature-search.js +62 -0
  141. package/dist/startup/feature-search.js.map +1 -0
  142. package/dist/startup/injector.d.ts +4 -0
  143. package/dist/startup/injector.d.ts.map +1 -0
  144. package/dist/startup/injector.js +190 -0
  145. package/dist/startup/injector.js.map +1 -0
  146. package/dist/summarizer.d.ts +15 -0
  147. package/dist/summarizer.d.ts.map +1 -0
  148. package/dist/summarizer.js +92 -0
  149. package/dist/summarizer.js.map +1 -0
  150. package/dist/types.d.ts +151 -0
  151. package/dist/types.d.ts.map +1 -0
  152. package/dist/types.js +3 -0
  153. package/dist/types.js.map +1 -0
  154. package/dist/utils.d.ts +5 -0
  155. package/dist/utils.d.ts.map +1 -0
  156. package/dist/utils.js +16 -0
  157. package/dist/utils.js.map +1 -0
  158. package/package.json +67 -0
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.editFileMode = editFileMode;
37
+ exports.editTuiMode = editTuiMode;
38
+ const fs = __importStar(require("node:fs"));
39
+ const os = __importStar(require("node:os"));
40
+ const path = __importStar(require("node:path"));
41
+ const node_child_process_1 = require("node:child_process");
42
+ const project_js_1 = require("../memory/project.js");
43
+ const developer_js_1 = require("../memory/developer.js");
44
+ /**
45
+ * Export project memory to a temp file, open in $EDITOR, reimport on close.
46
+ */
47
+ async function editFileMode(isDeveloperMode = false) {
48
+ const editor = process.env.EDITOR || process.env.VISUAL || 'nano';
49
+ if (isDeveloperMode) {
50
+ return editDeveloperFileMode(editor);
51
+ }
52
+ const pm = await (0, project_js_1.getProjectMeta)();
53
+ if (!pm) {
54
+ return 'No project memory to edit. Build some memory first.';
55
+ }
56
+ // Query all items individually
57
+ const [architecture, patterns, avoid, openThreads, commands] = await Promise.all([
58
+ (0, project_js_1.getArchitectureDecisions)(),
59
+ (0, project_js_1.getPatterns)(),
60
+ (0, project_js_1.getAvoidRules)(),
61
+ (0, project_js_1.getOpenThreads)(),
62
+ (0, project_js_1.getAllCommands)(),
63
+ ]);
64
+ // Export to temp file
65
+ const exportData = {
66
+ project_name: pm.project_name,
67
+ architecture,
68
+ patterns,
69
+ avoid,
70
+ open_threads: openThreads.map((t) => ({
71
+ id: t.id,
72
+ description: t.description,
73
+ status: t.status,
74
+ context: t.context,
75
+ })),
76
+ commands: Object.fromEntries(Object.entries(commands).map(([trigger, cmd]) => [
77
+ trigger,
78
+ {
79
+ description: cmd.description,
80
+ steps: cmd.steps,
81
+ triggers: cmd.triggers,
82
+ notes: cmd.notes,
83
+ },
84
+ ])),
85
+ };
86
+ const tmpFile = path.join(os.tmpdir(), `claude-memory-edit-${Date.now()}.json`);
87
+ fs.writeFileSync(tmpFile, JSON.stringify(exportData, null, 2), 'utf-8');
88
+ try {
89
+ (0, node_child_process_1.execSync)(`${editor} "${tmpFile}"`, { stdio: 'inherit' });
90
+ // Reimport
91
+ const edited = JSON.parse(fs.readFileSync(tmpFile, 'utf-8'));
92
+ // Sync architecture: diff and insert/delete individual docs
93
+ const editedArch = edited.architecture || [];
94
+ for (const item of architecture) {
95
+ if (!editedArch.includes(item)) {
96
+ await (0, project_js_1.removeArchitectureDecision)(item);
97
+ }
98
+ }
99
+ for (const item of editedArch) {
100
+ if (!architecture.includes(item)) {
101
+ await (0, project_js_1.addArchitectureDecision)(item);
102
+ }
103
+ }
104
+ // Sync patterns
105
+ const editedPatterns = edited.patterns || [];
106
+ for (const item of patterns) {
107
+ if (!editedPatterns.includes(item)) {
108
+ await (0, project_js_1.removePattern)(item);
109
+ }
110
+ }
111
+ for (const item of editedPatterns) {
112
+ if (!patterns.includes(item)) {
113
+ await (0, project_js_1.addPattern)(item);
114
+ }
115
+ }
116
+ // Sync avoid rules
117
+ const editedAvoid = edited.avoid || [];
118
+ for (const item of avoid) {
119
+ if (!editedAvoid.includes(item)) {
120
+ await (0, project_js_1.removeAvoid)(item);
121
+ }
122
+ }
123
+ for (const item of editedAvoid) {
124
+ if (!avoid.includes(item)) {
125
+ await (0, project_js_1.addAvoid)(item);
126
+ }
127
+ }
128
+ // Sync open threads: remove deleted, add new
129
+ if (edited.open_threads) {
130
+ const editedIds = new Set(edited.open_threads.map((t) => t.id));
131
+ for (const existing of openThreads) {
132
+ if (!editedIds.has(existing.id)) {
133
+ await (0, project_js_1.closeOpenThread)(existing.id);
134
+ }
135
+ }
136
+ const existingIds = new Set(openThreads.map((t) => t.id));
137
+ for (const t of edited.open_threads) {
138
+ if (!existingIds.has(t.id)) {
139
+ await (0, project_js_1.addOpenThread)({
140
+ id: t.id,
141
+ description: t.description,
142
+ created: new Date(),
143
+ context: t.context || '',
144
+ status: t.status || 'unresolved',
145
+ });
146
+ }
147
+ }
148
+ }
149
+ // Sync commands: remove deleted, upsert edited
150
+ if (edited.commands) {
151
+ const editedTriggers = new Set(Object.keys(edited.commands));
152
+ const existingTriggers = new Set(Object.keys(commands));
153
+ for (const trigger of existingTriggers) {
154
+ if (!editedTriggers.has(trigger)) {
155
+ await (0, project_js_1.removeCommand)(trigger);
156
+ }
157
+ }
158
+ for (const [trigger, cmd] of Object.entries(edited.commands)) {
159
+ const c = cmd;
160
+ await (0, project_js_1.saveCommand)(trigger, {
161
+ description: c.description || '',
162
+ steps: c.steps || [],
163
+ triggers: c.triggers || [trigger],
164
+ last_verified: commands[trigger]?.last_verified || new Date(),
165
+ verified_count: commands[trigger]?.verified_count || 1,
166
+ notes: c.notes || '',
167
+ });
168
+ }
169
+ }
170
+ return '[MEMORY] Project memory updated from editor.';
171
+ }
172
+ catch (err) {
173
+ return `[MEMORY] Edit cancelled or failed: ${err instanceof Error ? err.message : String(err)}`;
174
+ }
175
+ finally {
176
+ try {
177
+ fs.unlinkSync(tmpFile);
178
+ }
179
+ catch { /* cleanup */ }
180
+ }
181
+ }
182
+ async function editDeveloperFileMode(editor) {
183
+ const [preferences, style, defaults, avoid] = await Promise.all([
184
+ (0, developer_js_1.getPreferences)(),
185
+ (0, developer_js_1.getStyles)(),
186
+ (0, developer_js_1.getDefaults)(),
187
+ (0, developer_js_1.getDevAvoidRules)(),
188
+ ]);
189
+ if (preferences.length === 0 && style.length === 0 && defaults.length === 0 && avoid.length === 0) {
190
+ return 'No developer memory to edit.';
191
+ }
192
+ const exportData = {
193
+ preferences,
194
+ style,
195
+ defaults,
196
+ avoid,
197
+ };
198
+ const tmpFile = path.join(os.tmpdir(), `claude-memory-dev-edit-${Date.now()}.json`);
199
+ fs.writeFileSync(tmpFile, JSON.stringify(exportData, null, 2), 'utf-8');
200
+ try {
201
+ (0, node_child_process_1.execSync)(`${editor} "${tmpFile}"`, { stdio: 'inherit' });
202
+ const edited = JSON.parse(fs.readFileSync(tmpFile, 'utf-8'));
203
+ // Sync preferences
204
+ const editedPrefs = edited.preferences || [];
205
+ for (const item of preferences) {
206
+ if (!editedPrefs.includes(item))
207
+ await (0, developer_js_1.removePreference)(item);
208
+ }
209
+ for (const item of editedPrefs) {
210
+ if (!preferences.includes(item))
211
+ await (0, developer_js_1.addPreference)(item);
212
+ }
213
+ // Sync style
214
+ const editedStyle = edited.style || [];
215
+ for (const item of style) {
216
+ if (!editedStyle.includes(item))
217
+ await (0, developer_js_1.removeStyle)(item);
218
+ }
219
+ for (const item of editedStyle) {
220
+ if (!style.includes(item))
221
+ await (0, developer_js_1.addStyle)(item);
222
+ }
223
+ // Sync defaults
224
+ const editedDefaults = edited.defaults || [];
225
+ for (const item of defaults) {
226
+ if (!editedDefaults.includes(item))
227
+ await (0, developer_js_1.removeDefault)(item);
228
+ }
229
+ for (const item of editedDefaults) {
230
+ if (!defaults.includes(item))
231
+ await (0, developer_js_1.addDefault)(item);
232
+ }
233
+ // Sync avoid
234
+ const editedAvoid = edited.avoid || [];
235
+ for (const item of avoid) {
236
+ if (!editedAvoid.includes(item))
237
+ await (0, developer_js_1.removeDevAvoid)(item);
238
+ }
239
+ for (const item of editedAvoid) {
240
+ if (!avoid.includes(item))
241
+ await (0, developer_js_1.addDeveloperAvoid)(item);
242
+ }
243
+ return '[MEMORY] Developer memory updated from editor.';
244
+ }
245
+ catch (err) {
246
+ return `[MEMORY] Edit cancelled or failed: ${err instanceof Error ? err.message : String(err)}`;
247
+ }
248
+ finally {
249
+ try {
250
+ fs.unlinkSync(tmpFile);
251
+ }
252
+ catch { /* cleanup */ }
253
+ }
254
+ }
255
+ /**
256
+ * Interactive TUI mode for editing memory.
257
+ * Returns formatted memory for selection-based editing.
258
+ */
259
+ async function editTuiMode() {
260
+ const pm = await (0, project_js_1.getProjectMeta)();
261
+ if (!pm) {
262
+ return 'No project memory to edit.';
263
+ }
264
+ const [architecture, patterns, avoid, openThreads, commands] = await Promise.all([
265
+ (0, project_js_1.getArchitectureDecisions)(),
266
+ (0, project_js_1.getPatterns)(),
267
+ (0, project_js_1.getAvoidRules)(),
268
+ (0, project_js_1.getOpenThreads)(),
269
+ (0, project_js_1.getAllCommands)(),
270
+ ]);
271
+ const lines = [];
272
+ lines.push('=== MEMORY EDITOR ===\n');
273
+ let idx = 1;
274
+ if (architecture.length) {
275
+ lines.push('ARCHITECTURE:');
276
+ architecture.forEach((a) => {
277
+ lines.push(` [${idx++}] ${a}`);
278
+ });
279
+ lines.push('');
280
+ }
281
+ if (patterns.length) {
282
+ lines.push('PATTERNS:');
283
+ patterns.forEach((p) => {
284
+ lines.push(` [${idx++}] ${p}`);
285
+ });
286
+ lines.push('');
287
+ }
288
+ if (avoid.length) {
289
+ lines.push('AVOID:');
290
+ avoid.forEach((a) => {
291
+ lines.push(` [${idx++}] ${a}`);
292
+ });
293
+ lines.push('');
294
+ }
295
+ if (openThreads.length) {
296
+ lines.push('OPEN THREADS:');
297
+ openThreads.forEach((t) => {
298
+ lines.push(` [${idx++}] ${t.description} (${t.status})`);
299
+ });
300
+ lines.push('');
301
+ }
302
+ if (Object.keys(commands).length) {
303
+ lines.push('COMMANDS:');
304
+ for (const [trigger, cmd] of Object.entries(commands)) {
305
+ lines.push(` [${idx++}] ${trigger}: ${cmd.description}`);
306
+ }
307
+ lines.push('');
308
+ }
309
+ lines.push('Enter number to edit | d<number> to delete | a to add | q to quit');
310
+ return lines.join('\n');
311
+ }
312
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/slash-commands/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function memoryCommand(): Promise<string>;
2
+ export declare function memoryCommandsCommand(): Promise<string>;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/slash-commands/memory.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAyCrD;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAwB7D"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.memoryCommand = memoryCommand;
4
+ exports.memoryCommandsCommand = memoryCommandsCommand;
5
+ const project_js_1 = require("../memory/project.js");
6
+ const developer_js_1 = require("../memory/developer.js");
7
+ const working_js_1 = require("../memory/working.js");
8
+ const project_id_js_1 = require("../project-id.js");
9
+ async function memoryCommand() {
10
+ const [pm, dm, lastSession, workingCount, architecture, patterns, avoid, openThreads, commands, preferences, styles] = await Promise.all([
11
+ (0, project_js_1.getProjectMeta)(),
12
+ (0, developer_js_1.getDeveloperMeta)(),
13
+ (0, working_js_1.getLastSession)(),
14
+ (0, working_js_1.getWorkingMemoryCount)(),
15
+ (0, project_js_1.getArchitectureDecisions)(),
16
+ (0, project_js_1.getPatterns)(),
17
+ (0, project_js_1.getAvoidRules)(),
18
+ (0, project_js_1.getOpenThreads)(),
19
+ (0, project_js_1.getAllCommands)(),
20
+ (0, developer_js_1.getPreferences)(),
21
+ (0, developer_js_1.getStyles)(),
22
+ ]);
23
+ const lines = [];
24
+ lines.push(`=== CLAUDE MEMORY -- ${(0, project_id_js_1.getProjectName)()} ===\n`);
25
+ if (pm) {
26
+ lines.push(`Sessions: ${pm.total_sessions} | Cost: $${pm.total_cost_usd.toFixed(2)}`);
27
+ lines.push(`Architecture: ${architecture.length} decisions`);
28
+ lines.push(`Patterns: ${patterns.length} | Avoid: ${avoid.length}`);
29
+ lines.push(`Open Threads: ${openThreads.length}`);
30
+ lines.push(`Commands: ${Object.keys(commands).length}`);
31
+ lines.push(`Working Memory: ${workingCount} sessions`);
32
+ }
33
+ else {
34
+ lines.push('No project memory stored yet.');
35
+ }
36
+ if (dm) {
37
+ lines.push(`\nDeveloper: ${dm.session_count} sessions across all projects`);
38
+ lines.push(`Preferences: ${preferences.length} | Style: ${styles.length}`);
39
+ }
40
+ if (lastSession) {
41
+ const date = new Date(lastSession.session_date).toISOString().split('T')[0];
42
+ lines.push(`\nLast session: ${date}`);
43
+ lines.push(` ${lastSession.current_state}`);
44
+ }
45
+ return lines.join('\n');
46
+ }
47
+ async function memoryCommandsCommand() {
48
+ const commands = await (0, project_js_1.getAllCommands)();
49
+ if (Object.keys(commands).length === 0) {
50
+ return 'No verified commands stored.';
51
+ }
52
+ const lines = [];
53
+ lines.push('=== VERIFIED COMMANDS ===\n');
54
+ for (const [trigger, cmd] of Object.entries(commands)) {
55
+ lines.push(`${trigger.toUpperCase()} (verified ${cmd.verified_count}x)`);
56
+ lines.push(` ${cmd.description}`);
57
+ cmd.steps.forEach((step, i) => lines.push(` ${i + 1}. ${step}`));
58
+ if (cmd.triggers.length > 1) {
59
+ lines.push(` Triggers: ${cmd.triggers.join(', ')}`);
60
+ }
61
+ if (cmd.notes) {
62
+ lines.push(` Notes: ${cmd.notes}`);
63
+ }
64
+ lines.push(` Last verified: ${new Date(cmd.last_verified).toISOString().split('T')[0]}`);
65
+ lines.push('');
66
+ }
67
+ return lines.join('\n');
68
+ }
69
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/slash-commands/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function recallCommand(topic: string): Promise<string>;
2
+ //# sourceMappingURL=recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/slash-commands/recall.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgGlE"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recallCommand = recallCommand;
4
+ const project_js_1 = require("../memory/project.js");
5
+ const vector_js_1 = require("../atlas/vector.js");
6
+ const project_id_js_1 = require("../project-id.js");
7
+ async function recallCommand(topic) {
8
+ if (!topic) {
9
+ return 'Usage: /recall <topic>\nExample: /recall deploy';
10
+ }
11
+ const projectId = (0, project_id_js_1.getProjectId)();
12
+ const [architecture, patterns, avoid, openThreads, commands] = await Promise.all([
13
+ (0, project_js_1.getArchitectureDecisions)(),
14
+ (0, project_js_1.getPatterns)(),
15
+ (0, project_js_1.getAvoidRules)(),
16
+ (0, project_js_1.getOpenThreads)(),
17
+ (0, project_js_1.getAllCommands)(),
18
+ ]);
19
+ const sections = [];
20
+ sections.push(`=== MEMORY RECALL: ${topic} ===\n`);
21
+ // Check commands first
22
+ for (const [trigger, cmd] of Object.entries(commands)) {
23
+ if (trigger.toLowerCase().includes(topic.toLowerCase()) ||
24
+ cmd.triggers.some((t) => t.toLowerCase().includes(topic.toLowerCase())) ||
25
+ cmd.description.toLowerCase().includes(topic.toLowerCase())) {
26
+ sections.push(`VERIFIED COMMAND (confirmed ${cmd.verified_count}x -- highest trust)`);
27
+ cmd.steps.forEach((step, i) => sections.push(`${i + 1}. ${step}`));
28
+ sections.push(`\nLast verified: ${new Date(cmd.last_verified).toISOString().split('T')[0]}`);
29
+ if (cmd.notes)
30
+ sections.push(`Notes: ${cmd.notes}`);
31
+ sections.push('');
32
+ }
33
+ }
34
+ // Check patterns
35
+ const relatedPatterns = patterns.filter((p) => p.toLowerCase().includes(topic.toLowerCase()));
36
+ if (relatedPatterns.length > 0) {
37
+ sections.push('RELATED PATTERNS');
38
+ relatedPatterns.forEach((p) => sections.push(`- ${p}`));
39
+ sections.push('');
40
+ }
41
+ // Check avoids
42
+ const relatedAvoids = avoid.filter((a) => a.toLowerCase().includes(topic.toLowerCase()));
43
+ if (relatedAvoids.length > 0) {
44
+ sections.push('RELATED AVOID');
45
+ relatedAvoids.forEach((a) => sections.push(`- ${a}`));
46
+ sections.push('');
47
+ }
48
+ // Check architecture
49
+ const relatedArch = architecture.filter((a) => a.toLowerCase().includes(topic.toLowerCase()));
50
+ if (relatedArch.length > 0) {
51
+ sections.push('RELATED ARCHITECTURE');
52
+ relatedArch.forEach((a) => sections.push(`- ${a}`));
53
+ sections.push('');
54
+ }
55
+ // Check open threads
56
+ const relatedThreads = openThreads.filter((t) => t.description.toLowerCase().includes(topic.toLowerCase()));
57
+ if (relatedThreads.length > 0) {
58
+ sections.push('RELATED OPEN THREADS');
59
+ relatedThreads.forEach((t) => sections.push(`! ${t.description} (${t.status})`));
60
+ sections.push('');
61
+ }
62
+ // Semantic/keyword search for related sessions
63
+ try {
64
+ const results = await (0, vector_js_1.search)(topic, projectId, 3);
65
+ const sessionResults = results.filter((r) => r.type === 'working');
66
+ if (sessionResults.length > 0) {
67
+ sections.push(`RELATED SESSIONS (${sessionResults.length})`);
68
+ for (const r of sessionResults) {
69
+ sections.push(`- ${r.content.slice(0, 150)}`);
70
+ }
71
+ }
72
+ }
73
+ catch {
74
+ // Search unavailable
75
+ }
76
+ if (sections.length <= 1) {
77
+ sections.push(`No memory found for "${topic}".`);
78
+ }
79
+ return sections.join('\n');
80
+ }
81
+ //# sourceMappingURL=recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/slash-commands/recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function rememberCommand(content: string, isDeveloperPref?: boolean): Promise<string>;
2
+ //# sourceMappingURL=remember.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember.d.ts","sourceRoot":"","sources":["../../src/slash-commands/remember.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxG"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rememberCommand = rememberCommand;
4
+ const project_js_1 = require("../memory/project.js");
5
+ const developer_js_1 = require("../memory/developer.js");
6
+ const parser_js_1 = require("../natural-language/parser.js");
7
+ async function rememberCommand(content, isDeveloperPref = false) {
8
+ if (!content) {
9
+ return 'Usage: /remember <anything>\nExample: /remember always check EU health before reporting deploy complete';
10
+ }
11
+ if ((0, parser_js_1.containsSecret)(content)) {
12
+ return '[MEMORY] WARNING: Content appears to contain a credential or token. Never store secrets in memory.';
13
+ }
14
+ if (isDeveloperPref) {
15
+ await (0, developer_js_1.addPreference)(content);
16
+ return `[MEMORY] Stored to developer memory (applies across all projects):\n"${content}"`;
17
+ }
18
+ await (0, project_js_1.addArchitectureDecision)(content);
19
+ return `[MEMORY] Stored to project memory:\n"${content}"`;
20
+ }
21
+ //# sourceMappingURL=remember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remember.js","sourceRoot":"","sources":["../../src/slash-commands/remember.ts"],"names":[],"mappings":";;AAIA,0CAgBC;AApBD,qDAA+D;AAC/D,yDAAuD;AACvD,6DAA+D;AAExD,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,kBAA2B,KAAK;IACrF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,yGAAyG,CAAC;IACnH,CAAC;IAED,IAAI,IAAA,0BAAc,EAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,oGAAoG,CAAC;IAC9G,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,IAAA,4BAAa,EAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,wEAAwE,OAAO,GAAG,CAAC;IAC5F,CAAC;IAED,MAAM,IAAA,oCAAuB,EAAC,OAAO,CAAC,CAAC;IACvC,OAAO,wCAAwC,OAAO,GAAG,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function statsCommand(): Promise<string>;
2
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/slash-commands/stats.ts"],"names":[],"mappings":"AAKA,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAwDpD"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statsCommand = statsCommand;
4
+ const project_js_1 = require("../memory/project.js");
5
+ const developer_js_1 = require("../memory/developer.js");
6
+ const working_js_1 = require("../memory/working.js");
7
+ const project_id_js_1 = require("../project-id.js");
8
+ async function statsCommand() {
9
+ const [pm, dm, workingCount, architecture, patterns, avoid, openThreads, commands, preferences] = await Promise.all([
10
+ (0, project_js_1.getProjectMeta)(),
11
+ (0, developer_js_1.getDeveloperMeta)(),
12
+ (0, working_js_1.getWorkingMemoryCount)(),
13
+ (0, project_js_1.getArchitectureDecisions)(),
14
+ (0, project_js_1.getPatterns)(),
15
+ (0, project_js_1.getAvoidRules)(),
16
+ (0, project_js_1.getOpenThreads)(),
17
+ (0, project_js_1.getAllCommands)(),
18
+ (0, developer_js_1.getPreferences)(),
19
+ ]);
20
+ const lines = [];
21
+ lines.push(`MEMORY STATS -- ${(0, project_id_js_1.getProjectName)()}\n`);
22
+ if (pm) {
23
+ const avgCost = pm.total_sessions > 0
24
+ ? (pm.total_cost_usd / pm.total_sessions).toFixed(2)
25
+ : '0.00';
26
+ lines.push(`Sessions: ${pm.total_sessions} | Total cost: $${pm.total_cost_usd.toFixed(2)} | Avg: $${avgCost}/session`);
27
+ lines.push(`Architecture decisions: ${architecture.length}`);
28
+ lines.push(`Patterns: ${patterns.length}`);
29
+ lines.push(`Avoid rules: ${avoid.length}`);
30
+ lines.push(`Open threads: ${openThreads.length}`);
31
+ const cmdNames = Object.keys(commands);
32
+ if (cmdNames.length > 0) {
33
+ const cmdList = cmdNames
34
+ .map((c) => `${c} (${commands[c].verified_count}x)`)
35
+ .join(', ');
36
+ lines.push(`Verified commands: ${cmdNames.length} (${cmdList})`);
37
+ }
38
+ else {
39
+ lines.push('Verified commands: 0');
40
+ }
41
+ }
42
+ else {
43
+ lines.push('No project memory yet.');
44
+ }
45
+ if (dm) {
46
+ lines.push(`Developer preferences stored: ${preferences.length}`);
47
+ lines.push(`Developer sessions (all projects): ${dm.session_count} | Cost: $${dm.total_cost_usd.toFixed(2)}`);
48
+ if (dm.first_seen) {
49
+ lines.push(`First session: ${new Date(dm.first_seen).toISOString().split('T')[0]}`);
50
+ }
51
+ }
52
+ lines.push(`Working memory entries: ${workingCount}`);
53
+ return lines.join('\n');
54
+ }
55
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/slash-commands/stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function threadsCommand(): Promise<string>;
2
+ export declare function addThreadCommand(description: string, context?: string): Promise<string>;
3
+ export declare function closeThreadCommand(threadId: string): Promise<string>;
4
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/slash-commands/threads.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAkBtD;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjG;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E"}