agent-knowledge 1.0.13 → 1.1.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 (57) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/README.md +60 -31
  3. package/dist/embeddings/{claude.d.ts → anthropic.d.ts} +2 -2
  4. package/dist/embeddings/anthropic.d.ts.map +1 -0
  5. package/dist/embeddings/{claude.js → anthropic.js} +2 -2
  6. package/dist/embeddings/anthropic.js.map +1 -0
  7. package/dist/embeddings/factory.js +4 -4
  8. package/dist/embeddings/factory.js.map +1 -1
  9. package/dist/embeddings/types.d.ts +1 -1
  10. package/dist/embeddings/types.d.ts.map +1 -1
  11. package/dist/embeddings/types.js +1 -1
  12. package/dist/embeddings/types.js.map +1 -1
  13. package/dist/knowledge/distill.d.ts +1 -1
  14. package/dist/knowledge/distill.js +2 -2
  15. package/dist/knowledge/distill.js.map +1 -1
  16. package/dist/server.js +2 -2
  17. package/dist/server.js.map +1 -1
  18. package/dist/sessions/adapters/aider.d.ts +3 -0
  19. package/dist/sessions/adapters/aider.d.ts.map +1 -0
  20. package/dist/sessions/adapters/aider.js +140 -0
  21. package/dist/sessions/adapters/aider.js.map +1 -0
  22. package/dist/sessions/adapters/cline.d.ts +3 -0
  23. package/dist/sessions/adapters/cline.d.ts.map +1 -0
  24. package/dist/sessions/adapters/cline.js +74 -0
  25. package/dist/sessions/adapters/cline.js.map +1 -0
  26. package/dist/sessions/adapters/continue.d.ts +3 -0
  27. package/dist/sessions/adapters/continue.d.ts.map +1 -0
  28. package/dist/sessions/adapters/continue.js +74 -0
  29. package/dist/sessions/adapters/continue.js.map +1 -0
  30. package/dist/sessions/adapters/index.d.ts +25 -0
  31. package/dist/sessions/adapters/index.d.ts.map +1 -0
  32. package/dist/sessions/adapters/index.js +21 -0
  33. package/dist/sessions/adapters/index.js.map +1 -0
  34. package/dist/sessions/adapters/opencode.d.ts +3 -0
  35. package/dist/sessions/adapters/opencode.d.ts.map +1 -0
  36. package/dist/sessions/adapters/opencode.js +88 -0
  37. package/dist/sessions/adapters/opencode.js.map +1 -0
  38. package/dist/sessions/parser.d.ts +12 -2
  39. package/dist/sessions/parser.d.ts.map +1 -1
  40. package/dist/sessions/parser.js +137 -20
  41. package/dist/sessions/parser.js.map +1 -1
  42. package/dist/sessions/summary.d.ts.map +1 -1
  43. package/dist/sessions/summary.js +20 -0
  44. package/dist/sessions/summary.js.map +1 -1
  45. package/dist/types.d.ts +3 -2
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +22 -12
  48. package/dist/types.js.map +1 -1
  49. package/dist/vectorstore/store.d.ts +1 -1
  50. package/dist/vectorstore/store.js +2 -2
  51. package/dist/vectorstore/store.js.map +1 -1
  52. package/docs/ARCHITECTURE.md +67 -10
  53. package/docs/DASHBOARD.md +4 -3
  54. package/docs/SETUP.md +84 -38
  55. package/package.json +2 -2
  56. package/dist/embeddings/claude.d.ts.map +0 -1
  57. package/dist/embeddings/claude.js.map +0 -1
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```mermaid
6
6
  graph TB
7
- Claude[Claude Code] -->|MCP stdio| Server[server.ts]
7
+ Agent[Agent Session] -->|MCP stdio| Server[server.ts]
8
8
  Server --> Knowledge[Knowledge Module]
9
9
  Server --> Session[Session Module]
10
10
 
@@ -12,15 +12,20 @@ graph TB
12
12
  Knowledge --> KSearch[search.ts — TF-IDF]
13
13
  Knowledge --> Git[git.ts — Sync]
14
14
 
15
- Store --> Vault[(~/claude-memory)]
15
+ Store --> Vault[(~/agent-knowledge)]
16
16
  Git --> Remote[(Git Remote)]
17
17
 
18
- Session --> Parser[parser.ts — JSONL + Cache]
18
+ Session --> Parser[parser.ts — Multi-format + Cache]
19
+ Session --> Adapters[adapters/ — Auto-discovery]
19
20
  Session --> SSearch[search.ts — TF-IDF Index]
20
21
  Session --> Scopes[scopes.ts — 6 Filters]
21
22
  Session --> Summary[summary.ts]
22
23
 
23
- Parser --> Transcripts[(~/.claude/projects/*.jsonl)]
24
+ Parser --> Transcripts[(Claude Code / Cursor<br/>JSONL)]
25
+ Adapters --> OpenCode[(OpenCode<br/>SQLite)]
26
+ Adapters --> Cline[(Cline<br/>JSON)]
27
+ Adapters --> ContinueDev[(Continue.dev<br/>JSON)]
28
+ Adapters --> Aider[(Aider<br/>MD / JSONL)]
24
29
 
25
30
  Server --> Dashboard[dashboard.ts — :3423]
26
31
  Dashboard --> HTTP[REST API]
@@ -43,10 +48,16 @@ src/
43
48
  search.ts TF-IDF search over knowledge entries
44
49
  git.ts git pull/push/sync with execSync + timeouts
45
50
  sessions/
46
- parser.ts JSONL parsing with mtime-based file cache
51
+ parser.ts Multi-format parsing with mtime cache + adapter dispatch
47
52
  search.ts TF-IDF ranked search with 60s global index cache
48
53
  scopes.ts 6 search scopes, post-filters cached index results
49
54
  summary.ts Topic extraction, tool/file detection
55
+ adapters/
56
+ index.ts SessionAdapter interface, adapter registry, initAdapters()
57
+ opencode.ts OpenCode adapter — reads SQLite database (better-sqlite3)
58
+ cline.ts Cline adapter — reads VS Code globalStorage JSON tasks
59
+ continue.ts Continue.dev adapter — reads JSON session files
60
+ aider.ts Aider adapter — parses markdown chat + JSONL LLM history
50
61
  search/
51
62
  tfidf.ts TF-IDF scoring engine (tokenizer, stopwords, index)
52
63
  fuzzy.ts Levenshtein distance, sliding window matching
@@ -83,12 +94,52 @@ Builds a TF-IDF index from all knowledge entries, searches with ranking, falls b
83
94
 
84
95
  ## Session Module
85
96
 
97
+ ### Multi-Source Architecture
98
+
99
+ Sessions are read from multiple AI coding tools through two mechanisms:
100
+
101
+ 1. **Direct parsing** -- Claude Code and Cursor sessions use JSONL files read directly by `parser.ts`. Claude Code sessions come from the primary data directory (`$KNOWLEDGE_DATA_DIR/projects/`). Cursor sessions are auto-discovered from `~/.cursor/projects/*/agent-transcripts/`.
102
+
103
+ 2. **Adapter dispatch** -- Other tools (OpenCode, Cline, Continue.dev, Aider) use the pluggable adapter system in `adapters/`. When `parseSessionFile()` receives a virtual descriptor (e.g. `opencode://session:abc`), it dispatches to the matching adapter.
104
+
105
+ ```
106
+ parseSessionFile(path)
107
+ → for each registered adapter:
108
+ if path starts with `<adapter.prefix>://` → adapter.parseSession(path)
109
+ → else: standard JSONL parsing with mtime cache
110
+ ```
111
+
112
+ ### Session Adapters
113
+
114
+ The adapter system (`src/sessions/adapters/`) provides a uniform interface for reading sessions from different tools:
115
+
116
+ ```typescript
117
+ interface SessionAdapter {
118
+ prefix: string; // Virtual descriptor prefix (e.g. "opencode")
119
+ name: string; // Human-readable name
120
+ isAvailable(): boolean; // Is the tool installed?
121
+ discoverProjects(): Array<{...}>; // Find projects/groups
122
+ listSessions(desc: string): Array<{...}>; // List sessions in a project
123
+ parseSession(desc: string): SessionEntry[]; // Parse into normalized entries
124
+ }
125
+ ```
126
+
127
+ Adapters are registered at startup via `initAdapters()`, which dynamically imports each adapter module. `getAvailableAdapters()` returns only adapters whose `isAvailable()` returns true (the tool is installed).
128
+
129
+ | Adapter | Storage | Detection |
130
+ | ------------ | ----------------------------------------------- | ------------------------------------------------------------------------ |
131
+ | OpenCode | SQLite (`opencode.db`) | Checks `$OPENCODE_DATA_DIR` or `~/.local/share/opencode/` |
132
+ | Cline | JSON files in VS Code globalStorage | Platform-aware path to `saoudrizwan.claude-dev/tasks/` |
133
+ | Continue.dev | JSON files in `~/.continue/sessions/` | Checks directory existence |
134
+ | Aider | `.aider.chat.history.md` + `.aider.llm.history` | Scans `~/projects`, `~/code`, `~/dev`, `~/src`, `~/repos`, `~/workspace` |
135
+
86
136
  ### parser.ts — Mtime Cache
87
137
 
88
- Before parsing a JSONL file, checks `fs.statSync` for mtime. If unchanged since last parse, returns cached result. This avoids re-parsing large transcript files on every search.
138
+ For JSONL-based sessions (Claude Code, Cursor), the parser checks `fs.statSync` for mtime before parsing. If unchanged since last parse, returns cached result. This avoids re-parsing large transcript files on every search.
89
139
 
90
140
  ```
91
141
  parseSessionFile(path)
142
+ → if virtual descriptor → dispatch to adapter
92
143
  → statSync(path).mtimeMs
93
144
  → if mtime matches cache → return cached entries
94
145
  → else parse JSONL lines → cache with mtime → return
@@ -200,17 +251,19 @@ Search Request
200
251
 
201
252
  ```mermaid
202
253
  sequenceDiagram
203
- participant C as Claude Code
254
+ participant C as Agent Session
204
255
  participant S as MCP Server
205
256
  participant I as TF-IDF Index
206
257
  participant P as Parser Cache
258
+ participant A as Session Adapters
207
259
  participant F as File System
208
260
 
209
261
  C->>S: knowledge_search({ query })
210
262
  S->>I: search(query)
211
263
  alt Index expired
212
- I->>F: List .jsonl files
213
- loop Each file
264
+ I->>F: List JSONL files (Claude Code, Cursor)
265
+ I->>A: Discover sessions (OpenCode, Cline, Continue.dev, Aider)
266
+ loop Each JSONL file
214
267
  alt Mtime changed
215
268
  I->>P: parse(file)
216
269
  P->>F: Read JSONL
@@ -220,6 +273,10 @@ sequenceDiagram
220
273
  P-->>I: Cached entries
221
274
  end
222
275
  end
276
+ loop Each adapter session
277
+ I->>A: parseSession(descriptor)
278
+ A-->>I: Normalized entries
279
+ end
223
280
  I->>I: Rebuild index
224
281
  end
225
282
  I-->>S: Ranked results
@@ -230,7 +287,7 @@ sequenceDiagram
230
287
 
231
288
  ```mermaid
232
289
  sequenceDiagram
233
- participant C as Claude Code
290
+ participant C as Agent Session
234
291
  participant S as MCP Server
235
292
  participant G as Git
236
293
  participant F as File System
package/docs/DASHBOARD.md CHANGED
@@ -45,15 +45,16 @@ Click a result to open the session in the side panel.
45
45
 
46
46
  ## Sessions Tab
47
47
 
48
- Lists all Claude Code sessions with metadata:
48
+ Lists sessions from all detected AI coding tools with metadata:
49
49
 
50
+ - Source tool indicator (Claude Code, Cursor, OpenCode, Cline, Continue.dev, Aider)
50
51
  - Project name
51
- - Git branch
52
+ - Git branch (when available)
52
53
  - Message count
53
54
  - Date
54
55
  - Preview of first user message
55
56
 
56
- Project filter dropdown at the top.
57
+ Project filter dropdown at the top. Sessions from all tools are merged into a single unified list.
57
58
 
58
59
  Click a session to open the side panel with the full conversation rendered as chat bubbles.
59
60
 
package/docs/SETUP.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Setup Guide
2
2
 
3
- Detailed instructions for installing, configuring, and integrating agent-knowledge with any MCP client.
3
+ Detailed instructions for installing, configuring, and integrating agent-knowledge with any MCP-compatible AI agent or coding assistant.
4
4
 
5
5
  ## Table of Contents
6
6
 
@@ -20,6 +20,7 @@ Detailed instructions for installing, configuring, and integrating agent-knowled
20
20
  - [Environment Variables](#environment-variables)
21
21
  - [Dashboard](#dashboard)
22
22
  - [Multi-Machine Sync](#multi-machine-sync)
23
+ - [Session Sources](#session-sources)
23
24
  - [Session Auto-Distillation](#session-auto-distillation)
24
25
  - [Troubleshooting](#troubleshooting)
25
26
 
@@ -64,7 +65,7 @@ agent-knowledge works with any MCP client (stdio) or HTTP client (REST API). Pic
64
65
 
65
66
  ```bash
66
67
  claude mcp add agent-knowledge -s user \
67
- -e KNOWLEDGE_MEMORY_DIR="$HOME/claude-memory" \
68
+ -e KNOWLEDGE_MEMORY_DIR="$HOME/agent-knowledge" \
68
69
  -- node /path/to/agent-knowledge/dist/index.js
69
70
  ```
70
71
 
@@ -99,7 +100,7 @@ claude mcp list
99
100
  "type": "local",
100
101
  "command": ["node", "/absolute/path/to/agent-knowledge/dist/index.js"],
101
102
  "environment": {
102
- "KNOWLEDGE_MEMORY_DIR": "/home/you/claude-memory",
103
+ "KNOWLEDGE_MEMORY_DIR": "/home/you/agent-knowledge",
103
104
  "KNOWLEDGE_PORT": "3423"
104
105
  }
105
106
  }
@@ -118,7 +119,7 @@ claude mcp list
118
119
  "command": "node",
119
120
  "args": ["/absolute/path/to/agent-knowledge/dist/index.js"],
120
121
  "env": {
121
- "KNOWLEDGE_MEMORY_DIR": "/home/you/claude-memory",
122
+ "KNOWLEDGE_MEMORY_DIR": "/home/you/agent-knowledge",
122
123
  "KNOWLEDGE_PORT": "3423"
123
124
  }
124
125
  }
@@ -137,7 +138,7 @@ claude mcp list
137
138
  "command": "node",
138
139
  "args": ["/absolute/path/to/agent-knowledge/dist/index.js"],
139
140
  "env": {
140
- "KNOWLEDGE_MEMORY_DIR": "/home/you/claude-memory",
141
+ "KNOWLEDGE_MEMORY_DIR": "/home/you/agent-knowledge",
141
142
  "KNOWLEDGE_PORT": "3423"
142
143
  }
143
144
  }
@@ -255,10 +256,10 @@ The knowledge base is a git repository with categorized markdown files.
255
256
 
256
257
  ```bash
257
258
  # Clone existing
258
- git clone https://your-git-host/claude-memory.git ~/claude-memory
259
+ git clone https://your-git-host/agent-knowledge.git ~/agent-knowledge
259
260
 
260
261
  # Or create new
261
- mkdir -p ~/claude-memory && cd ~/claude-memory && git init
262
+ mkdir -p ~/agent-knowledge && cd ~/agent-knowledge && git init
262
263
  mkdir projects people decisions workflows notes
263
264
  git add . && git commit -m "Initialize knowledge base"
264
265
  git remote add origin <your-remote-url>
@@ -268,7 +269,7 @@ git push -u origin main
268
269
  ### Directory structure
269
270
 
270
271
  ```
271
- ~/claude-memory/
272
+ ~/agent-knowledge/
272
273
  projects/ # Project context, architecture, tech stacks
273
274
  people/ # Team members, contacts, preferences
274
275
  decisions/ # Architecture decisions, trade-offs, rationale
@@ -294,33 +295,34 @@ Architecture notes, deployment info, etc.
294
295
 
295
296
  ## Environment Variables
296
297
 
297
- | Variable | Default | Description |
298
- | ------------------------------------------------ | ----------------- | -------------------------------------------------- |
299
- | `KNOWLEDGE_MEMORY_DIR` | `~/claude-memory` | Path to git-synced knowledge base |
300
- | `CLAUDE_MEMORY_DIR` | `~/claude-memory` | Alias (backwards compat) |
301
- | `CLAUDE_DIR` | `~/.claude` | Claude Code data directory |
302
- | `KNOWLEDGE_PORT` | `3423` | Dashboard HTTP/WebSocket port |
303
- | `KNOWLEDGE_EMBEDDING_PROVIDER` | `local` | Embedding provider (local, openai, claude, gemini) |
304
- | `KNOWLEDGE_EMBEDDING_ALPHA` | `0.5` | Blend weight for semantic vs TF-IDF search (0-1) |
305
- | `KNOWLEDGE_EMBEDDING_IDLE_TIMEOUT` | | Idle timeout for embedding worker (ms) |
306
- | `KNOWLEDGE_EMBEDDING_THREADS` | — | Number of ONNX threads for local embeddings |
307
- | `KNOWLEDGE_EMBEDDING_MODEL` | — | Model name for embedding provider |
308
- | `KNOWLEDGE_GIT_URL` | — | Remote git URL for knowledge base sync |
309
- | `KNOWLEDGE_AUTO_DISTILL` | — | Enable auto-distillation of sessions (true/false) |
310
- | `KNOWLEDGE_OPENAI_API_KEY` / `OPENAI_API_KEY` | — | API key for OpenAI embeddings |
311
- | `KNOWLEDGE_CLAUDE_API_KEY` / `ANTHROPIC_API_KEY` | — | API key for Claude/Voyage embeddings |
312
- | `KNOWLEDGE_GEMINI_API_KEY` / `GEMINI_API_KEY` | — | API key for Gemini embeddings |
298
+ | Variable | Default | Description |
299
+ | --------------------------------------------------- | ------------------- | -------------------------------------------------------------- |
300
+ | `KNOWLEDGE_MEMORY_DIR` | `~/agent-knowledge` | Path to git-synced knowledge base |
301
+ | `KNOWLEDGE_DATA_DIR` | `~/.claude` | Primary session data directory (Claude Code JSONL) |
302
+ | `EXTRA_SESSION_ROOTS` | -- | Additional session directories, comma-separated |
303
+ | `OPENCODE_DATA_DIR` | (platform default) | Override OpenCode data dir (default `~/.local/share/opencode`) |
304
+ | `KNOWLEDGE_PORT` | `3423` | Dashboard HTTP/WebSocket port |
305
+ | `KNOWLEDGE_EMBEDDING_PROVIDER` | `local` | Embedding provider (local, openai, claude, gemini) |
306
+ | `KNOWLEDGE_EMBEDDING_ALPHA` | `0.5` | Blend weight for semantic vs TF-IDF search (0-1) |
307
+ | `KNOWLEDGE_EMBEDDING_IDLE_TIMEOUT` | — | Idle timeout for embedding worker (ms) |
308
+ | `KNOWLEDGE_EMBEDDING_THREADS` | — | Number of ONNX threads for local embeddings |
309
+ | `KNOWLEDGE_EMBEDDING_MODEL` | — | Model name for embedding provider |
310
+ | `KNOWLEDGE_GIT_URL` | — | Remote git URL for knowledge base sync |
311
+ | `KNOWLEDGE_AUTO_DISTILL` | — | Enable auto-distillation of sessions (true/false) |
312
+ | `KNOWLEDGE_OPENAI_API_KEY` / `OPENAI_API_KEY` | — | API key for OpenAI embeddings |
313
+ | `KNOWLEDGE_ANTHROPIC_API_KEY` / `ANTHROPIC_API_KEY` | — | API key for Claude/Voyage embeddings |
314
+ | `KNOWLEDGE_GEMINI_API_KEY` / `GEMINI_API_KEY` | — | API key for Gemini embeddings |
313
315
 
314
316
  Set in your shell profile or pass via MCP config:
315
317
 
316
318
  ```bash
317
- export KNOWLEDGE_MEMORY_DIR="$HOME/claude-memory"
319
+ export KNOWLEDGE_MEMORY_DIR="$HOME/agent-knowledge"
318
320
  ```
319
321
 
320
322
  On Windows (PowerShell):
321
323
 
322
324
  ```powershell
323
- $env:KNOWLEDGE_MEMORY_DIR = "$env:USERPROFILE\claude-memory"
325
+ $env:KNOWLEDGE_MEMORY_DIR = "$env:USERPROFILE\agent-knowledge"
324
326
  ```
325
327
 
326
328
  ---
@@ -346,14 +348,37 @@ Live reload: edit files in `src/ui/` and the browser refreshes automatically.
346
348
  Ensure git credentials are configured (SSH key or credential helper):
347
349
 
348
350
  ```bash
349
- cd ~/claude-memory && git pull && git push # Should work without prompts
351
+ cd ~/agent-knowledge && git pull && git push # Should work without prompts
350
352
  ```
351
353
 
352
354
  ---
353
355
 
356
+ ## Session Sources
357
+
358
+ agent-knowledge auto-discovers sessions from all major AI coding assistants. If a tool is installed on your machine, its sessions appear automatically in search results and the dashboard Sessions tab.
359
+
360
+ | Tool | Format | Auto-detected path | Override |
361
+ | ---------------- | -------------- | --------------------------------------------------------------- | --------------------- |
362
+ | **Claude Code** | JSONL | `$KNOWLEDGE_DATA_DIR/projects/` | `KNOWLEDGE_DATA_DIR` |
363
+ | **Cursor** | JSONL | `~/.cursor/projects/*/agent-transcripts/` | `EXTRA_SESSION_ROOTS` |
364
+ | **OpenCode** | SQLite | `~/.local/share/opencode/opencode.db` | `OPENCODE_DATA_DIR` |
365
+ | **Cline** | JSON | VS Code globalStorage `saoudrizwan.claude-dev/tasks/` | -- |
366
+ | **Continue.dev** | JSON | `~/.continue/sessions/` | -- |
367
+ | **Aider** | Markdown/JSONL | `.aider.chat.history.md` / `.aider.llm.history` in project dirs | -- |
368
+
369
+ ### Adding extra session directories
370
+
371
+ Use the `EXTRA_SESSION_ROOTS` environment variable to add session directories that are not auto-detected:
372
+
373
+ ```bash
374
+ export EXTRA_SESSION_ROOTS="/path/to/custom/sessions,/another/path"
375
+ ```
376
+
377
+ Each path is scanned for JSONL files or Cursor-style `agent-transcripts/` subdirectories.
378
+
354
379
  ## Session Auto-Distillation
355
380
 
356
- agent-knowledge can auto-distill session transcripts into knowledge entries. This currently reads Claude Code session files from `~/.claude/projects/`. Other clients store transcripts differently auto-distillation only works with Claude Code sessions for now.
381
+ agent-knowledge can auto-distill session transcripts into knowledge entries. Auto-distillation reads from all discovered session sources and works with any tool whose sessions are available through the adapter system.
357
382
 
358
383
  To manually save knowledge from any client, use `knowledge_write`.
359
384
 
@@ -377,7 +402,7 @@ export KNOWLEDGE_PORT=3424
377
402
  Verify credentials work manually:
378
403
 
379
404
  ```bash
