@timmeck/brain 2.2.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -11
- package/dist/brain.d.ts +2 -0
- package/dist/brain.js +28 -4
- package/dist/brain.js.map +1 -1
- package/dist/cli/commands/doctor.js +1 -1
- package/dist/cli/commands/rules.d.ts +2 -0
- package/dist/cli/commands/rules.js +40 -0
- package/dist/cli/commands/rules.js.map +1 -0
- package/dist/cli/commands/setup.js +14 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/synapses.d.ts +2 -0
- package/dist/cli/commands/synapses.js +35 -0
- package/dist/cli/commands/synapses.js.map +1 -0
- package/dist/cli/ipc-helper.d.ts +1 -1
- package/dist/cli/ipc-helper.js +1 -1
- package/dist/cli/ipc-helper.js.map +1 -1
- package/dist/code/fingerprint.js +1 -1
- package/dist/code/fingerprint.js.map +1 -1
- package/dist/dashboard/server.d.ts +6 -12
- package/dist/dashboard/server.js +14 -121
- package/dist/dashboard/server.js.map +1 -1
- package/dist/embeddings/engine.d.ts +11 -17
- package/dist/embeddings/engine.js +33 -79
- package/dist/embeddings/engine.js.map +1 -1
- package/dist/hooks/post-tool-use.js +1 -1
- package/dist/hooks/post-tool-use.js.map +1 -1
- package/dist/hooks/post-write.js +1 -1
- package/dist/hooks/post-write.js.map +1 -1
- package/dist/hooks/pre-tool-use.js +1 -1
- package/dist/hooks/pre-tool-use.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/ipc/router.d.ts +8 -1
- package/dist/ipc/router.js +69 -0
- package/dist/ipc/router.js.map +1 -1
- package/dist/matching/fingerprint.js +1 -1
- package/dist/matching/fingerprint.js.map +1 -1
- package/dist/mcp/auto-detect.js +1 -1
- package/dist/mcp/auto-detect.js.map +1 -1
- package/dist/mcp/tools.d.ts +1 -1
- package/dist/mcp/tools.js +47 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/services/code.service.js +1 -1
- package/dist/services/code.service.js.map +1 -1
- package/dist/services/prevention.service.d.ts +7 -1
- package/dist/services/prevention.service.js +10 -0
- package/dist/services/prevention.service.js.map +1 -1
- package/package.json +5 -4
- package/brain.log +0 -4284
- package/smithery.yaml +0 -10
package/dist/dashboard/server.js
CHANGED
|
@@ -1,124 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DashboardServer } from '@timmeck/brain-core';
|
|
2
2
|
import { getEventBus } from '../utils/events.js';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const url = new URL(req.url ?? '/', `http://localhost:${port}`);
|
|
17
|
-
// CORS
|
|
18
|
-
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
19
|
-
res.setHeader('Access-Control-Allow-Methods', 'GET, OPTIONS');
|
|
20
|
-
if (req.method === 'OPTIONS') {
|
|
21
|
-
res.writeHead(204);
|
|
22
|
-
res.end();
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
if (url.pathname === '/events') {
|
|
26
|
-
// SSE endpoint
|
|
27
|
-
res.writeHead(200, {
|
|
28
|
-
'Content-Type': 'text/event-stream',
|
|
29
|
-
'Cache-Control': 'no-cache',
|
|
30
|
-
'Connection': 'keep-alive',
|
|
31
|
-
});
|
|
32
|
-
res.write('data: {"type":"connected"}\n\n');
|
|
33
|
-
this.clients.add(res);
|
|
34
|
-
req.on('close', () => this.clients.delete(res));
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
if (url.pathname === '/api/stats') {
|
|
38
|
-
const stats = getStats();
|
|
39
|
-
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
40
|
-
res.end(JSON.stringify(stats));
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (url.pathname === '/' || url.pathname === '/dashboard') {
|
|
44
|
-
const html = getDashboardHtml();
|
|
45
|
-
// Inject SSE script into the dashboard
|
|
46
|
-
const sseScript = `
|
|
47
|
-
<script>
|
|
48
|
-
(function(){
|
|
49
|
-
const evtSource = new EventSource('/events');
|
|
50
|
-
evtSource.onmessage = function(e) {
|
|
51
|
-
try {
|
|
52
|
-
const data = JSON.parse(e.data);
|
|
53
|
-
if (data.type === 'stats_update') {
|
|
54
|
-
// Update stat cards
|
|
55
|
-
document.querySelectorAll('.stat-number').forEach(el => {
|
|
56
|
-
const key = el.parentElement?.querySelector('.stat-label')?.textContent?.toLowerCase();
|
|
57
|
-
if (key && data.stats[key] !== undefined) {
|
|
58
|
-
el.textContent = Number(data.stats[key]).toLocaleString();
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
if (data.type === 'event') {
|
|
63
|
-
// Flash the activity dot
|
|
64
|
-
const dot = document.querySelector('.activity-dot');
|
|
65
|
-
if (dot) { dot.style.background = '#ff5577'; setTimeout(() => dot.style.background = '', 500); }
|
|
66
|
-
}
|
|
67
|
-
} catch {}
|
|
68
|
-
};
|
|
69
|
-
evtSource.onerror = function() { setTimeout(() => location.reload(), 5000); };
|
|
70
|
-
})();
|
|
71
|
-
</script>`;
|
|
72
|
-
const liveHtml = html.replace('</body>', sseScript + '</body>');
|
|
73
|
-
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
74
|
-
res.end(liveHtml);
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
res.writeHead(404, { 'Content-Type': 'text/plain' });
|
|
78
|
-
res.end('Not Found');
|
|
79
|
-
});
|
|
80
|
-
// Forward Brain events to SSE clients
|
|
81
|
-
const eventNames = [
|
|
82
|
-
'error:reported', 'error:resolved', 'solution:applied',
|
|
83
|
-
'solution:created', 'module:registered', 'module:updated',
|
|
84
|
-
'synapse:created', 'synapse:strengthened',
|
|
85
|
-
'insight:created', 'rule:learned',
|
|
86
|
-
];
|
|
87
|
-
for (const eventName of eventNames) {
|
|
88
|
-
bus.on(eventName, (data) => {
|
|
89
|
-
this.broadcast({ type: 'event', event: eventName, data });
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
// Periodic stats broadcast (every 30s)
|
|
93
|
-
setInterval(() => {
|
|
94
|
-
if (this.clients.size > 0) {
|
|
95
|
-
const stats = getStats();
|
|
96
|
-
this.broadcast({ type: 'stats_update', stats });
|
|
97
|
-
}
|
|
98
|
-
}, 30_000);
|
|
99
|
-
this.server.listen(port, () => {
|
|
100
|
-
this.logger.info(`Dashboard server started on http://localhost:${port}`);
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
stop() {
|
|
104
|
-
for (const client of this.clients) {
|
|
105
|
-
client.end();
|
|
106
|
-
}
|
|
107
|
-
this.clients.clear();
|
|
108
|
-
this.server?.close();
|
|
109
|
-
this.server = null;
|
|
110
|
-
this.logger.info('Dashboard server stopped');
|
|
111
|
-
}
|
|
112
|
-
broadcast(data) {
|
|
113
|
-
const msg = `data: ${JSON.stringify(data)}\n\n`;
|
|
114
|
-
for (const client of this.clients) {
|
|
115
|
-
try {
|
|
116
|
-
client.write(msg);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
this.clients.delete(client);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
3
|
+
export { DashboardServer };
|
|
4
|
+
export const BRAIN_EVENT_NAMES = [
|
|
5
|
+
'error:reported', 'error:resolved', 'solution:applied',
|
|
6
|
+
'solution:created', 'module:registered', 'module:updated',
|
|
7
|
+
'synapse:created', 'synapse:strengthened',
|
|
8
|
+
'insight:created', 'rule:learned',
|
|
9
|
+
];
|
|
10
|
+
export function createBrainDashboardServer(options) {
|
|
11
|
+
return new DashboardServer({
|
|
12
|
+
...options,
|
|
13
|
+
eventNames: BRAIN_EVENT_NAMES,
|
|
14
|
+
getEventBus: () => getEventBus(),
|
|
15
|
+
});
|
|
123
16
|
}
|
|
124
17
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/dashboard/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB;IACtD,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB;IACzD,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,cAAc;CACzB,CAAC;AAEX,MAAM,UAAU,0BAA0B,CAAC,OAI1C;IACC,OAAO,IAAI,eAAe,CAAC;QACzB,GAAG,OAAO;QACV,UAAU,EAAE,iBAAiB;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAmE;KAClG,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
|
+
import { BaseEmbeddingEngine } from '@timmeck/brain-core';
|
|
2
3
|
export interface EmbeddingConfig {
|
|
3
4
|
enabled: boolean;
|
|
4
5
|
modelName: string;
|
|
@@ -6,24 +7,23 @@ export interface EmbeddingConfig {
|
|
|
6
7
|
sweepIntervalMs: number;
|
|
7
8
|
batchSize: number;
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Brain-specific embedding engine.
|
|
12
|
+
* Extends BaseEmbeddingEngine with sweep logic for brain's domain tables:
|
|
13
|
+
* errors, code_modules, memories, sessions, decisions, tasks, project_docs.
|
|
14
|
+
*/
|
|
15
|
+
export declare class EmbeddingEngine extends BaseEmbeddingEngine {
|
|
10
16
|
private config;
|
|
11
17
|
private db;
|
|
12
|
-
private pipeline;
|
|
13
|
-
private ready;
|
|
14
|
-
private loading;
|
|
15
|
-
private logger;
|
|
16
18
|
private sweepTimer;
|
|
19
|
+
private sweepIntervalMs;
|
|
20
|
+
private batchSize;
|
|
17
21
|
constructor(config: EmbeddingConfig, db: Database.Database);
|
|
18
|
-
initialize(): Promise<void>;
|
|
19
22
|
/** Start background embedding sweep */
|
|
20
23
|
start(): void;
|
|
21
24
|
stop(): void;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
embed(text: string): Promise<Float32Array | null>;
|
|
25
|
-
/** Generate embeddings for a batch of texts */
|
|
26
|
-
embedBatch(texts: string[]): Promise<(Float32Array | null)[]>;
|
|
25
|
+
/** Generate embedding for a single text, returning null on failure (backward compat) */
|
|
26
|
+
embedSafe(text: string): Promise<Float32Array | null>;
|
|
27
27
|
/** Compute and store embeddings for entries that don't have them yet */
|
|
28
28
|
sweep(): Promise<{
|
|
29
29
|
errors: number;
|
|
@@ -38,10 +38,4 @@ export declare class EmbeddingEngine {
|
|
|
38
38
|
computeErrorVectorScores(errorId: number, projectId: number): Map<number, number>;
|
|
39
39
|
/** Load vector scores for module-to-module matching (sync - reads pre-computed embeddings from DB) */
|
|
40
40
|
computeModuleVectorScores(moduleId: number, language?: string): Map<number, number>;
|
|
41
|
-
/** Serialize Float32Array to Buffer for SQLite BLOB storage */
|
|
42
|
-
static serialize(embedding: Float32Array): Buffer;
|
|
43
|
-
/** Deserialize SQLite BLOB to Float32Array */
|
|
44
|
-
static deserialize(buffer: Buffer): Float32Array;
|
|
45
|
-
/** Cosine similarity (embeddings are L2-normalized, so dot product = cosine) */
|
|
46
|
-
static similarity(a: Float32Array, b: Float32Array): number;
|
|
47
41
|
}
|
|
@@ -1,34 +1,25 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { BaseEmbeddingEngine } from '@timmeck/brain-core';
|
|
2
|
+
/**
|
|
3
|
+
* Brain-specific embedding engine.
|
|
4
|
+
* Extends BaseEmbeddingEngine with sweep logic for brain's domain tables:
|
|
5
|
+
* errors, code_modules, memories, sessions, decisions, tasks, project_docs.
|
|
6
|
+
*/
|
|
7
|
+
export class EmbeddingEngine extends BaseEmbeddingEngine {
|
|
3
8
|
config;
|
|
4
9
|
db;
|
|
5
|
-
pipeline = null;
|
|
6
|
-
ready = false;
|
|
7
|
-
loading = false;
|
|
8
|
-
logger = getLogger();
|
|
9
10
|
sweepTimer = null;
|
|
11
|
+
sweepIntervalMs;
|
|
12
|
+
batchSize;
|
|
10
13
|
constructor(config, db) {
|
|
14
|
+
super({
|
|
15
|
+
enabled: config.enabled,
|
|
16
|
+
modelName: config.modelName,
|
|
17
|
+
cacheDir: config.cacheDir,
|
|
18
|
+
});
|
|
11
19
|
this.config = config;
|
|
12
20
|
this.db = db;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (!this.config.enabled || this.loading || this.ready)
|
|
16
|
-
return;
|
|
17
|
-
this.loading = true;
|
|
18
|
-
try {
|
|
19
|
-
const { pipeline, env } = await import('@huggingface/transformers');
|
|
20
|
-
env.cacheDir = this.config.cacheDir;
|
|
21
|
-
this.pipeline = await pipeline('feature-extraction', this.config.modelName, { dtype: 'q8' });
|
|
22
|
-
this.ready = true;
|
|
23
|
-
this.logger.info(`Embedding model loaded: ${this.config.modelName}`);
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
this.logger.warn(`Failed to load embedding model (will retry): ${err}`);
|
|
27
|
-
this.ready = false;
|
|
28
|
-
}
|
|
29
|
-
finally {
|
|
30
|
-
this.loading = false;
|
|
31
|
-
}
|
|
21
|
+
this.sweepIntervalMs = config.sweepIntervalMs;
|
|
22
|
+
this.batchSize = config.batchSize;
|
|
32
23
|
}
|
|
33
24
|
/** Start background embedding sweep */
|
|
34
25
|
start() {
|
|
@@ -36,17 +27,19 @@ export class EmbeddingEngine {
|
|
|
36
27
|
return;
|
|
37
28
|
// Initialize model in background
|
|
38
29
|
this.initialize().then(() => {
|
|
39
|
-
if (this.
|
|
30
|
+
if (this.isReady()) {
|
|
40
31
|
// Run initial sweep
|
|
41
32
|
this.sweep().catch(err => this.logger.error('Embedding sweep error:', err));
|
|
42
33
|
}
|
|
34
|
+
}).catch(() => {
|
|
35
|
+
// initialize() already logs warnings
|
|
43
36
|
});
|
|
44
37
|
// Periodic sweep for new entries
|
|
45
38
|
this.sweepTimer = setInterval(() => {
|
|
46
|
-
if (this.
|
|
39
|
+
if (this.isReady()) {
|
|
47
40
|
this.sweep().catch(err => this.logger.error('Embedding sweep error:', err));
|
|
48
41
|
}
|
|
49
|
-
}, this.
|
|
42
|
+
}, this.sweepIntervalMs);
|
|
50
43
|
}
|
|
51
44
|
stop() {
|
|
52
45
|
if (this.sweepTimer) {
|
|
@@ -54,37 +47,17 @@ export class EmbeddingEngine {
|
|
|
54
47
|
this.sweepTimer = null;
|
|
55
48
|
}
|
|
56
49
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/** Generate embedding for a single text */
|
|
61
|
-
async embed(text) {
|
|
62
|
-
if (!this.ready || !this.pipeline)
|
|
50
|
+
/** Generate embedding for a single text, returning null on failure (backward compat) */
|
|
51
|
+
async embedSafe(text) {
|
|
52
|
+
if (!this.isReady())
|
|
63
53
|
return null;
|
|
64
54
|
try {
|
|
65
|
-
|
|
66
|
-
const data = output.tolist()[0];
|
|
67
|
-
return new Float32Array(data);
|
|
55
|
+
return await this.embed(text);
|
|
68
56
|
}
|
|
69
|
-
catch
|
|
70
|
-
this.logger.error(`Embedding error: ${err}`);
|
|
57
|
+
catch {
|
|
71
58
|
return null;
|
|
72
59
|
}
|
|
73
60
|
}
|
|
74
|
-
/** Generate embeddings for a batch of texts */
|
|
75
|
-
async embedBatch(texts) {
|
|
76
|
-
if (!this.ready || !this.pipeline || texts.length === 0)
|
|
77
|
-
return texts.map(() => null);
|
|
78
|
-
try {
|
|
79
|
-
const output = await this.pipeline(texts, { pooling: 'mean', normalize: true });
|
|
80
|
-
const list = output.tolist();
|
|
81
|
-
return list.map(v => new Float32Array(v));
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
this.logger.error(`Batch embedding error: ${err}`);
|
|
85
|
-
return texts.map(() => null);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
61
|
/** Compute and store embeddings for entries that don't have them yet */
|
|
89
62
|
async sweep() {
|
|
90
63
|
let errorsProcessed = 0;
|
|
@@ -95,7 +68,7 @@ export class EmbeddingEngine {
|
|
|
95
68
|
let tasksProcessed = 0;
|
|
96
69
|
let docsProcessed = 0;
|
|
97
70
|
// Process errors without embeddings
|
|
98
|
-
const pendingErrors = this.db.prepare('SELECT id, type, message, context FROM errors WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
71
|
+
const pendingErrors = this.db.prepare('SELECT id, type, message, context FROM errors WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
99
72
|
if (pendingErrors.length > 0) {
|
|
100
73
|
const texts = pendingErrors.map(e => [e.type, e.message, e.context].filter(Boolean).join(' '));
|
|
101
74
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -109,7 +82,7 @@ export class EmbeddingEngine {
|
|
|
109
82
|
}
|
|
110
83
|
}
|
|
111
84
|
// Process code modules without embeddings
|
|
112
|
-
const pendingModules = this.db.prepare('SELECT id, name, description, file_path FROM code_modules WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
85
|
+
const pendingModules = this.db.prepare('SELECT id, name, description, file_path FROM code_modules WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
113
86
|
if (pendingModules.length > 0) {
|
|
114
87
|
const texts = pendingModules.map(m => [m.name, m.description, m.file_path].filter(Boolean).join(' '));
|
|
115
88
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -123,7 +96,7 @@ export class EmbeddingEngine {
|
|
|
123
96
|
}
|
|
124
97
|
}
|
|
125
98
|
// Process memories without embeddings
|
|
126
|
-
const pendingMemories = this.db.prepare('SELECT id, category, key, content FROM memories WHERE embedding IS NULL AND active = 1 ORDER BY id DESC LIMIT ?').all(this.
|
|
99
|
+
const pendingMemories = this.db.prepare('SELECT id, category, key, content FROM memories WHERE embedding IS NULL AND active = 1 ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
127
100
|
if (pendingMemories.length > 0) {
|
|
128
101
|
const texts = pendingMemories.map(m => [m.category, m.key, m.content].filter(Boolean).join(' '));
|
|
129
102
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -137,7 +110,7 @@ export class EmbeddingEngine {
|
|
|
137
110
|
}
|
|
138
111
|
}
|
|
139
112
|
// Process sessions without embeddings
|
|
140
|
-
const pendingSessions = this.db.prepare('SELECT id, summary, goals FROM sessions WHERE embedding IS NULL AND summary IS NOT NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
113
|
+
const pendingSessions = this.db.prepare('SELECT id, summary, goals FROM sessions WHERE embedding IS NULL AND summary IS NOT NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
141
114
|
if (pendingSessions.length > 0) {
|
|
142
115
|
const texts = pendingSessions.map(s => [s.summary, s.goals].filter(Boolean).join(' '));
|
|
143
116
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -151,7 +124,7 @@ export class EmbeddingEngine {
|
|
|
151
124
|
}
|
|
152
125
|
}
|
|
153
126
|
// Process decisions without embeddings
|
|
154
|
-
const pendingDecisions = this.db.prepare('SELECT id, title, description, alternatives FROM decisions WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
127
|
+
const pendingDecisions = this.db.prepare('SELECT id, title, description, alternatives FROM decisions WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
155
128
|
if (pendingDecisions.length > 0) {
|
|
156
129
|
const texts = pendingDecisions.map(d => [d.title, d.description, d.alternatives].filter(Boolean).join(' '));
|
|
157
130
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -165,7 +138,7 @@ export class EmbeddingEngine {
|
|
|
165
138
|
}
|
|
166
139
|
}
|
|
167
140
|
// Process tasks without embeddings
|
|
168
|
-
const pendingTasks = this.db.prepare('SELECT id, title, description, notes FROM tasks WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
141
|
+
const pendingTasks = this.db.prepare('SELECT id, title, description, notes FROM tasks WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
169
142
|
if (pendingTasks.length > 0) {
|
|
170
143
|
const texts = pendingTasks.map(t => [t.title, t.description, t.notes].filter(Boolean).join(' '));
|
|
171
144
|
const embeddings = await this.embedBatch(texts);
|
|
@@ -179,7 +152,7 @@ export class EmbeddingEngine {
|
|
|
179
152
|
}
|
|
180
153
|
}
|
|
181
154
|
// Process project docs without embeddings
|
|
182
|
-
const pendingDocs = this.db.prepare('SELECT id, file_path, content FROM project_docs WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.
|
|
155
|
+
const pendingDocs = this.db.prepare('SELECT id, file_path, content FROM project_docs WHERE embedding IS NULL ORDER BY id DESC LIMIT ?').all(this.batchSize);
|
|
183
156
|
if (pendingDocs.length > 0) {
|
|
184
157
|
const texts = pendingDocs.map(d =>
|
|
185
158
|
// Truncate content for embedding (max ~500 chars)
|
|
@@ -235,24 +208,5 @@ export class EmbeddingEngine {
|
|
|
235
208
|
}
|
|
236
209
|
return scores;
|
|
237
210
|
}
|
|
238
|
-
/** Serialize Float32Array to Buffer for SQLite BLOB storage */
|
|
239
|
-
static serialize(embedding) {
|
|
240
|
-
return Buffer.from(embedding.buffer, embedding.byteOffset, embedding.byteLength);
|
|
241
|
-
}
|
|
242
|
-
/** Deserialize SQLite BLOB to Float32Array */
|
|
243
|
-
static deserialize(buffer) {
|
|
244
|
-
const copy = Buffer.from(buffer);
|
|
245
|
-
return new Float32Array(copy.buffer, copy.byteOffset, copy.length / 4);
|
|
246
|
-
}
|
|
247
|
-
/** Cosine similarity (embeddings are L2-normalized, so dot product = cosine) */
|
|
248
|
-
static similarity(a, b) {
|
|
249
|
-
if (a.length !== b.length)
|
|
250
|
-
return 0;
|
|
251
|
-
let dot = 0;
|
|
252
|
-
for (let i = 0; i < a.length; i++) {
|
|
253
|
-
dot += a[i] * b[i];
|
|
254
|
-
}
|
|
255
|
-
return Math.max(0, Math.min(1, dot));
|
|
256
|
-
}
|
|
257
211
|
}
|
|
258
212
|
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/embeddings/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/embeddings/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Also captures significant commands as context memories
|
|
4
4
|
// Configured in .claude/settings.json:
|
|
5
5
|
// { "hooks": { "PostToolUse": [{ "matcher": { "tool_name": "Bash" }, "command": "node <brain-dist>/hooks/post-tool-use.js" }] } }
|
|
6
|
-
import { IpcClient } from '
|
|
6
|
+
import { IpcClient } from '@timmeck/brain-core';
|
|
7
7
|
import { getPipeName } from '../utils/paths.js';
|
|
8
8
|
const ERROR_PATTERNS = [
|
|
9
9
|
/Error:/i,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../src/hooks/post-tool-use.ts"],"names":[],"mappings":";AAEA,4EAA4E;AAC5E,yDAAyD;AACzD,uCAAuC;AACvC,kIAAkI;AAElI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"post-tool-use.js","sourceRoot":"","sources":["../../src/hooks/post-tool-use.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/post-write.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// PostToolUse hook for Write/Edit tool — auto-analyzes code for reusability
|
|
3
3
|
// Configured in .claude/settings.json:
|
|
4
4
|
// { "hooks": { "PostToolUse": [{ "matcher": { "tool_name": "Write" }, "command": "node <brain-dist>/hooks/post-write.js" }] } }
|
|
5
|
-
import { IpcClient } from '
|
|
5
|
+
import { IpcClient } from '@timmeck/brain-core';
|
|
6
6
|
import { getPipeName } from '../utils/paths.js';
|
|
7
7
|
const SOURCE_EXTENSIONS = new Set([
|
|
8
8
|
'.ts', '.tsx', '.js', '.jsx', '.py', '.rs', '.go',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-write.js","sourceRoot":"","sources":["../../src/hooks/post-write.ts"],"names":[],"mappings":";AAEA,4EAA4E;AAC5E,uCAAuC;AACvC,gIAAgI;AAEhI,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"post-write.js","sourceRoot":"","sources":["../../src/hooks/post-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// { "hooks": { "PreToolUse": [{ "matcher": {}, "hooks": [{ "command": "node <brain-dist>/hooks/pre-tool-use.js" }] }] } }
|
|
5
5
|
import crypto from 'node:crypto';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import { IpcClient } from '
|
|
7
|
+
import { IpcClient } from '@timmeck/brain-core';
|
|
8
8
|
import { getPipeName } from '../utils/paths.js';
|
|
9
9
|
function readStdin() {
|
|
10
10
|
return new Promise((resolve) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":";AAEA,qEAAqE;AACrE,uCAAuC;AACvC,0HAA0H;AAE1H,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pre-tool-use.js","sourceRoot":"","sources":["../../src/hooks/pre-tool-use.ts"],"names":[],"mappings":";AAEA,qEAAqE;AACrE,uCAAuC;AACvC,0HAA0H;AAE1H,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,SAAS,SAAS;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QAAE,OAAO;IAExB,oDAAoD;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhG,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAEvB,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE;gBACpC,SAAS,EAAE,UAAU;gBACrB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACrC,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,8 @@ import { doctorCommand } from './cli/commands/doctor.js';
|
|
|
17
17
|
import { explainCommand } from './cli/commands/explain.js';
|
|
18
18
|
import { peersCommand } from './cli/commands/peers.js';
|
|
19
19
|
import { setupCommand } from './cli/commands/setup.js';
|
|
20
|
+
import { rulesCommand } from './cli/commands/rules.js';
|
|
21
|
+
import { synapsesCommand } from './cli/commands/synapses.js';
|
|
20
22
|
import { getCurrentVersion } from './cli/update-check.js';
|
|
21
23
|
const program = new Command();
|
|
22
24
|
program
|
|
@@ -40,6 +42,8 @@ program.addCommand(doctorCommand());
|
|
|
40
42
|
program.addCommand(explainCommand());
|
|
41
43
|
program.addCommand(peersCommand());
|
|
42
44
|
program.addCommand(setupCommand());
|
|
45
|
+
program.addCommand(rulesCommand());
|
|
46
|
+
program.addCommand(synapsesCommand());
|
|
43
47
|
// Hidden command: run MCP server (called by Claude Code)
|
|
44
48
|
program
|
|
45
49
|
.command('mcp-server')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAEhC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ipc/router.d.ts
CHANGED
|
@@ -14,7 +14,8 @@ import type { ChangelogService } from '../services/changelog.service.js';
|
|
|
14
14
|
import type { TaskService } from '../services/task.service.js';
|
|
15
15
|
import type { DocService } from '../services/doc.service.js';
|
|
16
16
|
import type { LearningEngine } from '../learning/learning-engine.js';
|
|
17
|
-
import type { CrossBrainClient } from '@timmeck/brain-core';
|
|
17
|
+
import type { CrossBrainClient, CrossBrainSubscriptionManager } from '@timmeck/brain-core';
|
|
18
|
+
import type { IpcServer } from '@timmeck/brain-core';
|
|
18
19
|
export interface Services {
|
|
19
20
|
error: ErrorService;
|
|
20
21
|
solution: SolutionService;
|
|
@@ -37,7 +38,13 @@ export interface Services {
|
|
|
37
38
|
export declare class IpcRouter {
|
|
38
39
|
private services;
|
|
39
40
|
private methods;
|
|
41
|
+
private subscriptionManager;
|
|
42
|
+
private ipcServer;
|
|
40
43
|
constructor(services: Services);
|
|
44
|
+
/**
|
|
45
|
+
* Wire the subscription manager and IPC server for cross-brain event routing.
|
|
46
|
+
*/
|
|
47
|
+
setSubscriptionManager(manager: CrossBrainSubscriptionManager, server: IpcServer): void;
|
|
41
48
|
handle(method: string, params: unknown): unknown;
|
|
42
49
|
listMethods(): string[];
|
|
43
50
|
private buildMethodMap;
|