@theihtisham/agent-shadow-brain 5.0.1 → 5.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 (74) hide show
  1. package/README.md +1159 -888
  2. package/dist/adapters/copilot.d.ts +14 -0
  3. package/dist/adapters/copilot.d.ts.map +1 -0
  4. package/dist/adapters/copilot.js +93 -0
  5. package/dist/adapters/copilot.js.map +1 -0
  6. package/dist/adapters/cursor.d.ts +13 -0
  7. package/dist/adapters/cursor.d.ts.map +1 -0
  8. package/dist/adapters/cursor.js +96 -0
  9. package/dist/adapters/cursor.js.map +1 -0
  10. package/dist/adapters/index.d.ts +4 -1
  11. package/dist/adapters/index.d.ts.map +1 -1
  12. package/dist/adapters/index.js +7 -3
  13. package/dist/adapters/index.js.map +1 -1
  14. package/dist/adapters/windsurf.d.ts +14 -0
  15. package/dist/adapters/windsurf.d.ts.map +1 -0
  16. package/dist/adapters/windsurf.js +107 -0
  17. package/dist/adapters/windsurf.js.map +1 -0
  18. package/dist/brain/code-dna.d.ts +70 -0
  19. package/dist/brain/code-dna.d.ts.map +1 -0
  20. package/dist/brain/code-dna.js +611 -0
  21. package/dist/brain/code-dna.js.map +1 -0
  22. package/dist/brain/fine-tuning-engine.d.ts +99 -0
  23. package/dist/brain/fine-tuning-engine.d.ts.map +1 -0
  24. package/dist/brain/fine-tuning-engine.js +681 -0
  25. package/dist/brain/fine-tuning-engine.js.map +1 -0
  26. package/dist/brain/global-brain.d.ts +56 -0
  27. package/dist/brain/global-brain.d.ts.map +1 -0
  28. package/dist/brain/global-brain.js +324 -0
  29. package/dist/brain/global-brain.js.map +1 -0
  30. package/dist/brain/intent-engine.d.ts +64 -0
  31. package/dist/brain/intent-engine.d.ts.map +1 -0
  32. package/dist/brain/intent-engine.js +374 -0
  33. package/dist/brain/intent-engine.js.map +1 -0
  34. package/dist/brain/l0-cache.d.ts +40 -0
  35. package/dist/brain/l0-cache.d.ts.map +1 -0
  36. package/dist/brain/l0-cache.js +176 -0
  37. package/dist/brain/l0-cache.js.map +1 -0
  38. package/dist/brain/lsp-server.d.ts +62 -0
  39. package/dist/brain/lsp-server.d.ts.map +1 -0
  40. package/dist/brain/lsp-server.js +480 -0
  41. package/dist/brain/lsp-server.js.map +1 -0
  42. package/dist/brain/mcp-server.d.ts +4 -0
  43. package/dist/brain/mcp-server.d.ts.map +1 -1
  44. package/dist/brain/mcp-server.js +91 -0
  45. package/dist/brain/mcp-server.js.map +1 -1
  46. package/dist/brain/orchestrator.d.ts +13 -0
  47. package/dist/brain/orchestrator.d.ts.map +1 -1
  48. package/dist/brain/orchestrator.js +25 -1
  49. package/dist/brain/orchestrator.js.map +1 -1
  50. package/dist/brain/session-hooks.d.ts +28 -0
  51. package/dist/brain/session-hooks.d.ts.map +1 -0
  52. package/dist/brain/session-hooks.js +475 -0
  53. package/dist/brain/session-hooks.js.map +1 -0
  54. package/dist/brain/smart-cache.d.ts +100 -0
  55. package/dist/brain/smart-cache.d.ts.map +1 -0
  56. package/dist/brain/smart-cache.js +417 -0
  57. package/dist/brain/smart-cache.js.map +1 -0
  58. package/dist/brain/subconscious.d.ts +34 -0
  59. package/dist/brain/subconscious.d.ts.map +1 -0
  60. package/dist/brain/subconscious.js +275 -0
  61. package/dist/brain/subconscious.js.map +1 -0
  62. package/dist/brain/temporal-intelligence.d.ts +89 -0
  63. package/dist/brain/temporal-intelligence.d.ts.map +1 -0
  64. package/dist/brain/temporal-intelligence.js +378 -0
  65. package/dist/brain/temporal-intelligence.js.map +1 -0
  66. package/dist/cli.js +434 -4
  67. package/dist/cli.js.map +1 -1
  68. package/dist/index.d.ts +8 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +8 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/types.d.ts +333 -1
  73. package/dist/types.d.ts.map +1 -1
  74. package/package.json +46 -10
