claude-brain 0.30.2 → 0.30.3
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 +241 -191
- package/VERSION +1 -1
- package/assets/CLAUDE-unified.md +11 -11
- package/assets/CLAUDE.md +29 -29
- package/package.json +7 -3
- package/packs/backend/node.json +173 -173
- package/packs/core/javascript.json +176 -176
- package/packs/core/typescript.json +222 -222
- package/packs/frontend/react.json +254 -254
- package/packs/meta/testing.json +172 -172
- package/scripts/postinstall.mjs +531 -531
- package/src/automation/decision-detector.ts +452 -452
- package/src/automation/phase12-manager.ts +456 -456
- package/src/automation/proactive-recall.ts +373 -373
- package/src/automation/project-detector.ts +310 -310
- package/src/automation/repo-scanner.ts +210 -205
- package/src/cli/auto-setup.ts +75 -75
- package/src/cli/auto-start.ts +266 -266
- package/src/cli/bin.ts +264 -264
- package/src/cli/commands/autostart.ts +90 -90
- package/src/cli/commands/chroma.ts +578 -577
- package/src/cli/commands/export-training.ts +70 -70
- package/src/cli/commands/export.ts +130 -130
- package/src/cli/commands/git-hook.ts +183 -183
- package/src/cli/commands/hooks.ts +217 -217
- package/src/cli/commands/init.ts +123 -123
- package/src/cli/commands/install-mcp.ts +122 -111
- package/src/cli/commands/models.ts +979 -979
- package/src/cli/commands/pack.ts +200 -200
- package/src/cli/commands/refresh.ts +344 -339
- package/src/cli/commands/reindex.ts +120 -120
- package/src/cli/commands/serve.ts +466 -463
- package/src/cli/commands/start.ts +44 -44
- package/src/cli/commands/status.ts +220 -203
- package/src/cli/commands/uninstall-mcp.ts +45 -41
- package/src/cli/commands/update.ts +130 -124
- package/src/cli/migrate-chroma.ts +106 -106
- package/src/cli/ui/animations.ts +80 -80
- package/src/cli/ui/components.ts +82 -82
- package/src/cli/ui/index.ts +4 -4
- package/src/cli/ui/logo.ts +36 -36
- package/src/cli/ui/theme.ts +55 -55
- package/src/code-intelligence/indexer.ts +352 -352
- package/src/code-intelligence/linker.ts +178 -178
- package/src/code-intelligence/parser.ts +484 -484
- package/src/code-intelligence/query.ts +291 -291
- package/src/code-intelligence/schema.ts +83 -83
- package/src/code-intelligence/types.ts +95 -95
- package/src/config/defaults.ts +52 -52
- package/src/config/home.ts +56 -56
- package/src/config/index.ts +5 -5
- package/src/config/loader.ts +192 -192
- package/src/config/schema.ts +446 -415
- package/src/config/validator.ts +182 -182
- package/src/context/assembler.ts +407 -400
- package/src/context/index.ts +79 -79
- package/src/context/progress-tracker.ts +174 -174
- package/src/context/standards-manager.ts +287 -287
- package/src/context/validator.ts +58 -58
- package/src/diagnostics/index.ts +122 -121
- package/src/health/index.ts +233 -232
- package/src/hooks/brain-hook.ts +134 -131
- package/src/hooks/capture.ts +168 -168
- package/src/hooks/claude-code-mastery.md +112 -112
- package/src/hooks/context-hook.ts +260 -245
- package/src/hooks/deduplicator.ts +72 -72
- package/src/hooks/git-capture.ts +109 -109
- package/src/hooks/git-hook-installer.ts +211 -207
- package/src/hooks/index.ts +20 -20
- package/src/hooks/installer.ts +306 -288
- package/src/hooks/interceptor-hook.ts +204 -201
- package/src/hooks/passive-classifier.ts +397 -397
- package/src/hooks/queue.ts +160 -129
- package/src/hooks/session-tracker.ts +312 -312
- package/src/hooks/types.ts +52 -52
- package/src/index.ts +7 -7
- package/src/intelligence/cross-project/generalizer.ts +283 -283
- package/src/intelligence/cross-project/index.ts +7 -7
- package/src/intelligence/hf-downloader.ts +222 -222
- package/src/intelligence/hf-manifest.json +78 -78
- package/src/intelligence/index.ts +24 -24
- package/src/intelligence/inference-router.ts +762 -762
- package/src/intelligence/model-manager.ts +263 -245
- package/src/intelligence/optimization/index.ts +10 -10
- package/src/intelligence/optimization/precompute.ts +202 -202
- package/src/intelligence/optimization/semantic-cache.ts +213 -207
- package/src/intelligence/prediction/index.ts +7 -7
- package/src/intelligence/prediction/recommender.ts +276 -268
- package/src/intelligence/reasoning/chain-retrieval.ts +243 -247
- package/src/intelligence/reasoning/index.ts +7 -7
- package/src/intelligence/temporal/evolution.ts +193 -197
- package/src/intelligence/temporal/index.ts +16 -16
- package/src/intelligence/temporal/query-processor.ts +190 -190
- package/src/intelligence/temporal/timeline.ts +272 -259
- package/src/intelligence/temporal/trends.ts +263 -263
- package/src/intelligence/tokenizer.ts +118 -118
- package/src/knowledge/entity-extractor.ts +447 -443
- package/src/knowledge/graph/builder.ts +185 -185
- package/src/knowledge/graph/linker.ts +201 -201
- package/src/knowledge/graph/memory-graph.ts +359 -359
- package/src/knowledge/graph/schema.ts +99 -99
- package/src/knowledge/graph/search.ts +166 -166
- package/src/knowledge/relationship-extractor.ts +108 -108
- package/src/memory/chroma/client.ts +211 -192
- package/src/memory/chroma/collection-manager.ts +92 -92
- package/src/memory/chroma/config.ts +57 -57
- package/src/memory/chroma/embeddings.ts +177 -175
- package/src/memory/chroma/index.ts +82 -82
- package/src/memory/chroma/migration.ts +270 -270
- package/src/memory/chroma/schemas.ts +69 -69
- package/src/memory/chroma/search.ts +319 -315
- package/src/memory/chroma/store.ts +755 -747
- package/src/memory/compression.ts +121 -121
- package/src/memory/consolidation/archiver.ts +162 -165
- package/src/memory/consolidation/merger.ts +182 -186
- package/src/memory/consolidation/scorer.ts +136 -136
- package/src/memory/database.ts +9 -0
- package/src/memory/dual-write.ts +145 -0
- package/src/memory/embeddings.ts +226 -226
- package/src/memory/episodic/detector.ts +108 -108
- package/src/memory/episodic/manager.ts +347 -351
- package/src/memory/episodic/summarizer.ts +179 -179
- package/src/memory/episodic/types.ts +52 -52
- package/src/memory/fts5-search.ts +692 -633
- package/src/memory/index.ts +943 -1060
- package/src/memory/migrations/add-fts5.ts +118 -108
- package/src/memory/patterns.ts +438 -438
- package/src/memory/pruning.ts +60 -60
- package/src/memory/schema.ts +88 -88
- package/src/memory/store.ts +911 -787
- package/src/orchestrator/handlers/decision-handler.ts +204 -204
- package/src/packs/index.ts +9 -9
- package/src/packs/loader.ts +134 -134
- package/src/packs/manager.ts +204 -204
- package/src/packs/ranker.ts +78 -78
- package/src/packs/types.ts +81 -81
- package/src/phase12/index.ts +5 -5
- package/src/retrieval/bm25/index.ts +300 -297
- package/src/retrieval/bm25/tokenizer.ts +184 -184
- package/src/retrieval/feedback/adaptive.ts +221 -221
- package/src/retrieval/feedback/index.ts +16 -16
- package/src/retrieval/feedback/metrics.ts +221 -221
- package/src/retrieval/feedback/store.ts +283 -283
- package/src/retrieval/fusion/index.ts +194 -194
- package/src/retrieval/fusion/rrf.ts +165 -165
- package/src/retrieval/index.ts +12 -12
- package/src/retrieval/pipeline.ts +375 -375
- package/src/retrieval/query/expander.ts +203 -203
- package/src/retrieval/query/index.ts +27 -27
- package/src/retrieval/query/intent-classifier.ts +252 -252
- package/src/retrieval/query/temporal-parser.ts +295 -295
- package/src/retrieval/reranker/index.ts +189 -188
- package/src/retrieval/reranker/model.ts +99 -95
- package/src/retrieval/service.ts +125 -125
- package/src/retrieval/types.ts +162 -162
- package/src/routing/entity-extractor.ts +454 -454
- package/src/routing/handlers/exploration-handler.ts +369 -0
- package/src/routing/handlers/index.ts +19 -0
- package/src/routing/handlers/memory-handler.ts +273 -0
- package/src/routing/handlers/mutation-handler.ts +241 -0
- package/src/routing/handlers/recall-handler.ts +642 -0
- package/src/routing/handlers/shared.ts +515 -0
- package/src/routing/handlers/types.ts +48 -0
- package/src/routing/intent-classifier.ts +552 -552
- package/src/routing/response-filter.ts +399 -391
- package/src/routing/router.ts +245 -2193
- package/src/routing/search-engine.ts +521 -514
- package/src/routing/types.ts +104 -94
- package/src/scripts/health-check.ts +118 -118
- package/src/scripts/setup.ts +122 -122
- package/src/server/auto-updater.ts +283 -276
- package/src/server/handlers/call-tool.ts +159 -159
- package/src/server/handlers/list-tools.ts +35 -35
- package/src/server/handlers/tools/auto-remember.ts +165 -165
- package/src/server/handlers/tools/brain.ts +86 -86
- package/src/server/handlers/tools/create-project.ts +135 -135
- package/src/server/handlers/tools/get-code-standards.ts +123 -123
- package/src/server/handlers/tools/get-corrections.ts +152 -152
- package/src/server/handlers/tools/get-patterns.ts +156 -156
- package/src/server/handlers/tools/get-project-context.ts +75 -75
- package/src/server/handlers/tools/index.ts +30 -30
- package/src/server/handlers/tools/init-project.ts +756 -756
- package/src/server/handlers/tools/list-projects.ts +126 -126
- package/src/server/handlers/tools/recall-similar.ts +87 -87
- package/src/server/handlers/tools/recognize-pattern.ts +132 -132
- package/src/server/handlers/tools/record-correction.ts +131 -131
- package/src/server/handlers/tools/remember-decision.ts +168 -168
- package/src/server/handlers/tools/schemas.ts +179 -179
- package/src/server/handlers/tools/search-code.ts +122 -122
- package/src/server/handlers/tools/smart-context.ts +146 -146
- package/src/server/handlers/tools/update-progress.ts +131 -131
- package/src/server/http-api.ts +215 -1229
- package/src/server/mcp-proxy.ts +85 -84
- package/src/server/mcp-server.ts +285 -284
- package/src/server/middleware/auth.ts +39 -0
- package/src/server/middleware/error-handler.ts +37 -0
- package/src/server/middleware/rate-limit.ts +53 -0
- package/src/server/middleware/validate.ts +42 -0
- package/src/server/pid-manager.ts +137 -136
- package/src/server/providers/resources.ts +581 -581
- package/src/server/routes/code.ts +228 -0
- package/src/server/routes/context.ts +26 -0
- package/src/server/routes/health.ts +19 -0
- package/src/server/routes/helpers.ts +100 -0
- package/src/server/routes/hooks.ts +197 -0
- package/src/server/routes/mcp.ts +47 -0
- package/src/server/routes/memory.ts +397 -0
- package/src/server/routes/models.ts +96 -0
- package/src/server/routes/projects.ts +89 -0
- package/src/server/routes/types.ts +21 -0
- package/src/server/schemas/api-schemas.ts +202 -0
- package/src/server/services.ts +720 -720
- package/src/server/utils/memory-indicator.ts +84 -84
- package/src/server/utils/response-formatter.ts +129 -129
- package/src/server/web-viewer.ts +1145 -1115
- package/src/setup/index.ts +38 -38
- package/src/tools/registry.ts +115 -115
- package/src/tools/schemas.ts +666 -666
- package/src/tools/types.ts +412 -412
- package/src/training/data-store.ts +320 -298
- package/src/training/retrain-pipeline.ts +399 -394
- package/src/utils/error-handler.ts +136 -136
- package/src/utils/index.ts +58 -58
- package/src/utils/kill-port.ts +55 -53
- package/src/utils/phase12-helper.ts +56 -56
- package/src/utils/safe-path.ts +43 -0
- package/src/utils/timing.ts +47 -47
- package/src/utils/transaction.ts +63 -63
- package/src/vault/index.ts +4 -3
- package/src/vault/paths.ts +106 -106
- package/src/vault/query.ts +4 -1
- package/src/vault/reader.ts +44 -1
- package/src/vault/watcher.ts +24 -1
- package/src/vault/writer.ts +487 -413
- package/skills/persistent-memory/SKILL.md +0 -148
- package/skills/persistent-memory/references/tool-reference.md +0 -90
package/README.md
CHANGED
|
@@ -1,191 +1,241 @@
|
|
|
1
|
-
# Claude Brain
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
|
62
|
-
|
|
63
|
-
| `claude-brain
|
|
64
|
-
| `claude-brain
|
|
65
|
-
| `claude-brain
|
|
66
|
-
| `claude-brain
|
|
67
|
-
| `claude-brain
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
bun
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
│ ├──
|
|
137
|
-
│ ├──
|
|
138
|
-
│ ├──
|
|
139
|
-
│ ├──
|
|
140
|
-
│
|
|
141
|
-
│ ├──
|
|
142
|
-
│ ├──
|
|
143
|
-
│
|
|
144
|
-
|
|
145
|
-
│
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
###
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
1
|
+
# Claude Brain
|
|
2
|
+
|
|
3
|
+
[](package.json)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://bun.sh)
|
|
6
|
+
|
|
7
|
+
A locally-running development assistant that bridges Obsidian knowledge vaults with Claude Code through the Model Context Protocol (MCP).
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- Eliminates repetitive context explanations to Claude Code
|
|
12
|
+
- Maintains project memory across sessions using Obsidian vault
|
|
13
|
+
- Semantic memory system learns from past decisions (ChromaDB + SQLite)
|
|
14
|
+
- **25 MCP tools** for context retrieval, memory storage, and intelligence
|
|
15
|
+
- **Knowledge graph** connecting technologies, decisions, and concepts
|
|
16
|
+
- **Episodic memory** with session detection and extractive summarization
|
|
17
|
+
- **Hybrid retrieval** with BM25 + semantic fusion and cross-encoder reranking
|
|
18
|
+
- **Temporal intelligence** for decision timelines, evolution tracking, and trend detection
|
|
19
|
+
- **Multi-hop reasoning** with chain retrieval and what-if analysis
|
|
20
|
+
- **Predictive intelligence** with context-aware recommendations
|
|
21
|
+
- **Cross-project intelligence** for pattern discovery and knowledge transfer
|
|
22
|
+
- **Semantic caching** with cosine similarity matching for fast repeated queries
|
|
23
|
+
- **Event-driven orchestrator** for automatic file change handling
|
|
24
|
+
- **Automatic duplicate prevention** for decisions (>90% similarity detection)
|
|
25
|
+
- **Zod-validated tool inputs** for robust error handling
|
|
26
|
+
- Runs completely locally with zero cloud dependencies
|
|
27
|
+
- Compiles to single portable executable
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Install globally (requires Bun)
|
|
33
|
+
bun install -g claude-brain
|
|
34
|
+
|
|
35
|
+
# Interactive setup (vault path, log level, installs ~/.claude/CLAUDE.md)
|
|
36
|
+
claude-brain setup
|
|
37
|
+
|
|
38
|
+
# Register with Claude Code
|
|
39
|
+
claude mcp add claude-brain -s user -- bunx claude-brain@latest
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
That's it. Every Claude Code session now has 25 brain tools available.
|
|
43
|
+
|
|
44
|
+
## Zero-Install Alternative
|
|
45
|
+
|
|
46
|
+
Skip the global install — just register with Claude Code directly:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
claude mcp add claude-brain -s user -- bunx claude-brain@latest
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
On first run, `~/.claude-brain/` is auto-created with default config.
|
|
53
|
+
|
|
54
|
+
## Prerequisites
|
|
55
|
+
|
|
56
|
+
- [Bun](https://bun.sh) >= 1.0.0
|
|
57
|
+
- An Obsidian vault (or any markdown folder)
|
|
58
|
+
|
|
59
|
+
## CLI Commands
|
|
60
|
+
|
|
61
|
+
| Command | Description |
|
|
62
|
+
|---------|-------------|
|
|
63
|
+
| `claude-brain` | Start MCP server (default) |
|
|
64
|
+
| `claude-brain setup` | Interactive setup wizard (run once per machine) |
|
|
65
|
+
| `claude-brain install` | Register as MCP server in Claude Code |
|
|
66
|
+
| `claude-brain uninstall` | Remove MCP server from Claude Code |
|
|
67
|
+
| `claude-brain update` | Update package and refresh CLAUDE.md to latest |
|
|
68
|
+
| `claude-brain health` | Run health checks |
|
|
69
|
+
| `claude-brain diagnose` | Run diagnostics |
|
|
70
|
+
| `claude-brain version` | Show version |
|
|
71
|
+
| `claude-brain help` | Show help |
|
|
72
|
+
|
|
73
|
+
## Documentation
|
|
74
|
+
|
|
75
|
+
Comprehensive documentation is available in the [`docs/`](docs/) directory:
|
|
76
|
+
|
|
77
|
+
| Document | Description |
|
|
78
|
+
|----------|-------------|
|
|
79
|
+
| [API Reference](docs/API.md) | Complete HTTP API reference — 27 endpoints with request/response schemas and curl examples |
|
|
80
|
+
| [Configuration](docs/CONFIGURATION.md) | Every config option documented with types, defaults, and environment variables |
|
|
81
|
+
| [Knowledge Packs](docs/PACKS.md) | Pack format, built-in packs, custom pack creation, CLI commands |
|
|
82
|
+
| [Hooks & Passive Learning](docs/HOOKS.md) | Hook system architecture, passive classification, git capture, session tracking |
|
|
83
|
+
| [Code Intelligence](docs/CODE-INTELLIGENCE.md) | Tree-sitter indexing, `search_code` tool, supported languages, code-memory linking |
|
|
84
|
+
| [Security Hardening](docs/SECURITY.md) | Authentication, TLS proxy configs, database security, incident response |
|
|
85
|
+
| [Troubleshooting](docs/TROUBLESHOOTING.md) | 16 common issues with symptoms, causes, and solutions |
|
|
86
|
+
| [Production Checklist](docs/PRODUCTION-CHECKLIST.md) | Pre/post deployment checklists, systemd/pm2 configs, backup & recovery |
|
|
87
|
+
|
|
88
|
+
## Configuration
|
|
89
|
+
|
|
90
|
+
Configuration lives in `~/.claude-brain/.env`. Created automatically by `claude-brain setup`, or on first run with defaults. See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for the full reference (40+ options).
|
|
91
|
+
|
|
92
|
+
| Variable | Description | Default |
|
|
93
|
+
|----------|-------------|---------|
|
|
94
|
+
| `VAULT_PATH` | Path to your Obsidian vault | `~/.claude-brain/vault` |
|
|
95
|
+
| `LOG_LEVEL` | Log level (debug/info/warn/error) | `info` |
|
|
96
|
+
| `NODE_ENV` | Environment | `production` |
|
|
97
|
+
| `CLAUDE_BRAIN_HOME` | Override home directory | `~/.claude-brain/` |
|
|
98
|
+
| `CLAUDE_BRAIN_API_KEY` | API key for HTTP endpoint auth | *(none)* |
|
|
99
|
+
| `PORT` | HTTP API server port | `3333` |
|
|
100
|
+
|
|
101
|
+
## Development
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Clone and install dependencies
|
|
105
|
+
git clone <repo-url>
|
|
106
|
+
cd claude-brain
|
|
107
|
+
bun install
|
|
108
|
+
|
|
109
|
+
# Start dev server (uses local ./data, ./logs)
|
|
110
|
+
bun run dev
|
|
111
|
+
|
|
112
|
+
# Run tests
|
|
113
|
+
bun test
|
|
114
|
+
|
|
115
|
+
# Run tests in watch mode
|
|
116
|
+
bun test --watch
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
The `dev` script sets `CLAUDE_BRAIN_HOME=.` so all data stays in the project directory.
|
|
120
|
+
|
|
121
|
+
## Building
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Build standalone executable for current platform
|
|
125
|
+
bun run build:binary
|
|
126
|
+
|
|
127
|
+
# Build for all platforms (Windows, macOS, Linux)
|
|
128
|
+
bun run build:all
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Project Structure
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
claude-brain/
|
|
135
|
+
├── src/
|
|
136
|
+
│ ├── index.ts # Entry point (thin wrapper)
|
|
137
|
+
│ ├── cli/
|
|
138
|
+
│ │ ├── bin.ts # CLI entry point (claude-brain command)
|
|
139
|
+
│ │ ├── auto-setup.ts # First-run home directory initialization
|
|
140
|
+
│ │ └── commands/ # serve, install-mcp, uninstall-mcp, update
|
|
141
|
+
│ ├── config/
|
|
142
|
+
│ │ ├── home.ts # ~/.claude-brain/ path resolution
|
|
143
|
+
│ │ ├── loader.ts # Config loading (defaults → file → env)
|
|
144
|
+
│ │ └── schema.ts # Zod config schemas
|
|
145
|
+
│ ├── server/ # MCP server code
|
|
146
|
+
│ │ └── handlers/tools/ # 25 tool handlers with Zod validation
|
|
147
|
+
│ ├── vault/ # Obsidian integration
|
|
148
|
+
│ ├── memory/ # Vector DB & embeddings
|
|
149
|
+
│ │ ├── chroma/ # ChromaDB integration with duplicate detection
|
|
150
|
+
│ │ ├── episodic/ # Session detection & episode management
|
|
151
|
+
│ │ └── consolidation/ # Memory importance scoring & archival
|
|
152
|
+
│ ├── knowledge/ # Knowledge graph & entity extraction
|
|
153
|
+
│ │ └── graph/ # In-memory graph with search & auto-population
|
|
154
|
+
│ ├── retrieval/ # Hybrid search (BM25 + semantic + reranking)
|
|
155
|
+
│ ├── temporal/ # Timeline construction & trend detection
|
|
156
|
+
│ ├── reasoning/ # Multi-hop chain retrieval & what-if analysis
|
|
157
|
+
│ ├── prediction/ # Decision prediction & recommendations
|
|
158
|
+
│ ├── cross-project/ # Cross-project pattern discovery & transfer
|
|
159
|
+
│ ├── optimization/ # Semantic caching & precomputation
|
|
160
|
+
│ ├── orchestrator/ # Event-driven coordination system
|
|
161
|
+
│ ├── setup/ # Interactive setup wizard
|
|
162
|
+
│ ├── context/ # Context assembly
|
|
163
|
+
│ ├── tools/ # MCP tool definitions & registry
|
|
164
|
+
│ └── utils/ # Shared utilities
|
|
165
|
+
├── assets/
|
|
166
|
+
│ └── CLAUDE.md # Protocol file (shipped with npm package)
|
|
167
|
+
├── tests/ # 750+ tests
|
|
168
|
+
└── ~/.claude-brain/ # User data (created at runtime)
|
|
169
|
+
├── .env # Configuration
|
|
170
|
+
├── data/ # SQLite + ChromaDB
|
|
171
|
+
├── logs/ # Log files
|
|
172
|
+
└── vault/ # Default vault location
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## Architecture Highlights
|
|
176
|
+
|
|
177
|
+
### Event-Driven Orchestrator
|
|
178
|
+
The orchestrator automatically responds to file changes in your vault:
|
|
179
|
+
- Detects new decisions in `decisions.md` files
|
|
180
|
+
- Triggers automatic semantic indexing
|
|
181
|
+
- Coordinates between vault, memory, and context systems
|
|
182
|
+
|
|
183
|
+
### Duplicate Prevention
|
|
184
|
+
When storing decisions, the system:
|
|
185
|
+
- Searches for existing decisions with >90% semantic similarity
|
|
186
|
+
- Returns existing ID if duplicate found (prevents bloat)
|
|
187
|
+
- Logs skipped duplicates for transparency
|
|
188
|
+
|
|
189
|
+
### Input Validation
|
|
190
|
+
All tool inputs are validated using Zod schemas:
|
|
191
|
+
- Clear error messages for invalid parameters
|
|
192
|
+
- Type-safe extraction of validated inputs
|
|
193
|
+
- Consistent validation across all 25 tools
|
|
194
|
+
|
|
195
|
+
### Embedding Cache
|
|
196
|
+
Uses SHA-256 hashing for cache keys to prevent collisions (improved from simple hash).
|
|
197
|
+
|
|
198
|
+
### MCP Tools (25 total)
|
|
199
|
+
|
|
200
|
+
| Category | Tools |
|
|
201
|
+
|----------|-------|
|
|
202
|
+
| Context Retrieval | `get_project_context`, `smart_context`, `recall_similar`, `get_code_standards`, `get_phase12_status` |
|
|
203
|
+
| Memory Storage | `remember_decision`, `auto_remember`, `recognize_pattern`, `record_correction`, `update_progress` |
|
|
204
|
+
| Project Management | `list_projects`, `create_project`, `init_project` |
|
|
205
|
+
| Knowledge Graph | `search_knowledge_graph`, `get_episode`, `list_episodes` |
|
|
206
|
+
| Patterns & Corrections | `get_patterns`, `get_corrections` |
|
|
207
|
+
| Feedback | `rate_memory` |
|
|
208
|
+
| Advanced Intelligence | `get_decision_timeline`, `analyze_decision_evolution`, `detect_trends`, `what_if_analysis`, `get_recommendations`, `find_cross_project_patterns` |
|
|
209
|
+
|
|
210
|
+
## Security
|
|
211
|
+
|
|
212
|
+
For production deployments, see [docs/SECURITY.md](docs/SECURITY.md). Key recommendations:
|
|
213
|
+
|
|
214
|
+
- **Always set `CLAUDE_BRAIN_API_KEY`** in production — generate with `openssl rand -hex 32`
|
|
215
|
+
- Server binds to **localhost only** by default — use a reverse proxy for remote access
|
|
216
|
+
- CORS is restricted to localhost — add explicit origins via `corsOrigins` config
|
|
217
|
+
- Rate limiting is enabled by default (200 req/60s)
|
|
218
|
+
- All file operations are protected against path traversal
|
|
219
|
+
|
|
220
|
+
## API
|
|
221
|
+
|
|
222
|
+
Claude Brain exposes an HTTP API on port 3333 (default) for programmatic access. See [docs/API.md](docs/API.md) for the full reference.
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Health check
|
|
226
|
+
curl http://localhost:3333/api/health
|
|
227
|
+
|
|
228
|
+
# Store a memory (requires API key)
|
|
229
|
+
curl -X POST http://localhost:3333/api/memory \
|
|
230
|
+
-H "Content-Type: application/json" \
|
|
231
|
+
-H "X-API-Key: your-key" \
|
|
232
|
+
-d '{"content": "Use ESM imports", "project": "my-app", "category": "decision"}'
|
|
233
|
+
|
|
234
|
+
# Search memories
|
|
235
|
+
curl "http://localhost:3333/api/search?q=imports&project=my-app" \
|
|
236
|
+
-H "X-API-Key: your-key"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## License
|
|
240
|
+
|
|
241
|
+
MIT
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.30.2
|
|
1
|
+
0.30.2
|
package/assets/CLAUDE-unified.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
# Claude Brain
|
|
2
|
-
|
|
3
|
-
Call `brain()` with what you are doing. The server handles the rest.
|
|
4
|
-
|
|
5
|
-
Examples:
|
|
6
|
-
- brain("starting work on the auth system")
|
|
7
|
-
- brain("decided to use JWT because sessions don't scale")
|
|
8
|
-
- brain("finished the login page, next is the dashboard")
|
|
9
|
-
- brain("what auth patterns have we used?")
|
|
10
|
-
- brain("the bug was a race condition, fixed by adding a mutex")
|
|
11
|
-
- brain("React vs Vue for the new project?")
|
|
1
|
+
# Claude Brain
|
|
2
|
+
|
|
3
|
+
Call `brain()` with what you are doing. The server handles the rest.
|
|
4
|
+
|
|
5
|
+
Examples:
|
|
6
|
+
- brain("starting work on the auth system")
|
|
7
|
+
- brain("decided to use JWT because sessions don't scale")
|
|
8
|
+
- brain("finished the login page, next is the dashboard")
|
|
9
|
+
- brain("what auth patterns have we used?")
|
|
10
|
+
- brain("the bug was a race condition, fixed by adding a mutex")
|
|
11
|
+
- brain("React vs Vue for the new project?")
|
package/assets/CLAUDE.md
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# Claude Brain
|
|
2
|
-
|
|
3
|
-
You have persistent memory via the `brain` tool. It remembers across sessions.
|
|
4
|
-
|
|
5
|
-
## Session Start
|
|
6
|
-
At the beginning of significant work sessions, check what you know:
|
|
7
|
-
- `brain("What do I know about this project?")` — recalls past decisions, preferences, lessons
|
|
8
|
-
|
|
9
|
-
## During Work
|
|
10
|
-
Call brain when you make or encounter something worth remembering:
|
|
11
|
-
- Decisions: `brain("I decided to use JWT over sessions because the app is stateless")`
|
|
12
|
-
- Mistakes: `brain("The bug was caused by missing CORS credentials — fixed with credentials: include")`
|
|
13
|
-
- Preferences: `brain("User prefers explicit error messages over generic 500s")`
|
|
14
|
-
- Updates: `brain("Changed my mind, use Postgres instead of MySQL")`
|
|
15
|
-
|
|
16
|
-
## Session End
|
|
17
|
-
Before finishing significant work, store a 2-3 sentence summary:
|
|
18
|
-
- `brain("Session summary: Built auth flow for expense tracker. Chose JWT for stateless architecture. Hit CORS issue on /api/login, fixed with credentials: include. User prefers Tailwind and explicit error handling.")`
|
|
19
|
-
|
|
20
|
-
## What NOT to store
|
|
21
|
-
- File paths or creation events (captured automatically)
|
|
22
|
-
- Progress like "read file X" or "ran tests" (too granular)
|
|
23
|
-
- Anything already in the codebase (just read the code)
|
|
24
|
-
|
|
25
|
-
## Background
|
|
26
|
-
Tool events are captured automatically via invisible PostToolUse/Stop hooks
|
|
27
|
-
in ~/.claude/settings.json. These hooks capture installs, git commits, and
|
|
28
|
-
build failures without any explicit brain() call. Your job is to add the
|
|
29
|
-
WHY — the reasoning, preferences, and lessons that hooks cannot see.
|
|
1
|
+
# Claude Brain
|
|
2
|
+
|
|
3
|
+
You have persistent memory via the `brain` tool. It remembers across sessions.
|
|
4
|
+
|
|
5
|
+
## Session Start
|
|
6
|
+
At the beginning of significant work sessions, check what you know:
|
|
7
|
+
- `brain("What do I know about this project?")` — recalls past decisions, preferences, lessons
|
|
8
|
+
|
|
9
|
+
## During Work
|
|
10
|
+
Call brain when you make or encounter something worth remembering:
|
|
11
|
+
- Decisions: `brain("I decided to use JWT over sessions because the app is stateless")`
|
|
12
|
+
- Mistakes: `brain("The bug was caused by missing CORS credentials — fixed with credentials: include")`
|
|
13
|
+
- Preferences: `brain("User prefers explicit error messages over generic 500s")`
|
|
14
|
+
- Updates: `brain("Changed my mind, use Postgres instead of MySQL")`
|
|
15
|
+
|
|
16
|
+
## Session End
|
|
17
|
+
Before finishing significant work, store a 2-3 sentence summary:
|
|
18
|
+
- `brain("Session summary: Built auth flow for expense tracker. Chose JWT for stateless architecture. Hit CORS issue on /api/login, fixed with credentials: include. User prefers Tailwind and explicit error handling.")`
|
|
19
|
+
|
|
20
|
+
## What NOT to store
|
|
21
|
+
- File paths or creation events (captured automatically)
|
|
22
|
+
- Progress like "read file X" or "ran tests" (too granular)
|
|
23
|
+
- Anything already in the codebase (just read the code)
|
|
24
|
+
|
|
25
|
+
## Background
|
|
26
|
+
Tool events are captured automatically via invisible PostToolUse/Stop hooks
|
|
27
|
+
in ~/.claude/settings.json. These hooks capture installs, git commits, and
|
|
28
|
+
build failures without any explicit brain() call. Your job is to add the
|
|
29
|
+
WHY — the reasoning, preferences, and lessons that hooks cannot see.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-brain",
|
|
3
|
-
"version": "0.30.
|
|
3
|
+
"version": "0.30.3",
|
|
4
4
|
"description": "Local development assistant bridging Obsidian vaults with Claude Code via MCP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
@@ -50,6 +50,10 @@
|
|
|
50
50
|
],
|
|
51
51
|
"author": "",
|
|
52
52
|
"license": "MIT",
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "git+https://github.com/DemGun101/2nd-Brain.git"
|
|
56
|
+
},
|
|
53
57
|
"publishConfig": {
|
|
54
58
|
"access": "public"
|
|
55
59
|
},
|
|
@@ -63,7 +67,7 @@
|
|
|
63
67
|
},
|
|
64
68
|
"dependencies": {
|
|
65
69
|
"@chroma-core/default-embed": "0.1.9",
|
|
66
|
-
"@modelcontextprotocol/sdk": "
|
|
70
|
+
"@modelcontextprotocol/sdk": "1.26.0",
|
|
67
71
|
"@xenova/transformers": "2.17.2",
|
|
68
72
|
"chalk": "5.6.2",
|
|
69
73
|
"chromadb": "3.2.2",
|
|
@@ -72,7 +76,7 @@
|
|
|
72
76
|
"compromise": "^14.10.0",
|
|
73
77
|
"dotenv": "^17.2.3",
|
|
74
78
|
"gray-matter": "^4.0.3",
|
|
75
|
-
"hono": "4.11.
|
|
79
|
+
"hono": "4.11.9",
|
|
76
80
|
"lru-cache": "11.2.5",
|
|
77
81
|
"minisearch": "^6.3.0",
|
|
78
82
|
"onnxruntime-web": "1.24.1",
|