code-session-memory 0.8.1 → 0.9.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 +36 -16
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/src/cli-query.js +3 -3
- package/dist/src/cli-query.js.map +1 -1
- package/dist/src/cli.js +290 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/indexer-cli-vscode.d.ts +14 -0
- package/dist/src/indexer-cli-vscode.d.ts.map +1 -0
- package/dist/src/indexer-cli-vscode.js +88 -0
- package/dist/src/indexer-cli-vscode.js.map +1 -0
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/vscode-transcript-to-messages.d.ts +41 -0
- package/dist/src/vscode-transcript-to-messages.d.ts.map +1 -0
- package/dist/src/vscode-transcript-to-messages.js +167 -0
- package/dist/src/vscode-transcript-to-messages.js.map +1 -0
- package/package.json +4 -3
- package/skill/memory.md +7 -4
package/README.md
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
# code-session-memory
|
|
2
2
|
|
|
3
|
-
Automatic vector memory for [OpenCode](https://opencode.ai), [Claude Code](https://claude.ai/code),
|
|
3
|
+
Automatic vector memory for [OpenCode](https://opencode.ai), [Claude Code](https://claude.ai/code), [Cursor](https://www.cursor.com), and [VS Code](https://code.visualstudio.com) sessions — shared across all four tools.
|
|
4
4
|
|
|
5
|
-
Every time the AI agent finishes its turn, `code-session-memory` automatically indexes the new messages into a local [sqlite-vec](https://github.com/asg017/sqlite-vec) vector database. Past sessions become semantically searchable — both by the AI agent (via the MCP server) and by you. Sessions from OpenCode, Claude Code, and
|
|
5
|
+
Every time the AI agent finishes its turn, `code-session-memory` automatically indexes the new messages into a local [sqlite-vec](https://github.com/asg017/sqlite-vec) vector database. Past sessions become semantically searchable — both by the AI agent (via the MCP server) and by you. Sessions from OpenCode, Claude Code, Cursor, and VS Code are stored in the **same database**, so memory is shared across tools.
|
|
6
6
|
|
|
7
7
|
## How it works
|
|
8
8
|
|
|
9
9
|
```
|
|
10
|
-
OpenCode (session.idle) Claude Code (Stop hook) Cursor (stop hook)
|
|
11
|
-
│ │ │
|
|
12
|
-
│ REST API messages │ JSONL transcript │ JSONL transcript
|
|
13
|
-
▼ ▼ ▼
|
|
14
|
-
session-to-md transcript-to-messages cursor-transcript-to-messages
|
|
15
|
-
│ │ │
|
|
16
|
-
|
|
10
|
+
OpenCode (session.idle) Claude Code (Stop hook) Cursor (stop hook) VS Code (Stop hook)
|
|
11
|
+
│ │ │ │
|
|
12
|
+
│ REST API messages │ JSONL transcript │ JSONL transcript │ JSONL transcript
|
|
13
|
+
▼ ▼ ▼ ▼
|
|
14
|
+
session-to-md transcript-to-messages cursor-transcript-to-messages vscode-transcript-to-messages
|
|
15
|
+
│ │ │ │
|
|
16
|
+
└───────────────────────────┴────────────────────────┴──────────────────────┘
|
|
17
17
|
▼
|
|
18
18
|
chunker → heading-aware chunks (≤1000 tokens, 10% overlap)
|
|
19
19
|
│
|
|
@@ -43,7 +43,7 @@ Only **new messages** are indexed on each turn — previously indexed messages a
|
|
|
43
43
|
npx code-session-memory install
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
The `install` command sets up everything for all
|
|
46
|
+
The `install` command sets up everything for all four tools in one shot:
|
|
47
47
|
|
|
48
48
|
**OpenCode:**
|
|
49
49
|
1. Copies the plugin to `~/.config/opencode/plugins/code-session-memory.ts`
|
|
@@ -60,11 +60,18 @@ The `install` command sets up everything for all three tools in one shot:
|
|
|
60
60
|
2. Writes the MCP server entry into `~/.cursor/mcp.json`
|
|
61
61
|
3. Copies the skill to `~/.cursor/skills/code-session-memory/SKILL.md`
|
|
62
62
|
|
|
63
|
+
**VS Code:**
|
|
64
|
+
1. Writes a `Stop` hook to `~/.vscode/hooks/code-session-memory.json` (Copilot hook format)
|
|
65
|
+
2. Registers the hook file in VS Code's `settings.json` via `chat.hookFilesLocations`
|
|
66
|
+
3. Writes the MCP server entry into `~/.config/Code/User/mcp.json` (Linux) or `~/Library/Application Support/Code/User/mcp.json` (macOS)
|
|
67
|
+
|
|
63
68
|
**All tools share:**
|
|
64
69
|
- The same database at `~/.local/share/code-session-memory/sessions.db`
|
|
65
70
|
- The same MCP server for querying past sessions
|
|
66
71
|
|
|
67
|
-
Then **restart OpenCode / Claude Code / Cursor** to activate.
|
|
72
|
+
Then **restart OpenCode / Claude Code / Cursor / VS Code** to activate.
|
|
73
|
+
|
|
74
|
+
> **VS Code note:** Ensure **Chat: Use Hooks** is enabled in VS Code settings (it is by default in VS Code 1.109.3+).
|
|
68
75
|
|
|
69
76
|
### Set your API key
|
|
70
77
|
|
|
@@ -76,7 +83,7 @@ Add this to your shell profile (`.bashrc`, `.zshrc`, etc.) so it's always availa
|
|
|
76
83
|
|
|
77
84
|
## Usage
|
|
78
85
|
|
|
79
|
-
Once installed, memory indexing is **fully automatic**. No further action needed — sessions are indexed as you use OpenCode or
|
|
86
|
+
Once installed, memory indexing is **fully automatic**. No further action needed — sessions are indexed as you use OpenCode, Claude Code, Cursor, or VS Code.
|
|
80
87
|
|
|
81
88
|
### Verify installation
|
|
82
89
|
|
|
@@ -102,6 +109,11 @@ code-session-memory status
|
|
|
102
109
|
Stop hook ~/.claude.json ✓
|
|
103
110
|
Skill ~/.claude/CLAUDE.md ✓
|
|
104
111
|
MCP server /path/to/dist/mcp/index.js ✓
|
|
112
|
+
|
|
113
|
+
VS Code
|
|
114
|
+
MCP config ~/.config/Code/User/mcp.json ✓
|
|
115
|
+
Stop hook ~/.vscode/hooks/code-session-memory.json ✓
|
|
116
|
+
Hook loc ~/.config/Code/User/settings.json ✓
|
|
105
117
|
```
|
|
106
118
|
|
|
107
119
|
### MCP tools
|
|
@@ -116,7 +128,7 @@ Semantic search across all indexed sessions.
|
|
|
116
128
|
|---|---|---|---|
|
|
117
129
|
| `queryText` | string | yes | Natural language query |
|
|
118
130
|
| `project` | string | no | Filter by project directory path |
|
|
119
|
-
| `source` | string | no | Filter by tool: `"opencode"`, `"claude-code"`, or `"
|
|
131
|
+
| `source` | string | no | Filter by tool: `"opencode"`, `"claude-code"`, `"cursor"`, or `"vscode"` |
|
|
120
132
|
| `limit` | number | no | Max results (default: 5) |
|
|
121
133
|
| `fromDate` | string | no | Return chunks indexed on or after this date (ISO 8601, e.g. `"2026-02-01"`) |
|
|
122
134
|
| `toDate` | string | no | Return chunks indexed on or before this date (ISO 8601, e.g. `"2026-02-20"`) |
|
|
@@ -157,7 +169,7 @@ npx code-session-memory query "error handling" --from 2026-02-01 --to 2026-02-20
|
|
|
157
169
|
|
|
158
170
|
| Flag | Default | Description |
|
|
159
171
|
|---|---|---|
|
|
160
|
-
| `--source <s>` | none | Filter by tool: `opencode`, `claude-code`, or `
|
|
172
|
+
| `--source <s>` | none | Filter by tool: `opencode`, `claude-code`, `cursor`, or `vscode` |
|
|
161
173
|
| `--limit <n>` | 5 | Max number of results |
|
|
162
174
|
| `--from <date>` | none | Only include sessions from this date (ISO 8601, e.g. `2026-02-01`) |
|
|
163
175
|
| `--to <date>` | none | Only include sessions up to this date (inclusive) |
|
|
@@ -244,6 +256,7 @@ Show me how we solved the TypeScript config issue.
|
|
|
244
256
|
| `OPENCODE_CONFIG_DIR` | `~/.config/opencode` | Override the OpenCode config directory. |
|
|
245
257
|
| `CLAUDE_CONFIG_DIR` | `~/.claude` | Override the Claude Code config directory. |
|
|
246
258
|
| `CURSOR_CONFIG_DIR` | `~/.cursor` | Override the Cursor config directory. |
|
|
259
|
+
| `VSCODE_CONFIG_DIR` | `~/.config/Code/User` (Linux) / `~/Library/Application Support/Code/User` (macOS) | Override the VS Code config directory. |
|
|
247
260
|
| `OPENAI_MODEL` | `text-embedding-3-large` | Override the embedding model. |
|
|
248
261
|
|
|
249
262
|
### Database path
|
|
@@ -269,11 +282,13 @@ code-session-memory/
|
|
|
269
282
|
│ ├── transcript-to-messages.ts # Claude Code JSONL transcript parser
|
|
270
283
|
│ ├── cursor-to-messages.ts # Cursor state.vscdb reader (metadata + title)
|
|
271
284
|
│ ├── cursor-transcript-to-messages.ts # Cursor JSONL transcript parser → FullMessage[]
|
|
285
|
+
│ ├── vscode-transcript-to-messages.ts # VS Code JSONL transcript parser → FullMessage[]
|
|
272
286
|
│ ├── opencode-db-to-messages.ts # OpenCode internal DB reader (fallback for -s mode)
|
|
273
287
|
│ ├── indexer.ts # Orchestrator: incremental indexing
|
|
274
288
|
│ ├── indexer-cli.ts # Node.js subprocess (called by OpenCode plugin)
|
|
275
289
|
│ ├── indexer-cli-claude.ts # Node.js subprocess (called by Claude Code hook)
|
|
276
290
|
│ ├── indexer-cli-cursor.ts # Node.js subprocess (called by Cursor stop hook)
|
|
291
|
+
│ ├── indexer-cli-vscode.ts # Node.js subprocess (called by VS Code Stop hook)
|
|
277
292
|
│ ├── cli.ts # install / status / uninstall / reset-db / query commands
|
|
278
293
|
│ ├── cli-query.ts # query command: semantic search from the terminal
|
|
279
294
|
│ └── cli-sessions.ts # sessions list / print / delete / purge (TUI)
|
|
@@ -295,6 +310,7 @@ code-session-memory/
|
|
|
295
310
|
├── session-to-md.test.ts
|
|
296
311
|
├── cursor-to-messages.test.ts # Unit tests: Cursor SQLite reader
|
|
297
312
|
├── cursor-transcript-to-messages.test.ts # Unit tests: Cursor JSONL parser
|
|
313
|
+
├── vscode-transcript-to-messages.test.ts # Unit tests: VS Code JSONL parser
|
|
298
314
|
├── opencode-db-to-messages.test.ts # Unit tests: OpenCode internal DB reader
|
|
299
315
|
├── cli-query.test.ts # Unit tests: query CLI command
|
|
300
316
|
├── e2e-claude.test.ts # End-to-end: Claude Code pipeline
|
|
@@ -361,7 +377,7 @@ This invokes the real `claude` and `opencode` CLIs to generate two-turn sessions
|
|
|
361
377
|
npx code-session-memory uninstall
|
|
362
378
|
```
|
|
363
379
|
|
|
364
|
-
This removes the plugin, hooks, skill files, and MCP config entries for all tools (OpenCode, Claude Code, and
|
|
380
|
+
This removes the plugin, hooks, skill files, and MCP config entries for all tools (OpenCode, Claude Code, Cursor, and VS Code). The database is **not** removed automatically.
|
|
365
381
|
|
|
366
382
|
To delete individual sessions instead of wiping everything, use the [session browser](#browsing-sessions):
|
|
367
383
|
```bash
|
|
@@ -422,6 +438,10 @@ Cursor provides a `transcript_path` field in the stop hook payload — a JSONL f
|
|
|
422
438
|
|
|
423
439
|
Session metadata (title only) is read best-effort from the SQLite `state.vscdb`. The Cursor `stop` hook fires after each agent turn and requires **Cursor v2.5+**.
|
|
424
440
|
|
|
441
|
+
### VS Code transcript parsing
|
|
442
|
+
|
|
443
|
+
VS Code (with GitHub Copilot agent mode) supports the same hook lifecycle events as Claude Code and provides a `transcript_path` in its Stop hook payload. The parser (`vscode-transcript-to-messages.ts`) handles the JSONL transcript similarly to Claude Code's parser, with retry logic for potential race conditions between hook firing and transcript flush. The Stop hook requires **VS Code 1.109.3+** with **Chat: Use Hooks** enabled.
|
|
444
|
+
|
|
425
445
|
### Chunking strategy
|
|
426
446
|
|
|
427
447
|
- Heading-aware splitting — headings define semantic boundaries
|
|
@@ -432,7 +452,7 @@ Session metadata (title only) is read best-effort from the SQLite `state.vscdb`.
|
|
|
432
452
|
|
|
433
453
|
### MCP server
|
|
434
454
|
|
|
435
|
-
The MCP server uses **stdio transport** — the simplest and most reliable transport for local use. It opens and closes the SQLite connection on each query (no persistent connection), making it safe to run alongside the indexer. The `query_sessions` tool supports filtering by `source`, `project`, and date range (`fromDate`/`toDate`).
|
|
455
|
+
The MCP server uses **stdio transport** — the simplest and most reliable transport for local use. It opens and closes the SQLite connection on each query (no persistent connection), making it safe to run alongside the indexer. The `query_sessions` tool supports filtering by `source` (`opencode`, `claude-code`, `cursor`, `vscode`), `project`, and date range (`fromDate`/`toDate`).
|
|
436
456
|
|
|
437
457
|
## License
|
|
438
458
|
|
package/dist/mcp/index.js
CHANGED
|
@@ -112,7 +112,7 @@ const server = new mcp_js_1.McpServer({
|
|
|
112
112
|
const querySessionsSchema = {
|
|
113
113
|
queryText: zod_1.z.string().min(1).describe("Natural language description of what you are looking for."),
|
|
114
114
|
project: zod_1.z.string().optional().describe("Filter results to a specific project directory path (e.g. '/Users/me/myproject'). Optional."),
|
|
115
|
-
source: zod_1.z.enum(["opencode", "claude-code", "cursor"]).optional().describe("Filter results by tool source: 'opencode', 'claude-code', or '
|
|
115
|
+
source: zod_1.z.enum(["opencode", "claude-code", "cursor", "vscode"]).optional().describe("Filter results by tool source: 'opencode', 'claude-code', 'cursor', or 'vscode'. Optional — omit to search across all."),
|
|
116
116
|
limit: zod_1.z.number().int().min(1).optional().describe("Maximum number of results to return. Defaults to 5."),
|
|
117
117
|
fromDate: zod_1.z.string().optional().describe("Return only chunks indexed on or after this date. ISO 8601 format, e.g. '2026-02-01' or '2026-02-20T15:00:00Z'. Optional."),
|
|
118
118
|
toDate: zod_1.z.string().optional().describe("Return only chunks indexed on or before this date. ISO 8601 format, e.g. '2026-02-20'. A date-only value is treated as end-of-day UTC. Optional."),
|
package/dist/mcp/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../mcp/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../mcp/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oEAAoE;AACpE,wEAAiF;AACjF,6BAAwB;AACxB,mCAAgC;AAChC,sDAAwC;AACxC,oEAAsC;AACtC,4CAAoB;AACpB,8CAAgD;AAChD,qCAAoE;AAEpE,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAA,wBAAa,GAAE,CAAC;AAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAChD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,wBAAwB,CAAC;AAEzE,IAAI,CAAC,YAAY,EAAE,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,OAAO,CAAC,KAAK,CACX,gCAAgC,MAAM,iDAAiD,CACxF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAEpD,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;IAChD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,8DAA8D;AAC9D,MAAM,QAAQ,GAAG,IAAA,6BAAoB,EAAC;IACpC,MAAM;IACN,SAAS,EAAE,SAAuD;IAClE,8DAA8D;IAC9D,QAAQ,EAAE,wBAA0B;IACpC,EAAE,EAAF,YAAE;CACH,CAAC,CAAC;AAEH,MAAM,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,GAAG,IAAA,2BAAkB,EAAC;IAC3E,eAAe;IACf,aAAa,EAAE,QAAQ,CAAC,aAAa;IACrC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;CAC5C,CAAC,CAAC;AAEH,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;IAC3B,IAAI,EAAE,qBAAqB;IAC3B,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG;IAC1B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAClG,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;IACtI,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wHAAwH,CAAC;IAC7M,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IACzG,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2HAA2H,CAAC;IACrK,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kJAAkJ,CAAC;CAC3L,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IAClI,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IACxH,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;CACtH,CAAC;AAEF,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAM,SAAS,GAAG,MAAa,CAAC;AAEhC,SAAS,CAAC,IAAI,CACZ,gBAAgB,EAChB,4NAA4N,EAC5N,mBAAmB,EACnB,KAAK,EAAE,IAAkH,EAAE,EAAE;IAC3H,sDAAsD;IACtD,kFAAkF;IAClF,uCAAuC;IACvC,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,4EAA4E;YAC5E,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC,CACF,CAAC;AAEF,SAAS,CAAC,IAAI,CACZ,oBAAoB,EACpB,wLAAwL,EACxL,sBAAsB,EACtB,KAAK,EAAE,IAAoE,EAAE,EAAE,CAC7E,uBAAuB,CAAC,IAAI,CAAC,CAChC,CAAC;AAEF,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;AAC1E,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/src/cli-query.js
CHANGED
|
@@ -42,9 +42,9 @@ function parseQueryArgs(args) {
|
|
|
42
42
|
if (arg === "--source") {
|
|
43
43
|
const val = args[++i];
|
|
44
44
|
if (!val)
|
|
45
|
-
throw new Error("--source requires a value (opencode, claude-code, cursor)");
|
|
46
|
-
if (val !== "opencode" && val !== "claude-code" && val !== "cursor") {
|
|
47
|
-
throw new Error(`Invalid --source "${val}". Must be one of: opencode, claude-code, cursor`);
|
|
45
|
+
throw new Error("--source requires a value (opencode, claude-code, cursor, vscode)");
|
|
46
|
+
if (val !== "opencode" && val !== "claude-code" && val !== "cursor" && val !== "vscode") {
|
|
47
|
+
throw new Error(`Invalid --source "${val}". Must be one of: opencode, claude-code, cursor, vscode`);
|
|
48
48
|
}
|
|
49
49
|
source = val;
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-query.js","sourceRoot":"","sources":["../../src/cli-query.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;AAgCH,wCAgDC;AAQD,kCAWC;AAsDD,4BAoEC;AA3ND,yCAA2E;AAC3E,yCAA4C;AAG5C,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,IAAI,CAAC,CAAS,IAAY,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,SAAS,GAAG,CAAC,CAAS,IAAa,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AACjE,SAAS,IAAI,CAAC,CAAS,IAAY,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAClE,SAAS,MAAM,CAAC,CAAS,IAAY,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAcpE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAc;IAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,MAAiC,CAAC;IACtC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAwB,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"cli-query.js","sourceRoot":"","sources":["../../src/cli-query.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.js
CHANGED
|
@@ -120,6 +120,9 @@ function getIndexerCliClaudePath() {
|
|
|
120
120
|
function getIndexerCliCursorPath() {
|
|
121
121
|
return path_1.default.join(getPackageRoot(), "dist", "src", "indexer-cli-cursor.js");
|
|
122
122
|
}
|
|
123
|
+
function getIndexerCliVscodePath() {
|
|
124
|
+
return path_1.default.join(getPackageRoot(), "dist", "src", "indexer-cli-vscode.js");
|
|
125
|
+
}
|
|
123
126
|
// ---------------------------------------------------------------------------
|
|
124
127
|
// Paths — Cursor
|
|
125
128
|
// ---------------------------------------------------------------------------
|
|
@@ -142,8 +145,44 @@ function getCursorSkillDst() {
|
|
|
142
145
|
return path_1.default.join(getCursorConfigDir(), "skills", "code-session-memory", "SKILL.md");
|
|
143
146
|
}
|
|
144
147
|
// ---------------------------------------------------------------------------
|
|
148
|
+
// Paths — VS Code
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
function getVscodeConfigDir() {
|
|
151
|
+
const envDir = process.env.VSCODE_CONFIG_DIR;
|
|
152
|
+
if (envDir)
|
|
153
|
+
return envDir;
|
|
154
|
+
if (process.platform === "darwin") {
|
|
155
|
+
return path_1.default.join(os_1.default.homedir(), "Library", "Application Support", "Code", "User");
|
|
156
|
+
}
|
|
157
|
+
// Linux (and fallback)
|
|
158
|
+
return path_1.default.join(os_1.default.homedir(), ".config", "Code", "User");
|
|
159
|
+
}
|
|
160
|
+
function getVscodeSettingsPath() {
|
|
161
|
+
return path_1.default.join(getVscodeConfigDir(), "settings.json");
|
|
162
|
+
}
|
|
163
|
+
function getVscodeMcpConfigPath() {
|
|
164
|
+
return path_1.default.join(getVscodeConfigDir(), "mcp.json");
|
|
165
|
+
}
|
|
166
|
+
function getVscodeHooksPath() {
|
|
167
|
+
return path_1.default.join(getVscodeConfigDir(), "hooks", "code-session-memory.json");
|
|
168
|
+
}
|
|
169
|
+
// ---------------------------------------------------------------------------
|
|
145
170
|
// Helpers
|
|
146
171
|
// ---------------------------------------------------------------------------
|
|
172
|
+
/**
|
|
173
|
+
* Parse a JSONC string (JSON with comments and trailing commas).
|
|
174
|
+
* VS Code's settings.json uses JSONC, so we need this to read it safely.
|
|
175
|
+
*/
|
|
176
|
+
function parseJsonc(text) {
|
|
177
|
+
// Remove single-line comments (// ...)
|
|
178
|
+
// Remove multi-line comments (/* ... */)
|
|
179
|
+
// Remove trailing commas before } or ]
|
|
180
|
+
const stripped = text
|
|
181
|
+
.replace(/\/\/[^\n]*/g, "")
|
|
182
|
+
.replace(/\/\*[\s\S]*?\*\//g, "")
|
|
183
|
+
.replace(/,(\s*[}\]])/g, "$1");
|
|
184
|
+
return JSON.parse(stripped);
|
|
185
|
+
}
|
|
147
186
|
function ensureDir(dir) {
|
|
148
187
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
149
188
|
}
|
|
@@ -639,6 +678,219 @@ function uninstallCursorSkill() {
|
|
|
639
678
|
return "done";
|
|
640
679
|
}
|
|
641
680
|
// ---------------------------------------------------------------------------
|
|
681
|
+
// VS Code — hook
|
|
682
|
+
// ---------------------------------------------------------------------------
|
|
683
|
+
/**
|
|
684
|
+
* Installs the VS Code Stop hook at ~/.vscode/hooks/code-session-memory.json
|
|
685
|
+
* using the Copilot hook format.
|
|
686
|
+
*/
|
|
687
|
+
function installVscodeHook(indexerCliVscodePath) {
|
|
688
|
+
const hooksPath = getVscodeHooksPath();
|
|
689
|
+
const existed = fs_1.default.existsSync(hooksPath);
|
|
690
|
+
// Always overwrite with our hook config (this file is owned by us)
|
|
691
|
+
const config = {
|
|
692
|
+
hooks: {
|
|
693
|
+
Stop: [
|
|
694
|
+
{
|
|
695
|
+
type: "command",
|
|
696
|
+
command: `node ${indexerCliVscodePath}`,
|
|
697
|
+
},
|
|
698
|
+
],
|
|
699
|
+
},
|
|
700
|
+
};
|
|
701
|
+
ensureDir(path_1.default.dirname(hooksPath));
|
|
702
|
+
fs_1.default.writeFileSync(hooksPath, JSON.stringify(config, null, 2) + "\n", "utf8");
|
|
703
|
+
return { hooksPath, existed };
|
|
704
|
+
}
|
|
705
|
+
/**
|
|
706
|
+
* Removes the VS Code Stop hook file.
|
|
707
|
+
*/
|
|
708
|
+
function uninstallVscodeHook() {
|
|
709
|
+
const hooksPath = getVscodeHooksPath();
|
|
710
|
+
if (!fs_1.default.existsSync(hooksPath))
|
|
711
|
+
return "not_found";
|
|
712
|
+
fs_1.default.unlinkSync(hooksPath);
|
|
713
|
+
// Remove the directory if empty
|
|
714
|
+
try {
|
|
715
|
+
const dir = path_1.default.dirname(hooksPath);
|
|
716
|
+
if (fs_1.default.readdirSync(dir).length === 0)
|
|
717
|
+
fs_1.default.rmdirSync(dir);
|
|
718
|
+
}
|
|
719
|
+
catch { /* ignore */ }
|
|
720
|
+
return "done";
|
|
721
|
+
}
|
|
722
|
+
function checkVscodeHookInstalled() {
|
|
723
|
+
const hooksPath = getVscodeHooksPath();
|
|
724
|
+
try {
|
|
725
|
+
const config = JSON.parse(fs_1.default.readFileSync(hooksPath, "utf8"));
|
|
726
|
+
const stop = config.hooks?.Stop;
|
|
727
|
+
if (!Array.isArray(stop))
|
|
728
|
+
return false;
|
|
729
|
+
return stop.some((entry) => {
|
|
730
|
+
if (!entry || typeof entry !== "object")
|
|
731
|
+
return false;
|
|
732
|
+
const e = entry;
|
|
733
|
+
return typeof e.command === "string" && e.command.includes("indexer-cli-vscode");
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
catch {
|
|
737
|
+
return false;
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
// ---------------------------------------------------------------------------
|
|
741
|
+
// VS Code — hook location registration
|
|
742
|
+
// ---------------------------------------------------------------------------
|
|
743
|
+
/**
|
|
744
|
+
* Returns the VS Code hooks path as a ~-prefixed string.
|
|
745
|
+
* VS Code supports ~ in hookFilesLocations, which improves portability across
|
|
746
|
+
* machines and avoids VS Code showing the fully-expanded path as an error.
|
|
747
|
+
*/
|
|
748
|
+
function getVscodeHooksPathTilde() {
|
|
749
|
+
const hooksPath = getVscodeHooksPath();
|
|
750
|
+
const home = os_1.default.homedir();
|
|
751
|
+
if (hooksPath.startsWith(home + path_1.default.sep)) {
|
|
752
|
+
return "~" + hooksPath.slice(home.length);
|
|
753
|
+
}
|
|
754
|
+
return hooksPath;
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Adds the hook file path to VS Code's settings.json under
|
|
758
|
+
* `chat.hookFilesLocations` so VS Code discovers our hook.
|
|
759
|
+
* Uses a ~-prefixed path for portability.
|
|
760
|
+
*/
|
|
761
|
+
function installVscodeHookLocation() {
|
|
762
|
+
const settingsPath = getVscodeSettingsPath();
|
|
763
|
+
const existed = fs_1.default.existsSync(settingsPath);
|
|
764
|
+
let settings = {};
|
|
765
|
+
if (existed) {
|
|
766
|
+
try {
|
|
767
|
+
settings = parseJsonc(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
768
|
+
}
|
|
769
|
+
catch {
|
|
770
|
+
throw new Error(`Could not parse existing ${settingsPath} — please check it is valid JSON.`);
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
const hookLocations = (settings["chat.hookFilesLocations"] ?? {});
|
|
774
|
+
// Remove any previously installed absolute path entry (migration)
|
|
775
|
+
const absolutePath = getVscodeHooksPath();
|
|
776
|
+
if (absolutePath in hookLocations) {
|
|
777
|
+
delete hookLocations[absolutePath];
|
|
778
|
+
}
|
|
779
|
+
hookLocations[getVscodeHooksPathTilde()] = true;
|
|
780
|
+
settings["chat.hookFilesLocations"] = hookLocations;
|
|
781
|
+
ensureDir(path_1.default.dirname(settingsPath));
|
|
782
|
+
fs_1.default.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf8");
|
|
783
|
+
return { settingsPath, existed };
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* Removes our hook file path from VS Code's `chat.hookFilesLocations` setting.
|
|
787
|
+
* Handles both ~ and absolute path variants.
|
|
788
|
+
*/
|
|
789
|
+
function uninstallVscodeHookLocation() {
|
|
790
|
+
const settingsPath = getVscodeSettingsPath();
|
|
791
|
+
if (!fs_1.default.existsSync(settingsPath))
|
|
792
|
+
return "not_found";
|
|
793
|
+
try {
|
|
794
|
+
const settings = parseJsonc(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
795
|
+
const hookLocations = settings["chat.hookFilesLocations"];
|
|
796
|
+
if (!hookLocations)
|
|
797
|
+
return "not_found";
|
|
798
|
+
const tildePath = getVscodeHooksPathTilde();
|
|
799
|
+
const absolutePath = getVscodeHooksPath();
|
|
800
|
+
const foundTilde = tildePath in hookLocations;
|
|
801
|
+
const foundAbsolute = absolutePath in hookLocations;
|
|
802
|
+
if (!foundTilde && !foundAbsolute)
|
|
803
|
+
return "not_found";
|
|
804
|
+
if (foundTilde)
|
|
805
|
+
delete hookLocations[tildePath];
|
|
806
|
+
if (foundAbsolute)
|
|
807
|
+
delete hookLocations[absolutePath];
|
|
808
|
+
settings["chat.hookFilesLocations"] = hookLocations;
|
|
809
|
+
fs_1.default.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf8");
|
|
810
|
+
return "done";
|
|
811
|
+
}
|
|
812
|
+
catch {
|
|
813
|
+
return "not_found";
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
function checkVscodeHookLocationRegistered() {
|
|
817
|
+
const settingsPath = getVscodeSettingsPath();
|
|
818
|
+
try {
|
|
819
|
+
const settings = parseJsonc(fs_1.default.readFileSync(settingsPath, "utf8"));
|
|
820
|
+
const hookLocations = settings["chat.hookFilesLocations"];
|
|
821
|
+
if (!hookLocations)
|
|
822
|
+
return false;
|
|
823
|
+
return hookLocations[getVscodeHooksPathTilde()] === true ||
|
|
824
|
+
hookLocations[getVscodeHooksPath()] === true;
|
|
825
|
+
}
|
|
826
|
+
catch {
|
|
827
|
+
return false;
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
// ---------------------------------------------------------------------------
|
|
831
|
+
// VS Code — MCP config
|
|
832
|
+
// ---------------------------------------------------------------------------
|
|
833
|
+
/**
|
|
834
|
+
* Merges the code-session-memory MCP entry into VS Code's mcp.json.
|
|
835
|
+
*/
|
|
836
|
+
function installVscodeMcpConfig(mcpServerPath) {
|
|
837
|
+
const configPath = getVscodeMcpConfigPath();
|
|
838
|
+
const existed = fs_1.default.existsSync(configPath);
|
|
839
|
+
let config = {};
|
|
840
|
+
if (existed) {
|
|
841
|
+
try {
|
|
842
|
+
config = JSON.parse(fs_1.default.readFileSync(configPath, "utf8"));
|
|
843
|
+
}
|
|
844
|
+
catch {
|
|
845
|
+
throw new Error(`Could not parse existing ${configPath} — please check it is valid JSON.`);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
if (!config.servers || typeof config.servers !== "object")
|
|
849
|
+
config.servers = {};
|
|
850
|
+
config.servers["code-session-memory"] = {
|
|
851
|
+
type: "stdio",
|
|
852
|
+
command: "node",
|
|
853
|
+
args: [mcpServerPath],
|
|
854
|
+
};
|
|
855
|
+
ensureDir(path_1.default.dirname(configPath));
|
|
856
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf8");
|
|
857
|
+
return { configPath, existed };
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* Removes the code-session-memory MCP entry from VS Code's mcp.json.
|
|
861
|
+
*/
|
|
862
|
+
function uninstallVscodeMcpConfig() {
|
|
863
|
+
const configPath = getVscodeMcpConfigPath();
|
|
864
|
+
if (!fs_1.default.existsSync(configPath))
|
|
865
|
+
return "not_found";
|
|
866
|
+
try {
|
|
867
|
+
const config = JSON.parse(fs_1.default.readFileSync(configPath, "utf8"));
|
|
868
|
+
if (config.servers &&
|
|
869
|
+
typeof config.servers === "object" &&
|
|
870
|
+
"code-session-memory" in config.servers) {
|
|
871
|
+
delete config.servers["code-session-memory"];
|
|
872
|
+
fs_1.default.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf8");
|
|
873
|
+
return "done";
|
|
874
|
+
}
|
|
875
|
+
return "not_found";
|
|
876
|
+
}
|
|
877
|
+
catch {
|
|
878
|
+
return "not_found";
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
function checkVscodeMcpConfigured() {
|
|
882
|
+
const configPath = getVscodeMcpConfigPath();
|
|
883
|
+
try {
|
|
884
|
+
const config = JSON.parse(fs_1.default.readFileSync(configPath, "utf8"));
|
|
885
|
+
return !!(config.servers &&
|
|
886
|
+
typeof config.servers === "object" &&
|
|
887
|
+
"code-session-memory" in config.servers);
|
|
888
|
+
}
|
|
889
|
+
catch {
|
|
890
|
+
return false;
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
// ---------------------------------------------------------------------------
|
|
642
894
|
// Formatting helpers
|
|
643
895
|
// ---------------------------------------------------------------------------
|
|
644
896
|
function bold(s) { return `\x1b[1m${s}\x1b[0m`; }
|
|
@@ -667,6 +919,7 @@ function install() {
|
|
|
667
919
|
const mcpPath = getMcpServerPath();
|
|
668
920
|
const indexerClaudePath = getIndexerCliClaudePath();
|
|
669
921
|
const indexerCursorPath = getIndexerCliCursorPath();
|
|
922
|
+
const indexerVscodePath = getIndexerCliVscodePath();
|
|
670
923
|
// 1. DB
|
|
671
924
|
step("Initialising database", () => {
|
|
672
925
|
ensureDir(path_1.default.dirname(dbPath));
|
|
@@ -721,6 +974,21 @@ function install() {
|
|
|
721
974
|
const { dstPath, existed } = installCursorSkill(getSkillSrc());
|
|
722
975
|
return `${existed ? "updated" : "created"} ${dstPath}`;
|
|
723
976
|
});
|
|
977
|
+
// 11. VS Code MCP config
|
|
978
|
+
step("Configuring VS Code MCP server", () => {
|
|
979
|
+
const { configPath, existed } = installVscodeMcpConfig(mcpPath);
|
|
980
|
+
return `${existed ? "updated" : "created"} ${configPath}`;
|
|
981
|
+
});
|
|
982
|
+
// 12. VS Code Stop hook
|
|
983
|
+
step("Installing VS Code Stop hook", () => {
|
|
984
|
+
const { hooksPath, existed } = installVscodeHook(indexerVscodePath);
|
|
985
|
+
return `${existed ? "updated" : "created"} ${hooksPath}`;
|
|
986
|
+
});
|
|
987
|
+
// 13. VS Code hook location registration
|
|
988
|
+
step("Registering VS Code hook location", () => {
|
|
989
|
+
const { settingsPath, existed } = installVscodeHookLocation();
|
|
990
|
+
return `${existed ? "updated" : "created"} ${settingsPath}`;
|
|
991
|
+
});
|
|
724
992
|
console.log(`
|
|
725
993
|
${bold("Installation complete!")}
|
|
726
994
|
|
|
@@ -729,7 +997,9 @@ ${bold("Required environment variable:")}
|
|
|
729
997
|
|
|
730
998
|
${bold("Default DB path:")} ${dbPath}
|
|
731
999
|
|
|
732
|
-
Restart ${bold("OpenCode")}, ${bold("Claude Code")}, and ${bold("
|
|
1000
|
+
Restart ${bold("OpenCode")}, ${bold("Claude Code")}, ${bold("Cursor")}, and ${bold("VS Code")} to activate.
|
|
1001
|
+
|
|
1002
|
+
${bold("VS Code note:")} Ensure ${bold("Chat: Use Hooks")} is enabled in VS Code settings.
|
|
733
1003
|
Run ${bold("npx code-session-memory status")} to verify.
|
|
734
1004
|
`);
|
|
735
1005
|
}
|
|
@@ -749,6 +1019,10 @@ function status() {
|
|
|
749
1019
|
console.log(` ${ok(checkCursorMcpConfigured())} MCP config ${dim(getCursorMcpConfigPath())}`);
|
|
750
1020
|
console.log(` ${ok(checkCursorHookInstalled())} Stop hook ${dim(getCursorHooksPath())}`);
|
|
751
1021
|
console.log(` ${ok(fs_1.default.existsSync(getCursorSkillDst()))} Skill ${dim(getCursorSkillDst())}`);
|
|
1022
|
+
console.log(bold("\n VS Code"));
|
|
1023
|
+
console.log(` ${ok(checkVscodeMcpConfigured())} MCP config ${dim(getVscodeMcpConfigPath())}`);
|
|
1024
|
+
console.log(` ${ok(checkVscodeHookInstalled())} Stop hook ${dim(getVscodeHooksPath())}`);
|
|
1025
|
+
console.log(` ${ok(checkVscodeHookLocationRegistered())} Hook loc ${dim(getVscodeSettingsPath())}`);
|
|
752
1026
|
console.log(bold("\n Shared"));
|
|
753
1027
|
console.log(` ${ok(fs_1.default.existsSync(mcpPath))} MCP server ${dim(mcpPath)}`);
|
|
754
1028
|
console.log(` ${ok(fs_1.default.existsSync(dbPath))} Database ${dim(dbPath)}`);
|
|
@@ -781,6 +1055,9 @@ function status() {
|
|
|
781
1055
|
checkCursorMcpConfigured() &&
|
|
782
1056
|
checkCursorHookInstalled() &&
|
|
783
1057
|
fs_1.default.existsSync(getCursorSkillDst()) &&
|
|
1058
|
+
checkVscodeMcpConfigured() &&
|
|
1059
|
+
checkVscodeHookInstalled() &&
|
|
1060
|
+
checkVscodeHookLocationRegistered() &&
|
|
784
1061
|
fs_1.default.existsSync(mcpPath) &&
|
|
785
1062
|
fs_1.default.existsSync(dbPath);
|
|
786
1063
|
console.log(`\n ${allOk
|
|
@@ -832,6 +1109,18 @@ function uninstall() {
|
|
|
832
1109
|
if (uninstallCursorSkill() === "not_found")
|
|
833
1110
|
throw new Error("not found");
|
|
834
1111
|
}],
|
|
1112
|
+
["VS Code MCP config", () => {
|
|
1113
|
+
if (uninstallVscodeMcpConfig() === "not_found")
|
|
1114
|
+
throw new Error("not found");
|
|
1115
|
+
}],
|
|
1116
|
+
["VS Code Stop hook", () => {
|
|
1117
|
+
if (uninstallVscodeHook() === "not_found")
|
|
1118
|
+
throw new Error("not found");
|
|
1119
|
+
}],
|
|
1120
|
+
["VS Code hook location", () => {
|
|
1121
|
+
if (uninstallVscodeHookLocation() === "not_found")
|
|
1122
|
+
throw new Error("not found");
|
|
1123
|
+
}],
|
|
835
1124
|
];
|
|
836
1125
|
for (const [label, fn] of items) {
|
|
837
1126
|
process.stdout.write(` Removing ${label}... `);
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Entry point for VS Code (Copilot agent) session indexing.
|
|
4
|
+
*
|
|
5
|
+
* Called by the VS Code Stop hook. Receives JSON on stdin:
|
|
6
|
+
* { timestamp, cwd, sessionId, hookEventName, transcript_path, stop_hook_active }
|
|
7
|
+
*
|
|
8
|
+
* Reads the transcript file, converts to FullMessage[], and indexes
|
|
9
|
+
* new messages into the shared sqlite-vec DB.
|
|
10
|
+
*
|
|
11
|
+
* Runs as a Node.js subprocess (not Bun) so native addons load correctly.
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=indexer-cli-vscode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer-cli-vscode.d.ts","sourceRoot":"","sources":["../../src/indexer-cli-vscode.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Entry point for VS Code (Copilot agent) session indexing.
|
|
5
|
+
*
|
|
6
|
+
* Called by the VS Code Stop hook. Receives JSON on stdin:
|
|
7
|
+
* { timestamp, cwd, sessionId, hookEventName, transcript_path, stop_hook_active }
|
|
8
|
+
*
|
|
9
|
+
* Reads the transcript file, converts to FullMessage[], and indexes
|
|
10
|
+
* new messages into the shared sqlite-vec DB.
|
|
11
|
+
*
|
|
12
|
+
* Runs as a Node.js subprocess (not Bun) so native addons load correctly.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const database_1 = require("./database");
|
|
16
|
+
const indexer_1 = require("./indexer");
|
|
17
|
+
const vscode_transcript_to_messages_1 = require("./vscode-transcript-to-messages");
|
|
18
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
19
|
+
/**
|
|
20
|
+
* Returns true if the last meaningful message in the list is a tool result
|
|
21
|
+
* (user message with tool-invocation:result parts only). This indicates the
|
|
22
|
+
* JSONL was read before VS Code finished writing the final assistant
|
|
23
|
+
* response — we should retry.
|
|
24
|
+
*/
|
|
25
|
+
function endsWithToolResult(messages) {
|
|
26
|
+
if (messages.length === 0)
|
|
27
|
+
return false;
|
|
28
|
+
const last = messages[messages.length - 1];
|
|
29
|
+
if (last.info.role !== "user")
|
|
30
|
+
return false;
|
|
31
|
+
return last.parts.every((p) => p.type === "tool-invocation" && p.state === "result");
|
|
32
|
+
}
|
|
33
|
+
async function main() {
|
|
34
|
+
// Read JSON payload from stdin
|
|
35
|
+
const chunks = [];
|
|
36
|
+
for await (const chunk of process.stdin) {
|
|
37
|
+
chunks.push(chunk);
|
|
38
|
+
}
|
|
39
|
+
let payload;
|
|
40
|
+
try {
|
|
41
|
+
payload = JSON.parse(Buffer.concat(chunks).toString("utf8"));
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
process.stderr.write(`[code-session-memory] Failed to parse stdin: ${err}\n`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
const { sessionId, transcript_path: transcriptPath, cwd } = payload;
|
|
48
|
+
if (!sessionId || !transcriptPath) {
|
|
49
|
+
process.stderr.write("[code-session-memory] Missing sessionId or transcript_path in stdin\n");
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
const dbPath = (0, database_1.resolveDbPath)();
|
|
53
|
+
const db = (0, database_1.openDatabase)({ dbPath });
|
|
54
|
+
try {
|
|
55
|
+
// Parse the transcript — retry if the JSONL ends on a tool result,
|
|
56
|
+
// which may mean the transcript is not fully written yet.
|
|
57
|
+
let messages = (0, vscode_transcript_to_messages_1.parseVscodeTranscript)(transcriptPath);
|
|
58
|
+
if (messages.length === 0)
|
|
59
|
+
return;
|
|
60
|
+
const MAX_RETRIES = 5;
|
|
61
|
+
const RETRY_DELAY_MS = 500;
|
|
62
|
+
for (let attempt = 0; attempt < MAX_RETRIES && endsWithToolResult(messages); attempt++) {
|
|
63
|
+
await sleep(RETRY_DELAY_MS);
|
|
64
|
+
messages = (0, vscode_transcript_to_messages_1.parseVscodeTranscript)(transcriptPath);
|
|
65
|
+
}
|
|
66
|
+
// Build a session title from the first user message
|
|
67
|
+
const existingMeta = (0, database_1.getSessionMeta)(db, sessionId);
|
|
68
|
+
const title = existingMeta?.session_title || (0, vscode_transcript_to_messages_1.deriveVscodeSessionTitle)(messages);
|
|
69
|
+
const session = {
|
|
70
|
+
id: sessionId,
|
|
71
|
+
title,
|
|
72
|
+
directory: cwd ?? "",
|
|
73
|
+
};
|
|
74
|
+
await (0, indexer_1.indexNewMessages)(db, session, messages, "vscode");
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
78
|
+
process.stderr.write(`[code-session-memory] Indexing error: ${msg}\n`);
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
db.close();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
main().catch((err) => {
|
|
85
|
+
process.stderr.write(`[code-session-memory] Fatal: ${err}\n`);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=indexer-cli-vscode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexer-cli-vscode.js","sourceRoot":"","sources":["../../src/indexer-cli-vscode.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;GAUG;;AAEH,yCAAyE;AACzE,uCAA6C;AAC7C,mFAAkG;AAGlG,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,QAAuB;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,CAAC,KAAK,KAAK,QAAQ,CAC5D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,+BAA+B;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,OAOH,CAAC;IACF,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,GAAG,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAEpE,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,wBAAa,GAAE,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAA,uBAAY,EAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,mEAAmE;QACnE,0DAA0D;QAC1D,IAAI,QAAQ,GAAG,IAAA,qDAAqB,EAAC,cAAc,CAAC,CAAC;QACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,WAAW,GAAG,CAAC,CAAC;QACtB,MAAM,cAAc,GAAG,GAAG,CAAC;QAE3B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,WAAW,IAAI,kBAAkB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;YACvF,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5B,QAAQ,GAAG,IAAA,qDAAqB,EAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QAED,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAA,yBAAc,EAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,YAAY,EAAE,aAAa,IAAI,IAAA,wDAAwB,EAAC,QAAQ,CAAC,CAAC;QAEhF,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,SAAS;YACb,KAAK;YACL,SAAS,EAAE,GAAG,IAAI,EAAE;SACrB,CAAC;QAEF,MAAM,IAAA,0BAAgB,EAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface DocumentChunk {
|
|
|
23
23
|
/**
|
|
24
24
|
* Which tool produced a session.
|
|
25
25
|
*/
|
|
26
|
-
export type SessionSource = "opencode" | "claude-code" | "cursor";
|
|
26
|
+
export type SessionSource = "opencode" | "claude-code" | "cursor" | "vscode";
|
|
27
27
|
/**
|
|
28
28
|
* A row in the sessions_meta table — tracks per-session indexing progress.
|
|
29
29
|
*/
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gHAAgH;QAChH,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,kFAAkF;QAClF,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parses a VS Code (Copilot agent) JSONL transcript into the FullMessage[]
|
|
3
|
+
* format used by the indexer.
|
|
4
|
+
*
|
|
5
|
+
* VS Code writes transcripts to:
|
|
6
|
+
* <workspaceStorage>/<hash>/GitHub.copilot-chat/transcripts/<sessionId>.jsonl
|
|
7
|
+
*
|
|
8
|
+
* The transcript is an ordered event stream. Each line is a JSON object with:
|
|
9
|
+
* - `type`: event type string
|
|
10
|
+
* - `data`: event-specific payload
|
|
11
|
+
* - `id`: unique event UUID
|
|
12
|
+
* - `timestamp`: ISO 8601 timestamp
|
|
13
|
+
* - `parentId`: UUID of the parent event (forms a tree)
|
|
14
|
+
*
|
|
15
|
+
* Known event types:
|
|
16
|
+
* - `session.start` — session metadata (first line)
|
|
17
|
+
* - `user.message` — user turn: { content: string, attachments: [] }
|
|
18
|
+
* - `assistant.turn_start` — marks the start of an assistant turn
|
|
19
|
+
* - `assistant.message` — assistant text: { messageId, content, toolRequests, reasoningText? }
|
|
20
|
+
* - `tool.execution_start` — tool call: { toolCallId, toolName, arguments }
|
|
21
|
+
* - `tool.execution_complete` — tool result: { toolCallId, result, success }
|
|
22
|
+
* - `assistant.turn_end` — marks the end of an assistant turn
|
|
23
|
+
*/
|
|
24
|
+
import type { FullMessage } from "./types";
|
|
25
|
+
/**
|
|
26
|
+
* Parses a VS Code JSONL transcript file into FullMessage[].
|
|
27
|
+
*
|
|
28
|
+
* Produces one FullMessage per logical turn:
|
|
29
|
+
* - user.message → role "user" with text part
|
|
30
|
+
* - assistant.message + associated tool calls → role "assistant" with
|
|
31
|
+
* text part and tool-invocation parts
|
|
32
|
+
* - tool.execution_complete → added as tool-invocation result to the
|
|
33
|
+
* preceding assistant message (if matched) or as a standalone tool message
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseVscodeTranscript(transcriptPath: string): FullMessage[];
|
|
36
|
+
/**
|
|
37
|
+
* Derives a session title from the transcript messages.
|
|
38
|
+
* Uses the first meaningful user message text, truncated to 60 chars.
|
|
39
|
+
*/
|
|
40
|
+
export declare function deriveVscodeSessionTitle(messages: FullMessage[]): string;
|
|
41
|
+
//# sourceMappingURL=vscode-transcript-to-messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscode-transcript-to-messages.d.ts","sourceRoot":"","sources":["../../src/vscode-transcript-to-messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AA0CxD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,EAAE,CAiG3E;AAgBD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAWxE"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Parses a VS Code (Copilot agent) JSONL transcript into the FullMessage[]
|
|
4
|
+
* format used by the indexer.
|
|
5
|
+
*
|
|
6
|
+
* VS Code writes transcripts to:
|
|
7
|
+
* <workspaceStorage>/<hash>/GitHub.copilot-chat/transcripts/<sessionId>.jsonl
|
|
8
|
+
*
|
|
9
|
+
* The transcript is an ordered event stream. Each line is a JSON object with:
|
|
10
|
+
* - `type`: event type string
|
|
11
|
+
* - `data`: event-specific payload
|
|
12
|
+
* - `id`: unique event UUID
|
|
13
|
+
* - `timestamp`: ISO 8601 timestamp
|
|
14
|
+
* - `parentId`: UUID of the parent event (forms a tree)
|
|
15
|
+
*
|
|
16
|
+
* Known event types:
|
|
17
|
+
* - `session.start` — session metadata (first line)
|
|
18
|
+
* - `user.message` — user turn: { content: string, attachments: [] }
|
|
19
|
+
* - `assistant.turn_start` — marks the start of an assistant turn
|
|
20
|
+
* - `assistant.message` — assistant text: { messageId, content, toolRequests, reasoningText? }
|
|
21
|
+
* - `tool.execution_start` — tool call: { toolCallId, toolName, arguments }
|
|
22
|
+
* - `tool.execution_complete` — tool result: { toolCallId, result, success }
|
|
23
|
+
* - `assistant.turn_end` — marks the end of an assistant turn
|
|
24
|
+
*/
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.parseVscodeTranscript = parseVscodeTranscript;
|
|
30
|
+
exports.deriveVscodeSessionTitle = deriveVscodeSessionTitle;
|
|
31
|
+
const fs_1 = __importDefault(require("fs"));
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Parser
|
|
34
|
+
// ---------------------------------------------------------------------------
|
|
35
|
+
/**
|
|
36
|
+
* Parses a VS Code JSONL transcript file into FullMessage[].
|
|
37
|
+
*
|
|
38
|
+
* Produces one FullMessage per logical turn:
|
|
39
|
+
* - user.message → role "user" with text part
|
|
40
|
+
* - assistant.message + associated tool calls → role "assistant" with
|
|
41
|
+
* text part and tool-invocation parts
|
|
42
|
+
* - tool.execution_complete → added as tool-invocation result to the
|
|
43
|
+
* preceding assistant message (if matched) or as a standalone tool message
|
|
44
|
+
*/
|
|
45
|
+
function parseVscodeTranscript(transcriptPath) {
|
|
46
|
+
const raw = fs_1.default.readFileSync(transcriptPath, "utf8");
|
|
47
|
+
const lines = raw.split("\n").filter((l) => l.trim());
|
|
48
|
+
const events = [];
|
|
49
|
+
for (const line of lines) {
|
|
50
|
+
try {
|
|
51
|
+
events.push(JSON.parse(line));
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Index tool results by toolCallId for pairing with tool calls
|
|
58
|
+
const toolResults = new Map();
|
|
59
|
+
for (const ev of events) {
|
|
60
|
+
if (ev.type === "tool.execution_complete") {
|
|
61
|
+
const d = ev.data;
|
|
62
|
+
if (d.toolCallId) {
|
|
63
|
+
toolResults.set(d.toolCallId, d);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const messages = [];
|
|
68
|
+
for (const ev of events) {
|
|
69
|
+
switch (ev.type) {
|
|
70
|
+
case "user.message": {
|
|
71
|
+
const d = ev.data;
|
|
72
|
+
const text = d.content?.trim();
|
|
73
|
+
if (!text)
|
|
74
|
+
break;
|
|
75
|
+
messages.push({
|
|
76
|
+
info: {
|
|
77
|
+
id: ev.id,
|
|
78
|
+
role: "user",
|
|
79
|
+
time: { created: new Date(ev.timestamp).getTime() },
|
|
80
|
+
},
|
|
81
|
+
parts: [{ type: "text", text }],
|
|
82
|
+
});
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
case "assistant.message": {
|
|
86
|
+
const d = ev.data;
|
|
87
|
+
const parts = [];
|
|
88
|
+
if (d.content?.trim()) {
|
|
89
|
+
parts.push({ type: "text", text: d.content.trim() });
|
|
90
|
+
}
|
|
91
|
+
// Attach tool calls as tool-invocation parts
|
|
92
|
+
if (Array.isArray(d.toolRequests)) {
|
|
93
|
+
for (const req of d.toolRequests) {
|
|
94
|
+
const result = toolResults.get(req.toolCallId);
|
|
95
|
+
parts.push({
|
|
96
|
+
type: "tool-invocation",
|
|
97
|
+
toolName: req.toolName ?? "unknown",
|
|
98
|
+
toolCallId: req.toolCallId,
|
|
99
|
+
state: result ? "result" : "call",
|
|
100
|
+
args: req.arguments,
|
|
101
|
+
...(result ? { result: formatToolResult(result.result) } : {}),
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (parts.length === 0)
|
|
106
|
+
break;
|
|
107
|
+
messages.push({
|
|
108
|
+
info: {
|
|
109
|
+
id: ev.id,
|
|
110
|
+
role: "assistant",
|
|
111
|
+
time: { created: new Date(ev.timestamp).getTime() },
|
|
112
|
+
},
|
|
113
|
+
parts,
|
|
114
|
+
});
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
// tool.execution_start without a corresponding assistant.message
|
|
118
|
+
// (unlikely in practice, but handle gracefully)
|
|
119
|
+
case "tool.execution_start": {
|
|
120
|
+
const d = ev.data;
|
|
121
|
+
// Only emit standalone tool-call messages if there's no assistant.message
|
|
122
|
+
// that claims this toolCallId via toolRequests — we handle the common
|
|
123
|
+
// case in the assistant.message branch above.
|
|
124
|
+
// Standalone entries are skipped here to avoid duplication.
|
|
125
|
+
void d;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
default:
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return messages;
|
|
133
|
+
}
|
|
134
|
+
function formatToolResult(result) {
|
|
135
|
+
if (result === undefined || result === null)
|
|
136
|
+
return "(no output)";
|
|
137
|
+
if (typeof result === "string")
|
|
138
|
+
return result;
|
|
139
|
+
try {
|
|
140
|
+
return JSON.stringify(result);
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return String(result);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
// Session title
|
|
148
|
+
// ---------------------------------------------------------------------------
|
|
149
|
+
/**
|
|
150
|
+
* Derives a session title from the transcript messages.
|
|
151
|
+
* Uses the first meaningful user message text, truncated to 60 chars.
|
|
152
|
+
*/
|
|
153
|
+
function deriveVscodeSessionTitle(messages) {
|
|
154
|
+
for (const msg of messages) {
|
|
155
|
+
if (msg.info.role !== "user")
|
|
156
|
+
continue;
|
|
157
|
+
for (const part of msg.parts) {
|
|
158
|
+
if (part.type === "text" && part.text) {
|
|
159
|
+
const title = part.text.replace(/\s+/g, " ").trim().slice(0, 60);
|
|
160
|
+
if (title)
|
|
161
|
+
return title;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return "VS Code Session";
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=vscode-transcript-to-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vscode-transcript-to-messages.js","sourceRoot":"","sources":["../../src/vscode-transcript-to-messages.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-session-memory",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Automatically index OpenCode, Claude Code, and
|
|
3
|
+
"version": "0.9.0",
|
|
4
|
+
"description": "Automatically index OpenCode, Claude Code, Cursor, and VS Code sessions into a shared sqlite-vec vector database for semantic search across your AI coding history",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/src/indexer.js",
|
|
7
7
|
"types": "dist/src/indexer.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"skill/"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tsc && chmod 755 dist/src/cli.js dist/mcp/index.js",
|
|
17
|
+
"build": "tsc && chmod 755 dist/src/cli.js dist/mcp/index.js dist/src/indexer-cli-vscode.js",
|
|
18
18
|
"build:watch": "tsc --watch",
|
|
19
19
|
"start:mcp": "node dist/mcp/index.js",
|
|
20
20
|
"test": "vitest run",
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"opencode",
|
|
28
28
|
"claude-code",
|
|
29
29
|
"cursor",
|
|
30
|
+
"vscode",
|
|
30
31
|
"mcp",
|
|
31
32
|
"sqlite-vec",
|
|
32
33
|
"vector",
|
package/skill/memory.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Search past OpenCode and
|
|
2
|
+
description: Search past OpenCode, Claude Code, Cursor, and VS Code sessions stored in the shared vector memory database
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# code-session-memory
|
|
6
6
|
|
|
7
|
-
You have access to an MCP server called `code-session-memory` that automatically indexes all your past coding sessions — from
|
|
7
|
+
You have access to an MCP server called `code-session-memory` that automatically indexes all your past coding sessions — from **OpenCode**, **Claude Code**, **Cursor**, and **VS Code** — into a single shared local vector database. Every time a session completes a turn, the new messages are embedded and stored, giving you a searchable memory of your entire AI coding history across all tools.
|
|
8
8
|
|
|
9
9
|
## Available tools
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@ Semantically search across all indexed sessions to find past conversations, deci
|
|
|
15
15
|
**Parameters:**
|
|
16
16
|
- `queryText` *(required)*: A natural language description of what you are looking for.
|
|
17
17
|
- `project` *(optional)*: Filter results to a specific project directory path (e.g. `"/Users/me/myproject"`).
|
|
18
|
-
- `source` *(optional)*: Filter by tool — `"opencode"`, `"claude-code"`, or `"
|
|
18
|
+
- `source` *(optional)*: Filter by tool — `"opencode"`, `"claude-code"`, `"cursor"`, or `"vscode"`. Omit to search across all.
|
|
19
19
|
- `limit` *(optional, default 5)*: Number of results to return (1–20).
|
|
20
20
|
- `fromDate` *(optional)*: Return only chunks indexed on or after this date. ISO 8601, e.g. `"2026-02-01"` or `"2026-02-20T15:00:00Z"`.
|
|
21
21
|
- `toDate` *(optional)*: Return only chunks indexed on or before this date. ISO 8601, e.g. `"2026-02-20"`. Date-only values are treated as end-of-day UTC.
|
|
@@ -51,6 +51,9 @@ query_sessions("dark mode toggle", project="/Users/me/myapp", source="opencode")
|
|
|
51
51
|
# Search only Claude Code sessions
|
|
52
52
|
query_sessions("sqlite migration", source="claude-code")
|
|
53
53
|
|
|
54
|
+
# Search only VS Code sessions
|
|
55
|
+
query_sessions("refactoring utils", source="vscode")
|
|
56
|
+
|
|
54
57
|
# Search sessions from a specific date range
|
|
55
58
|
query_sessions("authentication middleware", fromDate="2026-02-01", toDate="2026-02-20")
|
|
56
59
|
|
|
@@ -60,7 +63,7 @@ get_session_chunks("session://ses_abc123#msg_def456")
|
|
|
60
63
|
|
|
61
64
|
## Notes
|
|
62
65
|
|
|
63
|
-
- Sessions from OpenCode, Claude Code, and
|
|
66
|
+
- Sessions from OpenCode, Claude Code, Cursor, and VS Code are indexed into the **same** database.
|
|
64
67
|
- Indexing is automatic — no manual action needed.
|
|
65
68
|
- The database lives at `~/.local/share/code-session-memory/sessions.db`.
|
|
66
69
|
- Embeddings use OpenAI `text-embedding-3-large` (3072 dimensions).
|