couchloop-eq-mcp 2.0.0 → 2.0.2

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.
@@ -1,159 +1,142 @@
1
- import * as fs from 'fs';
2
- import * as path from 'path';
3
1
  import { nanoid } from 'nanoid';
2
+ import { getSupabase } from '../../db/client.js';
4
3
  import { logger } from '../../utils/logger.js';
5
- const CONTEXT_STORE_PATH = path.join(process.cwd(), 'src', 'db', 'context-store.json');
6
- const MAX_CONTEXT_WINDOW_TOKENS = 200000; // Approximate token limit
7
- const AVG_CHARS_PER_TOKEN = 4; // Average characters per token
4
+ const TABLE = 'context_entries';
5
+ const MAX_CONTEXT_WINDOW_TOKENS = 200_000;
6
+ const AVG_CHARS_PER_TOKEN = 4;
7
+ /**
8
+ * ContextManager — Supabase-backed context storage.
9
+ *
10
+ * Replaces the previous filesystem implementation (context-store.json)
11
+ * which failed in containerised deployments (Railway) where the application
12
+ * filesystem is read-only at runtime.
13
+ *
14
+ * Uses the existing getSupabase() singleton from db/client.ts — no new
15
+ * connections, no environment branching. Works identically in local dev,
16
+ * staging, and production as long as SUPABASE_* env vars are set.
17
+ *
18
+ * Falls back gracefully (degraded mode) when Supabase is unavailable so
19
+ * the MCP server can still respond to tool/list requests.
20
+ */
8
21
  export class ContextManager {
9
- store;
10
- isInitialized = false;
11
- constructor() {
12
- this.store = {
13
- version: '1.0.0',
14
- entries: [],
15
- metadata: {
16
- created_at: new Date().toISOString(),
17
- last_updated: new Date().toISOString(),
18
- },
19
- };
20
- }
21
- /**
22
- * Initialize the context store from disk
23
- */
24
- async initialize() {
25
- try {
26
- // Create parent directory if it doesn't exist
27
- const dir = path.dirname(CONTEXT_STORE_PATH);
28
- if (!fs.existsSync(dir)) {
29
- fs.mkdirSync(dir, { recursive: true });
30
- }
31
- // Load existing store or create new one
32
- if (fs.existsSync(CONTEXT_STORE_PATH)) {
33
- const data = fs.readFileSync(CONTEXT_STORE_PATH, 'utf-8');
34
- this.store = JSON.parse(data);
35
- logger.info(`Loaded context store with ${this.store.entries.length} entries`);
36
- }
37
- else {
38
- this.createDefaultStore();
39
- this.save();
40
- logger.info('Created new context store');
41
- }
42
- this.isInitialized = true;
43
- }
44
- catch (error) {
45
- logger.error('Failed to initialize context manager:', error);
46
- throw new Error(`Context manager initialization failed: ${error}`);
47
- }
48
- }
49
22
  /**
50
- * Store a context entry
23
+ * Store a context entry.
51
24
  */
52
25
  async storeEntry(category, content) {
53
- this.ensureInitialized();
54
- try {
55
- const entry = {
56
- id: nanoid(),
57
- category,
58
- content,
59
- timestamp: new Date(),
60
- usage_count: 0,
61
- last_retrieved: null,
62
- };
63
- this.store.entries.push(entry);
64
- this.store.metadata.last_updated = new Date().toISOString();
65
- this.save();
66
- logger.info(`Stored context entry: ${entry.id} in category: ${category}`);
26
+ const supabase = getSupabase();
27
+ if (!supabase) {
28
+ return this.degraded('store', 'Supabase client unavailable — check SUPABASE_* env vars');
29
+ }
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ const { data, error } = await supabase
32
+ .from(TABLE)
33
+ .insert({ id: nanoid(), category, content, usage_count: 0, tags: [] })
34
+ .select()
35
+ .single();
36
+ if (error) {
37
+ logger.error('[ContextManager] storeEntry error:', error.message);
67
38
  return {
68
- success: true,
39
+ success: false,
69
40
  action: 'store',
70
- message: `Successfully stored context in "${category}" category`,
71
- data: [entry],
41
+ message: `Failed to store context: ${error.message}`,
72
42
  };
73
43
  }
74
- catch (error) {
75
- logger.error('Error storing context:', error);
76
- throw new Error(`Failed to store context: ${error}`);
77
- }
44
+ logger.info(`[ContextManager] Stored entry id=${data.id} category=${category}`);
45
+ return {
46
+ success: true,
47
+ action: 'store',
48
+ message: `Successfully stored context in "${category}" category`,
49
+ data: [this.toEntry(data)],
50
+ };
78
51
  }
79
52
  /**
80
- * Retrieve context entries by category or search term
53
+ * Retrieve context entries — optionally filtered by category and/or search term.
54
+ * Increments usage_count and updates last_accessed as a fire-and-forget side effect.
81
55
  */
82
56
  async retrieve(category, searchTerm) {
83
- this.ensureInitialized();
84
- try {
85
- let results = this.store.entries;
86
- // Filter by category if provided
87
- if (category) {
88
- results = results.filter((e) => e.category === category);
89
- }
90
- // Filter by search term if provided
91
- if (searchTerm) {
92
- const term = searchTerm.toLowerCase();
93
- results = results.filter((e) => e.content.toLowerCase().includes(term));
94
- }
95
- // Update usage count and last retrieved timestamp
96
- results.forEach((entry) => {
97
- entry.usage_count += 1;
98
- entry.last_retrieved = new Date();
99
- });
100
- this.store.metadata.last_updated = new Date().toISOString();
101
- this.save();
102
- if (results.length === 0) {
103
- return {
104
- success: true,
105
- action: 'retrieve',
106
- message: `No context found${category ? ` in category "${category}"` : ''}${searchTerm ? ` matching "${searchTerm}"` : ''}`,
107
- data: null,
108
- };
109
- }
110
- logger.info(`Retrieved ${results.length} context entries`);
57
+ const supabase = getSupabase();
58
+ if (!supabase) {
59
+ return this.degraded('retrieve', 'Supabase client unavailable');
60
+ }
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ let query = supabase
63
+ .from(TABLE)
64
+ .select('*')
65
+ .order('created_at', { ascending: false });
66
+ if (category) {
67
+ query = query.eq('category', category);
68
+ }
69
+ if (searchTerm) {
70
+ // Escape SQL LIKE wildcards in the search term
71
+ const escaped = searchTerm.replace(/[%_]/g, '\\$&');
72
+ query = query.ilike('content', `%${escaped}%`);
73
+ }
74
+ const { data, error } = await query;
75
+ if (error) {
76
+ logger.error('[ContextManager] retrieve error:', error.message);
111
77
  return {
112
- success: true,
78
+ success: false,
113
79
  action: 'retrieve',
114
- message: `Retrieved ${results.length} context entries`,
115
- data: results,
80
+ message: `Failed to retrieve context: ${error.message}`,
116
81
  };
117
82
  }
118
- catch (error) {
119
- logger.error('Error retrieving context:', error);
120
- throw new Error(`Failed to retrieve context: ${error}`);
83
+ if (!data || data.length === 0) {
84
+ return {
85
+ success: true,
86
+ action: 'retrieve',
87
+ message: `No context found${category ? ` in category "${category}"` : ''}${searchTerm ? ` matching "${searchTerm}"` : ''}`,
88
+ data: null,
89
+ };
121
90
  }
91
+ // Fire-and-forget: bump usage stats on retrieved rows
92
+ const ids = data.map((r) => r.id);
93
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
94
+ supabase
95
+ .rpc('increment_usage_count', { row_ids: ids })
96
+ .then(() => { }, (err) => {
97
+ // Fallback: update each row individually if RPC not available
98
+ ids.forEach((id) => {
99
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
+ supabase
101
+ .from(TABLE)
102
+ .update({ last_accessed: new Date().toISOString() })
103
+ .eq('id', id)
104
+ .then(() => { }, () => { });
105
+ });
106
+ logger.warn('[ContextManager] usage RPC failed, used fallback:', err);
107
+ });
108
+ logger.info(`[ContextManager] Retrieved ${data.length} entries`);
109
+ return {
110
+ success: true,
111
+ action: 'retrieve',
112
+ message: `Retrieved ${data.length} context entries`,
113
+ data: data.map((r) => this.toEntry(r)),
114
+ };
122
115
  }
123
116
  /**
124
- * Check context window status and provide warnings if needed
117
+ * Check context window usage and return store metadata.
125
118
  */
126
119
  async check(includeMetadata = false) {
127
- this.ensureInitialized();
128
- try {
129
- const metadata = this.getMetadata();
130
- let warning;
131
- if (metadata.context_window_usage_percent > 80) {
132
- warning = `Context window is ${metadata.context_window_usage_percent.toFixed(1)}% full. Consider archiving or cleaning up old context entries.`;
133
- }
134
- else if (metadata.context_window_usage_percent > 60) {
135
- warning = `Context window is ${metadata.context_window_usage_percent.toFixed(1)}% full. You may want to monitor usage.`;
136
- }
137
- const response = {
138
- success: true,
120
+ const supabase = getSupabase();
121
+ if (!supabase) {
122
+ return this.degraded('check', 'Supabase client unavailable');
123
+ }
124
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
+ const { data, error } = await supabase
126
+ .from(TABLE)
127
+ .select('category, content');
128
+ if (error) {
129
+ logger.error('[ContextManager] check error:', error.message);
130
+ return {
131
+ success: false,
139
132
  action: 'check',
140
- message: `Context store contains ${metadata.total_entries} entries`,
141
- warning,
133
+ message: `Failed to check context: ${error.message}`,
142
134
  };
143
- if (includeMetadata) {
144
- response.data = metadata;
145
- }
146
- return response;
147
135
  }
148
- catch (error) {
149
- logger.error('Error checking context:', error);
150
- throw new Error(`Failed to check context: ${error}`);
151
- }
152
- }
153
- /**
154
- * Get metadata about the context store
155
- */
156
- getMetadata() {
136
+ const rows = data ?? [];
137
+ const totalBytes = rows.reduce((sum, r) => sum + (r.content?.length ?? 0), 0);
138
+ const estimatedTokens = totalBytes / AVG_CHARS_PER_TOKEN;
139
+ const usagePct = Math.min((estimatedTokens / MAX_CONTEXT_WINDOW_TOKENS) * 100, 100);
157
140
  const entriesByCategory = {
158
141
  architecture: 0,
159
142
  requirements: 0,
@@ -162,140 +145,90 @@ export class ContextManager {
162
145
  'technical-patterns': 0,
163
146
  'project-metadata': 0,
164
147
  };
165
- let totalBytes = 0;
166
- this.store.entries.forEach((entry) => {
167
- entriesByCategory[entry.category]++;
168
- totalBytes += entry.content.length;
148
+ rows.forEach((r) => {
149
+ if (r.category in entriesByCategory) {
150
+ entriesByCategory[r.category]++;
151
+ }
169
152
  });
170
- const estimatedTokens = totalBytes / AVG_CHARS_PER_TOKEN;
171
- const usagePercent = (estimatedTokens / MAX_CONTEXT_WINDOW_TOKENS) * 100;
172
- return {
173
- total_entries: this.store.entries.length,
153
+ let warning;
154
+ if (usagePct > 80) {
155
+ warning = `Context store is ${usagePct.toFixed(1)}% full. Consider cleaning up old entries.`;
156
+ }
157
+ else if (usagePct > 60) {
158
+ warning = `Context store is ${usagePct.toFixed(1)}% full.`;
159
+ }
160
+ const metadata = {
161
+ total_entries: rows.length,
174
162
  entries_by_category: entriesByCategory,
175
163
  total_stored_bytes: totalBytes,
176
- last_updated: new Date(this.store.metadata.last_updated),
177
- context_window_usage_percent: Math.min(usagePercent, 100),
164
+ last_updated: new Date(),
165
+ context_window_usage_percent: usagePct,
166
+ };
167
+ return {
168
+ success: true,
169
+ action: 'check',
170
+ message: `Context store contains ${rows.length} entries`,
171
+ warning,
172
+ ...(includeMetadata ? { data: metadata } : {}),
178
173
  };
179
174
  }
180
175
  /**
181
- * Clear old or unused context entries (cleanup)
176
+ * Remove entries older than `daysOld` days.
182
177
  */
183
178
  async cleanup(daysOld = 30) {
184
- this.ensureInitialized();
185
- try {
186
- const cutoffDate = new Date();
187
- cutoffDate.setDate(cutoffDate.getDate() - daysOld);
188
- const beforeCount = this.store.entries.length;
189
- this.store.entries = this.store.entries.filter((entry) => {
190
- const entryDate = new Date(entry.timestamp);
191
- return entryDate > cutoffDate;
192
- });
193
- const removedCount = beforeCount - this.store.entries.length;
194
- this.store.metadata.last_updated = new Date().toISOString();
195
- this.save();
196
- logger.info(`Cleaned up ${removedCount} context entries older than ${daysOld} days`);
179
+ const supabase = getSupabase();
180
+ if (!supabase) {
181
+ return this.degraded('cleanup', 'Supabase client unavailable');
182
+ }
183
+ const cutoff = new Date();
184
+ cutoff.setDate(cutoff.getDate() - daysOld);
185
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
+ const { error, count } = await supabase
187
+ .from(TABLE)
188
+ .delete({ count: 'exact' })
189
+ .lt('created_at', cutoff.toISOString());
190
+ if (error) {
191
+ logger.error('[ContextManager] cleanup error:', error.message);
197
192
  return {
198
- success: true,
199
- action: 'retrieve',
200
- message: `Removed ${removedCount} entries older than ${daysOld} days`,
193
+ success: false,
194
+ action: 'cleanup',
195
+ message: `Cleanup failed: ${error.message}`,
201
196
  };
202
197
  }
203
- catch (error) {
204
- logger.error('Error cleaning context:', error);
205
- throw new Error(`Failed to cleanup context: ${error}`);
206
- }
207
- }
208
- /**
209
- * Export all context for backup
210
- */
211
- async export() {
212
- this.ensureInitialized();
213
- return JSON.parse(JSON.stringify(this.store));
214
- }
215
- /**
216
- * Import context from backup
217
- */
218
- async import(store) {
219
- try {
220
- this.store = store;
221
- this.store.metadata.last_updated = new Date().toISOString();
222
- this.save();
223
- logger.info('Imported context store');
224
- }
225
- catch (error) {
226
- logger.error('Error importing context:', error);
227
- throw new Error(`Failed to import context: ${error}`);
228
- }
229
- }
230
- /**
231
- * Create default context store
232
- */
233
- createDefaultStore() {
234
- this.store = {
235
- version: '1.0.0',
236
- entries: [
237
- {
238
- id: nanoid(),
239
- category: 'project-metadata',
240
- content: 'CouchLoop MCP Server - Model Context Protocol server for stateful conversation management',
241
- timestamp: new Date(),
242
- usage_count: 0,
243
- last_retrieved: null,
244
- },
245
- {
246
- id: nanoid(),
247
- category: 'architecture',
248
- content: 'CouchLoop uses PostgreSQL via Supabase with Drizzle ORM. MCP protocol via stdio for communication. Session/journey/checkpoint management.',
249
- timestamp: new Date(),
250
- usage_count: 0,
251
- last_retrieved: null,
252
- },
253
- {
254
- id: nanoid(),
255
- category: 'requirements',
256
- content: 'Must support multi-turn conversations, session persistence across interruptions, guided journeys, crisis detection via shrink-chat integration',
257
- timestamp: new Date(),
258
- usage_count: 0,
259
- last_retrieved: null,
260
- },
261
- ],
262
- metadata: {
263
- created_at: new Date().toISOString(),
264
- last_updated: new Date().toISOString(),
265
- },
198
+ logger.info(`[ContextManager] Cleaned up ${count ?? 0} entries older than ${daysOld} days`);
199
+ return {
200
+ success: true,
201
+ action: 'cleanup',
202
+ message: `Removed ${count ?? 0} entries older than ${daysOld} days`,
266
203
  };
267
204
  }
268
- /**
269
- * Save store to disk
270
- */
271
- save() {
272
- try {
273
- const dir = path.dirname(CONTEXT_STORE_PATH);
274
- if (!fs.existsSync(dir)) {
275
- fs.mkdirSync(dir, { recursive: true });
276
- }
277
- fs.writeFileSync(CONTEXT_STORE_PATH, JSON.stringify(this.store, null, 2), 'utf-8');
278
- }
279
- catch (error) {
280
- logger.error('Failed to save context store:', error);
281
- throw new Error(`Failed to persist context: ${error}`);
282
- }
205
+ // ── Helpers ────────────────────────────────────────────────────────────────
206
+ /** Map a raw Supabase row to the ContextEntry shape used by the rest of the codebase. */
207
+ toEntry(row) {
208
+ return {
209
+ id: row.id,
210
+ category: row.category,
211
+ content: row.content,
212
+ timestamp: new Date(row.created_at),
213
+ usage_count: row.usage_count ?? 0,
214
+ last_retrieved: row.last_accessed ? new Date(row.last_accessed) : null,
215
+ };
283
216
  }
284
- /**
285
- * Ensure manager is initialized
286
- */
287
- ensureInitialized() {
288
- if (!this.isInitialized) {
289
- throw new Error('ContextManager not initialized. Call initialize() before using other methods.');
290
- }
217
+ /** Return a consistent degraded-mode response when Supabase is unavailable. */
218
+ degraded(action, reason) {
219
+ logger.warn(`[ContextManager] Degraded mode — ${reason}`);
220
+ return {
221
+ success: false,
222
+ action,
223
+ message: `Context storage unavailable: ${reason}`,
224
+ };
291
225
  }
292
226
  }
293
- // Singleton instance
227
+ // Singleton — no initialize() needed; Supabase client handles its own lifecycle.
294
228
  let instance = null;
295
229
  export async function getContextManager() {
296
230
  if (!instance) {
297
231
  instance = new ContextManager();
298
- await instance.initialize();
299
232
  }
300
233
  return instance;
301
234
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../src/developer/managers/context-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../../src/developer/managers/context-manager.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,12 @@ export declare const couchloopV2Tool: {
22
22
  definition: {
23
23
  name: string;
24
24
  description: string;
25
+ annotations: {
26
+ readOnlyHint: boolean;
27
+ destructiveHint: boolean;
28
+ idempotentHint: boolean;
29
+ openWorldHint: boolean;
30
+ };
25
31
  inputSchema: {
26
32
  type: string;
27
33
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"couchloop-v2.d.ts","sourceRoot":"","sources":["../../src/tools/couchloop-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkDH;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqVxF;AAuDD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;CAwB3B,CAAC"}
1
+ {"version":3,"file":"couchloop-v2.d.ts","sourceRoot":"","sources":["../../src/tools/couchloop-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiDH;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAkUxF;AA6FD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC3B,CAAC"}