claude-conversation-memory-mcp 1.4.0 → 1.5.1
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.
- package/README.md +230 -31
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +12 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/parsers/CodexConversationParser.d.ts +51 -0
- package/dist/parsers/CodexConversationParser.d.ts.map +1 -0
- package/dist/parsers/CodexConversationParser.js +279 -0
- package/dist/parsers/CodexConversationParser.js.map +1 -0
- package/dist/parsers/ConversationParser.d.ts +1 -0
- package/dist/parsers/ConversationParser.d.ts.map +1 -1
- package/dist/parsers/ConversationParser.js.map +1 -1
- package/dist/storage/ConversationStorage.d.ts.map +1 -1
- package/dist/storage/ConversationStorage.js +3 -3
- package/dist/storage/ConversationStorage.js.map +1 -1
- package/dist/storage/GlobalIndex.d.ts +125 -0
- package/dist/storage/GlobalIndex.d.ts.map +1 -0
- package/dist/storage/GlobalIndex.js +243 -0
- package/dist/storage/GlobalIndex.js.map +1 -0
- package/dist/storage/SQLiteManager.d.ts +4 -0
- package/dist/storage/SQLiteManager.d.ts.map +1 -1
- package/dist/storage/SQLiteManager.js +36 -2
- package/dist/storage/SQLiteManager.js.map +1 -1
- package/dist/storage/schema.sql +26 -0
- package/dist/tools/ToolDefinitions.d.ts +218 -0
- package/dist/tools/ToolDefinitions.d.ts.map +1 -1
- package/dist/tools/ToolDefinitions.js +223 -6
- package/dist/tools/ToolDefinitions.js.map +1 -1
- package/dist/tools/ToolHandlers.d.ts +52 -0
- package/dist/tools/ToolHandlers.d.ts.map +1 -1
- package/dist/tools/ToolHandlers.js +668 -68
- package/dist/tools/ToolHandlers.js.map +1 -1
- package/dist/types/ToolTypes.d.ts +124 -0
- package/dist/types/ToolTypes.d.ts.map +1 -1
- package/package.json +2 -1
- package/scripts/changelog-check.sh +62 -0
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global Index for Cross-Project Search
|
|
3
|
+
*
|
|
4
|
+
* This module manages a lightweight global registry of all indexed projects
|
|
5
|
+
* (both Claude Code and Codex). It maintains a central database that tracks:
|
|
6
|
+
* - Which projects have been indexed
|
|
7
|
+
* - Where their databases are located
|
|
8
|
+
* - When they were last indexed
|
|
9
|
+
* - Basic statistics about each project
|
|
10
|
+
*
|
|
11
|
+
* The global index enables:
|
|
12
|
+
* - Discovery of all indexed projects
|
|
13
|
+
* - Cross-project search routing
|
|
14
|
+
* - Batch indexing operations
|
|
15
|
+
* - Global statistics
|
|
16
|
+
*
|
|
17
|
+
* Architecture:
|
|
18
|
+
* - Each project keeps its own database (per-project isolation)
|
|
19
|
+
* - The global index is a registry that links to project databases
|
|
20
|
+
* - Cross-project searches query multiple databases and merge results
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const globalIndex = new GlobalIndex();
|
|
25
|
+
* await globalIndex.registerProject({
|
|
26
|
+
* project_path: '/Users/user/project',
|
|
27
|
+
* source_type: 'claude-code',
|
|
28
|
+
* db_path: '/Users/user/.claude/projects/-project/.db',
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const projects = await globalIndex.getAllProjects();
|
|
32
|
+
* console.log(`Tracking ${projects.length} projects`);
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
import Database from "better-sqlite3";
|
|
36
|
+
import { existsSync, mkdirSync } from "fs";
|
|
37
|
+
import { join } from "path";
|
|
38
|
+
import { homedir } from "os";
|
|
39
|
+
import { nanoid } from "nanoid";
|
|
40
|
+
/**
|
|
41
|
+
* Global Index Manager
|
|
42
|
+
*
|
|
43
|
+
* Maintains a central registry of all indexed projects in a global database.
|
|
44
|
+
*/
|
|
45
|
+
export class GlobalIndex {
|
|
46
|
+
db;
|
|
47
|
+
globalDbPath;
|
|
48
|
+
constructor(customPath) {
|
|
49
|
+
// Use custom path or default to ~/.claude/.claude-global-index.db
|
|
50
|
+
if (customPath) {
|
|
51
|
+
this.globalDbPath = customPath;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const claudeHome = join(homedir(), ".claude");
|
|
55
|
+
if (!existsSync(claudeHome)) {
|
|
56
|
+
mkdirSync(claudeHome, { recursive: true });
|
|
57
|
+
}
|
|
58
|
+
this.globalDbPath = join(claudeHome, ".claude-global-index.db");
|
|
59
|
+
}
|
|
60
|
+
// Open/create database
|
|
61
|
+
this.db = new Database(this.globalDbPath);
|
|
62
|
+
// Initialize schema
|
|
63
|
+
this.initializeSchema();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Initialize the global index database schema.
|
|
67
|
+
*/
|
|
68
|
+
initializeSchema() {
|
|
69
|
+
this.db.exec(`
|
|
70
|
+
CREATE TABLE IF NOT EXISTS project_metadata (
|
|
71
|
+
id TEXT PRIMARY KEY,
|
|
72
|
+
project_path TEXT NOT NULL UNIQUE,
|
|
73
|
+
source_type TEXT NOT NULL,
|
|
74
|
+
db_path TEXT NOT NULL,
|
|
75
|
+
last_indexed INTEGER NOT NULL,
|
|
76
|
+
message_count INTEGER DEFAULT 0,
|
|
77
|
+
conversation_count INTEGER DEFAULT 0,
|
|
78
|
+
decision_count INTEGER DEFAULT 0,
|
|
79
|
+
mistake_count INTEGER DEFAULT 0,
|
|
80
|
+
metadata TEXT,
|
|
81
|
+
created_at INTEGER NOT NULL,
|
|
82
|
+
updated_at INTEGER NOT NULL
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_proj_source ON project_metadata(source_type);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS idx_proj_last_indexed ON project_metadata(last_indexed);
|
|
87
|
+
CREATE INDEX IF NOT EXISTS idx_proj_path ON project_metadata(project_path);
|
|
88
|
+
`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Register or update a project in the global index.
|
|
92
|
+
*
|
|
93
|
+
* @param options - Project registration options
|
|
94
|
+
* @returns The registered/updated project metadata
|
|
95
|
+
*/
|
|
96
|
+
registerProject(options) {
|
|
97
|
+
const now = Date.now();
|
|
98
|
+
// Check if project already exists
|
|
99
|
+
const existing = this.db
|
|
100
|
+
.prepare("SELECT * FROM project_metadata WHERE project_path = ?")
|
|
101
|
+
.get(options.project_path);
|
|
102
|
+
if (existing) {
|
|
103
|
+
// Update existing project
|
|
104
|
+
const stmt = this.db.prepare(`
|
|
105
|
+
UPDATE project_metadata
|
|
106
|
+
SET source_type = ?,
|
|
107
|
+
db_path = ?,
|
|
108
|
+
last_indexed = ?,
|
|
109
|
+
message_count = ?,
|
|
110
|
+
conversation_count = ?,
|
|
111
|
+
decision_count = ?,
|
|
112
|
+
mistake_count = ?,
|
|
113
|
+
metadata = ?,
|
|
114
|
+
updated_at = ?
|
|
115
|
+
WHERE project_path = ?
|
|
116
|
+
`);
|
|
117
|
+
stmt.run(options.source_type, options.db_path, now, options.message_count || 0, options.conversation_count || 0, options.decision_count || 0, options.mistake_count || 0, JSON.stringify(options.metadata || {}), now, options.project_path);
|
|
118
|
+
return {
|
|
119
|
+
...existing,
|
|
120
|
+
source_type: options.source_type,
|
|
121
|
+
db_path: options.db_path,
|
|
122
|
+
last_indexed: now,
|
|
123
|
+
message_count: options.message_count || 0,
|
|
124
|
+
conversation_count: options.conversation_count || 0,
|
|
125
|
+
decision_count: options.decision_count || 0,
|
|
126
|
+
mistake_count: options.mistake_count || 0,
|
|
127
|
+
metadata: options.metadata || {},
|
|
128
|
+
updated_at: now,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// Insert new project
|
|
133
|
+
const id = nanoid();
|
|
134
|
+
const stmt = this.db.prepare(`
|
|
135
|
+
INSERT INTO project_metadata (
|
|
136
|
+
id, project_path, source_type, db_path, last_indexed,
|
|
137
|
+
message_count, conversation_count, decision_count, mistake_count,
|
|
138
|
+
metadata, created_at, updated_at
|
|
139
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
140
|
+
`);
|
|
141
|
+
stmt.run(id, options.project_path, options.source_type, options.db_path, now, options.message_count || 0, options.conversation_count || 0, options.decision_count || 0, options.mistake_count || 0, JSON.stringify(options.metadata || {}), now, now);
|
|
142
|
+
return {
|
|
143
|
+
id,
|
|
144
|
+
project_path: options.project_path,
|
|
145
|
+
source_type: options.source_type,
|
|
146
|
+
db_path: options.db_path,
|
|
147
|
+
last_indexed: now,
|
|
148
|
+
message_count: options.message_count || 0,
|
|
149
|
+
conversation_count: options.conversation_count || 0,
|
|
150
|
+
decision_count: options.decision_count || 0,
|
|
151
|
+
mistake_count: options.mistake_count || 0,
|
|
152
|
+
metadata: options.metadata || {},
|
|
153
|
+
created_at: now,
|
|
154
|
+
updated_at: now,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get all registered projects.
|
|
160
|
+
*
|
|
161
|
+
* @param sourceType - Optional filter by source type
|
|
162
|
+
* @returns Array of project metadata
|
|
163
|
+
*/
|
|
164
|
+
getAllProjects(sourceType) {
|
|
165
|
+
let sql = "SELECT * FROM project_metadata";
|
|
166
|
+
const params = [];
|
|
167
|
+
if (sourceType) {
|
|
168
|
+
sql += " WHERE source_type = ?";
|
|
169
|
+
params.push(sourceType);
|
|
170
|
+
}
|
|
171
|
+
sql += " ORDER BY last_indexed DESC";
|
|
172
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
173
|
+
return rows.map((row) => ({
|
|
174
|
+
...row,
|
|
175
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
176
|
+
}));
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get a specific project by path.
|
|
180
|
+
*
|
|
181
|
+
* @param projectPath - Absolute path to the project
|
|
182
|
+
* @returns Project metadata or null if not found
|
|
183
|
+
*/
|
|
184
|
+
getProject(projectPath) {
|
|
185
|
+
const row = this.db
|
|
186
|
+
.prepare("SELECT * FROM project_metadata WHERE project_path = ?")
|
|
187
|
+
.get(projectPath);
|
|
188
|
+
if (!row) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
...row,
|
|
193
|
+
metadata: JSON.parse(row.metadata || "{}"),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Remove a project from the global index.
|
|
198
|
+
*
|
|
199
|
+
* Note: This does NOT delete the project's database, only removes it from the registry.
|
|
200
|
+
*
|
|
201
|
+
* @param projectPath - Absolute path to the project
|
|
202
|
+
* @returns True if project was removed, false if not found
|
|
203
|
+
*/
|
|
204
|
+
removeProject(projectPath) {
|
|
205
|
+
const stmt = this.db.prepare("DELETE FROM project_metadata WHERE project_path = ?");
|
|
206
|
+
const result = stmt.run(projectPath);
|
|
207
|
+
return result.changes > 0;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Get global statistics across all projects.
|
|
211
|
+
*
|
|
212
|
+
* @returns Aggregate statistics
|
|
213
|
+
*/
|
|
214
|
+
getGlobalStats() {
|
|
215
|
+
const stats = this.db
|
|
216
|
+
.prepare(`
|
|
217
|
+
SELECT
|
|
218
|
+
COUNT(*) as total_projects,
|
|
219
|
+
COALESCE(SUM(CASE WHEN source_type = 'claude-code' THEN 1 ELSE 0 END), 0) as claude_code_projects,
|
|
220
|
+
COALESCE(SUM(CASE WHEN source_type = 'codex' THEN 1 ELSE 0 END), 0) as codex_projects,
|
|
221
|
+
COALESCE(SUM(message_count), 0) as total_messages,
|
|
222
|
+
COALESCE(SUM(conversation_count), 0) as total_conversations,
|
|
223
|
+
COALESCE(SUM(decision_count), 0) as total_decisions,
|
|
224
|
+
COALESCE(SUM(mistake_count), 0) as total_mistakes
|
|
225
|
+
FROM project_metadata
|
|
226
|
+
`)
|
|
227
|
+
.get();
|
|
228
|
+
return stats;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Close the global index database.
|
|
232
|
+
*/
|
|
233
|
+
close() {
|
|
234
|
+
this.db.close();
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get the path to the global index database.
|
|
238
|
+
*/
|
|
239
|
+
getDbPath() {
|
|
240
|
+
return this.globalDbPath;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=GlobalIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GlobalIndex.js","sourceRoot":"","sources":["../../src/storage/GlobalIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,10 @@ export declare class SQLiteManager {
|
|
|
33
33
|
* Initialize database schema from schema.sql
|
|
34
34
|
*/
|
|
35
35
|
private initializeSchema;
|
|
36
|
+
/**
|
|
37
|
+
* Apply database migrations for existing databases
|
|
38
|
+
*/
|
|
39
|
+
private applyMigrations;
|
|
36
40
|
/**
|
|
37
41
|
* Get the underlying database instance
|
|
38
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLiteManager.d.ts","sourceRoot":"","sources":["../../src/storage/SQLiteManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAkBtC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAU;gBAEhB,MAAM,GAAE,YAAiB;IAyCrC,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;;OAGG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAyCvD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"SQLiteManager.d.ts","sourceRoot":"","sources":["../../src/storage/SQLiteManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAkBtC,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAU;gBAEhB,MAAM,GAAE,YAAiB;IAyCrC,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;;OAGG;IACH,6BAA6B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAyCvD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAuCvB;;OAEG;IACH,WAAW,IAAI,QAAQ,CAAC,QAAQ;IAIhC;;OAEG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAK9B;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAI5E;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI;QACV,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC;KAChD;IA+BD;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAU3B;AAKD,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,aAAa,CAKrE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC"}
|
|
@@ -154,18 +154,52 @@ export class SQLiteManager {
|
|
|
154
154
|
// Execute the entire schema at once
|
|
155
155
|
// SQLite can handle multiple statements in a single exec() call
|
|
156
156
|
this.db.exec(schema);
|
|
157
|
-
// Record schema version
|
|
157
|
+
// Record schema version (current version is 2)
|
|
158
158
|
this.db
|
|
159
159
|
.prepare("INSERT INTO schema_version (version, applied_at, description) VALUES (?, ?, ?)")
|
|
160
|
-
.run(
|
|
160
|
+
.run(2, Date.now(), "Initial schema with source_type support");
|
|
161
161
|
console.log("Database schema initialized successfully");
|
|
162
162
|
}
|
|
163
|
+
else {
|
|
164
|
+
// Apply migrations if needed
|
|
165
|
+
this.applyMigrations();
|
|
166
|
+
}
|
|
163
167
|
}
|
|
164
168
|
catch (error) {
|
|
165
169
|
console.error("Error initializing schema:", error);
|
|
166
170
|
throw error;
|
|
167
171
|
}
|
|
168
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Apply database migrations for existing databases
|
|
175
|
+
*/
|
|
176
|
+
applyMigrations() {
|
|
177
|
+
const currentVersion = this.getSchemaVersion();
|
|
178
|
+
// Migration 1 -> 2: Add source_type column to conversations table
|
|
179
|
+
if (currentVersion < 2) {
|
|
180
|
+
try {
|
|
181
|
+
console.log("Applying migration: Adding source_type column...");
|
|
182
|
+
// Check if column already exists (in case of partial migration)
|
|
183
|
+
const columns = this.db
|
|
184
|
+
.prepare("PRAGMA table_info(conversations)")
|
|
185
|
+
.all();
|
|
186
|
+
const hasSourceType = columns.some((col) => col.name === "source_type");
|
|
187
|
+
if (!hasSourceType) {
|
|
188
|
+
this.db.exec("ALTER TABLE conversations ADD COLUMN source_type TEXT DEFAULT 'claude-code'");
|
|
189
|
+
this.db.exec("CREATE INDEX IF NOT EXISTS idx_conv_source ON conversations(source_type)");
|
|
190
|
+
}
|
|
191
|
+
// Record migration
|
|
192
|
+
this.db
|
|
193
|
+
.prepare("INSERT INTO schema_version (version, applied_at, description) VALUES (?, ?, ?)")
|
|
194
|
+
.run(2, Date.now(), "Add source_type column and global index support");
|
|
195
|
+
console.log("Migration applied successfully");
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
console.error("Error applying migration:", error);
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
169
203
|
/**
|
|
170
204
|
* Get the underlying database instance
|
|
171
205
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLiteManager.js","sourceRoot":"","sources":["../../src/storage/SQLiteManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SQLiteManager.js","sourceRoot":"","sources":["../../src/storage/SQLiteManager.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/schema.sql
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
CREATE TABLE IF NOT EXISTS conversations (
|
|
11
11
|
id TEXT PRIMARY KEY, -- sessionId from JSONL
|
|
12
12
|
project_path TEXT NOT NULL, -- Derived from directory name
|
|
13
|
+
source_type TEXT DEFAULT 'claude-code', -- 'claude-code' or 'codex'
|
|
13
14
|
first_message_at INTEGER NOT NULL,
|
|
14
15
|
last_message_at INTEGER NOT NULL,
|
|
15
16
|
message_count INTEGER DEFAULT 0,
|
|
@@ -21,6 +22,7 @@ CREATE TABLE IF NOT EXISTS conversations (
|
|
|
21
22
|
);
|
|
22
23
|
|
|
23
24
|
CREATE INDEX IF NOT EXISTS idx_conv_project ON conversations(project_path);
|
|
25
|
+
CREATE INDEX IF NOT EXISTS idx_conv_source ON conversations(source_type);
|
|
24
26
|
CREATE INDEX IF NOT EXISTS idx_conv_time ON conversations(last_message_at);
|
|
25
27
|
CREATE INDEX IF NOT EXISTS idx_conv_branch ON conversations(git_branch);
|
|
26
28
|
CREATE INDEX IF NOT EXISTS idx_conv_created ON conversations(created_at);
|
|
@@ -319,3 +321,27 @@ CREATE TABLE IF NOT EXISTS schema_version (
|
|
|
319
321
|
description TEXT,
|
|
320
322
|
checksum TEXT
|
|
321
323
|
);
|
|
324
|
+
|
|
325
|
+
-- ==================================================
|
|
326
|
+
-- GLOBAL INDEX TABLE (for cross-project search)
|
|
327
|
+
-- ==================================================
|
|
328
|
+
|
|
329
|
+
-- Table 18: Project Metadata (Global registry of all indexed projects)
|
|
330
|
+
CREATE TABLE IF NOT EXISTS project_metadata (
|
|
331
|
+
id TEXT PRIMARY KEY, -- UUID for project entry
|
|
332
|
+
project_path TEXT NOT NULL UNIQUE, -- Absolute path to project
|
|
333
|
+
source_type TEXT NOT NULL, -- 'claude-code' or 'codex'
|
|
334
|
+
db_path TEXT NOT NULL, -- Path to project's database
|
|
335
|
+
last_indexed INTEGER NOT NULL, -- Last indexing timestamp
|
|
336
|
+
message_count INTEGER DEFAULT 0, -- Total messages indexed
|
|
337
|
+
conversation_count INTEGER DEFAULT 0, -- Total conversations indexed
|
|
338
|
+
decision_count INTEGER DEFAULT 0, -- Total decisions indexed
|
|
339
|
+
mistake_count INTEGER DEFAULT 0, -- Total mistakes indexed
|
|
340
|
+
metadata TEXT, -- JSON: {git_repo, last_commit, etc}
|
|
341
|
+
created_at INTEGER NOT NULL,
|
|
342
|
+
updated_at INTEGER NOT NULL
|
|
343
|
+
);
|
|
344
|
+
|
|
345
|
+
CREATE INDEX IF NOT EXISTS idx_proj_source ON project_metadata(source_type);
|
|
346
|
+
CREATE INDEX IF NOT EXISTS idx_proj_last_indexed ON project_metadata(last_indexed);
|
|
347
|
+
CREATE INDEX IF NOT EXISTS idx_proj_path ON project_metadata(project_path);
|
|
@@ -56,6 +56,11 @@ export declare const TOOLS: {
|
|
|
56
56
|
description: string;
|
|
57
57
|
default: number;
|
|
58
58
|
};
|
|
59
|
+
offset: {
|
|
60
|
+
type: string;
|
|
61
|
+
description: string;
|
|
62
|
+
default: number;
|
|
63
|
+
};
|
|
59
64
|
date_range: {
|
|
60
65
|
type: string;
|
|
61
66
|
description: string;
|
|
@@ -63,6 +68,16 @@ export declare const TOOLS: {
|
|
|
63
68
|
type: string;
|
|
64
69
|
};
|
|
65
70
|
};
|
|
71
|
+
scope: {
|
|
72
|
+
type: string;
|
|
73
|
+
enum: string[];
|
|
74
|
+
description: string;
|
|
75
|
+
default: string;
|
|
76
|
+
};
|
|
77
|
+
conversation_id: {
|
|
78
|
+
type: string;
|
|
79
|
+
description: string;
|
|
80
|
+
};
|
|
66
81
|
};
|
|
67
82
|
required: string[];
|
|
68
83
|
};
|
|
@@ -86,6 +101,21 @@ export declare const TOOLS: {
|
|
|
86
101
|
description: string;
|
|
87
102
|
default: number;
|
|
88
103
|
};
|
|
104
|
+
offset: {
|
|
105
|
+
type: string;
|
|
106
|
+
description: string;
|
|
107
|
+
default: number;
|
|
108
|
+
};
|
|
109
|
+
scope: {
|
|
110
|
+
type: string;
|
|
111
|
+
enum: string[];
|
|
112
|
+
description: string;
|
|
113
|
+
default: string;
|
|
114
|
+
};
|
|
115
|
+
conversation_id: {
|
|
116
|
+
type: string;
|
|
117
|
+
description: string;
|
|
118
|
+
};
|
|
89
119
|
};
|
|
90
120
|
required: string[];
|
|
91
121
|
};
|
|
@@ -147,6 +177,17 @@ export declare const TOOLS: {
|
|
|
147
177
|
description: string;
|
|
148
178
|
default: number;
|
|
149
179
|
};
|
|
180
|
+
offset: {
|
|
181
|
+
type: string;
|
|
182
|
+
description: string;
|
|
183
|
+
default: number;
|
|
184
|
+
};
|
|
185
|
+
scope: {
|
|
186
|
+
type: string;
|
|
187
|
+
enum: string[];
|
|
188
|
+
description: string;
|
|
189
|
+
default: string;
|
|
190
|
+
};
|
|
150
191
|
};
|
|
151
192
|
};
|
|
152
193
|
};
|
|
@@ -170,6 +211,21 @@ export declare const TOOLS: {
|
|
|
170
211
|
description: string;
|
|
171
212
|
default: number;
|
|
172
213
|
};
|
|
214
|
+
offset: {
|
|
215
|
+
type: string;
|
|
216
|
+
description: string;
|
|
217
|
+
default: number;
|
|
218
|
+
};
|
|
219
|
+
scope: {
|
|
220
|
+
type: string;
|
|
221
|
+
enum: string[];
|
|
222
|
+
description: string;
|
|
223
|
+
default: string;
|
|
224
|
+
};
|
|
225
|
+
conversation_id: {
|
|
226
|
+
type: string;
|
|
227
|
+
description: string;
|
|
228
|
+
};
|
|
173
229
|
};
|
|
174
230
|
required: string[];
|
|
175
231
|
};
|
|
@@ -263,6 +319,21 @@ export declare const TOOLS: {
|
|
|
263
319
|
description: string;
|
|
264
320
|
default: number;
|
|
265
321
|
};
|
|
322
|
+
offset: {
|
|
323
|
+
type: string;
|
|
324
|
+
description: string;
|
|
325
|
+
default: number;
|
|
326
|
+
};
|
|
327
|
+
scope: {
|
|
328
|
+
type: string;
|
|
329
|
+
enum: string[];
|
|
330
|
+
description: string;
|
|
331
|
+
default: string;
|
|
332
|
+
};
|
|
333
|
+
conversation_id: {
|
|
334
|
+
type: string;
|
|
335
|
+
description: string;
|
|
336
|
+
};
|
|
266
337
|
};
|
|
267
338
|
required: string[];
|
|
268
339
|
};
|
|
@@ -302,6 +373,21 @@ export declare const TOOLS: {
|
|
|
302
373
|
description: string;
|
|
303
374
|
default: number;
|
|
304
375
|
};
|
|
376
|
+
offset: {
|
|
377
|
+
type: string;
|
|
378
|
+
description: string;
|
|
379
|
+
default: number;
|
|
380
|
+
};
|
|
381
|
+
scope: {
|
|
382
|
+
type: string;
|
|
383
|
+
enum: string[];
|
|
384
|
+
description: string;
|
|
385
|
+
default: string;
|
|
386
|
+
};
|
|
387
|
+
conversation_id: {
|
|
388
|
+
type: string;
|
|
389
|
+
description: string;
|
|
390
|
+
};
|
|
305
391
|
};
|
|
306
392
|
required: string[];
|
|
307
393
|
};
|
|
@@ -405,5 +491,137 @@ export declare const TOOLS: {
|
|
|
405
491
|
required: string[];
|
|
406
492
|
};
|
|
407
493
|
};
|
|
494
|
+
index_all_projects: {
|
|
495
|
+
name: string;
|
|
496
|
+
description: string;
|
|
497
|
+
inputSchema: {
|
|
498
|
+
type: string;
|
|
499
|
+
properties: {
|
|
500
|
+
include_codex: {
|
|
501
|
+
type: string;
|
|
502
|
+
description: string;
|
|
503
|
+
default: boolean;
|
|
504
|
+
};
|
|
505
|
+
include_claude_code: {
|
|
506
|
+
type: string;
|
|
507
|
+
description: string;
|
|
508
|
+
default: boolean;
|
|
509
|
+
};
|
|
510
|
+
codex_path: {
|
|
511
|
+
type: string;
|
|
512
|
+
description: string;
|
|
513
|
+
};
|
|
514
|
+
claude_projects_path: {
|
|
515
|
+
type: string;
|
|
516
|
+
description: string;
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
};
|
|
520
|
+
};
|
|
521
|
+
search_all_conversations: {
|
|
522
|
+
name: string;
|
|
523
|
+
description: string;
|
|
524
|
+
inputSchema: {
|
|
525
|
+
type: string;
|
|
526
|
+
properties: {
|
|
527
|
+
query: {
|
|
528
|
+
type: string;
|
|
529
|
+
description: string;
|
|
530
|
+
};
|
|
531
|
+
limit: {
|
|
532
|
+
type: string;
|
|
533
|
+
description: string;
|
|
534
|
+
default: number;
|
|
535
|
+
};
|
|
536
|
+
offset: {
|
|
537
|
+
type: string;
|
|
538
|
+
description: string;
|
|
539
|
+
default: number;
|
|
540
|
+
};
|
|
541
|
+
date_range: {
|
|
542
|
+
type: string;
|
|
543
|
+
description: string;
|
|
544
|
+
items: {
|
|
545
|
+
type: string;
|
|
546
|
+
};
|
|
547
|
+
};
|
|
548
|
+
source_type: {
|
|
549
|
+
type: string;
|
|
550
|
+
description: string;
|
|
551
|
+
enum: string[];
|
|
552
|
+
default: string;
|
|
553
|
+
};
|
|
554
|
+
};
|
|
555
|
+
required: string[];
|
|
556
|
+
};
|
|
557
|
+
};
|
|
558
|
+
get_all_decisions: {
|
|
559
|
+
name: string;
|
|
560
|
+
description: string;
|
|
561
|
+
inputSchema: {
|
|
562
|
+
type: string;
|
|
563
|
+
properties: {
|
|
564
|
+
query: {
|
|
565
|
+
type: string;
|
|
566
|
+
description: string;
|
|
567
|
+
};
|
|
568
|
+
file_path: {
|
|
569
|
+
type: string;
|
|
570
|
+
description: string;
|
|
571
|
+
};
|
|
572
|
+
limit: {
|
|
573
|
+
type: string;
|
|
574
|
+
description: string;
|
|
575
|
+
default: number;
|
|
576
|
+
};
|
|
577
|
+
offset: {
|
|
578
|
+
type: string;
|
|
579
|
+
description: string;
|
|
580
|
+
default: number;
|
|
581
|
+
};
|
|
582
|
+
source_type: {
|
|
583
|
+
type: string;
|
|
584
|
+
description: string;
|
|
585
|
+
enum: string[];
|
|
586
|
+
default: string;
|
|
587
|
+
};
|
|
588
|
+
};
|
|
589
|
+
required: string[];
|
|
590
|
+
};
|
|
591
|
+
};
|
|
592
|
+
search_all_mistakes: {
|
|
593
|
+
name: string;
|
|
594
|
+
description: string;
|
|
595
|
+
inputSchema: {
|
|
596
|
+
type: string;
|
|
597
|
+
properties: {
|
|
598
|
+
query: {
|
|
599
|
+
type: string;
|
|
600
|
+
description: string;
|
|
601
|
+
};
|
|
602
|
+
mistake_type: {
|
|
603
|
+
type: string;
|
|
604
|
+
description: string;
|
|
605
|
+
};
|
|
606
|
+
limit: {
|
|
607
|
+
type: string;
|
|
608
|
+
description: string;
|
|
609
|
+
default: number;
|
|
610
|
+
};
|
|
611
|
+
offset: {
|
|
612
|
+
type: string;
|
|
613
|
+
description: string;
|
|
614
|
+
default: number;
|
|
615
|
+
};
|
|
616
|
+
source_type: {
|
|
617
|
+
type: string;
|
|
618
|
+
description: string;
|
|
619
|
+
enum: string[];
|
|
620
|
+
default: string;
|
|
621
|
+
};
|
|
622
|
+
};
|
|
623
|
+
required: string[];
|
|
624
|
+
};
|
|
625
|
+
};
|
|
408
626
|
};
|
|
409
627
|
//# sourceMappingURL=ToolDefinitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolDefinitions.d.ts","sourceRoot":"","sources":["../../src/tools/ToolDefinitions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"ToolDefinitions.d.ts","sourceRoot":"","sources":["../../src/tools/ToolDefinitions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwnBjB,CAAC"}
|