380
- cd ~/claude-memory && git push
405
+ cd ~/agent-knowledge && git push
381
406
  ```
382
407
 
383
408
  Set up SSH keys or a credential helper if prompted.
@@ -390,18 +415,39 @@ Set up SSH keys or a credential helper if prompted.
390
415
 
391
416
  ### No session results
392
417
 
393
- Verify session transcripts exist:
418
+ Verify session data exists for at least one supported tool:
394
419
 
395
420
  ```bash
396
- ls ~/.claude/projects/ # Should contain project directories with .jsonl files
421
+ # Claude Code (JSONL)
422
+ ls ~/.claude/projects/
423
+
424
+ # Cursor (JSONL)
425
+ ls ~/.cursor/projects/*/agent-transcripts/
426
+
427
+ # OpenCode (SQLite)
428
+ ls ~/.local/share/opencode/opencode.db
429
+
430
+ # Cline (JSON) — path varies by platform
431
+ # Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/tasks/
432
+ # macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/tasks/
433
+ # Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/tasks/
434
+
435
+ # Continue.dev (JSON)
436
+ ls ~/.continue/sessions/
437
+
438
+ # Aider (Markdown) — check project directories
439
+ ls ~/projects/*/.aider.chat.history.md
397
440
  ```
398
441
 
442
+ If your session data is in a non-standard location, use `EXTRA_SESSION_ROOTS` to point to it.
443
+
399
444
  ## Client Comparison
400
445
 
401
- | Feature | Claude Code | OpenCode | Cursor | Windsurf |
402
- | -------------------- | ----------- | ------------- | ------------ | -------------- |
403
- | MCP stdio transport | Yes | Yes | Yes | Yes |
404
- | Lifecycle hooks | Yes (JSON) | Yes (plugins) | No | No |
405
- | Session auto-distill | Yes | No | No | No |
406
- | System prompt file | CLAUDE.md | AGENTS.md | .cursorrules | .windsurfrules |
407
- | REST API fallback | Yes | Yes | Yes | Yes |
446
+ | Feature | Claude Code | Cursor | OpenCode | Cline | Continue.dev | Aider | Windsurf |
447
+ | -------------------- | ----------- | ------------ | ------------- | ---------- | ------------ | -------------- | -------------- |
448
+ | MCP stdio transport | Yes | Yes | Yes | Yes | Yes | -- | Yes |
449
+ | Session reading | Yes (JSONL) | Yes (JSONL) | Yes (SQLite) | Yes (JSON) | Yes (JSON) | Yes (MD/JSONL) | -- |
450
+ | Lifecycle hooks | Yes (JSON) | No | Yes (plugins) | No | No | -- | No |
451
+ | Session auto-distill | Yes | Yes | Yes | Yes | Yes | Yes | -- |
452
+ | System prompt file | CLAUDE.md | .cursorrules | AGENTS.md | -- | -- | -- | .windsurfrules |
453
+ | REST API fallback | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-knowledge",
3
- "version": "1.0.13",
3
+ "version": "1.1.0",
4
4
  "description": "Cross-session memory and recall for AI agents — git-synced knowledge base, hybrid semantic+TF-IDF search, auto-distillation with secrets scrubbing",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,7 @@
43
43
  "semantic-search",
44
44
  "model-context-protocol",
45
45
  "ai-agents",
46
- "claude-code"
46
+ "coding-assistants"
47
47
  ],
48
48
  "author": "keshrath",
49
49
  "license": "MIT",
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/embeddings/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQpD;;;;GAIG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAMlD,6EAA6E;IACvE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAYjD,2BAA2B;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/C,6DAA6D;IACvD,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YASvB,iBAAiB;CAqChC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/embeddings/claude.ts"],"names":[],"mappings":"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"}