code-session-memory 0.3.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/README.md +290 -0
- package/dist/mcp/index.d.ts +15 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +140 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/server.d.ts +60 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +192 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/src/chunker.d.ts +18 -0
- package/dist/src/chunker.d.ts.map +1 -0
- package/dist/src/chunker.js +149 -0
- package/dist/src/chunker.js.map +1 -0
- package/dist/src/cli.d.ts +11 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +514 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/database.d.ts +50 -0
- package/dist/src/database.d.ts.map +1 -0
- package/dist/src/database.js +238 -0
- package/dist/src/database.js.map +1 -0
- package/dist/src/embedder.d.ts +19 -0
- package/dist/src/embedder.d.ts.map +1 -0
- package/dist/src/embedder.js +80 -0
- package/dist/src/embedder.js.map +1 -0
- package/dist/src/indexer-cli-claude.d.ts +14 -0
- package/dist/src/indexer-cli-claude.d.ts.map +1 -0
- package/dist/src/indexer-cli-claude.js +67 -0
- package/dist/src/indexer-cli-claude.js.map +1 -0
- package/dist/src/indexer-cli.d.ts +16 -0
- package/dist/src/indexer-cli.d.ts.map +1 -0
- package/dist/src/indexer-cli.js +53 -0
- package/dist/src/indexer-cli.js.map +1 -0
- package/dist/src/indexer.d.ts +44 -0
- package/dist/src/indexer.d.ts.map +1 -0
- package/dist/src/indexer.js +129 -0
- package/dist/src/indexer.js.map +1 -0
- package/dist/src/session-to-md.d.ts +15 -0
- package/dist/src/session-to-md.d.ts.map +1 -0
- package/dist/src/session-to-md.js +148 -0
- package/dist/src/session-to-md.js.map +1 -0
- package/dist/src/transcript-to-messages.d.ts +32 -0
- package/dist/src/transcript-to-messages.d.ts.map +1 -0
- package/dist/src/transcript-to-messages.js +230 -0
- package/dist/src/transcript-to-messages.js.map +1 -0
- package/dist/src/types.d.ts +91 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +59 -0
- package/plugin/memory.ts +42 -0
- package/skill/memory.md +61 -0
package/dist/src/cli.js
ADDED
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* code-session-memory CLI
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx code-session-memory install — install for OpenCode + Claude Code
|
|
8
|
+
* npx code-session-memory status — show installation status
|
|
9
|
+
* npx code-session-memory uninstall — remove all installed components
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const fs_1 = __importDefault(require("fs"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const os_1 = __importDefault(require("os"));
|
|
18
|
+
const database_1 = require("./database");
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// Paths — OpenCode
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
function getOpenCodeConfigDir() {
|
|
23
|
+
const envDir = process.env.OPENCODE_CONFIG_DIR;
|
|
24
|
+
if (envDir)
|
|
25
|
+
return envDir;
|
|
26
|
+
return path_1.default.join(os_1.default.homedir(), ".config", "opencode");
|
|
27
|
+
}
|
|
28
|
+
function getOpenCodePluginDst() {
|
|
29
|
+
return path_1.default.join(getOpenCodeConfigDir(), "plugins", "code-session-memory.ts");
|
|
30
|
+
}
|
|
31
|
+
function getOpenCodeSkillDst() {
|
|
32
|
+
return path_1.default.join(getOpenCodeConfigDir(), "skills", "code-session-memory.md");
|
|
33
|
+
}
|
|
34
|
+
function getGlobalOpenCodeConfigPath() {
|
|
35
|
+
return path_1.default.join(getOpenCodeConfigDir(), "opencode.json");
|
|
36
|
+
}
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Paths — Claude Code
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
function getClaudeConfigDir() {
|
|
41
|
+
const envDir = process.env.CLAUDE_CONFIG_DIR;
|
|
42
|
+
if (envDir)
|
|
43
|
+
return envDir;
|
|
44
|
+
return path_1.default.join(os_1.default.homedir(), ".claude");
|
|
45
|
+
}
|
|
46
|
+
function getClaudeSettingsPath() {
|
|
47
|
+
return path_1.default.join(getClaudeConfigDir(), "settings.json");
|
|
48
|
+
}
|
|
49
|
+
function getClaudeMdPath() {
|
|
50
|
+
return path_1.default.join(getClaudeConfigDir(), "CLAUDE.md");
|
|
51
|
+
}
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
// Paths — package
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
function getPackageRoot() {
|
|
56
|
+
// __dirname is dist/src/ after build, so go two levels up
|
|
57
|
+
return path_1.default.resolve(__dirname, "..", "..");
|
|
58
|
+
}
|
|
59
|
+
function getPluginSrc() {
|
|
60
|
+
return path_1.default.join(getPackageRoot(), "plugin", "memory.ts");
|
|
61
|
+
}
|
|
62
|
+
function getSkillSrc() {
|
|
63
|
+
return path_1.default.join(getPackageRoot(), "skill", "memory.md");
|
|
64
|
+
}
|
|
65
|
+
function getMcpServerPath() {
|
|
66
|
+
return path_1.default.join(getPackageRoot(), "dist", "mcp", "index.js");
|
|
67
|
+
}
|
|
68
|
+
function getIndexerCliPath() {
|
|
69
|
+
return path_1.default.join(getPackageRoot(), "dist", "src", "indexer-cli.js");
|
|
70
|
+
}
|
|
71
|
+
function getIndexerCliClaudePath() {
|
|
72
|
+
return path_1.default.join(getPackageRoot(), "dist", "src", "indexer-cli-claude.js");
|
|
73
|
+
}
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// Helpers
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
function ensureDir(dir) {
|
|
78
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
79
|
+
}
|
|
80
|
+
function copyFile(src, dst) {
|
|
81
|
+
if (!fs_1.default.existsSync(src)) {
|
|
82
|
+
throw new Error(`Source file not found: ${src}\nDid you run "npm run build" first?`);
|
|
83
|
+
}
|
|
84
|
+
ensureDir(path_1.default.dirname(dst));
|
|
85
|
+
fs_1.default.copyFileSync(src, dst);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Copies the OpenCode plugin template, replacing the OPENCODE_MEMORY_INDEXER_PATH
|
|
89
|
+
* placeholder with the absolute path to indexer-cli.js.
|
|
90
|
+
*/
|
|
91
|
+
function installOpenCodePlugin(src, dst) {
|
|
92
|
+
if (!fs_1.default.existsSync(src)) {
|
|
93
|
+
throw new Error(`Plugin source not found: ${src}\nDid you run "npm run build" first?`);
|
|
94
|
+
}
|
|
95
|
+
let content = fs_1.default.readFileSync(src, "utf8");
|
|
96
|
+
content = content.replace('"OPENCODE_MEMORY_INDEXER_PATH"', JSON.stringify(getIndexerCliPath()));
|
|
97
|
+
ensureDir(path_1.default.dirname(dst));
|
|
98
|
+
fs_1.default.writeFileSync(dst, content, "utf8");
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Merges the code-session-memory MCP entry into the global opencode.json.
|
|
102
|
+
*/
|
|
103
|
+
function installOpenCodeMcpConfig(mcpServerPath) {
|
|
104
|
+
const configPath = getGlobalOpenCodeConfigPath();
|
|
105
|
+
const existed = fs_1.default.existsSync(configPath);
|
|
106
|
+
let config = { $schema: "https://opencode.ai/config.json" };
|
|
107
|
+
if (existed) {
|
|
108
|
+
try {
|
|
109
|
+
config = JSON.parse(fs_1.default.readFileSync(configPath, "utf8"));
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
throw new Error(`Could not parse existing ${configPath} — please check it is valid JSON.`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!config.mcp || typeof config.mcp !== "object")
|
|
116
|
+
config.mcp = {};
|
|
117
|
+
config.mcp["code-session-memory"] = {
|
|
118
|
+
type: "local",
|
|
119
|
+
command: ["node", mcpServerPath],
|
|
120
|
+
};
|
|
121
|
+
ensureDir(path_1.default.dirname(configPath));
|
|
122
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf8");
|
|
123
|
+
return { configPath, existed };
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Removes the code-session-memory MCP entry from opencode.json.
|
|
127
|
+
*/
|
|
128
|
+
function uninstallOpenCodeMcpConfig() {
|
|
129
|
+
const configPath = getGlobalOpenCodeConfigPath();
|
|
130
|
+
if (!fs_1.default.existsSync(configPath))
|
|
131
|
+
return "not_found";
|
|
132
|
+
try {
|
|
133
|
+
const cfg = JSON.parse(fs_1.default.readFileSync(configPath, "utf8"));
|
|
134
|
+
if (cfg.mcp && typeof cfg.mcp === "object" && "code-session-memory" in cfg.mcp) {
|
|
135
|
+
delete cfg.mcp["code-session-memory"];
|
|
136
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(cfg, null, 2) + "\n", "utf8");
|
|
137
|
+
return "done";
|
|
138
|
+
}
|
|
139
|
+
return "not_found";
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return "not_found";
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Installs/updates the Claude Code Stop hook in ~/.claude/settings.json.
|
|
147
|
+
*/
|
|
148
|
+
function installClaudeHook(indexerCliClaudePath) {
|
|
149
|
+
const settingsPath = getClaudeSettingsPath();
|
|
150
|
+
const existed = fs_1.default.existsSync(settingsPath);
|
|
151
|
+
let settings = {};
|
|
152
|
+
if (existed) {
|
|
153
|
+
try {
|
|
154
|
+
settings = JSON.parse(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
throw new Error(`Could not parse existing ${settingsPath} — please check it is valid JSON.`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (!settings.hooks || typeof settings.hooks !== "object")
|
|
161
|
+
settings.hooks = {};
|
|
162
|
+
const hooks = settings.hooks;
|
|
163
|
+
// Remove any existing code-session-memory Stop hook
|
|
164
|
+
if (Array.isArray(hooks.Stop)) {
|
|
165
|
+
hooks.Stop = hooks.Stop.filter((group) => {
|
|
166
|
+
if (!group || typeof group !== "object")
|
|
167
|
+
return true;
|
|
168
|
+
const g = group;
|
|
169
|
+
if (!Array.isArray(g.hooks))
|
|
170
|
+
return true;
|
|
171
|
+
return !g.hooks.some((h) => {
|
|
172
|
+
const handler = h;
|
|
173
|
+
return typeof handler.command === "string" &&
|
|
174
|
+
handler.command.includes("indexer-cli-claude");
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
hooks.Stop = [];
|
|
180
|
+
}
|
|
181
|
+
// Add our hook
|
|
182
|
+
hooks.Stop.push({
|
|
183
|
+
hooks: [
|
|
184
|
+
{
|
|
185
|
+
type: "command",
|
|
186
|
+
command: `node ${indexerCliClaudePath}`,
|
|
187
|
+
async: true,
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
});
|
|
191
|
+
ensureDir(path_1.default.dirname(settingsPath));
|
|
192
|
+
fs_1.default.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf8");
|
|
193
|
+
return { settingsPath, existed };
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Removes the code-session-memory Stop hook from ~/.claude/settings.json.
|
|
197
|
+
*/
|
|
198
|
+
function uninstallClaudeHook() {
|
|
199
|
+
const settingsPath = getClaudeSettingsPath();
|
|
200
|
+
if (!fs_1.default.existsSync(settingsPath))
|
|
201
|
+
return "not_found";
|
|
202
|
+
try {
|
|
203
|
+
const settings = JSON.parse(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
204
|
+
const hooks = settings.hooks;
|
|
205
|
+
if (!hooks || !Array.isArray(hooks.Stop))
|
|
206
|
+
return "not_found";
|
|
207
|
+
const before = hooks.Stop.length;
|
|
208
|
+
hooks.Stop = hooks.Stop.filter((group) => {
|
|
209
|
+
if (!group || typeof group !== "object")
|
|
210
|
+
return true;
|
|
211
|
+
const g = group;
|
|
212
|
+
if (!Array.isArray(g.hooks))
|
|
213
|
+
return true;
|
|
214
|
+
return !g.hooks.some((h) => {
|
|
215
|
+
const handler = h;
|
|
216
|
+
return typeof handler.command === "string" &&
|
|
217
|
+
handler.command.includes("indexer-cli-claude");
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
if (hooks.Stop.length === before)
|
|
221
|
+
return "not_found";
|
|
222
|
+
fs_1.default.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf8");
|
|
223
|
+
return "done";
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return "not_found";
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Appends the memory skill context to ~/.claude/CLAUDE.md.
|
|
231
|
+
*/
|
|
232
|
+
function installClaudeMd(skillSrc) {
|
|
233
|
+
const mdPath = getClaudeMdPath();
|
|
234
|
+
const existed = fs_1.default.existsSync(mdPath);
|
|
235
|
+
const marker = "<!-- code-session-memory -->";
|
|
236
|
+
const skillContent = fs_1.default.existsSync(skillSrc)
|
|
237
|
+
? fs_1.default.readFileSync(skillSrc, "utf8")
|
|
238
|
+
: "";
|
|
239
|
+
if (existed) {
|
|
240
|
+
const current = fs_1.default.readFileSync(mdPath, "utf8");
|
|
241
|
+
// Replace existing block if present
|
|
242
|
+
if (current.includes(marker)) {
|
|
243
|
+
const updated = current.replace(new RegExp(`${marker}[\\s\\S]*?${marker}`, "g"), `${marker}\n${skillContent}\n${marker}`);
|
|
244
|
+
fs_1.default.writeFileSync(mdPath, updated, "utf8");
|
|
245
|
+
return { mdPath, existed };
|
|
246
|
+
}
|
|
247
|
+
// Append
|
|
248
|
+
fs_1.default.writeFileSync(mdPath, current + `\n\n${marker}\n${skillContent}\n${marker}\n`, "utf8");
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
ensureDir(path_1.default.dirname(mdPath));
|
|
252
|
+
fs_1.default.writeFileSync(mdPath, `${marker}\n${skillContent}\n${marker}\n`, "utf8");
|
|
253
|
+
}
|
|
254
|
+
return { mdPath, existed };
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Removes the code-session-memory block from CLAUDE.md.
|
|
258
|
+
*/
|
|
259
|
+
function uninstallClaudeMd() {
|
|
260
|
+
const mdPath = getClaudeMdPath();
|
|
261
|
+
if (!fs_1.default.existsSync(mdPath))
|
|
262
|
+
return "not_found";
|
|
263
|
+
const marker = "<!-- code-session-memory -->";
|
|
264
|
+
const content = fs_1.default.readFileSync(mdPath, "utf8");
|
|
265
|
+
if (!content.includes(marker))
|
|
266
|
+
return "not_found";
|
|
267
|
+
const updated = content
|
|
268
|
+
.replace(new RegExp(`\\n?\\n?${marker}[\\s\\S]*?${marker}\\n?`, "g"), "")
|
|
269
|
+
.trimEnd();
|
|
270
|
+
fs_1.default.writeFileSync(mdPath, updated ? updated + "\n" : "", "utf8");
|
|
271
|
+
return "done";
|
|
272
|
+
}
|
|
273
|
+
function checkMcpConfigured() {
|
|
274
|
+
const configPath = getGlobalOpenCodeConfigPath();
|
|
275
|
+
try {
|
|
276
|
+
const raw = fs_1.default.readFileSync(configPath, "utf8");
|
|
277
|
+
const cfg = JSON.parse(raw);
|
|
278
|
+
return !!(cfg.mcp && typeof cfg.mcp === "object" && "code-session-memory" in cfg.mcp);
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return false;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function checkClaudeHookInstalled() {
|
|
285
|
+
const settingsPath = getClaudeSettingsPath();
|
|
286
|
+
try {
|
|
287
|
+
const settings = JSON.parse(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
288
|
+
const hooks = settings.hooks;
|
|
289
|
+
if (!hooks || !Array.isArray(hooks.Stop))
|
|
290
|
+
return false;
|
|
291
|
+
return hooks.Stop.some((group) => {
|
|
292
|
+
if (!group || typeof group !== "object")
|
|
293
|
+
return false;
|
|
294
|
+
const g = group;
|
|
295
|
+
if (!Array.isArray(g.hooks))
|
|
296
|
+
return false;
|
|
297
|
+
return g.hooks.some((h) => {
|
|
298
|
+
const handler = h;
|
|
299
|
+
return typeof handler.command === "string" &&
|
|
300
|
+
handler.command.includes("indexer-cli-claude");
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function checkClaudeMdInstalled() {
|
|
309
|
+
const mdPath = getClaudeMdPath();
|
|
310
|
+
if (!fs_1.default.existsSync(mdPath))
|
|
311
|
+
return false;
|
|
312
|
+
return fs_1.default.readFileSync(mdPath, "utf8").includes("<!-- code-session-memory -->");
|
|
313
|
+
}
|
|
314
|
+
// ---------------------------------------------------------------------------
|
|
315
|
+
// Formatting helpers
|
|
316
|
+
// ---------------------------------------------------------------------------
|
|
317
|
+
function bold(s) { return `\x1b[1m${s}\x1b[0m`; }
|
|
318
|
+
function green(s) { return `\x1b[32m${s}\x1b[0m`; }
|
|
319
|
+
function red(s) { return `\x1b[31m${s}\x1b[0m`; }
|
|
320
|
+
function dim(s) { return `\x1b[2m${s}\x1b[0m`; }
|
|
321
|
+
function ok(v) { return v ? green("✓") : red("✗"); }
|
|
322
|
+
function step(label, fn) {
|
|
323
|
+
process.stdout.write(` ${label}... `);
|
|
324
|
+
try {
|
|
325
|
+
const result = fn();
|
|
326
|
+
console.log(green("done") + (result ? dim(` (${result})`) : ""));
|
|
327
|
+
}
|
|
328
|
+
catch (err) {
|
|
329
|
+
console.log(red("failed"));
|
|
330
|
+
console.error(` Error: ${err instanceof Error ? err.message : String(err)}`);
|
|
331
|
+
process.exit(1);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// ---------------------------------------------------------------------------
|
|
335
|
+
// Commands
|
|
336
|
+
// ---------------------------------------------------------------------------
|
|
337
|
+
function install() {
|
|
338
|
+
console.log(bold("\ncode-session-memory install\n"));
|
|
339
|
+
const dbPath = (0, database_1.resolveDbPath)();
|
|
340
|
+
const mcpPath = getMcpServerPath();
|
|
341
|
+
const indexerClaudePath = getIndexerCliClaudePath();
|
|
342
|
+
// 1. DB
|
|
343
|
+
step("Initialising database", () => {
|
|
344
|
+
ensureDir(path_1.default.dirname(dbPath));
|
|
345
|
+
const db = (0, database_1.openDatabase)({ dbPath });
|
|
346
|
+
db.close();
|
|
347
|
+
return dbPath;
|
|
348
|
+
});
|
|
349
|
+
// 2. OpenCode plugin
|
|
350
|
+
step("Installing OpenCode plugin", () => {
|
|
351
|
+
const dst = getOpenCodePluginDst();
|
|
352
|
+
installOpenCodePlugin(getPluginSrc(), dst);
|
|
353
|
+
return dst;
|
|
354
|
+
});
|
|
355
|
+
// 3. OpenCode skill
|
|
356
|
+
step("Installing OpenCode skill", () => {
|
|
357
|
+
const dst = getOpenCodeSkillDst();
|
|
358
|
+
copyFile(getSkillSrc(), dst);
|
|
359
|
+
return dst;
|
|
360
|
+
});
|
|
361
|
+
// 4. OpenCode MCP config
|
|
362
|
+
step("Configuring OpenCode MCP server", () => {
|
|
363
|
+
const { configPath, existed } = installOpenCodeMcpConfig(mcpPath);
|
|
364
|
+
return `${existed ? "updated" : "created"} ${configPath}`;
|
|
365
|
+
});
|
|
366
|
+
// 5. Claude Code hook
|
|
367
|
+
step("Installing Claude Code Stop hook", () => {
|
|
368
|
+
const { settingsPath, existed } = installClaudeHook(indexerClaudePath);
|
|
369
|
+
return `${existed ? "updated" : "created"} ${settingsPath}`;
|
|
370
|
+
});
|
|
371
|
+
// 6. Claude Code CLAUDE.md
|
|
372
|
+
step("Installing Claude Code context (CLAUDE.md)", () => {
|
|
373
|
+
const { mdPath, existed } = installClaudeMd(getSkillSrc());
|
|
374
|
+
return `${existed ? "updated" : "created"} ${mdPath}`;
|
|
375
|
+
});
|
|
376
|
+
console.log(`
|
|
377
|
+
${bold("Installation complete!")}
|
|
378
|
+
|
|
379
|
+
${bold("Required environment variable:")}
|
|
380
|
+
OPENAI_API_KEY — for embedding generation
|
|
381
|
+
|
|
382
|
+
${bold("Default DB path:")} ${dbPath}
|
|
383
|
+
|
|
384
|
+
Restart ${bold("OpenCode")} and ${bold("Claude Code")} to activate.
|
|
385
|
+
Run ${bold("npx code-session-memory status")} to verify.
|
|
386
|
+
`);
|
|
387
|
+
}
|
|
388
|
+
function status() {
|
|
389
|
+
console.log(bold("\ncode-session-memory status\n"));
|
|
390
|
+
const dbPath = (0, database_1.resolveDbPath)();
|
|
391
|
+
const mcpPath = getMcpServerPath();
|
|
392
|
+
console.log(bold(" OpenCode"));
|
|
393
|
+
console.log(` ${ok(fs_1.default.existsSync(getOpenCodePluginDst()))} Plugin ${dim(getOpenCodePluginDst())}`);
|
|
394
|
+
console.log(` ${ok(fs_1.default.existsSync(getOpenCodeSkillDst()))} Skill ${dim(getOpenCodeSkillDst())}`);
|
|
395
|
+
console.log(` ${ok(checkMcpConfigured())} MCP config ${dim(getGlobalOpenCodeConfigPath())}`);
|
|
396
|
+
console.log(bold("\n Claude Code"));
|
|
397
|
+
console.log(` ${ok(checkClaudeHookInstalled())} Stop hook ${dim(getClaudeSettingsPath())}`);
|
|
398
|
+
console.log(` ${ok(checkClaudeMdInstalled())} CLAUDE.md ${dim(getClaudeMdPath())}`);
|
|
399
|
+
console.log(bold("\n Shared"));
|
|
400
|
+
console.log(` ${ok(fs_1.default.existsSync(mcpPath))} MCP server ${dim(mcpPath)}`);
|
|
401
|
+
console.log(` ${ok(fs_1.default.existsSync(dbPath))} Database ${dim(dbPath)}`);
|
|
402
|
+
if (fs_1.default.existsSync(dbPath)) {
|
|
403
|
+
try {
|
|
404
|
+
const db = (0, database_1.openDatabase)({ dbPath });
|
|
405
|
+
const chunks = db.prepare("SELECT COUNT(*) as n FROM vec_items").get().n;
|
|
406
|
+
const sessions = db.prepare("SELECT COUNT(*) as n FROM sessions_meta").get().n;
|
|
407
|
+
const bySource = db.prepare("SELECT source, COUNT(*) as n FROM sessions_meta GROUP BY source").all();
|
|
408
|
+
db.close();
|
|
409
|
+
console.log(`\n ${dim("Indexed chunks: ")}${chunks}`);
|
|
410
|
+
console.log(` ${dim("Sessions tracked: ")}${sessions}`);
|
|
411
|
+
for (const row of bySource) {
|
|
412
|
+
console.log(` ${dim(`${row.source}:`)} ${row.n}`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
catch { /* DB might be empty */ }
|
|
416
|
+
}
|
|
417
|
+
const allOk = fs_1.default.existsSync(getOpenCodePluginDst()) &&
|
|
418
|
+
fs_1.default.existsSync(getOpenCodeSkillDst()) &&
|
|
419
|
+
checkMcpConfigured() &&
|
|
420
|
+
checkClaudeHookInstalled() &&
|
|
421
|
+
checkClaudeMdInstalled() &&
|
|
422
|
+
fs_1.default.existsSync(mcpPath) &&
|
|
423
|
+
fs_1.default.existsSync(dbPath);
|
|
424
|
+
console.log(`\n ${allOk
|
|
425
|
+
? green("All components installed.")
|
|
426
|
+
: red("Some components missing — run \"npx code-session-memory install\".")}\n`);
|
|
427
|
+
}
|
|
428
|
+
function uninstall() {
|
|
429
|
+
console.log(bold("\ncode-session-memory uninstall\n"));
|
|
430
|
+
const items = [
|
|
431
|
+
["OpenCode plugin", () => {
|
|
432
|
+
const p = getOpenCodePluginDst();
|
|
433
|
+
if (fs_1.default.existsSync(p))
|
|
434
|
+
fs_1.default.unlinkSync(p);
|
|
435
|
+
else
|
|
436
|
+
throw new Error("not found");
|
|
437
|
+
}],
|
|
438
|
+
["OpenCode skill", () => {
|
|
439
|
+
const p = getOpenCodeSkillDst();
|
|
440
|
+
if (fs_1.default.existsSync(p))
|
|
441
|
+
fs_1.default.unlinkSync(p);
|
|
442
|
+
else
|
|
443
|
+
throw new Error("not found");
|
|
444
|
+
}],
|
|
445
|
+
["OpenCode MCP config", () => {
|
|
446
|
+
if (uninstallOpenCodeMcpConfig() === "not_found")
|
|
447
|
+
throw new Error("not found");
|
|
448
|
+
}],
|
|
449
|
+
["Claude Code hook", () => {
|
|
450
|
+
if (uninstallClaudeHook() === "not_found")
|
|
451
|
+
throw new Error("not found");
|
|
452
|
+
}],
|
|
453
|
+
["Claude Code CLAUDE.md", () => {
|
|
454
|
+
if (uninstallClaudeMd() === "not_found")
|
|
455
|
+
throw new Error("not found");
|
|
456
|
+
}],
|
|
457
|
+
];
|
|
458
|
+
for (const [label, fn] of items) {
|
|
459
|
+
process.stdout.write(` Removing ${label}... `);
|
|
460
|
+
try {
|
|
461
|
+
fn();
|
|
462
|
+
console.log(green("done"));
|
|
463
|
+
}
|
|
464
|
+
catch {
|
|
465
|
+
console.log(dim("not found"));
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
console.log(`
|
|
469
|
+
${dim("Note: the database was NOT removed.")}
|
|
470
|
+
${dim(`To delete it: rm "${(0, database_1.resolveDbPath)()}"`)}
|
|
471
|
+
`);
|
|
472
|
+
}
|
|
473
|
+
function help() {
|
|
474
|
+
console.log(`
|
|
475
|
+
${bold("code-session-memory")} — Shared vector memory for OpenCode and Claude Code sessions
|
|
476
|
+
|
|
477
|
+
${bold("Usage:")}
|
|
478
|
+
npx code-session-memory install Install all components (OpenCode + Claude Code)
|
|
479
|
+
npx code-session-memory status Show installation status and DB stats
|
|
480
|
+
npx code-session-memory uninstall Remove all installed components (keeps DB)
|
|
481
|
+
npx code-session-memory help Show this help
|
|
482
|
+
|
|
483
|
+
${bold("Environment variables:")}
|
|
484
|
+
OPENAI_API_KEY Required for embedding generation
|
|
485
|
+
OPENCODE_MEMORY_DB_PATH Override the default DB path
|
|
486
|
+
OPENCODE_CONFIG_DIR Override the OpenCode config directory
|
|
487
|
+
CLAUDE_CONFIG_DIR Override the Claude Code config directory
|
|
488
|
+
`);
|
|
489
|
+
}
|
|
490
|
+
// ---------------------------------------------------------------------------
|
|
491
|
+
// Entry point
|
|
492
|
+
// ---------------------------------------------------------------------------
|
|
493
|
+
const cmd = process.argv[2] ?? "help";
|
|
494
|
+
switch (cmd) {
|
|
495
|
+
case "install":
|
|
496
|
+
install();
|
|
497
|
+
break;
|
|
498
|
+
case "status":
|
|
499
|
+
status();
|
|
500
|
+
break;
|
|
501
|
+
case "uninstall":
|
|
502
|
+
uninstall();
|
|
503
|
+
break;
|
|
504
|
+
case "help":
|
|
505
|
+
case "--help":
|
|
506
|
+
case "-h":
|
|
507
|
+
help();
|
|
508
|
+
break;
|
|
509
|
+
default:
|
|
510
|
+
console.error(`Unknown command: ${cmd}`);
|
|
511
|
+
help();
|
|
512
|
+
process.exit(1);
|
|
513
|
+
}
|
|
514
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { DocumentChunk, SessionMeta, SessionSource, DatabaseConfig, QueryResult } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the default DB path cross-platform:
|
|
4
|
+
* - Respects OPENCODE_MEMORY_DB_PATH env var
|
|
5
|
+
* - Falls back to ~/.local/share/opencode-memory/sessions.db (works on both
|
|
6
|
+
* macOS and Linux)
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveDbPath(overridePath?: string): string;
|
|
9
|
+
export interface Database {
|
|
10
|
+
prepare: (sql: string) => Statement;
|
|
11
|
+
exec: (sql: string) => void;
|
|
12
|
+
pragma: (sql: string, opts?: {
|
|
13
|
+
simple?: boolean;
|
|
14
|
+
}) => unknown;
|
|
15
|
+
close: () => void;
|
|
16
|
+
transaction: <T>(fn: (...args: unknown[]) => T) => (...args: unknown[]) => T;
|
|
17
|
+
}
|
|
18
|
+
export interface Statement {
|
|
19
|
+
run: (...args: unknown[]) => {
|
|
20
|
+
changes: number;
|
|
21
|
+
lastInsertRowid: number | bigint;
|
|
22
|
+
};
|
|
23
|
+
get: (...args: unknown[]) => unknown;
|
|
24
|
+
all: (...args: unknown[]) => unknown[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Opens (or creates) a better-sqlite3 database with the sqlite-vec extension
|
|
28
|
+
* loaded. Initialises the schema if needed.
|
|
29
|
+
*/
|
|
30
|
+
export declare function openDatabase(config: DatabaseConfig): Database;
|
|
31
|
+
/**
|
|
32
|
+
* Creates the schema tables if they don't already exist.
|
|
33
|
+
* Exported so tests can call it with an in-memory DB.
|
|
34
|
+
*/
|
|
35
|
+
export declare function initSchema(db: Database, embeddingDimension?: number): void;
|
|
36
|
+
export declare function getSessionMeta(db: Database, sessionId: string): SessionMeta | null;
|
|
37
|
+
export declare function upsertSessionMeta(db: Database, meta: SessionMeta): void;
|
|
38
|
+
/**
|
|
39
|
+
* Inserts a batch of chunks + their embeddings inside a single transaction.
|
|
40
|
+
* Chunks with duplicate chunk_ids are silently skipped (IGNORE conflict).
|
|
41
|
+
*/
|
|
42
|
+
export declare function insertChunks(db: Database, chunks: DocumentChunk[], embeddings: number[][]): void;
|
|
43
|
+
export declare function queryByEmbedding(db: Database, queryEmbedding: number[], topK?: number, projectFilter?: string, sourceFilter?: SessionSource): QueryResult[];
|
|
44
|
+
export declare function getChunksByUrl(db: Database, url: string, startIndex?: number, endIndex?: number): QueryResult[];
|
|
45
|
+
/**
|
|
46
|
+
* Lists all session URLs stored in the DB (for "get_session_chunks" calls that
|
|
47
|
+
* pass a session_id instead of a full URL).
|
|
48
|
+
*/
|
|
49
|
+
export declare function listSessionUrls(db: Database, sessionId: string): string[];
|
|
50
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQtG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAS3D;AAMD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC;IAC9D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnF,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IACrC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;CACxC;AAkBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,QAAQ,CAgB7D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,SAA8B,GAAG,IAAI,CAqC/F;AAMD,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAKlF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAkBvE;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,EAAE,GACrB,IAAI,CAkDN;AAMD,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,SAAK,EACT,aAAa,CAAC,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,aAAa,GAC3B,WAAW,EAAE,CAuCf;AAED,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,WAAW,EAAE,CAmBf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAKzE"}
|