codetree-claude 1.0.1 → 1.2.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.
- package/LICENSE +21 -0
- package/dist/hook/post-compact.d.ts +18 -0
- package/dist/hook/post-compact.d.ts.map +1 -0
- package/dist/hook/post-compact.js +192 -0
- package/dist/hook/post-compact.js.map +1 -0
- package/dist/hook/post-tool-use.d.ts +11 -0
- package/dist/hook/post-tool-use.d.ts.map +1 -0
- package/dist/hook/post-tool-use.js +85 -0
- package/dist/hook/post-tool-use.js.map +1 -0
- package/dist/hook/pre-compact.d.ts +18 -0
- package/dist/hook/pre-compact.d.ts.map +1 -0
- package/dist/hook/pre-compact.js +190 -0
- package/dist/hook/pre-compact.js.map +1 -0
- package/dist/hook/session-start.d.ts +14 -0
- package/dist/hook/session-start.d.ts.map +1 -0
- package/dist/hook/session-start.js +136 -0
- package/dist/hook/session-start.js.map +1 -0
- package/dist/server/ipc.d.ts +11 -0
- package/dist/server/ipc.d.ts.map +1 -1
- package/dist/server/ipc.js +233 -0
- package/dist/server/ipc.js.map +1 -1
- package/dist/server/mcp-server.js +3 -1
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/tools/codetree-memory.d.ts +121 -0
- package/dist/server/tools/codetree-memory.d.ts.map +1 -0
- package/dist/server/tools/codetree-memory.js +129 -0
- package/dist/server/tools/codetree-memory.js.map +1 -0
- package/dist/setup/install.d.ts +1 -1
- package/dist/setup/install.d.ts.map +1 -1
- package/dist/setup/install.js +76 -3
- package/dist/setup/install.js.map +1 -1
- package/dist/storage/database.d.ts +59 -0
- package/dist/storage/database.d.ts.map +1 -1
- package/dist/storage/database.js +381 -0
- package/dist/storage/database.js.map +1 -1
- package/dist/storage/disk-manager.d.ts +26 -0
- package/dist/storage/disk-manager.d.ts.map +1 -0
- package/dist/storage/disk-manager.js +100 -0
- package/dist/storage/disk-manager.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { CodeTreeConfig } from "../../config.js";
|
|
2
|
+
import type { Database } from "../../storage/database.js";
|
|
3
|
+
export interface MemoryParams {
|
|
4
|
+
action: "get_context" | "save_insight" | "get_hot_files" | "get_session_history";
|
|
5
|
+
category?: string;
|
|
6
|
+
content?: string;
|
|
7
|
+
file_paths?: string[];
|
|
8
|
+
session_id?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function createMemoryTool(config: CodeTreeConfig, db: Database): {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object";
|
|
15
|
+
properties: {
|
|
16
|
+
action: {
|
|
17
|
+
type: string;
|
|
18
|
+
enum: string[];
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
category: {
|
|
22
|
+
type: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
content: {
|
|
26
|
+
type: string;
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
file_paths: {
|
|
30
|
+
type: string;
|
|
31
|
+
items: {
|
|
32
|
+
type: string;
|
|
33
|
+
};
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
session_id: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
required: string[];
|
|
42
|
+
};
|
|
43
|
+
handler: (params: MemoryParams) => Promise<{
|
|
44
|
+
recentSessions: {
|
|
45
|
+
id: any;
|
|
46
|
+
started: string;
|
|
47
|
+
task: any;
|
|
48
|
+
summary: any;
|
|
49
|
+
filesRead: any;
|
|
50
|
+
filesModified: any;
|
|
51
|
+
symbolsSearched: any;
|
|
52
|
+
}[];
|
|
53
|
+
hotFiles: {
|
|
54
|
+
path: string;
|
|
55
|
+
reads: number;
|
|
56
|
+
sessions: number;
|
|
57
|
+
}[];
|
|
58
|
+
changedSinceLastSession: {
|
|
59
|
+
path: any;
|
|
60
|
+
language: any;
|
|
61
|
+
lines: any;
|
|
62
|
+
}[];
|
|
63
|
+
insights: {
|
|
64
|
+
category: any;
|
|
65
|
+
content: any;
|
|
66
|
+
files: any;
|
|
67
|
+
session: any;
|
|
68
|
+
}[];
|
|
69
|
+
saved?: undefined;
|
|
70
|
+
category?: undefined;
|
|
71
|
+
content?: undefined;
|
|
72
|
+
sessions?: undefined;
|
|
73
|
+
} | {
|
|
74
|
+
saved: boolean;
|
|
75
|
+
category: string | undefined;
|
|
76
|
+
content: string;
|
|
77
|
+
recentSessions?: undefined;
|
|
78
|
+
hotFiles?: undefined;
|
|
79
|
+
changedSinceLastSession?: undefined;
|
|
80
|
+
insights?: undefined;
|
|
81
|
+
sessions?: undefined;
|
|
82
|
+
} | {
|
|
83
|
+
hotFiles: {
|
|
84
|
+
path: string;
|
|
85
|
+
totalReads: number;
|
|
86
|
+
sessions: number;
|
|
87
|
+
}[];
|
|
88
|
+
recentSessions?: undefined;
|
|
89
|
+
changedSinceLastSession?: undefined;
|
|
90
|
+
insights?: undefined;
|
|
91
|
+
saved?: undefined;
|
|
92
|
+
category?: undefined;
|
|
93
|
+
content?: undefined;
|
|
94
|
+
sessions?: undefined;
|
|
95
|
+
} | {
|
|
96
|
+
sessions: {
|
|
97
|
+
id: any;
|
|
98
|
+
started: string;
|
|
99
|
+
ended: string | null;
|
|
100
|
+
task: any;
|
|
101
|
+
summary: any;
|
|
102
|
+
filesRead: {
|
|
103
|
+
path: any;
|
|
104
|
+
count: any;
|
|
105
|
+
}[];
|
|
106
|
+
filesModified: any;
|
|
107
|
+
insights: {
|
|
108
|
+
category: any;
|
|
109
|
+
content: any;
|
|
110
|
+
}[];
|
|
111
|
+
}[];
|
|
112
|
+
recentSessions?: undefined;
|
|
113
|
+
hotFiles?: undefined;
|
|
114
|
+
changedSinceLastSession?: undefined;
|
|
115
|
+
insights?: undefined;
|
|
116
|
+
saved?: undefined;
|
|
117
|
+
category?: undefined;
|
|
118
|
+
content?: undefined;
|
|
119
|
+
}>;
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=codetree-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codetree-memory.d.ts","sourceRoot":"","sources":["../../../src/server/tools/codetree-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,GAAG,cAAc,GAAG,eAAe,GAAG,qBAAqB,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAsCzC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGvC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
export function createMemoryTool(config, db) {
|
|
2
|
+
return {
|
|
3
|
+
name: "codetree_memory",
|
|
4
|
+
description: "Access and manage session memory across Claude Code conversations. " +
|
|
5
|
+
"Use 'get_context' at the start of a session to recall what you knew from prior sessions. " +
|
|
6
|
+
"Use 'save_insight' to persist important discoveries (architecture patterns, bug causes, key decisions) " +
|
|
7
|
+
"that should survive across sessions. " +
|
|
8
|
+
"Use 'get_hot_files' to see which files are most frequently accessed. " +
|
|
9
|
+
"Use 'get_session_history' to see what happened in recent sessions.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
type: "object",
|
|
12
|
+
properties: {
|
|
13
|
+
action: {
|
|
14
|
+
type: "string",
|
|
15
|
+
enum: ["get_context", "save_insight", "get_hot_files", "get_session_history"],
|
|
16
|
+
description: "What to do: get_context (recall prior knowledge), save_insight (persist a discovery), get_hot_files (frequent files), get_session_history (recent sessions)",
|
|
17
|
+
},
|
|
18
|
+
category: {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "For save_insight: category of the insight — architecture, bug, pattern, decision, dependency",
|
|
21
|
+
},
|
|
22
|
+
content: {
|
|
23
|
+
type: "string",
|
|
24
|
+
description: "For save_insight: the insight text to save",
|
|
25
|
+
},
|
|
26
|
+
file_paths: {
|
|
27
|
+
type: "array",
|
|
28
|
+
items: { type: "string" },
|
|
29
|
+
description: "For save_insight: related file paths",
|
|
30
|
+
},
|
|
31
|
+
session_id: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Current session ID (optional, auto-detected from most recent session)",
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ["action"],
|
|
37
|
+
},
|
|
38
|
+
handler: async (params) => {
|
|
39
|
+
switch (params.action) {
|
|
40
|
+
case "get_context": {
|
|
41
|
+
// Expire old sessions
|
|
42
|
+
db.expireOldSessions(5);
|
|
43
|
+
const recentSessions = db.getRecentSessions(5);
|
|
44
|
+
const hotFiles = db.getHotFiles(5, 20);
|
|
45
|
+
const recentInsights = db.getAllRecentInsights(5);
|
|
46
|
+
let changedFiles = [];
|
|
47
|
+
if (recentSessions.length > 0) {
|
|
48
|
+
const lastEnd = recentSessions[0].ended_at || recentSessions[0].last_accessed;
|
|
49
|
+
changedFiles = db.getChangedFilesSince(lastEnd);
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
recentSessions: recentSessions.map((s) => ({
|
|
53
|
+
id: s.id,
|
|
54
|
+
started: new Date(s.started_at).toISOString(),
|
|
55
|
+
task: s.task_description,
|
|
56
|
+
summary: s.summary,
|
|
57
|
+
filesRead: JSON.parse(s.files_read || "[]").length,
|
|
58
|
+
filesModified: JSON.parse(s.files_modified || "[]").length,
|
|
59
|
+
symbolsSearched: JSON.parse(s.symbols_searched || "[]"),
|
|
60
|
+
})),
|
|
61
|
+
hotFiles: hotFiles.map((f) => ({
|
|
62
|
+
path: f.file_path,
|
|
63
|
+
reads: f.total_reads,
|
|
64
|
+
sessions: f.sessions,
|
|
65
|
+
})),
|
|
66
|
+
changedSinceLastSession: changedFiles.map((f) => ({
|
|
67
|
+
path: f.path,
|
|
68
|
+
language: f.language,
|
|
69
|
+
lines: f.line_count,
|
|
70
|
+
})),
|
|
71
|
+
insights: recentInsights.map((i) => ({
|
|
72
|
+
category: i.category,
|
|
73
|
+
content: i.content,
|
|
74
|
+
files: i.file_paths ? JSON.parse(i.file_paths) : [],
|
|
75
|
+
session: i.task_description,
|
|
76
|
+
})),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
case "save_insight": {
|
|
80
|
+
if (!params.content) {
|
|
81
|
+
throw new Error("content is required for save_insight");
|
|
82
|
+
}
|
|
83
|
+
const sessionId = params.session_id || getLatestSessionId(db);
|
|
84
|
+
if (!sessionId) {
|
|
85
|
+
throw new Error("No active session found");
|
|
86
|
+
}
|
|
87
|
+
db.addSessionInsight(sessionId, params.category || "general", params.content, params.file_paths);
|
|
88
|
+
return { saved: true, category: params.category, content: params.content };
|
|
89
|
+
}
|
|
90
|
+
case "get_hot_files": {
|
|
91
|
+
const hotFiles = db.getHotFiles(5, 30);
|
|
92
|
+
return {
|
|
93
|
+
hotFiles: hotFiles.map((f) => ({
|
|
94
|
+
path: f.file_path,
|
|
95
|
+
totalReads: f.total_reads,
|
|
96
|
+
sessions: f.sessions,
|
|
97
|
+
})),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case "get_session_history": {
|
|
101
|
+
const sessions = db.getRecentSessions(10);
|
|
102
|
+
return {
|
|
103
|
+
sessions: sessions.map((s) => {
|
|
104
|
+
const reads = db.getSessionReads(s.id);
|
|
105
|
+
const insights = db.getSessionInsights(s.id);
|
|
106
|
+
return {
|
|
107
|
+
id: s.id,
|
|
108
|
+
started: new Date(s.started_at).toISOString(),
|
|
109
|
+
ended: s.ended_at ? new Date(s.ended_at).toISOString() : null,
|
|
110
|
+
task: s.task_description,
|
|
111
|
+
summary: s.summary,
|
|
112
|
+
filesRead: reads.map((r) => ({ path: r.file_path, count: r.read_count })),
|
|
113
|
+
filesModified: JSON.parse(s.files_modified || "[]"),
|
|
114
|
+
insights: insights.map((i) => ({ category: i.category, content: i.content })),
|
|
115
|
+
};
|
|
116
|
+
}),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
default:
|
|
120
|
+
throw new Error(`Unknown action: ${params.action}`);
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function getLatestSessionId(db) {
|
|
126
|
+
const sessions = db.getRecentSessions(1);
|
|
127
|
+
return sessions.length > 0 ? sessions[0].id : null;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=codetree-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codetree-memory.js","sourceRoot":"","sources":["../../../src/server/tools/codetree-memory.ts"],"names":[],"mappings":"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"}
|
package/dist/setup/install.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"AAiCA;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"AAiCA;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6H9G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAmCrH;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAiC3F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAYzD"}
|
package/dist/setup/install.js
CHANGED
|
@@ -4,9 +4,14 @@ import { fileURLToPath } from "node:url";
|
|
|
4
4
|
const __filename = fileURLToPath(import.meta.url);
|
|
5
5
|
const __dirname = dirname(__filename);
|
|
6
6
|
/**
|
|
7
|
-
* Register CodeTree
|
|
7
|
+
* Register all CodeTree hooks in Claude Code settings.
|
|
8
8
|
*/
|
|
9
9
|
export function installHook(projectRoot, hookScriptPath) {
|
|
10
|
+
// hookScriptPath points to pre-tool-use.js
|
|
11
|
+
// Derive other hook paths from the same directory
|
|
12
|
+
const hookDir = dirname(hookScriptPath);
|
|
13
|
+
const postToolUseScript = join(hookDir, "post-tool-use.js");
|
|
14
|
+
const sessionStartScript = join(hookDir, "session-start.js");
|
|
10
15
|
// Find or create .claude/settings.json
|
|
11
16
|
const claudeDir = join(projectRoot, ".claude");
|
|
12
17
|
const settingsPath = join(claudeDir, "settings.json");
|
|
@@ -43,6 +48,72 @@ export function installHook(projectRoot, hookScriptPath) {
|
|
|
43
48
|
},
|
|
44
49
|
],
|
|
45
50
|
});
|
|
51
|
+
// Add PostToolUse hook for session capture
|
|
52
|
+
if (!settings.hooks.PostToolUse)
|
|
53
|
+
settings.hooks.PostToolUse = [];
|
|
54
|
+
const existingPostHook = settings.hooks.PostToolUse.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
55
|
+
if (!existingPostHook) {
|
|
56
|
+
const normalizedPostPath = postToolUseScript.replace(/\\/g, "/");
|
|
57
|
+
settings.hooks.PostToolUse.push({
|
|
58
|
+
matcher: "Read|Grep|Glob|Edit|Write|codetree_read|codetree_search",
|
|
59
|
+
hooks: [
|
|
60
|
+
{
|
|
61
|
+
type: "command",
|
|
62
|
+
command: `node "${normalizedPostPath}"`,
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Add SessionStart hook for context injection
|
|
68
|
+
if (!settings.hooks.SessionStart)
|
|
69
|
+
settings.hooks.SessionStart = [];
|
|
70
|
+
const existingSessionHook = settings.hooks.SessionStart.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
71
|
+
if (!existingSessionHook) {
|
|
72
|
+
const normalizedSessionPath = sessionStartScript.replace(/\\/g, "/");
|
|
73
|
+
settings.hooks.SessionStart.push({
|
|
74
|
+
matcher: "",
|
|
75
|
+
hooks: [
|
|
76
|
+
{
|
|
77
|
+
type: "command",
|
|
78
|
+
command: `node "${normalizedSessionPath}"`,
|
|
79
|
+
},
|
|
80
|
+
],
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// Add PreCompact hook for saving context before compaction
|
|
84
|
+
const preCompactScript = join(hookDir, "pre-compact.js");
|
|
85
|
+
if (!settings.hooks.PreCompact)
|
|
86
|
+
settings.hooks.PreCompact = [];
|
|
87
|
+
const existingPreCompact = settings.hooks.PreCompact.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
88
|
+
if (!existingPreCompact) {
|
|
89
|
+
const normalizedPreCompact = preCompactScript.replace(/\\/g, "/");
|
|
90
|
+
settings.hooks.PreCompact.push({
|
|
91
|
+
matcher: "",
|
|
92
|
+
hooks: [
|
|
93
|
+
{
|
|
94
|
+
type: "command",
|
|
95
|
+
command: `node "${normalizedPreCompact}"`,
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
// Add PostCompact hook for restoring context after compaction
|
|
101
|
+
const postCompactScript = join(hookDir, "post-compact.js");
|
|
102
|
+
if (!settings.hooks.PostCompact)
|
|
103
|
+
settings.hooks.PostCompact = [];
|
|
104
|
+
const existingPostCompact = settings.hooks.PostCompact.find((h) => h.hooks?.some((hook) => hook.command?.includes("codetree")));
|
|
105
|
+
if (!existingPostCompact) {
|
|
106
|
+
const normalizedPostCompact = postCompactScript.replace(/\\/g, "/");
|
|
107
|
+
settings.hooks.PostCompact.push({
|
|
108
|
+
matcher: "",
|
|
109
|
+
hooks: [
|
|
110
|
+
{
|
|
111
|
+
type: "command",
|
|
112
|
+
command: `node "${normalizedPostCompact}"`,
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
});
|
|
116
|
+
}
|
|
46
117
|
writeFileSync(settingsPath, JSON.stringify(settings, null, 2), "utf-8");
|
|
47
118
|
return { success: true, message: `Hook registered in ${settingsPath}` };
|
|
48
119
|
}
|
|
@@ -67,13 +138,15 @@ export function installMcpServer(projectRoot, serverScriptPath) {
|
|
|
67
138
|
if (config.mcpServers.codetree) {
|
|
68
139
|
return { success: true, message: "MCP server already registered" };
|
|
69
140
|
}
|
|
141
|
+
// Normalize all paths to forward slashes for cross-platform compatibility
|
|
70
142
|
const normalizedPath = serverScriptPath.replace(/\\/g, "/");
|
|
143
|
+
const normalizedRoot = projectRoot.replace(/\\/g, "/");
|
|
71
144
|
config.mcpServers.codetree = {
|
|
72
145
|
command: "node",
|
|
73
146
|
args: [normalizedPath],
|
|
74
|
-
cwd:
|
|
147
|
+
cwd: normalizedRoot,
|
|
75
148
|
env: {
|
|
76
|
-
CODETREE_PROJECT_ROOT:
|
|
149
|
+
CODETREE_PROJECT_ROOT: normalizedRoot,
|
|
77
150
|
},
|
|
78
151
|
};
|
|
79
152
|
writeFileSync(mcpConfigPath, JSON.stringify(config, null, 2), "utf-8");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,65 @@ export declare class Database {
|
|
|
47
47
|
getCachedContent(path: string): Buffer | null;
|
|
48
48
|
evictContentCache(maxSizeMB: number): void;
|
|
49
49
|
searchFiles(pattern: string): FileRecord[];
|
|
50
|
+
createSession(sessionId: string, taskDescription?: string): void;
|
|
51
|
+
updateSessionAccess(sessionId: string): void;
|
|
52
|
+
endSession(sessionId: string, summary?: string): void;
|
|
53
|
+
logSessionRead(sessionId: string, filePath: string, toolName: string, lineStart?: number, lineEnd?: number): void;
|
|
54
|
+
logSessionModified(sessionId: string, filePath: string): void;
|
|
55
|
+
logSessionSearch(sessionId: string, symbol: string): void;
|
|
56
|
+
addSessionInsight(sessionId: string, category: string, content: string, filePaths?: string[]): void;
|
|
57
|
+
getSession(sessionId: string): any | null;
|
|
58
|
+
getRecentSessions(limit?: number): any[];
|
|
59
|
+
getSessionReads(sessionId: string): any[];
|
|
60
|
+
getSessionInsights(sessionId: string): any[];
|
|
61
|
+
/**
|
|
62
|
+
* Get all insights across recent sessions — this is what gets injected into new sessions.
|
|
63
|
+
*/
|
|
64
|
+
getAllRecentInsights(maxAgeDays?: number): any[];
|
|
65
|
+
/**
|
|
66
|
+
* Get frequently read files across all recent sessions.
|
|
67
|
+
* These are the "hot" files Claude keeps re-reading.
|
|
68
|
+
*/
|
|
69
|
+
getHotFiles(maxAgeDays?: number, limit?: number): Array<{
|
|
70
|
+
file_path: string;
|
|
71
|
+
total_reads: number;
|
|
72
|
+
sessions: number;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Get files that changed since a given timestamp.
|
|
76
|
+
*/
|
|
77
|
+
getChangedFilesSince(timestamp: number): FileRecord[];
|
|
78
|
+
/**
|
|
79
|
+
* Delete sessions older than maxAgeDays.
|
|
80
|
+
*/
|
|
81
|
+
expireOldSessions(maxAgeDays?: number): number;
|
|
82
|
+
saveCompactionSnapshot(snapshot: {
|
|
83
|
+
sessionId: string;
|
|
84
|
+
taskSummary?: string;
|
|
85
|
+
architectureNotes?: any[];
|
|
86
|
+
fileSummaries?: Record<string, string>;
|
|
87
|
+
decisions?: string[];
|
|
88
|
+
openQuestions?: string[];
|
|
89
|
+
filesRead?: any[];
|
|
90
|
+
filesModified?: string[];
|
|
91
|
+
symbolsDiscovered?: string[];
|
|
92
|
+
grepPatterns?: string[];
|
|
93
|
+
userRequests?: string[];
|
|
94
|
+
currentPlan?: string;
|
|
95
|
+
}): number;
|
|
96
|
+
getLatestCompactionSnapshot(sessionId: string): any | null;
|
|
97
|
+
getAllCompactionSnapshots(sessionId: string): any[];
|
|
98
|
+
/**
|
|
99
|
+
* Build a compaction snapshot from session activity data.
|
|
100
|
+
* Pulls everything we know from session_reads, session_insights, and file index.
|
|
101
|
+
*/
|
|
102
|
+
buildSnapshotFromSession(sessionId: string): {
|
|
103
|
+
filesRead: any[];
|
|
104
|
+
filesModified: string[];
|
|
105
|
+
symbolsDiscovered: string[];
|
|
106
|
+
grepPatterns: string[];
|
|
107
|
+
fileSummaries: Record<string, string>;
|
|
108
|
+
};
|
|
50
109
|
close(): void;
|
|
51
110
|
}
|
|
52
111
|
//# sourceMappingURL=database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwBnD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/storage/database.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAwBnD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AA+HD,qBAAa,QAAQ;IAMP,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,EAAE,CAA8B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,KAAK,CAAS;gBAEF,MAAM,EAAE,cAAc;IAIpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,OAAO,CAAC,SAAS;IAOjB,aAAa,IAAI,IAAI;IAiBrB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAclC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAaxC,WAAW,IAAI,UAAU,EAAE;IAe3B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM9B,YAAY,IAAI,MAAM;IAQtB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAsB9D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,YAAY,EAAE;IA+BvE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE;IAyBnD,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAiBtE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAsBtD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUjD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAe7C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgC1C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;IAgB1C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IAYhE,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5C,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IASrD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBjH,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAe7D,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAezD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAWnG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAazC,iBAAiB,CAAC,KAAK,SAAK,GAAG,GAAG,EAAE;IAcpC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE;IAczC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE;IAc5C;;OAEG;IACH,oBAAoB,CAAC,UAAU,SAAI,GAAG,GAAG,EAAE;IAoB3C;;;OAGG;IACH,WAAW,CAAC,UAAU,SAAI,EAAE,KAAK,SAAK,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB5G;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAcrD;;OAEG;IACH,iBAAiB,CAAC,UAAU,SAAI,GAAG,MAAM;IAazC,sBAAsB,CAAC,QAAQ,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,MAAM;IAiCV,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAe1D,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE;IAcnD;;;OAGG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG;QAC3C,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC;IA2CD,KAAK,IAAI,IAAI;CAWd"}
|