code-session-memory 0.4.4 → 0.7.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.
Files changed (43) hide show
  1. package/README.md +78 -58
  2. package/dist/mcp/index.js +23 -2
  3. package/dist/mcp/index.js.map +1 -1
  4. package/dist/mcp/server.d.ts +4 -2
  5. package/dist/mcp/server.d.ts.map +1 -1
  6. package/dist/mcp/server.js +11 -3
  7. package/dist/mcp/server.js.map +1 -1
  8. package/dist/src/cli-sessions.d.ts +6 -7
  9. package/dist/src/cli-sessions.d.ts.map +1 -1
  10. package/dist/src/cli-sessions.js +238 -178
  11. package/dist/src/cli-sessions.js.map +1 -1
  12. package/dist/src/cli.js +272 -12
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/cursor-to-messages.d.ts +64 -0
  15. package/dist/src/cursor-to-messages.d.ts.map +1 -0
  16. package/dist/src/cursor-to-messages.js +243 -0
  17. package/dist/src/cursor-to-messages.js.map +1 -0
  18. package/dist/src/cursor-transcript-to-messages.d.ts +22 -0
  19. package/dist/src/cursor-transcript-to-messages.d.ts.map +1 -0
  20. package/dist/src/cursor-transcript-to-messages.js +79 -0
  21. package/dist/src/cursor-transcript-to-messages.js.map +1 -0
  22. package/dist/src/database.d.ts +13 -2
  23. package/dist/src/database.d.ts.map +1 -1
  24. package/dist/src/database.js +42 -8
  25. package/dist/src/database.js.map +1 -1
  26. package/dist/src/indexer-cli-cursor.d.ts +25 -0
  27. package/dist/src/indexer-cli-cursor.d.ts.map +1 -0
  28. package/dist/src/indexer-cli-cursor.js +118 -0
  29. package/dist/src/indexer-cli-cursor.js.map +1 -0
  30. package/dist/src/indexer-cli.js +76 -6
  31. package/dist/src/indexer-cli.js.map +1 -1
  32. package/dist/src/indexer.d.ts.map +1 -1
  33. package/dist/src/indexer.js +46 -9
  34. package/dist/src/indexer.js.map +1 -1
  35. package/dist/src/opencode-db-to-messages.d.ts +30 -0
  36. package/dist/src/opencode-db-to-messages.d.ts.map +1 -0
  37. package/dist/src/opencode-db-to-messages.js +88 -0
  38. package/dist/src/opencode-db-to-messages.js.map +1 -0
  39. package/dist/src/types.d.ts +6 -1
  40. package/dist/src/types.d.ts.map +1 -1
  41. package/package.json +3 -2
  42. package/plugin/memory.ts +9 -1
  43. package/skill/memory.md +7 -2
package/README.md CHANGED
@@ -1,30 +1,30 @@
1
1
  # code-session-memory
2
2
 