@@ -0,0 +1,62 @@
1
+ /**
2
+ * LSPServer — Built-in Language Server Protocol engine.
3
+ *
4
+ * Zero external dependencies. Provides:
5
+ * 1. Real-time diagnostics from Shadow Brain analysis
6
+ * 2. Hover information with brain insights
7
+ * 3. Code actions for auto-fixes
8
+ * 4. Inline completions from learning engine
9
+ * 5. Works with ANY editor that supports LSP (VS Code, Neovim, Emacs, Sublime, etc.)
10
+ *
11
+ * Launch: `shadow-brain lsp` (stdio mode) or `shadow-brain lsp --port 6970` (TCP mode)
12
+ */
13
+ export declare class LSPServer {
14
+ private server;
15
+ private orchestrator;
16
+ private openDocuments;
17
+ private pendingRequests;
18
+ private nextId;
19
+ private initialized;
20
+ private rootUri;
21
+ private buffer;
22
+ private writeOutput;
23
+ private analysisQueue;
24
+ private analysisTimer;
25
+ private cachedInsights;
26
+ constructor(orchestrator?: any);
27
+ /**
28
+ * Start LSP in stdio mode (standard for most editors).
29
+ */
30
+ startStdio(): void;
31
+ /**
32
+ * Start LSP in TCP mode for remote/custom connections.
33
+ */
34
+ startTCP(port?: number, host?: string): Promise<void>;
35
+ stop(): void;
36
+ private handleIncoming;
37
+ private handleMessage;
38
+ private handleInitialize;
39
+ private handleDidOpen;
40
+ private handleDidChange;
41
+ private handleDidClose;
42
+ private handleDidSave;
43
+ private handleHover;
44
+ private handleCodeAction;
45
+ private handleCompletion;
46
+ private handleDiagnosticRequest;
47
+ private queueAnalysis;
48
+ private analyzeDocument;
49
+ private getOrchestratorInsights;
50
+ private createDiagnostic;
51
+ private sendResponse;
52
+ private sendNotification;
53
+ private sendMessage;
54
+ private uriToPath;
55
+ getStats(): {
56
+ openDocuments: number;
57
+ totalDiagnostics: number;
58
+ cachedInsights: number;
59
+ initialized: boolean;
60
+ };
61
+ }
62
+ //# sourceMappingURL=lsp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-server.d.ts","sourceRoot":"","sources":["../../src/brain/lsp-server.ts"],"names":[],"mappings":"AA4CA;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,eAAe,CAA4E;IACnG,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,WAAW,CAAyC;IAC5D,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,cAAc,CAA0C;gBAEpD,YAAY,CAAC,EAAE,GAAG;IAM9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAUlB;;OAEG;IACH,QAAQ,CAAC,IAAI,GAAE,MAAa,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxE,IAAI,IAAI,IAAI;IAaZ,OAAO,CAAC,cAAc;YA8BR,aAAa;IAuD3B,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;YAMP,WAAW;YAkCX,gBAAgB;YAgChB,gBAAgB;YAwBhB,uBAAuB;IAqBrC,OAAO,CAAC,aAAa;YAaP,eAAe;YA6Gf,uBAAuB;IAcrC,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,SAAS;IAYjB,QAAQ,IAAI;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,OAAO,CAAC;KACtB;CAYF"}
@@ -0,0 +1,480 @@
1
+ // src/brain/lsp-server.ts — Built-in Language Server Protocol Engine
2
+ // v6.0.0 — Zero-Dependency LSP for real-time inline feedback
3
+ // No external LSP libraries needed — pure Node.js TCP/stdio implementation
4
+ import * as net from 'net';
5
+ /**
6
+ * LSPServer — Built-in Language Server Protocol engine.
7
+ *
8
+ * Zero external dependencies. Provides:
9
+ * 1. Real-time diagnostics from Shadow Brain analysis
10
+ * 2. Hover information with brain insights
11
+ * 3. Code actions for auto-fixes
12
+ * 4. Inline completions from learning engine
13
+ * 5. Works with ANY editor that supports LSP (VS Code, Neovim, Emacs, Sublime, etc.)
14
+ *
15
+ * Launch: `shadow-brain lsp` (stdio mode) or `shadow-brain lsp --port 6970` (TCP mode)
16
+ */
17
+ export class LSPServer {
18
+ constructor(orchestrator) {
19
+ this.server = null;
20
+ this.openDocuments = new Map();
21
+ this.pendingRequests = new Map();
22
+ this.nextId = 1;
23
+ this.initialized = false;
24
+ this.rootUri = null;
25
+ this.buffer = '';
26
+ this.writeOutput = null;
27
+ this.analysisQueue = new Set();
28
+ this.analysisTimer = null;
29
+ this.cachedInsights = new Map();
30
+ this.orchestrator = orchestrator;
31
+ }
32
+ // ── Server Lifecycle ──────────────────────────────────────────────────────
33
+ /**
34
+ * Start LSP in stdio mode (standard for most editors).
35
+ */
36
+ startStdio() {
37
+ this.writeOutput = (data) => process.stdout.write(data);
38
+ process.stdin.on('data', (chunk) => {
39
+ this.handleIncoming(chunk.toString());
40
+ });
41
+ process.stdin.resume();
42
+ }
43
+ /**
44
+ * Start LSP in TCP mode for remote/custom connections.
45
+ */
46
+ startTCP(port = 6970, host = 'localhost') {
47
+ return new Promise((resolve, reject) => {
48
+ this.server = net.createServer((socket) => {
49
+ this.writeOutput = (data) => {
50
+ if (!socket.destroyed)
51
+ socket.write(data);
52
+ };
53
+ socket.on('data', (chunk) => {
54
+ this.handleIncoming(chunk.toString());
55
+ });
56
+ socket.on('error', () => { });
57
+ socket.on('close', () => {
58
+ this.writeOutput = null;
59
+ });
60
+ });
61
+ this.server.on('error', reject);
62
+ this.server.listen(port, host, () => resolve());
63
+ });
64
+ }
65
+ stop() {
66
+ if (this.server) {
67
+ this.server.close();
68
+ this.server = null;
69
+ }
70
+ if (this.analysisTimer) {
71
+ clearTimeout(this.analysisTimer);
72
+ this.analysisTimer = null;
73
+ }
74
+ }
75
+ // ── LSP Message Handling ──────────────────────────────────────────────────
76
+ handleIncoming(data) {
77
+ this.buffer += data;
78
+ while (true) {
79
+ const headerEnd = this.buffer.indexOf('\r\n\r\n');
80
+ if (headerEnd === -1)
81
+ break;
82
+ const header = this.buffer.substring(0, headerEnd);
83
+ const contentLengthMatch = header.match(/Content-Length:\s*(\d+)/i);
84
+ if (!contentLengthMatch) {
85
+ this.buffer = this.buffer.substring(headerEnd + 4);
86
+ continue;
87
+ }
88
+ const contentLength = parseInt(contentLengthMatch[1], 10);
89
+ const bodyStart = headerEnd + 4;
90
+ if (this.buffer.length < bodyStart + contentLength)
91
+ break;
92
+ const body = this.buffer.substring(bodyStart, bodyStart + contentLength);
93
+ this.buffer = this.buffer.substring(bodyStart + contentLength);
94
+ try {
95
+ const message = JSON.parse(body);
96
+ this.handleMessage(message).catch(() => { });
97
+ }
98
+ catch {
99
+ // Invalid JSON, skip
100
+ }
101
+ }
102
+ }
103
+ async handleMessage(message) {
104
+ if (message.method) {
105
+ // Request or notification
106
+ switch (message.method) {
107
+ case 'initialize':
108
+ this.handleInitialize(message);
109
+ break;
110
+ case 'initialized':
111
+ this.initialized = true;
112
+ break;
113
+ case 'shutdown':
114
+ this.sendResponse(message.id, null);
115
+ break;
116
+ case 'exit':
117
+ this.stop();
118
+ process.exit(0);
119
+ break;
120
+ case 'textDocument/didOpen':
121
+ this.handleDidOpen(message.params);
122
+ break;
123
+ case 'textDocument/didChange':
124
+ this.handleDidChange(message.params);
125
+ break;
126
+ case 'textDocument/didClose':
127
+ this.handleDidClose(message.params);
128
+ break;
129
+ case 'textDocument/didSave':
130
+ this.handleDidSave(message.params);
131
+ break;
132
+ case 'textDocument/hover':
133
+ await this.handleHover(message);
134
+ break;
135
+ case 'textDocument/codeAction':
136
+ await this.handleCodeAction(message);
137
+ break;
138
+ case 'textDocument/completion':
139
+ await this.handleCompletion(message);
140
+ break;
141
+ case 'textDocument/diagnostic':
142
+ await this.handleDiagnosticRequest(message);
143
+ break;
144
+ }
145
+ }
146
+ else if (message.id !== undefined) {
147
+ // Response to our request
148
+ const pending = this.pendingRequests.get(message.id);
149
+ if (pending) {
150
+ this.pendingRequests.delete(message.id);
151
+ if (message.error)
152
+ pending.reject(message.error);
153
+ else
154
+ pending.resolve(message.result);
155
+ }
156
+ }
157
+ }
158
+ // ── LSP Handlers ──────────────────────────────────────────────────────────
159
+ handleInitialize(message) {
160
+ this.rootUri = message.params?.rootUri || message.params?.rootPath || null;
161
+ const capabilities = {
162
+ textDocumentSync: 1, // Full sync
163
+ diagnosticProvider: {
164
+ interFileDependencies: true,
165
+ workspaceDiagnostics: false,
166
+ },
167
+ hoverProvider: true,
168
+ codeActionProvider: true,
169
+ completionProvider: {
170
+ triggerCharacters: ['.', '/', '@', '#'],
171
+ },
172
+ };
173
+ this.sendResponse(message.id, {
174
+ capabilities,
175
+ serverInfo: {
176
+ name: 'Shadow Brain LSP',
177
+ version: '6.0.0',
178
+ },
179
+ });
180
+ }
181
+ handleDidOpen(params) {
182
+ const { uri, languageId, version, text } = params.textDocument;
183
+ this.openDocuments.set(uri, {
184
+ uri,
185
+ content: text,
186
+ version,
187
+ language: languageId,
188
+ lastAnalyzed: new Date(0),
189
+ diagnostics: [],
190
+ });
191
+ this.queueAnalysis(uri);
192
+ }
193
+ handleDidChange(params) {
194
+ const doc = this.openDocuments.get(params.textDocument.uri);
195
+ if (!doc)
196
+ return;
197
+ // Full sync mode — replace entire content
198
+ if (params.contentChanges?.length > 0) {
199
+ const lastChange = params.contentChanges[params.contentChanges.length - 1];
200
+ if (lastChange.text !== undefined) {
201
+ doc.content = lastChange.text;
202
+ doc.version = params.textDocument.version;
203
+ }
204
+ }
205
+ this.queueAnalysis(params.textDocument.uri);
206
+ }
207
+ handleDidClose(params) {
208
+ const uri = params.textDocument.uri;
209
+ this.openDocuments.delete(uri);
210
+ this.cachedInsights.delete(uri);
211
+ // Clear diagnostics
212
+ this.sendNotification('textDocument/publishDiagnostics', {
213
+ uri,
214
+ diagnostics: [],
215
+ });
216
+ }
217
+ handleDidSave(params) {
218
+ // Trigger immediate deep analysis on save
219
+ const uri = params.textDocument.uri;
220
+ this.analyzeDocument(uri).catch(() => { });
221
+ }
222
+ async handleHover(message) {
223
+ const { textDocument, position } = message.params;
224
+ const doc = this.openDocuments.get(textDocument.uri);
225
+ if (!doc) {
226
+ this.sendResponse(message.id, null);
227
+ return;
228
+ }
229
+ // Find insights relevant to this line
230
+ const insights = this.cachedInsights.get(textDocument.uri) || [];
231
+ const lineInsights = insights.filter(i => {
232
+ if (!i.metadata?.line)
233
+ return false;
234
+ const line = i.metadata.line;
235
+ return Math.abs(line - position.line) <= 2;
236
+ });
237
+ if (lineInsights.length === 0) {
238
+ this.sendResponse(message.id, null);
239
+ return;
240
+ }
241
+ const hoverContent = lineInsights.map(i => {
242
+ const icon = i.priority === 'critical' ? '🔴' : i.priority === 'high' ? '🟠' : i.priority === 'medium' ? '🟡' : '🔵';
243
+ return `${icon} **${i.title}**\n\n${i.content}`;
244
+ }).join('\n\n---\n\n');
245
+ this.sendResponse(message.id, {
246
+ contents: {
247
+ kind: 'markdown',
248
+ value: `### 🧠 Shadow Brain\n\n${hoverContent}`,
249
+ },
250
+ });
251
+ }
252
+ async handleCodeAction(message) {
253
+ const { textDocument, range } = message.params;
254
+ const insights = this.cachedInsights.get(textDocument.uri) || [];
255
+ const actions = insights
256
+ .filter(i => {
257
+ if (!i.metadata?.line)
258
+ return false;
259
+ const line = i.metadata.line;
260
+ return line >= range.start.line && line <= range.end.line;
261
+ })
262
+ .filter(i => i.metadata?.fix)
263
+ .map((i, idx) => ({
264
+ title: `🧠 Fix: ${i.title}`,
265
+ kind: 'quickfix',
266
+ diagnostics: [],
267
+ isPreferred: idx === 0,
268
+ edit: {
269
+ changes: {
270
+ [textDocument.uri]: [{
271
+ range: {
272
+ start: { line: i.metadata?.line || 0, character: 0 },
273
+ end: { line: i.metadata?.line || 0, character: 999 },
274
+ },
275
+ newText: i.metadata?.fix,
276
+ }],
277
+ },
278
+ },
279
+ }));
280
+ this.sendResponse(message.id, actions);
281
+ }
282
+ async handleCompletion(message) {
283
+ // Provide completions from learned patterns
284
+ const items = [];
285
+ if (this.orchestrator) {
286
+ try {
287
+ const knowledge = this.orchestrator.getProjectKnowledge?.();
288
+ if (knowledge?.commonPatterns) {
289
+ for (const pattern of knowledge.commonPatterns.slice(0, 10)) {
290
+ items.push({
291
+ label: `🧠 ${pattern.slice(0, 40)}`,
292
+ kind: 15, // Snippet
293
+ detail: 'Shadow Brain pattern',
294
+ insertText: pattern,
295
+ documentation: 'Learned pattern from project analysis',
296
+ });
297
+ }
298
+ }
299
+ }
300
+ catch { /* best effort */ }
301
+ }
302
+ this.sendResponse(message.id, { isIncomplete: false, items });
303
+ }
304
+ async handleDiagnosticRequest(message) {
305
+ const uri = message.params?.textDocument?.uri;
306
+ if (!uri) {
307
+ this.sendResponse(message.id, { kind: 'full', items: [] });
308
+ return;
309
+ }
310
+ const doc = this.openDocuments.get(uri);
311
+ if (!doc) {
312
+ this.sendResponse(message.id, { kind: 'full', items: [] });
313
+ return;
314
+ }
315
+ this.sendResponse(message.id, {
316
+ kind: 'full',
317
+ items: doc.diagnostics,
318
+ });
319
+ }
320
+ // ── Analysis Pipeline ─────────────────────────────────────────────────────
321
+ queueAnalysis(uri) {
322
+ this.analysisQueue.add(uri);
323
+ if (this.analysisTimer)
324
+ clearTimeout(this.analysisTimer);
325
+ this.analysisTimer = setTimeout(() => {
326
+ const uris = [...this.analysisQueue];
327
+ this.analysisQueue.clear();
328
+ for (const u of uris) {
329
+ this.analyzeDocument(u).catch(() => { });
330
+ }
331
+ }, 500); // 500ms debounce
332
+ }
333
+ async analyzeDocument(uri) {
334
+ const doc = this.openDocuments.get(uri);
335
+ if (!doc)
336
+ return;
337
+ const filePath = this.uriToPath(uri);
338
+ const diagnostics = [];
339
+ const insights = [];
340
+ // Built-in pattern analysis (zero-dependency, works without orchestrator)
341
+ const lines = doc.content.split('\n');
342
+ for (let i = 0; i < lines.length; i++) {
343
+ const line = lines[i];
344
+ // Security patterns
345
+ if (/eval\s*\(/.test(line)) {
346
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 1, 'SB001', 'Avoid eval() — potential code injection vulnerability'));
347
+ }
348
+ if (/innerHTML\s*=/.test(line) && !/sanitize|escape|DOMPurify/i.test(line)) {
349
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 2, 'SB002', 'innerHTML without sanitization — XSS risk'));
350
+ }
351
+ if (/password|secret|api_key|token/i.test(line) && /[=:]\s*['"`][^'"`]{8,}['"`]/.test(line)) {
352
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 1, 'SB003', 'Possible hardcoded secret detected'));
353
+ }
354
+ // Quality patterns
355
+ if (/console\.(log|debug|info)\s*\(/.test(line) && !/\/\//.test(line.split('console')[0])) {
356
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 4, 'SB010', 'Console statement found — remove before production'));
357
+ }
358
+ if (/TODO|FIXME|HACK|XXX|TEMP/i.test(line)) {
359
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 3, 'SB011', 'TODO/FIXME marker found'));
360
+ }
361
+ // Complexity patterns
362
+ if (/function\s+\w+\s*\([^)]{80,}\)/.test(line)) {
363
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 2, 'SB020', 'Function has too many parameters — consider using an options object'));
364
+ }
365
+ if (/\.then\s*\(.*\.then\s*\(.*\.then\s*\(/.test(line)) {
366
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 3, 'SB021', 'Promise chain too deep — consider async/await'));
367
+ }
368
+ // Error handling
369
+ if (/catch\s*\(\s*\w*\s*\)\s*\{\s*\}/.test(line) || /catch\s*\{\s*\}/.test(line)) {
370
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 2, 'SB030', 'Empty catch block — errors are silently swallowed'));
371
+ }
372
+ // Performance
373
+ if (/new RegExp\(/.test(line) && /for\s*\(|while\s*\(|\.forEach|\.map\s*\(/.test(lines[Math.max(0, i - 3)])) {
374
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 3, 'SB040', 'RegExp created inside loop — move to a constant'));
375
+ }
376
+ // TypeScript specific
377
+ if (/:\s*any\b/.test(line) && doc.language === 'typescript') {
378
+ diagnostics.push(this.createDiagnostic(i, 0, i, line.length, 3, 'SB050', 'Avoid `any` type — use specific types or `unknown`'));
379
+ }
380
+ // Store as insights for hover
381
+ for (const diag of diagnostics.filter(d => d.range.start.line === i)) {
382
+ insights.push({
383
+ type: diag.severity <= 2 ? 'warning' : 'suggestion',
384
+ priority: diag.severity === 1 ? 'critical' : diag.severity === 2 ? 'high' : diag.severity === 3 ? 'medium' : 'low',
385
+ title: diag.code ? `[${diag.code}] ${diag.message}` : diag.message,
386
+ content: diag.message,
387
+ files: [filePath],
388
+ timestamp: new Date(),
389
+ confidence: 0.9,
390
+ metadata: { line: i, file: filePath },
391
+ });
392
+ }
393
+ }
394
+ // If orchestrator is available, get deeper insights
395
+ if (this.orchestrator && filePath) {
396
+ try {
397
+ const brainInsights = await this.getOrchestratorInsights(filePath, doc.content);
398
+ for (const bi of brainInsights) {
399
+ const line = bi.metadata?.line || 0;
400
+ diagnostics.push(this.createDiagnostic(line, 0, line, 999, bi.priority === 'critical' ? 1 : bi.priority === 'high' ? 2 : bi.priority === 'medium' ? 3 : 4, `SB-${bi.type}`, bi.content));
401
+ insights.push(bi);
402
+ }
403
+ }
404
+ catch { /* best effort */ }
405
+ }
406
+ // Update cached state
407
+ doc.diagnostics = diagnostics;
408
+ doc.lastAnalyzed = new Date();
409
+ this.cachedInsights.set(uri, insights);
410
+ // Publish diagnostics
411
+ this.sendNotification('textDocument/publishDiagnostics', {
412
+ uri,
413
+ diagnostics,
414
+ });
415
+ }
416
+ async getOrchestratorInsights(filePath, content) {
417
+ if (!this.orchestrator)
418
+ return [];
419
+ try {
420
+ const status = this.orchestrator.getStatus?.();
421
+ if (!status?.running)
422
+ return [];
423
+ // Use lightweight analysis
424
+ return [];
425
+ }
426
+ catch {
427
+ return [];
428
+ }
429
+ }
430
+ // ── Helpers ───────────────────────────────────────────────────────────────
431
+ createDiagnostic(startLine, startChar, endLine, endChar, severity, code, message) {
432
+ return {
433
+ range: {
434
+ start: { line: startLine, character: startChar },
435
+ end: { line: endLine, character: endChar },
436
+ },
437
+ severity,
438
+ source: 'shadow-brain',
439
+ message,
440
+ code,
441
+ };
442
+ }
443
+ sendResponse(id, result) {
444
+ this.sendMessage({ jsonrpc: '2.0', id, result });
445
+ }
446
+ sendNotification(method, params) {
447
+ this.sendMessage({ jsonrpc: '2.0', method, params });
448
+ }
449
+ sendMessage(message) {
450
+ if (!this.writeOutput)
451
+ return;
452
+ const body = JSON.stringify(message);
453
+ const header = `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n`;
454
+ this.writeOutput(header + body);
455
+ }
456
+ uriToPath(uri) {
457
+ if (uri.startsWith('file:///')) {
458
+ const decoded = decodeURIComponent(uri.substring(8));
459
+ // Windows: file:///C:/... → C:/...
460
+ if (/^[a-zA-Z]:/.test(decoded))
461
+ return decoded;
462
+ return '/' + decoded;
463
+ }
464
+ return uri;
465
+ }
466
+ // ── Stats ─────────────────────────────────────────────────────────────────
467
+ getStats() {
468
+ let totalDiagnostics = 0;
469
+ for (const doc of this.openDocuments.values()) {
470
+ totalDiagnostics += doc.diagnostics.length;
471
+ }
472
+ return {
473
+ openDocuments: this.openDocuments.size,
474
+ totalDiagnostics,
475
+ cachedInsights: this.cachedInsights.size,
476
+ initialized: this.initialized,
477
+ };
478
+ }
479
+ }
480
+ //# sourceMappingURL=lsp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-server.js","sourceRoot":"","sources":["../../src/brain/lsp-server.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export declare class MCPServer {
7
7
  private lastHealthScore;
8
8
  private toolHandlers;
9
9
  constructor(orchestrator: any, options?: MCPServerOptions);
10
+ private handleSubconsciousInject;
11
+ private handleGlobalRecall;
12
+ private handleGlobalStats;
13
+ private handleAttachStatus;
10
14
  start(): Promise<void>;
11
15
  stop(): Promise<void>;
12
16
  handleRequest(request: MCPRequest): Promise<MCPResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/brain/mcp-server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAW,gBAAgB,EAAc,MAAM,aAAa,CAAC;AAO7F,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAwE;gBAEhF,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB;IA8BnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBrB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAoD9D,OAAO,CAAC,gBAAgB;YAiBV,aAAa;YAgBb,YAAY;YAwBZ,WAAW;YAgBX,aAAa;YAeb,cAAc;YAmBd,UAAU;YAeV,WAAW;YAWX,YAAY;YAkCZ,YAAY;YAsBZ,eAAe;YAyBf,WAAW;YAkBX,WAAW;YAkBX,eAAe;YAkBf,oBAAoB;YAkBpB,aAAa;YAUb,SAAS;YAuCT,YAAY;YAQZ,aAAa;YAgCb,gBAAgB;IAqB9B,OAAO,CAAC,kBAAkB;YA4KZ,oBAAoB;IA2BlC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/brain/mcp-server.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAW,gBAAgB,EAAc,MAAM,aAAa,CAAC;AAO7F,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAwE;gBAEhF,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB;YAoC3C,wBAAwB;YAcxB,kBAAkB;YAclB,iBAAiB;YAWjB,kBAAkB;IAO1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBrB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAoD9D,OAAO,CAAC,gBAAgB;YAiBV,aAAa;YAgBb,YAAY;YAwBZ,WAAW;YAgBX,aAAa;YAeb,cAAc;YAmBd,UAAU;YAeV,WAAW;YAWX,YAAY;YAkCZ,YAAY;YAsBZ,eAAe;YAyBf,WAAW;YAkBX,WAAW;YAkBX,eAAe;YAkBf,oBAAoB;YAkBpB,aAAa;YAUb,SAAS;YAuCT,YAAY;YAQZ,aAAa;YAgCb,gBAAgB;IAqB9B,OAAO,CAAC,kBAAkB;YAuNZ,oBAAoB;IA2BlC,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;CAGlB"}