claude-memory-store 0.1.5 → 0.1.7

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.
@@ -41,7 +41,7 @@ async function search(query, projectId, limit = 5) {
41
41
  index: 'memory_semantic',
42
42
  path: 'embedding',
43
43
  queryVector: queryEmbedding,
44
- numCandidates: 20,
44
+ numCandidates: 150,
45
45
  limit,
46
46
  filter: { project_id: projectId },
47
47
  },
@@ -1 +1 @@
1
- {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/atlas/vector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/atlas/vector.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ const developer_js_1 = require("../memory/developer.js");
23
23
  const working_js_1 = require("../memory/working.js");
24
24
  const server = new mcp_js_1.McpServer({
25
25
  name: 'claude-memory',
26
- version: '0.1.5',
26
+ version: '0.1.7',
27
27
  });
28
28
  let connected = false;
29
29
  async function ensureConnected() {
@@ -117,7 +117,55 @@ async function handleAcknowledgement(choice, items, individualChoices) {
117
117
  }
118
118
  }
119
119
  // Minimum message length to store (skip "ok", "yes", greetings)
120
- const MIN_CONTENT_LENGTH = 80;
120
+ const MIN_CONTENT_LENGTH = 100;
121
+ const MAX_CONTENT_LENGTH = 2000;
122
+ // Patterns that indicate noise, not real developer knowledge
123
+ const NOISE_PATTERNS = [
124
+ /^<(command-|task-|system-|local-command)/i, // XML tags from Claude Code internals
125
+ /^<\/?(command|task|system)/i,
126
+ /<task-notification>/i,
127
+ /<task-id>/i,
128
+ /toolu_[A-Za-z0-9]/, // Tool use IDs
129
+ /^\s*\[?(Request interrupted|Tool loaded)/i, // System messages
130
+ /^\/mdd\s/i, // MDD slash commands
131
+ /^\/recall|^\/remember|^\/threads|^\/stats/i, // Memory slash commands
132
+ /^\s*```/, // Code blocks (not knowledge)
133
+ /^(yes|no|ok|sure|y|n|go|do it|looks good)\s*$/i, // Short affirmations
134
+ /<system-reminder>/i,
135
+ /hook success|hook fail/i,
136
+ /^npm\s|^git\s|^npx\s/i, // Raw commands
137
+ /^\s*\d+\)\s/, // Numbered list fragments
138
+ ];
139
+ /**
140
+ * Check if a message contains actual developer knowledge worth storing,
141
+ * not system noise, XML tags, or tool artifacts.
142
+ */
143
+ function isSubstantiveContent(content) {
144
+ if (content.length < MIN_CONTENT_LENGTH)
145
+ return false;
146
+ if (content.length > MAX_CONTENT_LENGTH)
147
+ return false;
148
+ // Check against noise patterns
149
+ for (const pattern of NOISE_PATTERNS) {
150
+ if (pattern.test(content))
151
+ return false;
152
+ }
153
+ // Require at least some regular words (not just IDs/paths/XML)
154
+ const wordCount = content.replace(/<[^>]+>/g, '').split(/\s+/).filter(w => /^[a-zA-Z]{3,}$/.test(w)).length;
155
+ if (wordCount < 5)
156
+ return false;
157
+ return true;
158
+ }
159
+ /**
160
+ * Clean content before storing — strip XML tags, control chars, collapse whitespace.
161
+ */
162
+ function cleanContent(content) {
163
+ return content
164
+ .replace(/<[^>]+>/g, ' ') // Strip XML/HTML tags
165
+ .replace(/[\x00-\x1f]/g, ' ') // Strip control chars
166
+ .replace(/\s+/g, ' ') // Collapse whitespace
167
+ .trim();
168
+ }
121
169
  /**
122
170
  * Read the transcript JSONL, extract the latest user message(s),
123
171
  * and store substantive content as context memory.
@@ -129,21 +177,18 @@ async function storeTranscriptContent(transcriptPath) {
129
177
  lines = raw.trim().split('\n').filter(Boolean);
130
178
  }
131
179
  catch {
132
- return; // File not readable — skip
180
+ return;
133
181
  }
134
- // Parse JSONL — each line is a JSON object
135
182
  const messages = [];
136
183
  for (const line of lines) {
137
184
  try {
138
185
  const entry = JSON.parse(line);
139
- // Transcript entries can have various formats
140
186
  const role = entry.role || entry.type || '';
141
187
  let content = '';
142
188
  if (typeof entry.content === 'string') {
143
189
  content = entry.content;
144
190
  }
145
191
  else if (Array.isArray(entry.content)) {
146
- // Content blocks — extract text
147
192
  content = entry.content
148
193
  .filter((b) => b.type === 'text')
149
194
  .map((b) => b.text)
@@ -162,13 +207,16 @@ async function storeTranscriptContent(transcriptPath) {
162
207
  // Skip unparseable lines
163
208
  }
164
209
  }
165
- // Find user messages with substantive content
210
+ // Filter to substantive user messages only
166
211
  const userMessages = messages
167
212
  .filter(m => m.role === 'human' || m.role === 'user')
168
- .filter(m => m.content.length >= MIN_CONTENT_LENGTH);
169
- // Store each substantive user message as context
213
+ .filter(m => isSubstantiveContent(m.content));
214
+ // Clean and store each message
170
215
  for (const msg of userMessages) {
171
- await (0, project_js_1.addContext)(msg.content);
216
+ const cleaned = cleanContent(msg.content);
217
+ if (cleaned.length >= MIN_CONTENT_LENGTH) {
218
+ await (0, project_js_1.addContext)(cleaned);
219
+ }
172
220
  }
173
221
  }
174
222
  //# sourceMappingURL=stop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/hooks/stop.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Live memory monitor using MongoDB Change Streams + event log tailing.
3
3
  * Opens a Change Stream on the claude_memory collection and watches
4
4
  * for inserts, updates, and deletes in real time.
5
+ * Renders via blessed-contrib dashboard.
5
6
  */
6
7
  declare function getEventLogPath(): string;
7
8
  export declare function startWatch(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/watch/monitor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,iBAAS,eAAe,IAAI,MAAM,CAEjC;AAiJD,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+DhD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/watch/monitor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,iBAAS,eAAe,IAAI,MAAM,CAEjC;AA2ID,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DhD;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Live memory monitor using MongoDB Change Streams + event log tailing.
4
4
  * Opens a Change Stream on the claude_memory collection and watches
5
5
  * for inserts, updates, and deletes in real time.
6
+ * Renders via blessed-contrib dashboard.
6
7
  */
7
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
9
  if (k2 === undefined) k2 = k;
@@ -78,7 +79,6 @@ async function loadInitialCounts(collection, projectId, metrics) {
78
79
  // ─── Change Stream Processing ───────────────────────────────────────────────
79
80
  /** Extract readable content from a document, preferring human-readable fields */
80
81
  function extractContent(doc) {
81
- // Prefer content > description > trigger over searchable_text (which may contain XML/noise)
82
82
  return doc?.content || doc?.description || doc?.trigger || doc?.current_state || '';
83
83
  }
84
84
  function processChangeEvent(event, metrics) {
@@ -103,7 +103,6 @@ function processChangeEvent(event, metrics) {
103
103
  // ─── Event Log Tailing ──────────────────────────────────────────────────────
104
104
  function tailEventLog(metrics) {
105
105
  const logPath = getEventLogPath();
106
- // Ensure file exists
107
106
  const dir = path.dirname(logPath);
108
107
  if (!fs.existsSync(dir))
109
108
  fs.mkdirSync(dir, { recursive: true });
@@ -118,13 +117,11 @@ function tailEventLog(metrics) {
118
117
  lastSize = stat.size;
119
118
  return;
120
119
  }
121
- // Read new content
122
120
  const fd = fs.openSync(logPath, 'r');
123
121
  const buffer = Buffer.alloc(stat.size - lastSize);
124
122
  fs.readSync(fd, buffer, 0, buffer.length, lastSize);
125
123
  fs.closeSync(fd);
126
124
  lastSize = stat.size;
127
- // Parse JSONL lines
128
125
  const lines = buffer.toString('utf-8').trim().split('\n').filter(Boolean);
129
126
  for (const line of lines) {
130
127
  try {
@@ -149,7 +146,6 @@ function tailEventLog(metrics) {
149
146
  // Skip unparseable lines
150
147
  }
151
148
  }
152
- // Rotate if too large
153
149
  if (stat.size > EVENT_LOG_MAX_SIZE) {
154
150
  rotateEventLog(logPath);
155
151
  lastSize = fs.statSync(logPath).size;
@@ -169,7 +165,6 @@ function rotateEventLog(logPath) {
169
165
  try {
170
166
  const content = fs.readFileSync(logPath, 'utf-8');
171
167
  const trimmed = content.slice(-EVENT_LOG_KEEP_SIZE);
172
- // Find first complete line
173
168
  const firstNewline = trimmed.indexOf('\n');
174
169
  const clean = firstNewline > 0 ? trimmed.slice(firstNewline + 1) : trimmed;
175
170
  fs.writeFileSync(logPath, clean, 'utf-8');
@@ -206,19 +201,18 @@ async function startWatch() {
206
201
  });
207
202
  // Start tailing event log
208
203
  const logWatcher = tailEventLog(metrics);
209
- // Clear screen once on startup, then use cursor-home for flicker-free updates
210
- process.stdout.write('\x1b[2J\x1b[H');
204
+ // Create blessed-contrib dashboard
205
+ const dashboard = (0, renderer_js_1.createDashboard)(projectName);
211
206
  // Initial render
212
- (0, renderer_js_1.renderWatchDashboard)(metrics, projectName);
213
- // Render loop — overwrites in place (no flash)
207
+ dashboard.update(metrics);
208
+ // Render loop
214
209
  const renderInterval = setInterval(() => {
215
- (0, renderer_js_1.renderWatchDashboard)(metrics, projectName);
210
+ dashboard.update(metrics);
216
211
  }, REFRESH_INTERVAL_MS);
217
212
  // Graceful shutdown
218
213
  const shutdown = async () => {
219
214
  clearInterval(renderInterval);
220
- (0, renderer_js_1.showCursor)();
221
- (0, renderer_js_1.clearScreen)();
215
+ dashboard.destroy();
222
216
  if (logWatcher)
223
217
  logWatcher.close();
224
218
  try {
@@ -226,9 +220,9 @@ async function startWatch() {
226
220
  }
227
221
  catch { /* ignore */ }
228
222
  await (0, client_js_1.disconnect)();
229
- console.log('\nMonitor stopped.\n');
230
223
  process.exit(0);
231
224
  };
225
+ dashboard.screen.key(['q', 'C-c'], shutdown);
232
226
  process.on('SIGINT', shutdown);
233
227
  process.on('SIGTERM', shutdown);
234
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/watch/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/watch/monitor.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  /**
2
- * Full-screen dashboard renderer for `claude-memory watch`.
3
- * Uses cursor-home + per-line erase for flicker-free updates.
4
- * Side-by-side panel layout to minimize vertical space.
2
+ * Watch dashboard renderer using blessed + blessed-contrib.
3
+ * Proper double-buffered TUI with real chart widgets.
5
4
  */
6
5
  import type { WatchMetrics } from './metrics.js';
7
- declare function clearScreen(): void;
8
- declare function hideCursor(): void;
9
- declare function showCursor(): void;
10
- export declare function renderWatchDashboard(metrics: WatchMetrics, projectName: string): void;
11
- export { clearScreen, showCursor, hideCursor };
6
+ export interface Dashboard {
7
+ screen: any;
8
+ update: (metrics: WatchMetrics) => void;
9
+ destroy: () => void;
10
+ }
11
+ export declare function createDashboard(projectName: string): Dashboard;
12
12
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAcnF,iBAAS,WAAW,IAAI,IAAI,CAE3B;AAED,iBAAS,UAAU,IAAI,IAAI,CAE1B;AAED,iBAAS,UAAU,IAAI,IAAI,CAE1B;AA4ED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAoHrF;AAED,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAInF,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAyDD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAmL9D"}
@@ -1,219 +1,226 @@
1
1
  "use strict";
2
2
  /**
3
- * Full-screen dashboard renderer for `claude-memory watch`.
4
- * Uses cursor-home + per-line erase for flicker-free updates.
5
- * Side-by-side panel layout to minimize vertical space.
3
+ * Watch dashboard renderer using blessed + blessed-contrib.
4
+ * Proper double-buffered TUI with real chart widgets.
6
5
  */
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.renderWatchDashboard = renderWatchDashboard;
9
- exports.clearScreen = clearScreen;
10
- exports.showCursor = showCursor;
11
- exports.hideCursor = hideCursor;
12
- const colors_js_1 = require("../editor/colors.js");
13
- const charts_js_1 = require("../editor/charts.js");
14
- // ─── Screen Control ─────────────────────────────────────────────────────────
15
- const EL = '\x1b[K'; // Erase to end of line
16
- function cursorHome() {
17
- process.stdout.write('\x1b[H');
18
- }
19
- function clearToEnd() {
20
- process.stdout.write('\x1b[J');
21
- }
22
- function clearScreen() {
23
- process.stdout.write('\x1b[2J\x1b[H');
24
- }
25
- function hideCursor() {
26
- process.stdout.write('\x1b[?25l');
27
- }
28
- function showCursor() {
29
- process.stdout.write('\x1b[?25h');
30
- }
31
- // ─── Helpers ────────────────────────────────────────────────────────────────
32
- function padRight(text, width) {
33
- const visLen = (0, colors_js_1.stripAnsi)(text).length;
34
- const pad = Math.max(0, width - visLen);
35
- return text + ' '.repeat(pad);
36
- }
37
- /** Sanitize content — strip XML tags, control chars, and truncate */
38
- function sanitize(text, maxLen = 45) {
7
+ exports.createDashboard = createDashboard;
8
+ // blessed-contrib has no @types — use require
9
+ const blessed = require('blessed');
10
+ const contrib = require('blessed-contrib');
11
+ // ─── Content Helpers ────────────────────────────────────────────────────────
12
+ function sanitize(text, maxLen = 40) {
39
13
  let clean = text
40
- .replace(/<[^>]+>/g, '') // Strip XML/HTML tags
41
- .replace(/[\x00-\x1f]/g, ' ') // Strip control chars
42
- .replace(/\s+/g, ' ') // Collapse whitespace
14
+ .replace(/<[^>]+>/g, '')
15
+ .replace(/[\x00-\x1f]/g, ' ')
16
+ .replace(/\s+/g, ' ')
43
17
  .trim();
44
18
  if (clean.length > maxLen)
45
19
  clean = clean.slice(0, maxLen - 3) + '...';
46
20
  return clean;
47
21
  }
48
- /** Merge two sets of lines side by side with a gap */
49
- function sideBySide(leftLines, rightLines, gap = 2) {
50
- // Find the visual width of the left column
51
- let leftWidth = 0;
52
- for (const line of leftLines) {
53
- const w = (0, colors_js_1.stripAnsi)(line).length;
54
- if (w > leftWidth)
55
- leftWidth = w;
22
+ function formatLatencyBox(net, emb) {
23
+ const lines = [];
24
+ lines.push('{bold}Network (Atlas):{/bold}');
25
+ if (net.count === 0) {
26
+ lines.push(' (no data)');
27
+ }
28
+ else {
29
+ lines.push(` p50: {white-fg}${net.p50}ms{/} p95: {yellow-fg}${net.p95}ms{/}`);
30
+ lines.push(` p99: {red-fg}${net.p99}ms{/} max: {red-fg}${net.max}ms{/}`);
56
31
  }
57
- const maxLen = Math.max(leftLines.length, rightLines.length);
58
- const result = [];
59
- const gapStr = ' '.repeat(gap);
60
- for (let i = 0; i < maxLen; i++) {
61
- const left = i < leftLines.length ? leftLines[i] : '';
62
- const right = i < rightLines.length ? rightLines[i] : '';
63
- result.push(padRight(left, leftWidth) + gapStr + right);
32
+ lines.push('');
33
+ lines.push('{bold}Embedding gen:{/bold}');
34
+ if (emb.count === 0) {
35
+ lines.push(' (no data)');
64
36
  }
65
- return result;
66
- }
67
- function formatLatency(stats, label) {
68
- if (stats.count === 0) {
69
- return [`${(0, colors_js_1.dim)(label + ':')}`, ` ${(0, colors_js_1.dim)('no data')}`];
37
+ else {
38
+ lines.push(` p50: {white-fg}${emb.p50}ms{/} p95: {yellow-fg}${emb.p95}ms{/}`);
39
+ lines.push(` p99: {red-fg}${emb.p99}ms{/} avg: {white-fg}${emb.avg}ms{/}`);
70
40
  }
71
- return [
72
- `${(0, colors_js_1.dim)(label + ':')}`,
73
- ` p50: ${(0, colors_js_1.boldWhite)(stats.p50 + 'ms')} p95: ${(0, colors_js_1.yellow)(stats.p95 + 'ms')}`,
74
- ` p99: ${(0, colors_js_1.red)(stats.p99 + 'ms')} max: ${(0, colors_js_1.red)(stats.max + 'ms')}`,
75
- ];
41
+ return lines.join('\n');
76
42
  }
77
- function formatFeedEvent(event) {
78
- const time = (0, colors_js_1.dim)(event.timestamp.toLocaleTimeString('en-US', { hour12: false }));
79
- let opLabel;
43
+ function feedEventToString(event) {
44
+ const time = event.timestamp.toLocaleTimeString('en-US', { hour12: false });
45
+ let opColor;
80
46
  switch (event.operation) {
81
47
  case 'insert':
82
- opLabel = (0, colors_js_1.green)('INSERT');
48
+ opColor = '{green-fg}INSERT{/}';
83
49
  break;
84
50
  case 'update':
85
- opLabel = (0, colors_js_1.yellow)('UPDATE');
51
+ opColor = '{yellow-fg}UPDATE{/}';
86
52
  break;
87
53
  case 'delete':
88
- opLabel = (0, colors_js_1.red)('DELETE');
54
+ opColor = '{red-fg}DELETE{/}';
89
55
  break;
90
56
  case 'search':
91
- opLabel = (0, colors_js_1.cyan)('SEARCH');
57
+ opColor = '{cyan-fg}SEARCH{/}';
92
58
  break;
93
59
  case 'cache_hit':
94
- opLabel = (0, colors_js_1.green)('C-HIT ');
60
+ opColor = '{green-fg}C-HIT {/}';
95
61
  break;
96
62
  case 'cache_miss':
97
- opLabel = (0, colors_js_1.red)('C-MISS');
63
+ opColor = '{red-fg}C-MISS{/}';
98
64
  break;
99
65
  default:
100
- opLabel = (0, colors_js_1.dim)(String(event.operation).padEnd(6));
66
+ opColor = String(event.operation).padEnd(6);
101
67
  break;
102
68
  }
103
- const typeStr = (0, colors_js_1.dim)(event.memoryType.padEnd(13));
104
- const content = (0, colors_js_1.white)(`"${sanitize(event.content, 35)}"`);
105
- const extra = event.extra ? (0, colors_js_1.dim)(` ${event.extra}`) : '';
106
- return `${time} ${opLabel} ${typeStr} ${content}${extra}`;
69
+ const type = event.memoryType.padEnd(13);
70
+ const content = sanitize(event.content, 30);
71
+ const extra = event.extra || '';
72
+ return `{gray-fg}${time}{/} ${opColor} {gray-fg}${type}{/} "${content}" {gray-fg}${extra}{/}`;
107
73
  }
108
- // ─── Main Render ────────────────────────────────────────────────────────────
109
- function renderWatchDashboard(metrics, projectName) {
110
- cursorHome();
111
- hideCursor();
112
- const lines = [];
113
- // Header
114
- lines.push((0, charts_js_1.coloredHeader)('CLAUDE MEMORY — LIVE MONITOR', `Watching: ${projectName} | Uptime: ${metrics.getUptime()}`));
115
- lines.push('');
116
- // ── Row 1: Activity sparklines (full width) ──
117
- const sparkData = metrics.getSparklineData();
118
- const counts = metrics.getCounts();
119
- const activityLines = [
120
- `${padRight((0, colors_js_1.green)('Inserts:'), 18)} ${(0, charts_js_1.sparkline)(sparkData.inserts)} ${(0, colors_js_1.boldWhite)(String(counts.inserts).padStart(4))} total ${(0, colors_js_1.dim)(metrics.getRate('inserts') + '/s')}`,
121
- `${padRight((0, colors_js_1.yellow)('Updates:'), 18)} ${(0, charts_js_1.sparkline)(sparkData.updates)} ${(0, colors_js_1.boldWhite)(String(counts.updates).padStart(4))} total ${(0, colors_js_1.dim)(metrics.getRate('updates') + '/s')}`,
122
- `${padRight((0, colors_js_1.red)('Deletes:'), 18)} ${(0, charts_js_1.sparkline)(sparkData.deletes)} ${(0, colors_js_1.boldWhite)(String(counts.deletes).padStart(4))} total ${(0, colors_js_1.dim)(metrics.getRate('deletes') + '/s')}`,
123
- `${padRight((0, colors_js_1.cyan)('Searches:'), 18)} ${(0, charts_js_1.sparkline)(sparkData.searches)} ${(0, colors_js_1.boldWhite)(String(counts.searches).padStart(4))} total ${(0, colors_js_1.dim)(metrics.getRate('searches') + '/s')}`,
124
- ];
125
- lines.push((0, charts_js_1.boxPanel)('Activity (last 60s)', activityLines, 72));
126
- lines.push('');
127
- // ── Row 2: Memory by Type + Top Accessed (side by side) ──
128
- const typeCounts = metrics.getTypeCounts();
129
- const maxTypeCount = Math.max(...typeCounts.values(), 1);
130
- const showTypes = ['architecture', 'pattern', 'avoid', 'context', 'thread', 'command', 'preference', 'working'];
131
- const typeLines = [];
132
- for (const type of showTypes) {
133
- const count = typeCounts.get(type) || 0;
134
- const bar = (0, charts_js_1.horizontalBar)(count, maxTypeCount, 8);
135
- typeLines.push(`${padRight((0, colors_js_1.dim)(type), 13)} ${bar} ${(0, colors_js_1.boldWhite)(String(count).padStart(3))}`);
136
- }
137
- const leftPanel = (0, charts_js_1.boxPanel)('Memory by Type', typeLines, 34).split('\n');
138
- const topItems = metrics.getTopAccessed();
139
- const topLines = [];
140
- if (topItems.length === 0) {
141
- topLines.push((0, colors_js_1.dim)('(waiting for access events)'));
142
- topLines.push('');
143
- topLines.push('');
144
- topLines.push('');
145
- topLines.push('');
146
- }
147
- else {
148
- for (let i = 0; i < 5; i++) {
149
- if (i < topItems.length) {
150
- const item = topItems[i];
151
- const content = sanitize(item.content, 25);
152
- topLines.push(`${(0, colors_js_1.dim)(`${i + 1}.`)} ${(0, colors_js_1.white)(`"${content}"`)} ${(0, colors_js_1.dim)(`(${item.accessCount}x)`)}`);
74
+ // ─── Dashboard Creation ─────────────────────────────────────────────────────
75
+ function createDashboard(projectName) {
76
+ const screen = blessed.screen({
77
+ smartCSR: true,
78
+ title: 'Claude Memory — Live Monitor',
79
+ fullUnicode: true,
80
+ });
81
+ const grid = new contrib.grid({ rows: 12, cols: 12, screen });
82
+ // ── Row 0-1: Header ──
83
+ const header = grid.set(0, 0, 1, 12, blessed.box, {
84
+ content: `{center}{bold}{cyan-fg}◆ CLAUDE MEMORY — LIVE MONITOR ◆{/}\n{gray-fg}Watching: ${projectName}{/}{/center}`,
85
+ tags: true,
86
+ style: {
87
+ border: { fg: 'cyan' },
88
+ },
89
+ });
90
+ // ── Row 1-3: Activity Sparklines ──
91
+ const activitySpark = grid.set(1, 0, 3, 8, contrib.sparkline, {
92
+ label: ' Activity (last 60s) ',
93
+ tags: true,
94
+ style: {
95
+ fg: 'cyan',
96
+ titleFg: 'white',
97
+ border: { fg: 'blue' },
98
+ },
99
+ });
100
+ // ── Row 1-3: Stats Box (right side) ──
101
+ const statsBox = grid.set(1, 8, 3, 4, blessed.box, {
102
+ label: ' Totals ',
103
+ tags: true,
104
+ style: {
105
+ border: { fg: 'blue' },
106
+ },
107
+ padding: { left: 1, top: 0 },
108
+ });
109
+ // ── Row 4-7: Memory by Type (bar chart) ──
110
+ const memoryBar = grid.set(4, 0, 4, 6, contrib.bar, {
111
+ label: ' Memory by Type ',
112
+ barWidth: 6,
113
+ barSpacing: 1,
114
+ xOffset: 0,
115
+ maxHeight: 100,
116
+ barBgColor: 'cyan',
117
+ style: {
118
+ border: { fg: 'blue' },
119
+ },
120
+ });
121
+ // ── Row 4-5: Top Accessed (table) ──
122
+ const topTable = grid.set(4, 6, 2, 6, contrib.table, {
123
+ label: ' Top Accessed ',
124
+ columnWidth: [3, 28, 6],
125
+ columnSpacing: 1,
126
+ tags: true,
127
+ style: {
128
+ border: { fg: 'blue' },
129
+ header: { fg: 'cyan', bold: true },
130
+ },
131
+ });
132
+ // ── Row 6-7: Latency Box ──
133
+ const latencyBox = grid.set(6, 6, 1, 3, blessed.box, {
134
+ label: ' Latency ',
135
+ tags: true,
136
+ style: {
137
+ border: { fg: 'blue' },
138
+ },
139
+ padding: { left: 1, top: 0 },
140
+ });
141
+ // ── Row 6-7: Cache Gauge ──
142
+ const cacheGauge = grid.set(6, 9, 1, 3, contrib.gauge, {
143
+ label: ' Cache Hit Rate ',
144
+ stroke: 'green',
145
+ fill: 'white',
146
+ style: {
147
+ border: { fg: 'blue' },
148
+ },
149
+ });
150
+ // ── Row 8-12: Live Feed ──
151
+ const liveFeed = grid.set(8, 0, 4, 12, contrib.log, {
152
+ label: ' Live Feed ',
153
+ tags: true,
154
+ bufferLength: 30,
155
+ style: {
156
+ fg: 'white',
157
+ border: { fg: 'blue' },
158
+ },
159
+ });
160
+ // ── Key Bindings ──
161
+ screen.key(['q', 'C-c'], () => {
162
+ // Will be handled by monitor.ts shutdown
163
+ });
164
+ // ── Update Function ──
165
+ function update(metrics) {
166
+ // Header with uptime
167
+ header.setContent(`{center}{bold}{cyan-fg}◆ CLAUDE MEMORY — LIVE MONITOR ◆{/}\n` +
168
+ `{gray-fg}Watching: ${projectName} | Uptime: ${metrics.getUptime()}{/}{/center}`);
169
+ // Activity sparklines
170
+ const sparkData = metrics.getSparklineData();
171
+ try {
172
+ activitySpark.setData(['Inserts', 'Updates', 'Deletes', 'Searches'], [sparkData.inserts, sparkData.updates, sparkData.deletes, sparkData.searches]);
173
+ }
174
+ catch {
175
+ // Sparkline may error on empty data
176
+ }
177
+ // Stats totals
178
+ const counts = metrics.getCounts();
179
+ statsBox.setContent(`{green-fg}Inserts:{/} {bold}${counts.inserts}{/} {gray-fg}${metrics.getRate('inserts')}/s{/}\n` +
180
+ `{yellow-fg}Updates:{/} {bold}${counts.updates}{/} {gray-fg}${metrics.getRate('updates')}/s{/}\n` +
181
+ `{red-fg}Deletes:{/} {bold}${counts.deletes}{/} {gray-fg}${metrics.getRate('deletes')}/s{/}\n` +
182
+ `{cyan-fg}Searches:{/} {bold}${counts.searches}{/} {gray-fg}${metrics.getRate('searches')}/s{/}\n` +
183
+ `\n{gray-fg}Total events:{/} {bold}${metrics.getTotalEvents()}{/}`);
184
+ // Memory by type bar chart
185
+ const typeCounts = metrics.getTypeCounts();
186
+ const barTypes = ['arch', 'pattern', 'avoid', 'context', 'thread', 'cmd', 'pref', 'work'];
187
+ const barKeys = ['architecture', 'pattern', 'avoid', 'context', 'thread', 'command', 'preference', 'working'];
188
+ const barData = barKeys.map((k) => typeCounts.get(k) || 0);
189
+ memoryBar.setData({ titles: barTypes, data: barData });
190
+ // Top accessed table
191
+ const topItems = metrics.getTopAccessed();
192
+ const topData = topItems.length > 0
193
+ ? topItems.map((item, i) => [String(i + 1), sanitize(item.content, 26), `${item.accessCount}x`])
194
+ : [['', '(waiting for events)', '']];
195
+ topTable.setData({ headers: ['#', 'Memory', 'Hits'], data: topData });
196
+ // Latency
197
+ latencyBox.setContent(formatLatencyBox(metrics.getNetworkLatency(), metrics.getEmbeddingLatency()));
198
+ // Cache gauge
199
+ const cache = metrics.getCacheStats();
200
+ try {
201
+ cacheGauge.setPercent(cache.hitRate);
202
+ }
203
+ catch {
204
+ // Gauge may error on 0
205
+ }
206
+ // Live feed — only add new events (log widget appends)
207
+ const feed = metrics.getFeed();
208
+ if (feed.length > 0) {
209
+ // Clear and re-set all feed items each tick
210
+ const feedStrings = feed.slice().reverse().map(feedEventToString);
211
+ // blessed-contrib log doesn't have a clear method, so we use setItems on the underlying list
212
+ if (liveFeed.logLines) {
213
+ liveFeed.logLines = [];
153
214
  }
154
- else {
155
- topLines.push('');
215
+ for (const line of feedStrings) {
216
+ liveFeed.log(line);
156
217
  }
157
218
  }
219
+ screen.render();
158
220
  }
159
- // Pad top lines to match left panel height
160
- while (topLines.length < typeLines.length)
161
- topLines.push('');
162
- const rightPanel = (0, charts_js_1.boxPanel)('Top Accessed', topLines, 38).split('\n');
163
- lines.push(...sideBySide(leftPanel, rightPanel));
164
- lines.push('');
165
- // ── Row 3: Latency + Cache (side by side) ──
166
- const netLatency = metrics.getNetworkLatency();
167
- const embLatency = metrics.getEmbeddingLatency();
168
- const latencyLines = [
169
- ...formatLatency(netLatency, 'Network (Atlas)'),
170
- '',
171
- ...formatLatency(embLatency, 'Embedding gen'),
172
- ];
173
- const latencyPanel = (0, charts_js_1.boxPanel)('Latency', latencyLines, 34).split('\n');
174
- const cache = metrics.getCacheStats();
175
- const cacheLines = [];
176
- if (cache.total === 0) {
177
- cacheLines.push((0, colors_js_1.dim)('(no cache lookups yet)'));
178
- cacheLines.push('');
179
- cacheLines.push('');
180
- cacheLines.push('');
181
- cacheLines.push('');
182
- cacheLines.push('');
183
- cacheLines.push('');
221
+ function destroy() {
222
+ screen.destroy();
184
223
  }
185
- else {
186
- const hitBar = (0, charts_js_1.healthGauge)(cache.hitRate, 12);
187
- const missRate = 100 - cache.hitRate;
188
- const missBar = (0, charts_js_1.healthGauge)(missRate, 12);
189
- cacheLines.push(`${(0, colors_js_1.green)('Hits:')} ${hitBar} ${(0, colors_js_1.green)(cache.hitRate + '%')}`);
190
- cacheLines.push(`${(0, colors_js_1.red)('Misses:')} ${missBar} ${(0, colors_js_1.red)(missRate + '%')}`);
191
- cacheLines.push('');
192
- cacheLines.push(`${(0, colors_js_1.dim)('Total:')} ${(0, colors_js_1.boldWhite)(String(cache.total))} lookups`);
193
- cacheLines.push(`${(0, colors_js_1.dim)('Hit rate:')} ${(0, charts_js_1.percentLabel)(cache.hitRate)} (${cache.hits}/${cache.total})`);
194
- cacheLines.push('');
195
- cacheLines.push('');
196
- }
197
- const cachePanel = (0, charts_js_1.boxPanel)('Cache', cacheLines, 34).split('\n');
198
- lines.push(...sideBySide(latencyPanel, cachePanel));
199
- lines.push('');
200
- // ── Row 4: Live Feed (full width) ──
201
- const feed = metrics.getFeed();
202
- const feedLines = [];
203
- if (feed.length === 0) {
204
- feedLines.push((0, colors_js_1.dim)(' (waiting for events...)'));
205
- }
206
- else {
207
- for (const event of feed.slice().reverse()) {
208
- feedLines.push(formatFeedEvent(event));
209
- }
210
- }
211
- lines.push((0, charts_js_1.boxPanel)('Live Feed', feedLines, 72));
212
- lines.push('');
213
- lines.push((0, colors_js_1.dim)(' Press Ctrl+C to exit'));
214
- // Append EL (erase-to-end-of-line) to every line to clear ghost text
215
- const output = lines.map((line) => line + EL).join('\n') + '\n';
216
- process.stdout.write(output);
217
- clearToEnd(); // Clear any leftover lines below the frame
224
+ return { screen, update, destroy };
218
225
  }
219
226
  //# sourceMappingURL=renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAuEH,0CAmLC;AAxPD,8CAA8C;AAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAY3C,+EAA+E;AAE/E,SAAS,QAAQ,CAAC,IAAY,EAAE,SAAiB,EAAE;IACjD,IAAI,KAAK,GAAG,IAAI;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM;QAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IACtE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAiB,EAAE,GAAiB;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,uBAAuB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAC1C,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,GAAG,0BAA0B,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,GAAG,yBAAyB,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE5E,IAAI,OAAe,CAAC;IACpB,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;QACxB,KAAK,QAAQ;YAAE,OAAO,GAAG,qBAAqB,CAAC;YAAC,MAAM;QACtD,KAAK,QAAQ;YAAE,OAAO,GAAG,sBAAsB,CAAC;YAAC,MAAM;QACvD,KAAK,QAAQ;YAAE,OAAO,GAAG,mBAAmB,CAAC;YAAC,MAAM;QACpD,KAAK,QAAQ;YAAE,OAAO,GAAG,oBAAoB,CAAC;YAAC,MAAM;QACrD,KAAK,WAAW;YAAE,OAAO,GAAG,qBAAqB,CAAC;YAAC,MAAM;QACzD,KAAK,YAAY;YAAE,OAAO,GAAG,mBAAmB,CAAC;YAAC,MAAM;QACxD;YAAS,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAC,MAAM;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAEhC,OAAO,YAAY,IAAI,QAAQ,OAAO,cAAc,IAAI,QAAQ,OAAO,cAAc,KAAK,KAAK,CAAC;AAClG,CAAC;AAED,+EAA+E;AAE/E,SAAgB,eAAe,CAAC,WAAmB;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9D,wBAAwB;IACxB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;QAChD,OAAO,EAAE,oFAAoF,WAAW,cAAc;QACtH,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE;QAC5D,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,EAAE,EAAE,MAAM;YACV,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;QACjD,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KAC7B,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;QAClD,KAAK,EAAE,kBAAkB;QACzB,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,sCAAsC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE;QACnD,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACtB,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;SACnC;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;QACnD,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KAC7B,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE;QACrD,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;QAClD,KAAK,EAAE,aAAa;QACpB,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE;YACL,EAAE,EAAE,OAAO;YACX,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;QAC5B,yCAAyC;IAC3C,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,SAAS,MAAM,CAAC,OAAqB;QACnC,qBAAqB;QACrB,MAAM,CAAC,UAAU,CACf,gEAAgE;YAChE,sBAAsB,WAAW,cAAc,OAAO,CAAC,SAAS,EAAE,cAAc,CACjF,CAAC;QAEF,sBAAsB;QACtB,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,aAAa,CAAC,OAAO,CACnB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAC7C,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAC9E,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,UAAU,CACjB,gCAAgC,MAAM,CAAC,OAAO,iBAAiB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;YAClG,iCAAiC,MAAM,CAAC,OAAO,iBAAiB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;YACnG,8BAA8B,MAAM,CAAC,OAAO,iBAAiB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS;YAChG,+BAA+B,MAAM,CAAC,QAAQ,iBAAiB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS;YACnG,qCAAqC,OAAO,CAAC,cAAc,EAAE,KAAK,CACnE,CAAC;QAEF,2BAA2B;QAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9G,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEvD,qBAAqB;QACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEtE,UAAU;QACV,UAAU,CAAC,UAAU,CAAC,gBAAgB,CACpC,OAAO,CAAC,iBAAiB,EAAE,EAC3B,OAAO,CAAC,mBAAmB,EAAE,CAC9B,CAAC,CAAC;QAEH,cAAc;QACd,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,uBAAuB;QACzB,CAAC;QAED,uDAAuD;QACvD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,4CAA4C;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAClE,6FAA6F;YAC7F,IAAK,QAAgB,CAAC,QAAQ,EAAE,CAAC;gBAC9B,QAAgB,CAAC,QAAQ,GAAG,EAAE,CAAC;YAClC,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,SAAS,OAAO;QACd,MAAM,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-memory-store",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Persistent memory for Claude Code. Powered by MongoDB Atlas.",
5
5
  "homepage": "https://claude-memory.com",
6
6
  "repository": {
@@ -44,6 +44,8 @@
44
44
  "dependencies": {
45
45
  "@huggingface/transformers": "^4.0.0",
46
46
  "@modelcontextprotocol/sdk": "^1.29.0",
47
+ "blessed": "^0.1.81",
48
+ "blessed-contrib": "^4.11.0",
47
49
  "chalk": "^5.4.1",
48
50
  "commander": "^13.1.0",
49
51
  "inquirer": "^12.3.2",
@@ -52,6 +54,7 @@
52
54
  "zod": "^4.3.6"
53
55
  },
54
56
  "devDependencies": {
57
+ "@types/blessed": "^0.1.27",
55
58
  "@types/node": "^22.13.0",
56
59
  "@types/uuid": "^10.0.0",
57
60
  "dotenv": "^17.4.0",