3
- Automatic vector memory for [OpenCode](https://opencode.ai) and [Claude Code](https://claude.ai/code) sessions — shared across both tools.
3
+ Automatic vector memory for [OpenCode](https://opencode.ai), [Claude Code](https://claude.ai/code), and [Cursor](https://www.cursor.com) sessions — shared across all three 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 both OpenCode and Claude Code are stored in the **same database**, so memory is shared across tools.
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 Cursor 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 event) Claude Code (Stop hook)
11
-
12
- fetches messages via REST API │ reads JSONL transcript
13
-
14
- session-to-md transcript-to-messages
15
-
16
- └───────────────┬───────────────────────┘
17
-
18
- chunker → heading-aware chunks (≤1000 tokens, 10% overlap)
19
-
20
-
21
- embedder → OpenAI text-embedding-3-large (3072 dims)
22
-
23
-
24
- sqlite-vec DB → ~/.local/share/code-session-memory/sessions.db
25
-
26
-
27
- MCP server → query_sessions / get_session_chunks tools
10
+ OpenCode (session.idle) Claude Code (Stop hook) Cursor (stop hook)
11
+
12
+ │ REST API messagesJSONL transcript │ JSONL transcript
13
+
14
+ session-to-md transcript-to-messages cursor-transcript-to-messages
15
+
16
+ └───────────────────────────┬────────────────────────┘
17
+
18
+ chunker → heading-aware chunks (≤1000 tokens, 10% overlap)
19
+
20
+
21
+ embedder → OpenAI text-embedding-3-large (3072 dims)
22
+ (all chunks batched in a single API call per turn)
23
+
24
+ sqlite-vec DB → ~/.local/share/code-session-memory/sessions.db
25
+
26
+
27
+ MCP server → query_sessions / get_session_chunks tools
28
28
  ```
29
29
 
30
30
  Only **new messages** are indexed on each turn — previously indexed messages are skipped (tracked via `sessions_meta` table). This makes each indexing pass fast, even in long sessions.
@@ -35,7 +35,7 @@ Only **new messages** are indexed on each turn — previously indexed messages a
35
35
 
36
36
  - Node.js ≥ 18
37
37
  - An OpenAI API key (for `text-embedding-3-large`)
38
- - OpenCode and/or Claude Code installed
38
+ - OpenCode, Claude Code, and/or Cursor installed
39
39
 
40
40
  ### Install
41
41
 
@@ -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 both tools in one shot:
46
+ The `install` command sets up everything for all three tools in one shot:
47
47
 
48
48
  **OpenCode:**
49
49
  1. Copies the plugin to `~/.config/opencode/plugins/code-session-memory.ts`
@@ -51,15 +51,20 @@ The `install` command sets up everything for both tools in one shot:
51
51
  3. Writes the MCP server entry into `~/.config/opencode/opencode.json`
52
52
 
53
53
  **Claude Code:**
54
- 1. Writes a `Stop` hook to `~/.claude.json` (user-scoped global config; fires after each agent turn)
54
+ 1. Writes a `Stop` hook to `~/.claude/settings.json` (fires after each agent turn)
55
55
  2. Injects the skill into `~/.claude/CLAUDE.md` (with idempotent markers)
56
56
  3. Writes the MCP server entry into `~/.claude.json`
57
57
 
58
- **Both tools share:**
58
+ **Cursor:**
59
+ 1. Writes a `stop` hook to `~/.cursor/hooks.json` (fires after each agent turn; requires Cursor v2.5+)
60
+ 2. Writes the MCP server entry into `~/.cursor/mcp.json`
61
+ 3. Copies the skill to `~/.cursor/skills/code-session-memory/SKILL.md`
62
+
63
+ **All tools share:**
59
64
  - The same database at `~/.local/share/code-session-memory/sessions.db`
60
65
  - The same MCP server for querying past sessions
61
66
 
62
- Then **restart OpenCode / Claude Code** to activate.
67
+ Then **restart OpenCode / Claude Code / Cursor** to activate.
63
68
 
64
69
  ### Set your API key
65
70
 
@@ -111,8 +116,10 @@ Semantic search across all indexed sessions.
111
116
  |---|---|---|---|
112
117
  | `queryText` | string | yes | Natural language query |
113
118
  | `project` | string | no | Filter by project directory path |
114
- | `source` | string | no | Filter by tool: `"opencode"` or `"claude-code"` |
119
+ | `source` | string | no | Filter by tool: `"opencode"`, `"claude-code"`, or `"cursor"` |
115
120
  | `limit` | number | no | Max results (default: 5) |
121
+ | `fromDate` | string | no | Return chunks indexed on or after this date (ISO 8601, e.g. `"2026-02-01"`) |
122
+ | `toDate` | string | no | Return chunks indexed on or before this date (ISO 8601, e.g. `"2026-02-20"`) |
116
123
 
117
124
  Example result:
118
125
  ```
@@ -142,8 +149,7 @@ Retrieve the full ordered content of a specific session message. Use the `sessio
142
149
  You can browse, inspect, and delete indexed sessions directly from the CLI:
143
150
 
144
151
  ```bash
145
- npx code-session-memory sessions # interactive browser
146
- npx code-session-memory sessions --filter # with source/date filter step
152
+ npx code-session-memory sessions # interactive browser (source → date → session)
147
153
  ```
148
154
 
149
155
  The interactive browser lists all sessions with their title, date, source tool, and chunk count. Select a session to:
@@ -155,11 +161,9 @@ You can also `print` or `delete` directly. Without an ID, an interactive picker
155
161
 
156
162
  ```bash
157
163
  npx code-session-memory sessions print # pick interactively, then print
158
- npx code-session-memory sessions print --filter # filter first, then pick and print
159
164
  npx code-session-memory sessions print <id> # print directly by session ID
160
165
 
161
166
  npx code-session-memory sessions delete # pick interactively, then delete
162
- npx code-session-memory sessions delete --filter # filter first, then pick and delete
163
167
  npx code-session-memory sessions delete <id> # delete directly by session ID
164
168
  ```
165
169
 
@@ -182,10 +186,6 @@ How can I add JWT authentication to the Express middleware?
182
186
  ...
183
187
  ```
184
188
 
185
- **Filtering options** (with `--filter`):
186
- - Source: All tools / OpenCode / Claude Code
187
- - Date range: Last 7 / 30 / 90 days, last N days (custom), or older than N days (custom)
188
-
189
189
  > **Note:** Deleting a session only removes it from the database. If the original session files still exist on disk, the session will be re-indexed automatically on the next agent turn.
190
190
 
191
191
  ### Asking the agent about past sessions
@@ -208,6 +208,8 @@ Show me how we solved the TypeScript config issue.
208
208
  | `OPENAI_API_KEY` | — | **Required.** Used for embedding generation. |
209
209
  | `OPENCODE_MEMORY_DB_PATH` | `~/.local/share/code-session-memory/sessions.db` | Override the database path. |
210
210
  | `OPENCODE_CONFIG_DIR` | `~/.config/opencode` | Override the OpenCode config directory. |
211
+ | `CLAUDE_CONFIG_DIR` | `~/.claude` | Override the Claude Code config directory. |
212
+ | `CURSOR_CONFIG_DIR` | `~/.cursor` | Override the Cursor config directory. |
211
213
  | `OPENAI_MODEL` | `text-embedding-3-large` | Override the embedding model. |
212
214
 
213
215
  ### Database path
@@ -230,19 +232,23 @@ code-session-memory/
230
232
  │ ├── chunker.ts # Heading-aware markdown chunker
231
233
  │ ├── embedder.ts # OpenAI embeddings (batched)
232
234
  │ ├── session-to-md.ts # OpenCode SDK messages → markdown
233
- │ ├── transcript-to-messages.ts # Claude Code JSONL transcript parser
234
- │ ├── indexer.ts # Orchestrator: incremental indexing
235
- │ ├── indexer-cli.ts # Node.js subprocess (called by OpenCode plugin)
236
- │ ├── indexer-cli-claude.ts # Node.js subprocess (called by Claude Code hook)
237
- │ ├── cli.ts # install / status / uninstall / reset-db commands
238
- └── cli-sessions.ts # sessions list / print / delete (interactive TUI)
235
+ │ ├── transcript-to-messages.ts # Claude Code JSONL transcript parser
236
+ │ ├── cursor-to-messages.ts # Cursor state.vscdb reader (metadata + title)
237
+ │ ├── cursor-transcript-to-messages.ts # Cursor JSONL transcript parser FullMessage[]
238
+ │ ├── opencode-db-to-messages.ts # OpenCode internal DB reader (fallback for -s mode)
239
+ │ ├── indexer.ts # Orchestrator: incremental indexing
240
+ ├── indexer-cli.ts # Node.js subprocess (called by OpenCode plugin)
241
+ │ ├── indexer-cli-claude.ts # Node.js subprocess (called by Claude Code hook)
242
+ │ ├── indexer-cli-cursor.ts # Node.js subprocess (called by Cursor stop hook)
243
+ │ ├── cli.ts # install / status / uninstall / reset-db commands
244
+ │ └── cli-sessions.ts # sessions list / print / delete / purge (TUI)
239
245
  ├── mcp/
240
246
  │ ├── server.ts # MCP query handlers (testable, injected deps)
241
247
  │ └── index.ts # MCP stdio server entry point
242
248
  ├── plugin/
243
249
  │ └── memory.ts # OpenCode plugin (session.idle hook)
244
250
  ├── skill/
245
- │ └── memory.md # Skill instructions (injected into both tools)
251
+ │ └── memory.md # Skill instructions (injected into all tools)
246
252
  ├── scripts/
247
253
  │ └── generate-fixtures.ts # Generates committed e2e test fixtures (run manually)
248
254
  └── tests/
@@ -252,9 +258,13 @@ code-session-memory/
252
258
  ├── indexer.test.ts
253
259
  ├── mcp-server.test.ts
254
260
  ├── session-to-md.test.ts
255
- ├── e2e-claude.test.ts # End-to-end: Claude Code pipeline
256
- ├── e2e-opencode.test.ts # End-to-end: OpenCode pipeline
257
- └── fixtures/ # Committed session files (generated by generate-fixtures)
261
+ ├── cursor-to-messages.test.ts # Unit tests: Cursor SQLite reader
262
+ ├── cursor-transcript-to-messages.test.ts # Unit tests: Cursor JSONL parser
263
+ ├── opencode-db-to-messages.test.ts # Unit tests: OpenCode internal DB reader
264
+ ├── e2e-claude.test.ts # End-to-end: Claude Code pipeline
265
+ ├── e2e-opencode.test.ts # End-to-end: OpenCode pipeline
266
+ ├── e2e-cursor.test.ts # End-to-end: Cursor pipeline
267
+ └── fixtures/ # Committed session files (generated by generate-fixtures)
258
268
  ```
259
269
 
260
270
  ## Development
@@ -287,22 +297,26 @@ Tests use [Vitest](https://vitest.dev) and run without any external dependencies
287
297
  - E2e tests use committed fixture files in `tests/fixtures/` (real transcripts, no CLI calls during `npm test`)
288
298
 
289
299
  ```
290
- ✓ tests/chunker.test.ts (15 tests)
291
- ✓ tests/mcp-server.test.ts (13 tests)
292
- ✓ tests/session-to-md.test.ts (18 tests)
293
- ✓ tests/embedder.test.ts (9 tests)
294
- ✓ tests/database.test.ts (25 tests)
295
- ✓ tests/indexer.test.ts (8 tests)
296
- ✓ tests/e2e-claude.test.ts (16 tests)
297
- ✓ tests/e2e-opencode.test.ts (14 tests)
298
- Tests 118 passed
300
+ ✓ tests/chunker.test.ts (15 tests)
301
+ ✓ tests/mcp-server.test.ts (14 tests)
302
+ ✓ tests/session-to-md.test.ts (21 tests)
303
+ ✓ tests/embedder.test.ts (9 tests)
304
+ ✓ tests/database.test.ts (27 tests)
305
+ ✓ tests/indexer.test.ts (9 tests)
306
+ ✓ tests/cursor-to-messages.test.ts (15 tests)
307
+ ✓ tests/cursor-transcript-to-messages.test.ts (7 tests)
308
+ ✓ tests/opencode-db-to-messages.test.ts (8 tests)
309
+ ✓ tests/e2e-claude.test.ts (18 tests)
310
+ ✓ tests/e2e-cursor.test.ts (8 tests)
311
+ ✓ tests/e2e-opencode.test.ts (14 tests)
312
+ Tests 165 passed
299
313
  ```
300
314
 
301
315
  To refresh the e2e fixtures (e.g. after changing the indexer or parsers), run:
302
316
  ```bash
303
317
  npm run generate-fixtures
304
318
  ```
305
- This invokes the real `claude` and `opencode` CLIs to generate two-turn sessions with tool use, then commits the results to `tests/fixtures/`.
319
+ This invokes the real `claude` and `opencode` CLIs to generate two-turn sessions with tool use, reads the most recent Cursor session from the live `state.vscdb`, then commits all results to `tests/fixtures/`.
306
320
 
307
321
  ## Uninstall
308
322
 
@@ -310,7 +324,7 @@ This invokes the real `claude` and `opencode` CLIs to generate two-turn sessions
310
324
  npx code-session-memory uninstall
311
325
  ```
312
326
 
313
- This removes the plugin, hooks, skill files, and MCP config entries for both tools. The database is **not** removed automatically.
327
+ This removes the plugin, hooks, skill files, and MCP config entries for all tools (OpenCode, Claude Code, and Cursor). The database is **not** removed automatically.
314
328
 
315
329
  To delete individual sessions instead of wiping everything, use the [session browser](#browsing-sessions):
316
330
  ```bash
@@ -349,10 +363,10 @@ The plugin/hook fires on every agent turn. To avoid re-processing the entire ses
349
363
 
350
364
  1. Reads `last_indexed_message_id` from the `sessions_meta` table
351
365
  2. Skips all messages up to and including that ID
352
- 3. Processes only the new messages
366
+ 3. Processes only the new messages — renders, chunks, and embeds all of them in a **single batched OpenAI API call**
353
367
  4. Updates `last_indexed_message_id` after success
354
368
 
355
- This makes each indexing pass O(new messages) rather than O(all messages).
369
+ This makes each indexing pass O(new messages) rather than O(all messages), and limits network round-trips to one embedding call per turn regardless of message count.
356
370
 
357
371
  ### Why a Node.js subprocess?
358
372
 
@@ -365,6 +379,12 @@ Claude Code writes a JSONL transcript after each session turn. The parser (`tran
365
379
  - Skipping internal `thinking` blocks, metadata entries, and error messages
366
380
  - Converting `tool_use` / `tool_result` entries to readable markdown
367
381
 
382
+ ### Cursor session reading
383
+
384
+ Cursor provides a `transcript_path` field in the stop hook payload — a JSONL file written **synchronously before the hook fires**, so it is always complete and race-condition-free. Each line is `{ "role": "user"|"assistant", "message": { "content": [{ "type": "text", "text": "..." }] } }`. The reader (`cursor-transcript-to-messages.ts`) parses this file directly, strips Cursor's `<user_query>` wrapper tags, and assigns stable `composerId-lineIndex` IDs for incremental indexing.
385
+
386
+ 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+**.
387
+
368
388
  ### Chunking strategy
369
389
 
370
390
  - Heading-aware splitting — headings define semantic boundaries
@@ -375,7 +395,7 @@ Claude Code writes a JSONL transcript after each session turn. The parser (`tran
375
395
 
376
396
  ### MCP server
377
397
 
378
- 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 accepts an optional `source` parameter to filter results to a specific tool.
398
+ 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`).
379
399
 
380
400
  ## License
381
401
 
package/dist/mcp/index.js CHANGED
@@ -112,8 +112,10 @@ 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"]).optional().describe("Filter results by tool source: 'opencode' or 'claude-code'. Optional — omit to search across both."),
115
+ source: zod_1.z.enum(["opencode", "claude-code", "cursor"]).optional().describe("Filter results by tool source: 'opencode', 'claude-code', or 'cursor'. 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
+ 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
+ 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."),
117
119
  };
118
120
  const getSessionChunksSchema = {
119
121
  sessionUrl: zod_1.z.string().min(1).describe("The session message URL from a query_sessions result (e.g. 'session://ses_xxx#msg_yyy')."),
@@ -123,7 +125,26 @@ const getSessionChunksSchema = {
123
125
  // Cast server to any to avoid deep MCP SDK Zod type instantiation (TS2589)
124
126
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
125
127
  const serverAny = server;
126
- serverAny.tool("query_sessions", "Semantically search across all indexed sessions stored in the vector database. Returns the most relevant chunks from past sessions. Sessions from both OpenCode and Claude Code are indexed into the same shared database.", querySessionsSchema, async (args) => querySessionsHandler({ ...args, limit: args.limit ?? 5 }));
128
+ serverAny.tool("query_sessions", "Semantically search across all indexed sessions stored in the vector database. Returns the most relevant chunks from past sessions. Sessions from both OpenCode and Claude Code are indexed into the same shared database.", querySessionsSchema, async (args) => {
129
+ // Parse ISO 8601 date strings into unix milliseconds.
130
+ // For toDate, a date-only string (no time component) is treated as end-of-day UTC
131
+ // by adding 86399999ms (23:59:59.999).
132
+ let fromMs;
133
+ let toMs;
134
+ if (args.fromDate) {
135
+ const t = new Date(args.fromDate).getTime();
136
+ if (!Number.isNaN(t))
137
+ fromMs = t;
138
+ }
139
+ if (args.toDate) {
140
+ const t = new Date(args.toDate).getTime();
141
+ if (!Number.isNaN(t)) {
142
+ // If the value is a date-only string (no 'T' separator), bump to end-of-day
143
+ toMs = args.toDate.includes("T") ? t : t + 86399999;
144
+ }
145
+ }
146
+ return querySessionsHandler({ ...args, limit: args.limit ?? 5, fromMs, toMs });
147
+ });
127
148
  serverAny.tool("get_session_chunks", "Retrieve the ordered content chunks for a specific session message. Use the URL from query_sessions results (e.g. 'session://ses_xxx#msg_yyy') to get the full context around a match.", getSessionChunksSchema, async (args) => getSessionChunksHandler(args));
128
149
  // ---------------------------------------------------------------------------
129
150
  // Start
@@ -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":"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"}
@@ -27,12 +27,12 @@ export declare function createSqliteProvider(deps: {
27
27
  Database: new (path: string) => SqliteDatabase;
28
28
  fs: FsModule;
29
29
  }): {
30
- querySessions: (queryEmbedding: number[], topK?: number, projectFilter?: string, sourceFilter?: string) => Promise<QueryResult[]>;
30
+ querySessions: (queryEmbedding: number[], topK?: number, projectFilter?: string, sourceFilter?: string, fromMs?: number, toMs?: number) => Promise<QueryResult[]>;
31
31
  getSessionChunks: (url: string, startIndex?: number, endIndex?: number) => Promise<QueryResult[]>;
32
32
  };
33
33
  export declare function createToolHandlers(deps: {
34
34
  createEmbedding: (text: string) => Promise<number[]>;
35
- querySessions: (embedding: number[], topK: number, project?: string, source?: string) => Promise<QueryResult[]>;
35
+ querySessions: (embedding: number[], topK: number, project?: string, source?: string, fromMs?: number, toMs?: number) => Promise<QueryResult[]>;
36
36
  getSessionChunks: (url: string, startIndex?: number, endIndex?: number) => Promise<QueryResult[]>;
37
37
  }): {
38
38
  querySessionsHandler: (args: {
@@ -40,6 +40,8 @@ export declare function createToolHandlers(deps: {
40
40
  project?: string;
41
41
  source?: string;
42
42
  limit?: number;
43
+ fromMs?: number;
44
+ toMs?: number;
43
45
  }) => Promise<{
44
46
  content: {
45
47
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,YAAY,EAAE,WAAW,EAAE,CAAC;AAM5B,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAA;CAAE,CAAC;AAC9D,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;CAC1C,CAAC;AACF,KAAK,QAAQ,GAAG;IAAE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC;AAMvD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;IAC/C,EAAE,EAAE,QAAQ,CAAC;CACd;oCAsBmB,MAAM,EAAE,iCAER,MAAM,iBACP,MAAM,KACpB,OAAO,CAAC,WAAW,EAAE,CAAC;4BA0ClB,MAAM,eACE,MAAM,aACR,MAAM,KAChB,OAAO,CAAC,WAAW,EAAE,CAAC;EAwB1B;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC7B;iCAK2C;QACxC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;;;;;;oCAuD4C;QAC3C,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;;;;;;EAwDF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,YAAY,EAAE,WAAW,EAAE,CAAC;AAM5B,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,CAAC,EAAE,EAAE,cAAc,KAAK,IAAI,CAAA;CAAE,CAAC;AAC9D,KAAK,cAAc,GAAG;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;IAC1C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;CAC1C,CAAC;AACF,KAAK,QAAQ,GAAG;IAAE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC;AAMvD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;IAC/C,EAAE,EAAE,QAAQ,CAAC;CACd;oCAsBmB,MAAM,EAAE,iCAER,MAAM,iBACP,MAAM,WACZ,MAAM,SACR,MAAM,KACZ,OAAO,CAAC,WAAW,EAAE,CAAC;4BAoDlB,MAAM,eACE,MAAM,aACR,MAAM,KAChB,OAAO,CAAC,WAAW,EAAE,CAAC;EAwB1B;AAMD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,KACV,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,gBAAgB,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,KACd,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC7B;iCAK2C;QACxC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;;;;;;oCAuD4C;QAC3C,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;;;;;;EAwDF"}
@@ -32,14 +32,14 @@ function createSqliteProvider(deps) {
32
32
  }
33
33
  }
34
34
  // ---- query_sessions -------------------------------------------------------
35
- async function querySessions(queryEmbedding, topK = 10, projectFilter, sourceFilter) {
35
+ async function querySessions(queryEmbedding, topK = 10, projectFilter, sourceFilter, fromMs, toMs) {
36
36
  return withDb((db) => {
37
37
  let sql = `
38
38
  WITH knn AS (
39
39
  SELECT
40
40
  chunk_id, content, url, section, heading_hierarchy,
41
41
  chunk_index, total_chunks, session_id, session_title, project,
42
- distance
42
+ distance, created_at
43
43
  FROM vec_items
44
44
  WHERE embedding MATCH ?
45
45
  AND k = ?
@@ -58,6 +58,14 @@ function createSqliteProvider(deps) {
58
58
  sql += " AND m.source = ?";
59
59
  params.push(sourceFilter);
60
60
  }
61
+ if (typeof fromMs === "number") {
62
+ sql += " AND knn.created_at >= ?";
63
+ params.push(BigInt(fromMs));
64
+ }
65
+ if (typeof toMs === "number") {
66
+ sql += " AND knn.created_at <= ?";
67
+ params.push(BigInt(toMs));
68
+ }
61
69
  sql += " ORDER BY distance";
62
70
  const rows = db.prepare(sql).all(...params);
63
71
  rows.forEach((r) => {
@@ -100,7 +108,7 @@ function createToolHandlers(deps) {
100
108
  console.error(`[query_sessions] text="${args.queryText}" project="${args.project ?? "any"}" source="${args.source ?? "any"}" limit=${limit}`);
101
109
  try {
102
110
  const embedding = await createEmbedding(args.queryText);
103
- const results = await querySessions(embedding, limit, args.project, args.source);
111
+ const results = await querySessions(embedding, limit, args.project, args.source, args.fromMs, args.toMs);
104
112
  if (results.length === 0) {
105
113
  return {
106
114
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,14 @@
2
2
  /**
3
3
  * sessions sub-commands for code-session-memory CLI
4
4
  *
5
- * sessions [list] Browse sessions (interactive TUI)
6
- * sessions list --filter Browse with filter step first
5
+ * sessions [list] Browse sessions (3-level tree: source → date → session)
7
6
  * sessions print [id] Print all chunks of a session to stdout
8
- * sessions print --filter Pick session interactively with filter, then print
9
7
  * sessions delete [id] Delete a session from the DB
10
- * sessions delete --filter Pick session interactively with filter, then delete
8
+ * sessions purge [--days <n>] [--yes] Delete all sessions older than N days
11
9
  */
12
- export declare function cmdSessionsList(args: string[]): Promise<void>;
13
- export declare function cmdSessionsPrint(sessionId?: string, args?: string[]): Promise<void>;
14
- export declare function cmdSessionsDelete(sessionId?: string, args?: string[]): Promise<void>;
10
+ export declare function cmdSessionsList(): Promise<void>;
11
+ export declare function cmdSessionsPrint(sessionId?: string): Promise<void>;
12
+ export declare function cmdSessionsDelete(sessionId?: string): Promise<void>;
13
+ export declare function cmdSessionsPurge(args: string[]): Promise<void>;
15
14
  export declare function cmdSessions(argv: string[]): Promise<void>;
16
15
  //# sourceMappingURL=cli-sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-sessions.d.ts","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAkPH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDnE;AAMD,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB7F;AAmDD,wBAAsB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD9F;AAwCD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC/D"}
1
+ {"version":3,"file":"cli-sessions.d.ts","sourceRoot":"","sources":["../../src/cli-sessions.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAyRH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBrD;AAqBD,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcxE;AAqDD,wBAAsB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDzE;AAMD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgFpE;AAoCD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/D"}