@timmeck/brain 2.1.2 → 2.2.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 (88) hide show
  1. package/README.md +71 -21
  2. package/brain.log +22 -0
  3. package/dist/brain.js +54 -0
  4. package/dist/brain.js.map +1 -1
  5. package/dist/cli/commands/status.js +9 -0
  6. package/dist/cli/commands/status.js.map +1 -1
  7. package/dist/db/migrations/010_memory_schema.d.ts +2 -0
  8. package/dist/db/migrations/010_memory_schema.js +52 -0
  9. package/dist/db/migrations/010_memory_schema.js.map +1 -0
  10. package/dist/db/migrations/011_memory_fts.d.ts +2 -0
  11. package/dist/db/migrations/011_memory_fts.js +54 -0
  12. package/dist/db/migrations/011_memory_fts.js.map +1 -0
  13. package/dist/db/migrations/012_decisions_changelog.d.ts +2 -0
  14. package/dist/db/migrations/012_decisions_changelog.js +97 -0
  15. package/dist/db/migrations/012_decisions_changelog.js.map +1 -0
  16. package/dist/db/migrations/013_tasks.d.ts +2 -0
  17. package/dist/db/migrations/013_tasks.js +53 -0
  18. package/dist/db/migrations/013_tasks.js.map +1 -0
  19. package/dist/db/migrations/014_project_docs.d.ts +2 -0
  20. package/dist/db/migrations/014_project_docs.js +43 -0
  21. package/dist/db/migrations/014_project_docs.js.map +1 -0
  22. package/dist/db/migrations/index.js +10 -0
  23. package/dist/db/migrations/index.js.map +1 -1
  24. package/dist/db/repositories/changelog.repository.d.ts +15 -0
  25. package/dist/db/repositories/changelog.repository.js +60 -0
  26. package/dist/db/repositories/changelog.repository.js.map +1 -0
  27. package/dist/db/repositories/decision.repository.d.ts +17 -0
  28. package/dist/db/repositories/decision.repository.js +89 -0
  29. package/dist/db/repositories/decision.repository.js.map +1 -0
  30. package/dist/db/repositories/doc.repository.d.ts +16 -0
  31. package/dist/db/repositories/doc.repository.js +85 -0
  32. package/dist/db/repositories/doc.repository.js.map +1 -0
  33. package/dist/db/repositories/memory.repository.d.ts +26 -0
  34. package/dist/db/repositories/memory.repository.js +136 -0
  35. package/dist/db/repositories/memory.repository.js.map +1 -0
  36. package/dist/db/repositories/session.repository.d.ts +18 -0
  37. package/dist/db/repositories/session.repository.js +82 -0
  38. package/dist/db/repositories/session.repository.js.map +1 -0
  39. package/dist/db/repositories/task.repository.d.ts +18 -0
  40. package/dist/db/repositories/task.repository.js +110 -0
  41. package/dist/db/repositories/task.repository.js.map +1 -0
  42. package/dist/embeddings/engine.d.ts +5 -0
  43. package/dist/embeddings/engine.js +82 -3
  44. package/dist/embeddings/engine.js.map +1 -1
  45. package/dist/hooks/post-tool-use.js +40 -18
  46. package/dist/hooks/post-tool-use.js.map +1 -1
  47. package/dist/hooks/pre-tool-use.d.ts +2 -0
  48. package/dist/hooks/pre-tool-use.js +44 -0
  49. package/dist/hooks/pre-tool-use.js.map +1 -0
  50. package/dist/ipc/router.d.ts +10 -0
  51. package/dist/ipc/router.js +37 -1
  52. package/dist/ipc/router.js.map +1 -1
  53. package/dist/mcp/tools.js +266 -0
  54. package/dist/mcp/tools.js.map +1 -1
  55. package/dist/services/analytics.service.d.ts +13 -0
  56. package/dist/services/analytics.service.js +13 -0
  57. package/dist/services/analytics.service.js.map +1 -1
  58. package/dist/services/changelog.service.d.ts +17 -0
  59. package/dist/services/changelog.service.js +77 -0
  60. package/dist/services/changelog.service.js.map +1 -0
  61. package/dist/services/decision.service.d.ts +17 -0
  62. package/dist/services/decision.service.js +64 -0
  63. package/dist/services/decision.service.js.map +1 -0
  64. package/dist/services/doc.service.d.ts +30 -0
  65. package/dist/services/doc.service.js +140 -0
  66. package/dist/services/doc.service.js.map +1 -0
  67. package/dist/services/memory.service.d.ts +44 -0
  68. package/dist/services/memory.service.js +189 -0
  69. package/dist/services/memory.service.js.map +1 -0
  70. package/dist/services/task.service.d.ts +35 -0
  71. package/dist/services/task.service.js +116 -0
  72. package/dist/services/task.service.js.map +1 -0
  73. package/dist/types/decision.types.d.ts +75 -0
  74. package/dist/types/decision.types.js +2 -0
  75. package/dist/types/decision.types.js.map +1 -0
  76. package/dist/types/doc.types.d.ts +23 -0
  77. package/dist/types/doc.types.js +2 -0
  78. package/dist/types/doc.types.js.map +1 -0
  79. package/dist/types/memory.types.d.ts +1 -0
  80. package/dist/types/memory.types.js +2 -0
  81. package/dist/types/memory.types.js.map +1 -0
  82. package/dist/types/synapse.types.d.ts +2 -2
  83. package/dist/types/task.types.d.ts +47 -0
  84. package/dist/types/task.types.js +2 -0
  85. package/dist/types/task.types.js.map +1 -0
  86. package/dist/utils/events.d.ts +47 -0
  87. package/dist/utils/events.js.map +1 -1
  88. package/package.json +2 -2
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![GitHub stars](https://img.shields.io/github/stars/timmeck/brain)](https://github.com/timmeck/brain)
7
7
  [![Smithery](https://smithery.ai/badge/@timmeck/brain)](https://smithery.ai/server/@timmeck/brain)
8
8
 
9
- **Adaptive Error Memory & Code Intelligence MCP Server for Claude Code**
9
+ **Adaptive Error Memory, Code Intelligence & Persistent Context MCP Server for Claude Code**
10
10
 
11
11
  <!-- TODO: Replace with actual recording once setup wizard is recorded -->
12
12
  <!-- ![Demo](assets/demo.gif) -->
@@ -79,8 +79,15 @@ Brain: "⚠ Warning: This code matches antipattern #7 — missing connection
79
79
 
80
80
  - **Error Memory** — Track errors, match against known solutions with hybrid search (TF-IDF + vector + synapse boost)
81
81
  - **Code Intelligence** — Register and discover reusable code modules across all projects
82
+ - **Persistent Memory** — Remember preferences, decisions, context, facts, goals, and lessons across sessions (new in v2.2)
83
+ - **Session Tracking** — Auto-tracks conversation sessions with goals, summaries, and outcomes (new in v2.2)
84
+ - **Decision History** — Record architecture/design decisions with alternatives and rationale (new in v2.2)
85
+ - **Semantic Changelog** — Track what changed, why, and how it connects to errors and decisions (new in v2.2)
86
+ - **Task/Goal Tracking** — Manage tasks with priorities, subtasks, and full context aggregation (new in v2.2)
87
+ - **Project Doc Index** — Auto-index README, CLAUDE.md, package.json, tsconfig.json for instant project context (new in v2.2)
82
88
  - **Hebbian Synapse Network** — Weighted graph where connections strengthen with use ("neurons that fire together wire together")
83
89
  - **Auto Error Detection** — PostToolUse hook catches errors in real-time, no manual reporting needed
90
+ - **Auto Context Capture** — Hooks auto-capture significant commands as context memories (new in v2.2)
84
91
  - **Cross-Project Learning** — Solutions from project A help solve errors in project B
85
92
  - **Proactive Prevention** — Warns before errors occur when code matches known antipatterns
86
93
  - **Semantic Search** — Local all-MiniLM-L6-v2 embeddings (23MB, no cloud required) for vector similarity
@@ -111,19 +118,19 @@ Brain: "⚠ Warning: This code matches antipattern #7 — missing connection
111
118
  | (Daemon / Services) |
112
119
  +----------+-----------+
113
120
  |
114
- +-------+-------+--------+--------+
115
- | | | | |
116
- v v v v v
117
- +---+--+ +--+---+ +-+-----+ +-+----+ +-+--------+
118
- |Error | |Code | |Synapse| |Git | |Embedding |
119
- |Memory| |Brain | |Network| |Intel | |Engine |
120
- +---+--+ +--+---+ +-+-----+ +-+----+ +-+--------+
121
- | | | | |
122
- v v v v v
123
- +---+--+ +--+---+ +-+-----+ +-+----+ +-+--------+
124
- |Learn | |Module| |Hebbian| |Commit| |Vector |
125
- |Engine| |Score | |Learn | |Track | |Search |
126
- +------+ +------+ +-------+ +------+ +----------+
121
+ +-------+-------+--------+--------+--------+
122
+ | | | | | |
123
+ v v v v v v
124
+ +---+--+ +--+---+ +-+-----+ +-+----+ +-+----+ +-+--------+
125
+ |Error | |Code | |Synapse| |Git | |Memory| |Embedding |
126
+ |Memory| |Brain | |Network| |Intel | |Brain | |Engine |
127
+ +---+--+ +--+---+ +-+-----+ +-+----+ +-+----+ +-+--------+
128
+ | | | | | |
129
+ v v v v v v
130
+ +---+--+ +--+---+ +-+-----+ +-+----+ +-+----+ +-+--------+
131
+ |Learn | |Module| |Hebbian| |Commit| |Tasks | |Vector |
132
+ |Engine| |Score | |Learn | |Track | |Docs | |Search |
133
+ +------+ +------+ +-------+ +------+ +------+ +----------+
127
134
  |
128
135
  v
129
136
  +----------+-----------+
@@ -141,12 +148,18 @@ Cross-brain peering via IPC named pipes (\\.\pipe\brain-*, /tmp/brain-*)
141
148
  | **Error Memory** | Stores errors with fingerprints, matches new errors against known ones using hybrid search |
142
149
  | **Solution Tracker** | Records solutions with success/fail counts, computes Wilson Score confidence |
143
150
  | **Code Module Registry** | Indexes code across projects — find reusable modules by language, tags, similarity |
151
+ | **Memory Brain** | Persistent memory for preferences, decisions, context, facts, goals, and lessons (new in v2.2) |
152
+ | **Session Tracker** | Tracks conversation sessions with goals, summaries, and outcomes (new in v2.2) |
153
+ | **Decision History** | Records architecture/design decisions with alternatives and rationale (new in v2.2) |
154
+ | **Semantic Changelog** | Tracks file changes with context: what, why, related errors/decisions (new in v2.2) |
155
+ | **Task Manager** | Task/goal tracking with priorities, subtasks, and full context aggregation (new in v2.2) |
156
+ | **Project Doc Index** | Auto-indexes README, CLAUDE.md, package.json for instant project context (new in v2.2) |
144
157
  | **Synapse Network** | Weighted graph connecting all entities. Hebbian rule: "neurons that fire together wire together" |
145
158
  | **Learning Engine** | Extracts patterns from error/solution history, generates preventive rules with adaptive thresholds |
146
159
  | **Research Engine** | Analyzes trends, detects knowledge gaps, finds cross-project synergies |
147
160
  | **Git Intelligence** | Links errors to commits, tracks which changes introduced or fixed bugs |
148
161
  | **Embedding Engine** | Local all-MiniLM-L6-v2 model generates 384-dim vectors for semantic search |
149
- | **REST API** | HTTP API exposing all 40+ Brain methods as RESTful endpoints |
162
+ | **REST API** | HTTP API exposing all 60+ Brain methods as RESTful endpoints |
150
163
  | **MCP HTTP Server** | SSE transport enabling non-Claude MCP clients (Cursor, Windsurf, etc.) |
151
164
 
152
165
  ## MCP Tools
@@ -155,19 +168,43 @@ These tools are available to Claude Code (and other MCP clients) when Brain is c
155
168
 
156
169
  | Tool | Description |
157
170
  |------|-------------|
171
+ | **Error Brain** | |
158
172
  | `brain_report_error` | Report an error; stores and matches against known errors (hybrid search) |
159
173
  | `brain_query_error` | Search for similar errors and solutions |
160
174
  | `brain_report_solution` | Report a working solution; Brain learns from it |
161
175
  | `brain_report_attempt` | Report a failed attempt; Brain learns what doesn't work |
176
+ | **Code Brain** | |
162
177
  | `brain_find_reusable_code` | Search for reusable code modules |
163
178
  | `brain_register_code` | Register a code module as reusable |
164
179
  | `brain_check_code_similarity` | Check if similar code exists before writing new code |
180
+ | **Memory Brain** (new in v2.2) | |
181
+ | `brain_remember` | Store a memory (preference, decision, context, fact, goal, lesson) |
182
+ | `brain_recall` | Search memories by natural language query |
183
+ | `brain_session_start` | Start a session to track what happens in a conversation |
184
+ | `brain_session_end` | End session with summary and outcome |
185
+ | `brain_session_history` | Recall past sessions ("what was I working on?") |
186
+ | **Decision & Changelog** (new in v2.2) | |
187
+ | `brain_record_decision` | Record architecture/design decision with alternatives |
188
+ | `brain_query_decisions` | Search past decisions ("why did we choose X?") |
189
+ | `brain_record_change` | Record semantic file change (what + why) |
190
+ | `brain_query_changes` | Search changelog ("what changed in file X?") |
191
+ | **Task Tracking** (new in v2.2) | |
192
+ | `brain_add_task` | Add a task/goal with priority and tags |
193
+ | `brain_update_task` | Update task status, add notes |
194
+ | `brain_list_tasks` | List tasks by status/project |
195
+ | `brain_task_context` | Full context: task + related memories, decisions, changes |
196
+ | **Project Docs** (new in v2.2) | |
197
+ | `brain_index_project` | Scan and index project documentation |
198
+ | `brain_query_docs` | Search indexed documentation |
199
+ | `brain_project_context` | Full context: docs + tasks + decisions + changes |
200
+ | **Synapse & Research** | |
165
201
  | `brain_explore` | Explore knowledge via spreading activation |
166
202
  | `brain_connections` | Find how two concepts are connected |
167
203
  | `brain_insights` | Get research insights (trends, gaps, synergies) |
168
204
  | `brain_rate_insight` | Rate an insight as useful or not useful |
169
205
  | `brain_suggest` | Get suggestions on what to build or improve |
170
- | `brain_status` | Current Brain stats |
206
+ | **Status & Ecosystem** | |
207
+ | `brain_status` | Current Brain stats (now includes memory and session counts) |
171
208
  | `brain_notifications` | Get pending notifications |
172
209
  | `brain_ecosystem_status` | Get status of all brains in the ecosystem |
173
210
  | `brain_query_peer` | Query another brain in the ecosystem (method + params) |
@@ -249,7 +286,7 @@ POST /api/v1/git/link-error # Link error to commit
249
286
 
250
287
  # Meta
251
288
  GET /api/v1/health # API health check
252
- GET /api/v1/methods # List all 40+ available methods
289
+ GET /api/v1/methods # List all 60+ available methods
253
290
  ```
254
291
 
255
292
  ### Authentication
@@ -300,19 +337,32 @@ Make sure the Brain daemon is running (`brain start`).
300
337
  9. **Embeddings Computed** — Background sweep generates vector embeddings for semantic search
301
338
  10. **Next Time** — When a similar error appears, Brain instantly suggests the proven solution — even from other projects
302
339
 
340
+ ## How It Remembers (v2.2)
341
+
342
+ Brain now maintains **persistent context** across sessions:
343
+
344
+ 1. **Session Auto-Start** — PreToolUse hook auto-starts a session per working directory
345
+ 2. **Context Captured** — Significant commands (npm, git, test, build, deploy) are auto-remembered as context
346
+ 3. **Preferences Stored** — User preferences (test framework, code style, tools) are stored with key-based upsert
347
+ 4. **Decisions Recorded** — Architecture decisions with alternatives and rationale for "why did we choose X?"
348
+ 5. **Changes Tracked** — Semantic changelog links file changes to errors and decisions
349
+ 6. **Tasks Managed** — Goals and tasks with priorities, subtasks, and full context aggregation
350
+ 7. **Docs Indexed** — README, CLAUDE.md, package.json indexed for instant project context
351
+ 8. **Everything Connected** — All new entities join the synapse network, enabling cross-entity discovery
352
+
303
353
  ## Brain Ecosystem
304
354
 
305
355
  Brain is part of the **Brain Ecosystem** — a family of standalone MCP servers that give Claude Code persistent, self-learning memory.
306
356
 
307
357
  | Brain | Purpose | Ports |
308
358
  |-------|---------|-------|
309
- | **Brain** | Error memory & code intelligence | **7777** / 7778 |
359
+ | **Brain** | Error memory, code intelligence & persistent context | **7777** / 7778 |
310
360
  | [Trading Brain](https://github.com/timmeck/trading-brain) | Adaptive trading intelligence | 7779 / 7780 |
311
361
  | [Marketing Brain](https://github.com/timmeck/marketing-brain) | Content strategy & engagement | 7781 / 7782 |
312
- | [Brain Core](https://github.com/timmeck/brain-core) v1.5.0 | Shared infrastructure (IPC, MCP, REST, CLI, math, synapses) | — |
362
+ | [Brain Core](https://github.com/timmeck/brain-core) v1.6.0 | Shared infrastructure (IPC, MCP, REST, CLI, math, synapses, memory) | — |
313
363
  | [Brain Hub](https://timmeck.github.io/brain-hub/) | Ecosystem landing page | — |
314
364
 
315
- Each brain is **fully standalone** — [Brain Core](https://www.npmjs.com/package/@timmeck/brain-core) provides shared infrastructure (IPC, MCP, REST API, CLI, math, synapse algorithms) used by all brains, eliminating ~2,800 lines of duplicated code.
365
+ Each brain is **fully standalone** — [Brain Core](https://www.npmjs.com/package/@timmeck/brain-core) provides shared infrastructure (IPC, MCP, REST API, CLI, math, synapse algorithms, memory types) used by all brains, eliminating ~2,800 lines of duplicated code.
316
366
 
317
367
  ### Cross-Brain Communication
318
368
 
@@ -327,7 +377,7 @@ Brains discover and query each other at runtime via IPC named pipes. Use `brain
327
377
  - **Commander** — CLI framework
328
378
  - **Chalk** — Colored terminal output
329
379
  - **Winston** — Structured logging
330
- - **Vitest** — Testing (189 tests)
380
+ - **Vitest** — Testing
331
381
 
332
382
  ## License
333
383
 
package/brain.log CHANGED
@@ -4260,3 +4260,25 @@
4260
4260
  2026-02-27T16:17:59.347Z [info] Applying migration 009_embeddings
4261
4261
  2026-02-27T16:17:59.347Z [info] Migrations complete. Now at version 9
4262
4262
  2026-02-27T16:17:59.351Z [info] New error reported (id=1, type=Error)
4263
+ 2026-02-28T09:02:19.228Z [info] Opening database at C:\Users\mecklenburg\.brain\brain.db
4264
+ 2026-02-28T09:02:19.815Z [info] Running 5 migration(s) from version 9
4265
+ 2026-02-28T09:02:19.816Z [info] Applying migration 010_memory_schema
4266
+ 2026-02-28T09:02:19.816Z [info] Applying migration 011_memory_fts
4267
+ 2026-02-28T09:02:19.817Z [info] Applying migration 012_decisions_changelog
4268
+ 2026-02-28T09:02:19.818Z [info] Applying migration 013_tasks
4269
+ 2026-02-28T09:02:19.818Z [info] Applying migration 014_project_docs
4270
+ 2026-02-28T09:02:19.822Z [info] Migrations complete. Now at version 14
4271
+ 2026-02-28T09:02:19.822Z [info] Database initialized: C:\Users\mecklenburg\.brain\brain.db
4272
+ 2026-02-28T09:02:19.860Z [info] Embedding engine started (model will load in background)
4273
+ 2026-02-28T09:02:19.860Z [info] Learning engine started (interval: 900000ms)
4274
+ 2026-02-28T09:02:19.860Z [info] Research engine started (interval: 3600000ms)
4275
+ 2026-02-28T09:02:19.862Z [info] REST API enabled on port 7777
4276
+ 2026-02-28T09:02:19.863Z [info] MCP HTTP (SSE) enabled on port 7778
4277
+ 2026-02-28T09:02:19.863Z [info] Brain daemon started (PID: 127564)
4278
+ 2026-02-28T09:02:19.940Z [info] IPC server listening on \\.\pipe\brain
4279
+ 2026-02-28T09:02:19.940Z [info] REST API server started on http://localhost:7777
4280
+ 2026-02-28T09:02:19.940Z [info] MCP HTTP server (SSE) started on http://localhost:7778
4281
+ 2026-02-28T09:02:20.061Z [info] Embedding model loaded: Xenova/all-MiniLM-L6-v2
4282
+ 2026-02-28T09:02:20.234Z [info] Embedding sweep: 0 errors, 50 modules, 0 memories, 0 sessions, 0 decisions, 0 tasks, 0 docs
4283
+ 2026-02-28T09:02:26.647Z [info] IPC client connected: d7727d13-ab71-4032-8438-6bf2e840d801
4284
+ 2026-02-28T09:02:27.002Z [info] IPC client disconnected: d7727d13-ab71-4032-8438-6bf2e840d801
package/dist/brain.js CHANGED
@@ -16,6 +16,12 @@ import { CodeModuleRepository } from './db/repositories/code-module.repository.j
16
16
  import { SynapseRepository } from './db/repositories/synapse.repository.js';
17
17
  import { NotificationRepository } from './db/repositories/notification.repository.js';
18
18
  import { InsightRepository } from './db/repositories/insight.repository.js';
19
+ import { MemoryRepository } from './db/repositories/memory.repository.js';
20
+ import { SessionRepository } from './db/repositories/session.repository.js';
21
+ import { DecisionRepository } from './db/repositories/decision.repository.js';
22
+ import { ChangelogRepository } from './db/repositories/changelog.repository.js';
23
+ import { TaskRepository } from './db/repositories/task.repository.js';
24
+ import { DocRepository } from './db/repositories/doc.repository.js';
19
25
  // Services
20
26
  import { ErrorService } from './services/error.service.js';
21
27
  import { SolutionService } from './services/solution.service.js';
@@ -27,6 +33,11 @@ import { ResearchService } from './services/research.service.js';
27
33
  import { NotificationService } from './services/notification.service.js';
28
34
  import { AnalyticsService } from './services/analytics.service.js';
29
35
  import { GitService } from './services/git.service.js';
36
+ import { MemoryService } from './services/memory.service.js';
37
+ import { DecisionService } from './services/decision.service.js';
38
+ import { ChangelogService } from './services/changelog.service.js';
39
+ import { TaskService } from './services/task.service.js';
40
+ import { DocService } from './services/doc.service.js';
30
41
  // Synapses
31
42
  import { SynapseManager } from './synapses/synapse-manager.js';
32
43
  // Engines
@@ -86,9 +97,20 @@ export class BrainCore {
86
97
  const synapseRepo = new SynapseRepository(this.db);
87
98
  const notificationRepo = new NotificationRepository(this.db);
88
99
  const insightRepo = new InsightRepository(this.db);
100
+ const memoryRepo = new MemoryRepository(this.db);
101
+ const sessionRepo = new SessionRepository(this.db);
102
+ const decisionRepo = new DecisionRepository(this.db);
103
+ const changelogRepo = new ChangelogRepository(this.db);
104
+ const taskRepo = new TaskRepository(this.db);
105
+ const docRepo = new DocRepository(this.db);
89
106
  // 6. Synapse Manager
90
107
  const synapseManager = new SynapseManager(synapseRepo, config.synapses);
91
108
  // 7. Services
109
+ const memoryService = new MemoryService(memoryRepo, sessionRepo, projectRepo, synapseManager);
110
+ const decisionService = new DecisionService(decisionRepo, projectRepo, synapseManager);
111
+ const changelogService = new ChangelogService(changelogRepo, projectRepo, synapseManager);
112
+ const taskService = new TaskService(taskRepo, memoryRepo, decisionRepo, changelogRepo, projectRepo, synapseManager);
113
+ const docService = new DocService(docRepo, projectRepo, decisionRepo, changelogRepo, taskRepo, synapseManager);
92
114
  const services = {
93
115
  error: new ErrorService(errorRepo, projectRepo, synapseManager, config.matching),
94
116
  solution: new SolutionService(solutionRepo, synapseManager),
@@ -100,7 +122,14 @@ export class BrainCore {
100
122
  notification: new NotificationService(notificationRepo),
101
123
  analytics: new AnalyticsService(errorRepo, solutionRepo, codeModuleRepo, ruleRepo, antipatternRepo, insightRepo, synapseManager),
102
124
  git: new GitService(this.db, synapseManager),
125
+ memory: memoryService,
126
+ decision: decisionService,
127
+ changelog: changelogService,
128
+ task: taskService,
129
+ doc: docService,
103
130
  };
131
+ // Wire memory repos into analytics for stats
132
+ services.analytics.setMemoryRepos(memoryRepo, sessionRepo);
104
133
  // 8. Embedding Engine (local vector search)
105
134
  if (config.embeddings.enabled) {
106
135
  this.embeddingEngine = new EmbeddingEngine(config.embeddings, this.db);
@@ -108,6 +137,7 @@ export class BrainCore {
108
137
  // Wire embedding engine into services for hybrid search
109
138
  services.error.setEmbeddingEngine(this.embeddingEngine);
110
139
  services.code.setEmbeddingEngine(this.embeddingEngine);
140
+ services.memory.setEmbeddingEngine(this.embeddingEngine);
111
141
  logger.info('Embedding engine started (model will load in background)');
112
142
  }
113
143
  // 9. Learning Engine
@@ -259,6 +289,30 @@ export class BrainCore {
259
289
  getLogger().info(`New insight #${insightId} (${type})`);
260
290
  notifier?.notifyPeer('marketing-brain', 'insight:created', { insightId, type });
261
291
  });
292
+ // Memory → Project synapse
293
+ bus.on('memory:created', ({ memoryId, projectId }) => {
294
+ if (projectId) {
295
+ synapseManager.strengthen({ type: 'memory', id: memoryId }, { type: 'project', id: projectId }, 'co_occurs');
296
+ }
297
+ });
298
+ // Session → Project synapse
299
+ bus.on('session:ended', ({ sessionId }) => {
300
+ getLogger().info(`Session #${sessionId} ended`);
301
+ });
302
+ // Decision → Project synapse
303
+ bus.on('decision:recorded', ({ decisionId, projectId }) => {
304
+ if (projectId) {
305
+ synapseManager.strengthen({ type: 'decision', id: decisionId }, { type: 'project', id: projectId }, 'co_occurs');
306
+ }
307
+ });
308
+ // Task created → log
309
+ bus.on('task:created', ({ taskId }) => {
310
+ getLogger().info(`Task #${taskId} created`);
311
+ });
312
+ // Task completed → log
313
+ bus.on('task:completed', ({ taskId }) => {
314
+ getLogger().info(`Task #${taskId} completed`);
315
+ });
262
316
  }
263
317
  }
264
318
  //# sourceMappingURL=brain.js.map
package/dist/brain.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"brain.js","sourceRoot":"","sources":["../src/brain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain.js","sourceRoot":"","sources":["../src/brain.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,15 @@ export function statusCommand() {
56
56
  console.log();
57
57
  console.log(` ${icons.insight} ${c.orange.bold('Research Brain')}`);
58
58
  console.log(` ${c.label('Insights:')} ${c.value(summary.insights?.active ?? 0)} active`);
59
+ console.log();
60
+ const memActive = summary.memories?.active ?? 0;
61
+ const memPrefs = summary.memories?.byCategory?.preference ?? 0;
62
+ const memGoals = summary.memories?.byCategory?.goal ?? 0;
63
+ const sessTotal = summary.sessions?.total ?? 0;
64
+ const sessLast = summary.sessions?.last ? summary.sessions.last.split('T')[0] : 'never';
65
+ console.log(` ${c.purple.bold('Memory Brain')}`);
66
+ console.log(` ${c.label('Memories:')} ${c.value(memActive)} active (${memPrefs} preferences, ${memGoals} goals)`);
67
+ console.log(` ${c.label('Sessions:')} ${c.value(sessTotal)} total, last: ${sessLast}`);
59
68
  await checkForUpdate();
60
69
  console.log(`\n${divider()}`);
61
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type Database from 'better-sqlite3';
2
+ export declare function up(db: Database.Database): void;
@@ -0,0 +1,52 @@
1
+ export function up(db) {
2
+ db.exec(`
3
+ -- Sessions: Conversation lifecycle tracking
4
+ CREATE TABLE IF NOT EXISTS sessions (
5
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
6
+ session_id TEXT NOT NULL UNIQUE,
7
+ project_id INTEGER,
8
+ started_at TEXT NOT NULL DEFAULT (datetime('now')),
9
+ ended_at TEXT,
10
+ summary TEXT,
11
+ goals TEXT,
12
+ outcome TEXT,
13
+ metadata TEXT,
14
+ embedding BLOB DEFAULT NULL,
15
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL
16
+ );
17
+
18
+ -- Memories: Universal remember-anything store
19
+ CREATE TABLE IF NOT EXISTS memories (
20
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
21
+ project_id INTEGER,
22
+ session_id INTEGER,
23
+ category TEXT NOT NULL,
24
+ key TEXT,
25
+ content TEXT NOT NULL,
26
+ importance INTEGER NOT NULL DEFAULT 5,
27
+ source TEXT NOT NULL DEFAULT 'explicit',
28
+ tags TEXT,
29
+ expires_at TEXT,
30
+ superseded_by INTEGER,
31
+ active INTEGER NOT NULL DEFAULT 1,
32
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
33
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
34
+ embedding BLOB DEFAULT NULL,
35
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL,
36
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL,
37
+ FOREIGN KEY (superseded_by) REFERENCES memories(id) ON DELETE SET NULL
38
+ );
39
+
40
+ -- Indexes
41
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_memories_key
42
+ ON memories(project_id, key) WHERE key IS NOT NULL AND active = 1;
43
+ CREATE INDEX IF NOT EXISTS idx_sessions_project ON sessions(project_id);
44
+ CREATE INDEX IF NOT EXISTS idx_sessions_started ON sessions(started_at);
45
+ CREATE INDEX IF NOT EXISTS idx_memories_category ON memories(category);
46
+ CREATE INDEX IF NOT EXISTS idx_memories_project ON memories(project_id);
47
+ CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id);
48
+ CREATE INDEX IF NOT EXISTS idx_memories_active ON memories(active);
49
+ CREATE INDEX IF NOT EXISTS idx_memories_importance ON memories(importance DESC);
50
+ `);
51
+ }
52
+ //# sourceMappingURL=010_memory_schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"010_memory_schema.js","sourceRoot":"","sources":["../../../src/db/migrations/010_memory_schema.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,EAAqB;IACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDP,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type Database from 'better-sqlite3';
2
+ export declare function up(db: Database.Database): void;
@@ -0,0 +1,54 @@
1
+ export function up(db) {
2
+ db.exec(`
3
+ -- Full-text search for memories
4
+ CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
5
+ category, key, content, tags,
6
+ content='memories',
7
+ content_rowid='id'
8
+ );
9
+
10
+ -- Sync triggers for memories_fts
11
+ CREATE TRIGGER IF NOT EXISTS memories_ai AFTER INSERT ON memories BEGIN
12
+ INSERT INTO memories_fts(rowid, category, key, content, tags)
13
+ VALUES (new.id, new.category, new.key, new.content, new.tags);
14
+ END;
15
+
16
+ CREATE TRIGGER IF NOT EXISTS memories_ad AFTER DELETE ON memories BEGIN
17
+ INSERT INTO memories_fts(memories_fts, rowid, category, key, content, tags)
18
+ VALUES ('delete', old.id, old.category, old.key, old.content, old.tags);
19
+ END;
20
+
21
+ CREATE TRIGGER IF NOT EXISTS memories_au AFTER UPDATE ON memories BEGIN
22
+ INSERT INTO memories_fts(memories_fts, rowid, category, key, content, tags)
23
+ VALUES ('delete', old.id, old.category, old.key, old.content, old.tags);
24
+ INSERT INTO memories_fts(rowid, category, key, content, tags)
25
+ VALUES (new.id, new.category, new.key, new.content, new.tags);
26
+ END;
27
+
28
+ -- Full-text search for sessions
29
+ CREATE VIRTUAL TABLE IF NOT EXISTS sessions_fts USING fts5(
30
+ summary, goals,
31
+ content='sessions',
32
+ content_rowid='id'
33
+ );
34
+
35
+ -- Sync triggers for sessions_fts
36
+ CREATE TRIGGER IF NOT EXISTS sessions_ai AFTER INSERT ON sessions BEGIN
37
+ INSERT INTO sessions_fts(rowid, summary, goals)
38
+ VALUES (new.id, new.summary, new.goals);
39
+ END;
40
+
41
+ CREATE TRIGGER IF NOT EXISTS sessions_ad AFTER DELETE ON sessions BEGIN
42
+ INSERT INTO sessions_fts(sessions_fts, rowid, summary, goals)
43
+ VALUES ('delete', old.id, old.summary, old.goals);
44
+ END;
45
+
46
+ CREATE TRIGGER IF NOT EXISTS sessions_au AFTER UPDATE ON sessions BEGIN
47
+ INSERT INTO sessions_fts(sessions_fts, rowid, summary, goals)
48
+ VALUES ('delete', old.id, old.summary, old.goals);
49
+ INSERT INTO sessions_fts(rowid, summary, goals)
50
+ VALUES (new.id, new.summary, new.goals);
51
+ END;
52
+ `);
53
+ }
54
+ //# sourceMappingURL=011_memory_fts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"011_memory_fts.js","sourceRoot":"","sources":["../../../src/db/migrations/011_memory_fts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,EAAqB;IACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDP,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type Database from 'better-sqlite3';
2
+ export declare function up(db: Database.Database): void;
@@ -0,0 +1,97 @@
1
+ export function up(db) {
2
+ db.exec(`
3
+ CREATE TABLE IF NOT EXISTS decisions (
4
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
5
+ project_id INTEGER,
6
+ session_id INTEGER,
7
+ title TEXT NOT NULL,
8
+ description TEXT NOT NULL,
9
+ alternatives TEXT,
10
+ category TEXT NOT NULL DEFAULT 'architecture',
11
+ status TEXT NOT NULL DEFAULT 'active',
12
+ superseded_by INTEGER,
13
+ tags TEXT,
14
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
15
+ updated_at TEXT NOT NULL DEFAULT (datetime('now')),
16
+ embedding BLOB DEFAULT NULL,
17
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL,
18
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL,
19
+ FOREIGN KEY (superseded_by) REFERENCES decisions(id) ON DELETE SET NULL
20
+ );
21
+
22
+ CREATE TABLE IF NOT EXISTS changelog_entries (
23
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
24
+ project_id INTEGER NOT NULL,
25
+ session_id INTEGER,
26
+ file_path TEXT NOT NULL,
27
+ change_type TEXT NOT NULL,
28
+ summary TEXT NOT NULL,
29
+ reason TEXT,
30
+ diff_snippet TEXT,
31
+ related_error_id INTEGER,
32
+ related_decision_id INTEGER,
33
+ commit_hash TEXT,
34
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
35
+ embedding BLOB DEFAULT NULL,
36
+ FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE,
37
+ FOREIGN KEY (session_id) REFERENCES sessions(id) ON DELETE SET NULL,
38
+ FOREIGN KEY (related_error_id) REFERENCES errors(id) ON DELETE SET NULL,
39
+ FOREIGN KEY (related_decision_id) REFERENCES decisions(id) ON DELETE SET NULL
40
+ );
41
+
42
+ -- Indexes
43
+ CREATE INDEX IF NOT EXISTS idx_decisions_project ON decisions(project_id);
44
+ CREATE INDEX IF NOT EXISTS idx_decisions_category ON decisions(category);
45
+ CREATE INDEX IF NOT EXISTS idx_decisions_status ON decisions(status);
46
+ CREATE INDEX IF NOT EXISTS idx_changelog_project ON changelog_entries(project_id);
47
+ CREATE INDEX IF NOT EXISTS idx_changelog_file ON changelog_entries(file_path);
48
+ CREATE INDEX IF NOT EXISTS idx_changelog_session ON changelog_entries(session_id);
49
+
50
+ -- FTS for decisions
51
+ CREATE VIRTUAL TABLE IF NOT EXISTS decisions_fts USING fts5(
52
+ title, description, alternatives,
53
+ content='decisions', content_rowid='id'
54
+ );
55
+
56
+ CREATE TRIGGER IF NOT EXISTS decisions_ai AFTER INSERT ON decisions BEGIN
57
+ INSERT INTO decisions_fts(rowid, title, description, alternatives)
58
+ VALUES (new.id, new.title, new.description, new.alternatives);
59
+ END;
60
+
61
+ CREATE TRIGGER IF NOT EXISTS decisions_ad AFTER DELETE ON decisions BEGIN
62
+ INSERT INTO decisions_fts(decisions_fts, rowid, title, description, alternatives)
63
+ VALUES ('delete', old.id, old.title, old.description, old.alternatives);
64
+ END;
65
+
66
+ CREATE TRIGGER IF NOT EXISTS decisions_au AFTER UPDATE ON decisions BEGIN
67
+ INSERT INTO decisions_fts(decisions_fts, rowid, title, description, alternatives)
68
+ VALUES ('delete', old.id, old.title, old.description, old.alternatives);
69
+ INSERT INTO decisions_fts(rowid, title, description, alternatives)
70
+ VALUES (new.id, new.title, new.description, new.alternatives);
71
+ END;
72
+
73
+ -- FTS for changelog
74
+ CREATE VIRTUAL TABLE IF NOT EXISTS changelog_fts USING fts5(
75
+ file_path, summary, reason,
76
+ content='changelog_entries', content_rowid='id'
77
+ );
78
+
79
+ CREATE TRIGGER IF NOT EXISTS changelog_ai AFTER INSERT ON changelog_entries BEGIN
80
+ INSERT INTO changelog_fts(rowid, file_path, summary, reason)
81
+ VALUES (new.id, new.file_path, new.summary, new.reason);
82
+ END;
83
+
84
+ CREATE TRIGGER IF NOT EXISTS changelog_ad AFTER DELETE ON changelog_entries BEGIN
85
+ INSERT INTO changelog_fts(changelog_fts, rowid, file_path, summary, reason)
86
+ VALUES ('delete', old.id, old.file_path, old.summary, old.reason);
87
+ END;
88
+
89
+ CREATE TRIGGER IF NOT EXISTS changelog_au AFTER UPDATE ON changelog_entries BEGIN
90
+ INSERT INTO changelog_fts(changelog_fts, rowid, file_path, summary, reason)
91
+ VALUES ('delete', old.id, old.file_path, old.summary, old.reason);
92
+ INSERT INTO changelog_fts(rowid, file_path, summary, reason)
93
+ VALUES (new.id, new.file_path, new.summary, new.reason);
94
+ END;
95
+ `);
96
+ }
97
+ //# sourceMappingURL=012_decisions_changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"012_decisions_changelog.js","sourceRoot":"","sources":["../../../src/db/migrations/012_decisions_changelog.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,EAAE,CAAC,EAAqB;IACtC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FP,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type Database from 'better-sqlite3';
2
+ export declare function up(db: Database.Database): void;