@nihalcastelino/project-brain-mcp 1.0.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.
@@ -0,0 +1,565 @@
1
+ // SQLite storage adapter for local development (Free Tier)
2
+ // Better performance and querying than JSON files
3
+ // Works completely offline with no cloud dependencies
4
+ import Database from "better-sqlite3";
5
+ import * as path from "path";
6
+ import { homedir } from "os";
7
+ import * as fs from "fs";
8
+ const MAX_TASKS_PER_PROJECT = 100; // Free tier limit
9
+ export class SQLiteStorage {
10
+ constructor(dbPath) {
11
+ this.dbPath = dbPath || path.join(homedir(), ".project-brain", "project-brain.db");
12
+ // Ensure directory exists
13
+ const dbDir = path.dirname(this.dbPath);
14
+ if (!fs.existsSync(dbDir)) {
15
+ fs.mkdirSync(dbDir, { recursive: true });
16
+ }
17
+ this.db = new Database(this.dbPath);
18
+ // Enable foreign keys (required for SQLite)
19
+ this.db.pragma("foreign_keys = ON");
20
+ this.initializeSchema();
21
+ }
22
+ initializeSchema() {
23
+ // Projects table
24
+ this.db.exec(`
25
+ CREATE TABLE IF NOT EXISTS projects (
26
+ id TEXT PRIMARY KEY,
27
+ name TEXT NOT NULL,
28
+ description TEXT,
29
+ created_at TEXT NOT NULL,
30
+ updated_at TEXT NOT NULL
31
+ )
32
+ `);
33
+ // Tasks table
34
+ this.db.exec(`
35
+ CREATE TABLE IF NOT EXISTS tasks (
36
+ id TEXT PRIMARY KEY,
37
+ project_id TEXT NOT NULL,
38
+ title TEXT NOT NULL,
39
+ description TEXT,
40
+ type TEXT DEFAULT 'feature',
41
+ status TEXT DEFAULT 'todo',
42
+ priority TEXT DEFAULT 'medium',
43
+ due_date TEXT,
44
+ assignee TEXT,
45
+ notes TEXT,
46
+ created_at TEXT NOT NULL,
47
+ updated_at TEXT NOT NULL,
48
+ FOREIGN KEY (project_id) REFERENCES projects(id)
49
+ )
50
+ `);
51
+ // Conversations table
52
+ this.db.exec(`
53
+ CREATE TABLE IF NOT EXISTS conversations (
54
+ id TEXT PRIMARY KEY,
55
+ project_id TEXT NOT NULL,
56
+ task_id TEXT,
57
+ agent_id TEXT,
58
+ title TEXT,
59
+ created_at TEXT NOT NULL,
60
+ updated_at TEXT NOT NULL,
61
+ FOREIGN KEY (project_id) REFERENCES projects(id)
62
+ )
63
+ `);
64
+ // Messages table
65
+ this.db.exec(`
66
+ CREATE TABLE IF NOT EXISTS messages (
67
+ id TEXT PRIMARY KEY,
68
+ conversation_id TEXT NOT NULL,
69
+ role TEXT NOT NULL,
70
+ content TEXT NOT NULL,
71
+ metadata TEXT,
72
+ created_at TEXT NOT NULL,
73
+ FOREIGN KEY (conversation_id) REFERENCES conversations(id)
74
+ )
75
+ `);
76
+ // Decisions table
77
+ this.db.exec(`
78
+ CREATE TABLE IF NOT EXISTS decisions (
79
+ id TEXT PRIMARY KEY,
80
+ project_id TEXT NOT NULL,
81
+ task_id TEXT,
82
+ conversation_id TEXT,
83
+ question TEXT NOT NULL,
84
+ options TEXT,
85
+ status TEXT DEFAULT 'open',
86
+ selected_option TEXT,
87
+ selected_text TEXT,
88
+ responder TEXT,
89
+ rationale TEXT,
90
+ created_at TEXT NOT NULL,
91
+ answered_at TEXT,
92
+ updated_at TEXT NOT NULL,
93
+ FOREIGN KEY (project_id) REFERENCES projects(id)
94
+ )
95
+ `);
96
+ // Create indexes for better performance
97
+ this.db.exec(`
98
+ CREATE INDEX IF NOT EXISTS idx_tasks_project ON tasks(project_id);
99
+ CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
100
+ CREATE INDEX IF NOT EXISTS idx_tasks_assignee ON tasks(assignee);
101
+ CREATE INDEX IF NOT EXISTS idx_conversations_project ON conversations(project_id);
102
+ CREATE INDEX IF NOT EXISTS idx_conversations_task ON conversations(task_id);
103
+ CREATE INDEX IF NOT EXISTS idx_messages_conversation ON messages(conversation_id);
104
+ CREATE INDEX IF NOT EXISTS idx_decisions_project ON decisions(project_id);
105
+ CREATE INDEX IF NOT EXISTS idx_decisions_task ON decisions(task_id);
106
+ CREATE INDEX IF NOT EXISTS idx_decisions_status ON decisions(status);
107
+ `);
108
+ }
109
+ generateId() {
110
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
111
+ }
112
+ now() {
113
+ return new Date().toISOString();
114
+ }
115
+ // Projects
116
+ async createProject(data) {
117
+ const id = this.generateId();
118
+ const now = this.now();
119
+ this.db
120
+ .prepare("INSERT INTO projects (id, name, description, created_at, updated_at) VALUES (?, ?, ?, ?, ?)")
121
+ .run(id, data.name, data.description || null, now, now);
122
+ return this.getProject(id);
123
+ }
124
+ async getProject(projectId) {
125
+ const row = this.db.prepare("SELECT * FROM projects WHERE id = ?").get(projectId);
126
+ return row || null;
127
+ }
128
+ async listProjects() {
129
+ return this.db.prepare("SELECT * FROM projects ORDER BY created_at DESC").all();
130
+ }
131
+ async updateProject(projectId, data) {
132
+ const updates = [];
133
+ const params = [];
134
+ if (data.name !== undefined) {
135
+ updates.push('name = ?');
136
+ params.push(data.name);
137
+ }
138
+ if (data.description !== undefined) {
139
+ updates.push('description = ?');
140
+ params.push(data.description);
141
+ }
142
+ if (updates.length === 0) {
143
+ return this.getProject(projectId);
144
+ }
145
+ updates.push('updated_at = ?');
146
+ params.push(this.now());
147
+ params.push(projectId);
148
+ const sql = `UPDATE projects SET ${updates.join(', ')} WHERE id = ?`;
149
+ this.db.prepare(sql).run(...params);
150
+ return this.getProject(projectId);
151
+ }
152
+ async deleteProject(projectId) {
153
+ // Delete in correct order to respect foreign keys
154
+ this.db.prepare('DELETE FROM messages WHERE conversation_id IN (SELECT id FROM conversations WHERE project_id = ?)').run(projectId);
155
+ this.db.prepare('DELETE FROM conversations WHERE project_id = ?').run(projectId);
156
+ this.db.prepare('DELETE FROM decisions WHERE project_id = ?').run(projectId);
157
+ this.db.prepare('DELETE FROM tasks WHERE project_id = ?').run(projectId);
158
+ this.db.prepare('DELETE FROM projects WHERE id = ?').run(projectId);
159
+ }
160
+ // Tasks
161
+ async createTask(data) {
162
+ // FREE TIER LIMIT: Check task count for this project
163
+ const count = this.db
164
+ .prepare("SELECT COUNT(*) as count FROM tasks WHERE project_id = ?")
165
+ .get(data.projectId);
166
+ if (count.count >= MAX_TASKS_PER_PROJECT) {
167
+ throw new Error(`FREE TIER LIMIT: Maximum ${MAX_TASKS_PER_PROJECT} tasks per project reached.\n\n` +
168
+ `🚀 Upgrade to Team Edition for unlimited tasks:\n` +
169
+ ` ✨ Unlimited tasks and projects\n` +
170
+ ` ✨ Multi-agent collaboration\n` +
171
+ ` ✨ AI code review\n` +
172
+ ` ✨ Real-time dashboard\n\n` +
173
+ ` Try free for 14 days → https://project-brain.io/upgrade`);
174
+ }
175
+ // Verify project exists
176
+ const project = this.db.prepare("SELECT id FROM projects WHERE id = ?").get(data.projectId);
177
+ if (!project) {
178
+ throw new Error(`Project ${data.projectId} not found. Create project first.`);
179
+ }
180
+ const id = this.generateId();
181
+ const now = this.now();
182
+ this.db
183
+ .prepare("INSERT INTO tasks (id, project_id, title, description, type, status, priority, due_date, assignee, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")
184
+ .run(id, data.projectId, data.title, data.description || null, data.type || "feature", data.status || "todo", data.priority || "medium", data.due_date || null, data.assignee || null, now, now);
185
+ return this.getTask(id);
186
+ }
187
+ async getTask(taskId) {
188
+ const row = this.db.prepare("SELECT * FROM tasks WHERE id = ?").get(taskId);
189
+ return row || null;
190
+ }
191
+ async updateTaskStatus(taskId, status, notes, priority, due_date) {
192
+ const now = this.now();
193
+ let query = "UPDATE tasks SET status = ?, notes = ?, updated_at = ?";
194
+ const params = [status, notes || null, now];
195
+ if (priority !== undefined) {
196
+ query += ", priority = ?";
197
+ params.push(priority);
198
+ }
199
+ if (due_date !== undefined) {
200
+ query += ", due_date = ?";
201
+ params.push(due_date);
202
+ }
203
+ query += " WHERE id = ?";
204
+ params.push(taskId);
205
+ this.db.prepare(query).run(...params);
206
+ return this.getTask(taskId);
207
+ }
208
+ async updateTask(taskId, data) {
209
+ const updates = [];
210
+ const params = [];
211
+ if (data.title !== undefined) {
212
+ updates.push('title = ?');
213
+ params.push(data.title);
214
+ }
215
+ if (data.description !== undefined) {
216
+ updates.push('description = ?');
217
+ params.push(data.description);
218
+ }
219
+ if (data.type !== undefined) {
220
+ updates.push('type = ?');
221
+ params.push(data.type);
222
+ }
223
+ if (data.status !== undefined) {
224
+ updates.push('status = ?');
225
+ params.push(data.status);
226
+ }
227
+ if (data.assignee !== undefined) {
228
+ updates.push('assignee = ?');
229
+ params.push(data.assignee);
230
+ }
231
+ if (data.priority !== undefined) {
232
+ updates.push('priority = ?');
233
+ params.push(data.priority);
234
+ }
235
+ if (data.due_date !== undefined) {
236
+ updates.push('due_date = ?');
237
+ params.push(data.due_date);
238
+ }
239
+ if (updates.length === 0) {
240
+ return this.getTask(taskId);
241
+ }
242
+ updates.push('updated_at = ?');
243
+ params.push(this.now());
244
+ params.push(taskId);
245
+ const sql = `UPDATE tasks SET ${updates.join(', ')} WHERE id = ?`;
246
+ this.db.prepare(sql).run(...params);
247
+ return this.getTask(taskId);
248
+ }
249
+ async deleteTask(taskId) {
250
+ // Delete in correct order to respect foreign keys
251
+ this.db.prepare('DELETE FROM decisions WHERE task_id = ?').run(taskId);
252
+ this.db.prepare('DELETE FROM messages WHERE conversation_id IN (SELECT id FROM conversations WHERE task_id = ?)').run(taskId);
253
+ this.db.prepare('DELETE FROM conversations WHERE task_id = ?').run(taskId);
254
+ this.db.prepare('DELETE FROM tasks WHERE id = ?').run(taskId);
255
+ }
256
+ async getNextTask(projectId, assignee) {
257
+ let query = "SELECT * FROM tasks WHERE project_id = ? AND status != 'done'";
258
+ const params = [projectId];
259
+ if (assignee) {
260
+ query += " AND (assignee = ? OR assignee IS NULL)";
261
+ params.push(assignee);
262
+ }
263
+ query += " ORDER BY created_at ASC LIMIT 1";
264
+ const row = this.db.prepare(query).get(...params);
265
+ return row || null;
266
+ }
267
+ async listTasks(projectId, filters) {
268
+ let query = "SELECT * FROM tasks WHERE project_id = ?";
269
+ const params = [projectId];
270
+ if (filters?.status) {
271
+ query += " AND status = ?";
272
+ params.push(filters.status);
273
+ }
274
+ if (filters?.assignee) {
275
+ query += " AND assignee = ?";
276
+ params.push(filters.assignee);
277
+ }
278
+ if (filters?.priority) {
279
+ query += " AND priority = ?";
280
+ params.push(filters.priority);
281
+ }
282
+ if (filters?.due_date_before) {
283
+ query += " AND due_date <= ?";
284
+ params.push(filters.due_date_before);
285
+ }
286
+ query += " ORDER BY created_at DESC";
287
+ return this.db.prepare(query).all(...params);
288
+ }
289
+ // Conversations
290
+ async createConversation(data) {
291
+ // Verify project exists
292
+ const project = this.db.prepare("SELECT id FROM projects WHERE id = ?").get(data.projectId);
293
+ if (!project) {
294
+ throw new Error(`Project ${data.projectId} not found. Create project first.`);
295
+ }
296
+ // Verify task exists if provided
297
+ if (data.taskId) {
298
+ const task = this.db.prepare("SELECT id FROM tasks WHERE id = ?").get(data.taskId);
299
+ if (!task) {
300
+ throw new Error(`Task ${data.taskId} not found. Create task first.`);
301
+ }
302
+ }
303
+ const id = this.generateId();
304
+ const now = this.now();
305
+ this.db
306
+ .prepare("INSERT INTO conversations (id, project_id, task_id, agent_id, title, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?)")
307
+ .run(id, data.projectId, data.taskId || null, data.agentId || null, data.title || "Untitled Conversation", now, now);
308
+ return this.getConversation(id);
309
+ }
310
+ async getConversation(conversationId) {
311
+ const row = this.db.prepare("SELECT * FROM conversations WHERE id = ?").get(conversationId);
312
+ return row || null;
313
+ }
314
+ async addMessage(conversationId, data) {
315
+ const id = this.generateId();
316
+ const now = this.now();
317
+ const metadataJson = data.metadata ? JSON.stringify(data.metadata) : null;
318
+ this.db
319
+ .prepare("INSERT INTO messages (id, conversation_id, role, content, metadata, created_at) VALUES (?, ?, ?, ?, ?, ?)")
320
+ .run(id, conversationId, data.role, data.content, metadataJson, now);
321
+ // Update conversation updated_at
322
+ this.db.prepare("UPDATE conversations SET updated_at = ? WHERE id = ?").run(now, conversationId);
323
+ return { id, conversationId, ...data, createdAt: now };
324
+ }
325
+ async getMessages(conversationId, limit) {
326
+ let query = "SELECT * FROM messages WHERE conversation_id = ? ORDER BY created_at ASC";
327
+ const params = [conversationId];
328
+ if (limit) {
329
+ query += " LIMIT ?";
330
+ params.push(limit);
331
+ }
332
+ const rows = this.db.prepare(query).all(...params);
333
+ return rows.map(row => ({
334
+ ...row,
335
+ metadata: row.metadata ? JSON.parse(row.metadata) : null,
336
+ }));
337
+ }
338
+ async listConversations(projectId, taskId) {
339
+ let query = "SELECT * FROM conversations WHERE project_id = ?";
340
+ const params = [projectId];
341
+ if (taskId) {
342
+ query += " AND task_id = ?";
343
+ params.push(taskId);
344
+ }
345
+ query += " ORDER BY updated_at DESC";
346
+ return this.db.prepare(query).all(...params);
347
+ }
348
+ async deleteConversation(conversationId) {
349
+ // Delete in correct order to respect foreign keys
350
+ this.db.prepare('DELETE FROM messages WHERE conversation_id = ?').run(conversationId);
351
+ this.db.prepare('DELETE FROM decisions WHERE conversation_id = ?').run(conversationId);
352
+ this.db.prepare('DELETE FROM conversations WHERE id = ?').run(conversationId);
353
+ }
354
+ // Decisions
355
+ async createDecision(data) {
356
+ // Verify project exists
357
+ const project = this.db.prepare("SELECT id FROM projects WHERE id = ?").get(data.projectId);
358
+ if (!project) {
359
+ throw new Error(`Project ${data.projectId} not found. Create project first.`);
360
+ }
361
+ const id = this.generateId();
362
+ const now = this.now();
363
+ const optionsJson = data.options ? JSON.stringify(data.options) : null;
364
+ this.db
365
+ .prepare("INSERT INTO decisions (id, project_id, task_id, conversation_id, question, options, status, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, 'open', ?, ?)")
366
+ .run(id, data.projectId, data.taskId || null, data.conversationId || null, data.question, optionsJson, now, now);
367
+ return this.getDecision(id);
368
+ }
369
+ async getDecision(decisionId) {
370
+ const row = this.db.prepare("SELECT * FROM decisions WHERE id = ?").get(decisionId);
371
+ if (!row)
372
+ return null;
373
+ return {
374
+ ...row,
375
+ options: row.options ? JSON.parse(row.options) : null,
376
+ };
377
+ }
378
+ async answerDecision(decisionId, data) {
379
+ const now = this.now();
380
+ this.db
381
+ .prepare("UPDATE decisions SET status = 'answered', selected_option = ?, selected_text = ?, responder = ?, rationale = ?, answered_at = ?, updated_at = ? WHERE id = ?")
382
+ .run(data.selectedOption || null, data.selectedText || null, data.responder || "human", data.rationale || null, now, now, decisionId);
383
+ return this.getDecision(decisionId);
384
+ }
385
+ async listDecisions(projectId, taskId, status) {
386
+ let query = "SELECT * FROM decisions WHERE project_id = ?";
387
+ const params = [projectId];
388
+ if (taskId) {
389
+ query += " AND task_id = ?";
390
+ params.push(taskId);
391
+ }
392
+ if (status) {
393
+ query += " AND status = ?";
394
+ params.push(status);
395
+ }
396
+ query += " ORDER BY created_at DESC";
397
+ const rows = this.db.prepare(query).all(...params);
398
+ return rows.map(row => ({
399
+ ...row,
400
+ options: row.options ? JSON.parse(row.options) : null,
401
+ }));
402
+ }
403
+ // Search methods (Free Tier - basic text search using LIKE)
404
+ async searchTasks(query, projectId) {
405
+ const searchPattern = `%${query}%`;
406
+ let sql = `
407
+ SELECT * FROM tasks
408
+ WHERE (title LIKE ? OR description LIKE ? OR notes LIKE ?)
409
+ `;
410
+ const params = [searchPattern, searchPattern, searchPattern];
411
+ if (projectId) {
412
+ sql += " AND project_id = ?";
413
+ params.push(projectId);
414
+ }
415
+ sql += " ORDER BY updated_at DESC LIMIT 50";
416
+ return this.db.prepare(sql).all(...params);
417
+ }
418
+ async searchConversations(query, projectId) {
419
+ const searchPattern = `%${query}%`;
420
+ // Search in conversation titles and message content
421
+ let sql = `
422
+ SELECT DISTINCT c.*
423
+ FROM conversations c
424
+ LEFT JOIN messages m ON m.conversation_id = c.id
425
+ WHERE (c.title LIKE ? OR m.content LIKE ?)
426
+ `;
427
+ const params = [searchPattern, searchPattern];
428
+ if (projectId) {
429
+ sql += " AND c.project_id = ?";
430
+ params.push(projectId);
431
+ }
432
+ sql += " ORDER BY c.updated_at DESC LIMIT 50";
433
+ return this.db.prepare(sql).all(...params);
434
+ }
435
+ async searchDecisions(query, projectId) {
436
+ const searchPattern = `%${query}%`;
437
+ let sql = `
438
+ SELECT * FROM decisions
439
+ WHERE (question LIKE ? OR selected_text LIKE ? OR rationale LIKE ?)
440
+ `;
441
+ const params = [searchPattern, searchPattern, searchPattern];
442
+ if (projectId) {
443
+ sql += " AND project_id = ?";
444
+ params.push(projectId);
445
+ }
446
+ sql += " ORDER BY created_at DESC LIMIT 50";
447
+ const rows = this.db.prepare(sql).all(...params);
448
+ return rows.map(row => ({
449
+ ...row,
450
+ options: row.options ? JSON.parse(row.options) : null,
451
+ }));
452
+ }
453
+ // Import/Export (Free Tier - complete project backup)
454
+ async exportProject(projectId) {
455
+ const project = await this.getProject(projectId);
456
+ if (!project) {
457
+ throw new Error(`Project ${projectId} not found`);
458
+ }
459
+ // Get all related data
460
+ const tasks = await this.listTasks(projectId);
461
+ const conversations = await this.listConversations(projectId);
462
+ const decisions = await this.listDecisions(projectId);
463
+ // Get all messages for all conversations
464
+ const messagesMap = {};
465
+ for (const conv of conversations) {
466
+ messagesMap[conv.id] = await this.getMessages(conv.id);
467
+ }
468
+ return {
469
+ version: "1.0",
470
+ exportedAt: this.now(),
471
+ project,
472
+ tasks,
473
+ conversations,
474
+ messages: messagesMap,
475
+ decisions,
476
+ };
477
+ }
478
+ async importProject(data) {
479
+ // Validate import data
480
+ if (!data.project || !data.version) {
481
+ throw new Error("Invalid import data: missing project or version");
482
+ }
483
+ // Create project with a new ID to avoid conflicts
484
+ const oldProjectId = data.project.id;
485
+ const newProject = await this.createProject({
486
+ name: `${data.project.name} (Imported)`,
487
+ description: data.project.description,
488
+ });
489
+ const newProjectId = newProject.id;
490
+ // Map old IDs to new IDs
491
+ const taskIdMap = new Map();
492
+ const conversationIdMap = new Map();
493
+ // Import tasks
494
+ for (const task of data.tasks || []) {
495
+ try {
496
+ const newTask = await this.createTask({
497
+ projectId: newProjectId,
498
+ title: task.title,
499
+ description: task.description,
500
+ type: task.type,
501
+ status: task.status,
502
+ priority: task.priority,
503
+ due_date: task.due_date,
504
+ assignee: task.assignee,
505
+ });
506
+ taskIdMap.set(task.id, newTask.id);
507
+ }
508
+ catch (error) {
509
+ // Skip if we hit the 100 task limit
510
+ if (error.message.includes("FREE TIER LIMIT")) {
511
+ break;
512
+ }
513
+ throw error;
514
+ }
515
+ }
516
+ // Import conversations
517
+ for (const conv of data.conversations || []) {
518
+ const newConv = await this.createConversation({
519
+ projectId: newProjectId,
520
+ taskId: conv.task_id ? taskIdMap.get(conv.task_id) : undefined,
521
+ agentId: conv.agent_id,
522
+ title: conv.title,
523
+ });
524
+ conversationIdMap.set(conv.id, newConv.id);
525
+ // Import messages for this conversation
526
+ const messages = data.messages?.[conv.id] || [];
527
+ for (const msg of messages) {
528
+ await this.addMessage(newConv.id, {
529
+ role: msg.role,
530
+ content: msg.content,
531
+ metadata: msg.metadata,
532
+ });
533
+ }
534
+ }
535
+ // Import decisions
536
+ for (const decision of data.decisions || []) {
537
+ const newDecision = await this.createDecision({
538
+ projectId: newProjectId,
539
+ taskId: decision.task_id ? taskIdMap.get(decision.task_id) : undefined,
540
+ conversationId: decision.conversation_id ? conversationIdMap.get(decision.conversation_id) : undefined,
541
+ question: decision.question,
542
+ options: decision.options ? JSON.parse(decision.options) : undefined,
543
+ });
544
+ // If decision was already answered, answer it
545
+ if (decision.status === "answered") {
546
+ await this.answerDecision(newDecision.id, {
547
+ selectedOption: decision.selected_option,
548
+ selectedText: decision.selected_text,
549
+ responder: decision.responder,
550
+ rationale: decision.rationale,
551
+ });
552
+ }
553
+ }
554
+ return {
555
+ success: true,
556
+ projectId: newProjectId,
557
+ imported: {
558
+ tasks: taskIdMap.size,
559
+ conversations: conversationIdMap.size,
560
+ decisions: data.decisions?.length || 0,
561
+ },
562
+ };
563
+ }
564
+ }
565
+ //# sourceMappingURL=sqlite-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-local.js","sourceRoot":"","sources":["../../src/storage/sqlite-local.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
2
+ export declare const tools: Tool[];
3
+ export declare function handleToolCall(params: any, storage: any): Promise<any>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAI1D,eAAO,MAAM,KAAK,EAAE,IAAI,EAuOvB,CAAC;AA4BF,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CA+P5E"}