@timmeck/brain 3.0.3 → 3.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 (33) hide show
  1. package/dist/brain.d.ts +2 -0
  2. package/dist/brain.js +40 -7
  3. package/dist/brain.js.map +1 -1
  4. package/dist/ipc/router.d.ts +4 -1
  5. package/dist/ipc/router.js +29 -1
  6. package/dist/ipc/router.js.map +1 -1
  7. package/dist/mcp/__tests__/prompts.test.d.ts +1 -0
  8. package/dist/mcp/__tests__/prompts.test.js +419 -0
  9. package/dist/mcp/__tests__/prompts.test.js.map +1 -0
  10. package/dist/mcp/http-server.js +5 -1
  11. package/dist/mcp/http-server.js.map +1 -1
  12. package/dist/mcp/prompts.d.ts +7 -0
  13. package/dist/mcp/prompts.js +262 -0
  14. package/dist/mcp/prompts.js.map +1 -0
  15. package/dist/mcp/server.js +3 -1
  16. package/dist/mcp/server.js.map +1 -1
  17. package/dist/mcp/tools.js +90 -0
  18. package/dist/mcp/tools.js.map +1 -1
  19. package/dist/services/__tests__/auto-resolution.service.test.d.ts +1 -0
  20. package/dist/services/__tests__/auto-resolution.service.test.js +838 -0
  21. package/dist/services/__tests__/auto-resolution.service.test.js.map +1 -0
  22. package/dist/services/__tests__/error.service.auto-resolution.test.d.ts +1 -0
  23. package/dist/services/__tests__/error.service.auto-resolution.test.js +320 -0
  24. package/dist/services/__tests__/error.service.auto-resolution.test.js.map +1 -0
  25. package/dist/services/auto-resolution.service.d.ts +60 -0
  26. package/dist/services/auto-resolution.service.js +190 -0
  27. package/dist/services/auto-resolution.service.js.map +1 -0
  28. package/dist/services/error.service.d.ts +4 -0
  29. package/dist/services/error.service.js +15 -3
  30. package/dist/services/error.service.js.map +1 -1
  31. package/dist/utils/events.d.ts +6 -0
  32. package/dist/utils/events.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-resolution.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/auto-resolution.service.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,320 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
3
+ import { ErrorService } from '../error.service.js';
4
+ import { matchError } from '../../matching/error-matcher.js';
5
+ // Mock dependencies — same pattern as existing error.service.test.ts
6
+ vi.mock('../../utils/logger.js', () => ({
7
+ getLogger: () => ({
8
+ info: vi.fn(),
9
+ warn: vi.fn(),
10
+ debug: vi.fn(),
11
+ error: vi.fn(),
12
+ }),
13
+ }));
14
+ vi.mock('../../utils/events.js', () => ({
15
+ getEventBus: () => ({
16
+ emit: vi.fn(),
17
+ }),
18
+ }));
19
+ vi.mock('../../parsing/error-parser.js', () => ({
20
+ parseError: vi.fn((output) => {
21
+ if (output.includes('UNPARSEABLE'))
22
+ return null;
23
+ return {
24
+ errorType: 'TypeError',
25
+ message: output.split('\n')[0] ?? output,
26
+ frames: [],
27
+ sourceFile: 'test.ts',
28
+ sourceLine: 10,
29
+ };
30
+ }),
31
+ }));
32
+ vi.mock('../../matching/fingerprint.js', () => ({
33
+ generateFingerprint: vi.fn(() => 'fp-mock-123'),
34
+ }));
35
+ vi.mock('../../matching/error-matcher.js', () => ({
36
+ matchError: vi.fn(() => []),
37
+ }));
38
+ const matchErrorMock = vi.mocked(matchError);
39
+ function createMockErrorRepo() {
40
+ return {
41
+ create: vi.fn().mockReturnValue(1),
42
+ getById: vi.fn().mockReturnValue({
43
+ id: 1,
44
+ project_id: 1,
45
+ terminal_id: null,
46
+ fingerprint: 'fp-mock-123',
47
+ type: 'TypeError',
48
+ message: 'test error',
49
+ raw_output: 'TypeError: test error',
50
+ context: null,
51
+ file_path: 'test.ts',
52
+ line_number: 10,
53
+ column_number: null,
54
+ occurrence_count: 1,
55
+ first_seen: '2025-01-01T00:00:00Z',
56
+ last_seen: '2025-01-01T00:00:00Z',
57
+ resolved: 0,
58
+ resolved_at: null,
59
+ }),
60
+ update: vi.fn(),
61
+ delete: vi.fn(),
62
+ findByFingerprint: vi.fn().mockReturnValue([]),
63
+ findByProject: vi.fn().mockReturnValue([]),
64
+ findUnresolved: vi.fn().mockReturnValue([]),
65
+ countSince: vi.fn().mockReturnValue(0),
66
+ search: vi.fn().mockReturnValue([]),
67
+ incrementOccurrence: vi.fn(),
68
+ createChain: vi.fn(),
69
+ findChainChildren: vi.fn().mockReturnValue([]),
70
+ findChainParents: vi.fn().mockReturnValue([]),
71
+ findRecentByProject: vi.fn().mockReturnValue([]),
72
+ findAll: vi.fn().mockReturnValue([]),
73
+ };
74
+ }
75
+ function createMockProjectRepo() {
76
+ return {
77
+ findByName: vi.fn().mockReturnValue({ id: 1, name: 'test-project' }),
78
+ create: vi.fn().mockReturnValue(1),
79
+ getById: vi.fn().mockReturnValue({ id: 1, name: 'test-project' }),
80
+ getAll: vi.fn().mockReturnValue([]),
81
+ };
82
+ }
83
+ function createMockSynapseManager() {
84
+ return {
85
+ strengthen: vi.fn(),
86
+ weaken: vi.fn(),
87
+ find: vi.fn(),
88
+ activate: vi.fn(),
89
+ runDecay: vi.fn(),
90
+ };
91
+ }
92
+ function createMockAutoResolution() {
93
+ return {
94
+ getSuggestions: vi.fn().mockReturnValue({
95
+ errorId: 1,
96
+ suggestions: [
97
+ {
98
+ solution: { id: 10, description: 'Fix it' },
99
+ score: 0.9,
100
+ category: 'auto',
101
+ matchedErrorId: 2,
102
+ matchScore: 0.95,
103
+ successRate: 1.0,
104
+ reasoning: 'High confidence match',
105
+ },
106
+ ],
107
+ autoApply: null,
108
+ totalConsidered: 1,
109
+ }),
110
+ getSuggestionsForError: vi.fn(),
111
+ };
112
+ }
113
+ function createMockEmbeddingEngine(ready = true) {
114
+ return {
115
+ isReady: vi.fn().mockReturnValue(ready),
116
+ computeErrorVectorScores: vi.fn().mockReturnValue(new Map([[2, 0.85]])),
117
+ };
118
+ }
119
+ describe('ErrorService — Auto-Resolution Integration', () => {
120
+ let service;
121
+ let errorRepo;
122
+ let projectRepo;
123
+ let synapseManager;
124
+ let autoResolution;
125
+ beforeEach(() => {
126
+ vi.clearAllMocks();
127
+ errorRepo = createMockErrorRepo();
128
+ projectRepo = createMockProjectRepo();
129
+ synapseManager = createMockSynapseManager();
130
+ autoResolution = createMockAutoResolution();
131
+ service = new ErrorService(errorRepo, projectRepo, synapseManager);
132
+ });
133
+ it('report() calls auto-resolution when matches exist', () => {
134
+ const matches = [
135
+ { errorId: 2, score: 0.95, isStrong: true, signals: [] },
136
+ ];
137
+ matchErrorMock.mockReturnValue(matches);
138
+ service.setAutoResolution(autoResolution);
139
+ const result = service.report({
140
+ project: 'test-project',
141
+ errorOutput: 'TypeError: cannot read property of undefined',
142
+ });
143
+ expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
144
+ expect(autoResolution.getSuggestions).toHaveBeenCalledWith(result.errorId, matches, []);
145
+ expect(result.suggestions).toBeDefined();
146
+ expect(result.suggestions.suggestions).toHaveLength(1);
147
+ });
148
+ it('report() does not call auto-resolution when no matches', () => {
149
+ matchErrorMock.mockReturnValue([]);
150
+ service.setAutoResolution(autoResolution);
151
+ const result = service.report({
152
+ project: 'test-project',
153
+ errorOutput: 'TypeError: no matches here',
154
+ });
155
+ expect(autoResolution.getSuggestions).not.toHaveBeenCalled();
156
+ expect(result.suggestions).toBeUndefined();
157
+ });
158
+ it('report() does not call auto-resolution when service not set', () => {
159
+ const matches = [
160
+ { errorId: 2, score: 0.95, isStrong: true, signals: [] },
161
+ ];
162
+ matchErrorMock.mockReturnValue(matches);
163
+ // Do NOT call service.setAutoResolution()
164
+ const result = service.report({
165
+ project: 'test-project',
166
+ errorOutput: 'TypeError: auto-resolution not configured',
167
+ });
168
+ expect(result.suggestions).toBeUndefined();
169
+ });
170
+ it('report() includes suggestions in return value', () => {
171
+ const matches = [
172
+ { errorId: 2, score: 0.88, isStrong: true, signals: [] },
173
+ ];
174
+ matchErrorMock.mockReturnValue(matches);
175
+ const expectedSuggestions = {
176
+ errorId: 1,
177
+ suggestions: [
178
+ {
179
+ solution: { id: 10, description: 'Fix it' },
180
+ score: 0.9,
181
+ category: 'auto',
182
+ matchedErrorId: 2,
183
+ matchScore: 0.95,
184
+ successRate: 1.0,
185
+ reasoning: 'High confidence match',
186
+ },
187
+ ],
188
+ autoApply: null,
189
+ totalConsidered: 1,
190
+ };
191
+ autoResolution.getSuggestions.mockReturnValue(expectedSuggestions);
192
+ service.setAutoResolution(autoResolution);
193
+ const result = service.report({
194
+ project: 'test-project',
195
+ errorOutput: 'TypeError: test',
196
+ });
197
+ expect(result.suggestions).toEqual(expectedSuggestions);
198
+ expect(result.suggestions.errorId).toBe(1);
199
+ expect(result.suggestions.suggestions[0].solution.id).toBe(10);
200
+ expect(result.suggestions.totalConsidered).toBe(1);
201
+ });
202
+ it('setAutoResolution() wires the service correctly', () => {
203
+ // First, verify no auto-resolution without wiring
204
+ const matches = [{ errorId: 2, score: 0.9, isStrong: true, signals: [] }];
205
+ matchErrorMock.mockReturnValue(matches);
206
+ const result1 = service.report({
207
+ project: 'test-project',
208
+ errorOutput: 'TypeError: before wiring',
209
+ });
210
+ expect(result1.suggestions).toBeUndefined();
211
+ // Wire the service
212
+ service.setAutoResolution(autoResolution);
213
+ // Reset fingerprint mock so we get a new error (not a duplicate)
214
+ errorRepo.findByFingerprint.mockReturnValue([]);
215
+ matchErrorMock.mockReturnValue(matches);
216
+ const result2 = service.report({
217
+ project: 'test-project',
218
+ errorOutput: 'TypeError: after wiring',
219
+ });
220
+ expect(result2.suggestions).toBeDefined();
221
+ expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
222
+ });
223
+ it('report() passes vector scores to matchError when embedding engine is available', () => {
224
+ const embeddingEngine = createMockEmbeddingEngine(true);
225
+ service.setEmbeddingEngine(embeddingEngine);
226
+ service.report({
227
+ project: 'test-project',
228
+ errorOutput: 'TypeError: with embeddings',
229
+ });
230
+ expect(embeddingEngine.isReady).toHaveBeenCalled();
231
+ expect(embeddingEngine.computeErrorVectorScores).toHaveBeenCalledWith(1, 1);
232
+ // matchError should receive the vector scores map as third argument
233
+ expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), // newError
234
+ expect.any(Array), // candidates
235
+ expect.any(Map));
236
+ const vectorScoresArg = matchErrorMock.mock.calls[0][2];
237
+ expect(vectorScoresArg).toBeInstanceOf(Map);
238
+ expect(vectorScoresArg.get(2)).toBe(0.85);
239
+ });
240
+ it('report() does not pass vector scores when embedding engine is not ready', () => {
241
+ const embeddingEngine = createMockEmbeddingEngine(false);
242
+ service.setEmbeddingEngine(embeddingEngine);
243
+ service.report({
244
+ project: 'test-project',
245
+ errorOutput: 'TypeError: embeddings not ready',
246
+ });
247
+ expect(embeddingEngine.isReady).toHaveBeenCalled();
248
+ expect(embeddingEngine.computeErrorVectorScores).not.toHaveBeenCalled();
249
+ // matchError should receive undefined for vectorScores
250
+ expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), expect.any(Array), undefined);
251
+ });
252
+ it('report() does not pass vector scores when no embedding engine is set', () => {
253
+ // No call to setEmbeddingEngine
254
+ service.report({
255
+ project: 'test-project',
256
+ errorOutput: 'TypeError: no embedding engine',
257
+ });
258
+ expect(matchErrorMock).toHaveBeenCalledWith(expect.any(Object), expect.any(Array), undefined);
259
+ });
260
+ it('report() calls auto-resolution with cross-project matches when configured', () => {
261
+ const matchingConfig = { crossProjectMatching: true, crossProjectWeight: 0.7 };
262
+ service = new ErrorService(errorRepo, projectRepo, synapseManager, matchingConfig);
263
+ service.setAutoResolution(autoResolution);
264
+ // Set up other projects with resolved errors
265
+ projectRepo.getAll.mockReturnValue([
266
+ { id: 1, name: 'test-project' },
267
+ { id: 2, name: 'other-project' },
268
+ ]);
269
+ const otherProjectErrors = [
270
+ {
271
+ id: 50, project_id: 2, fingerprint: 'fp-other', type: 'TypeError',
272
+ message: 'similar error in other project', resolved: 1,
273
+ },
274
+ ];
275
+ errorRepo.findByProject.mockImplementation((projectId) => {
276
+ if (projectId === 2)
277
+ return otherProjectErrors;
278
+ return [];
279
+ });
280
+ const inProjectMatches = [{ errorId: 3, score: 0.8, isStrong: false, signals: [] }];
281
+ const crossMatches = [{ errorId: 50, score: 0.7, isStrong: false, signals: [] }];
282
+ matchErrorMock
283
+ .mockReturnValueOnce(inProjectMatches) // in-project matchError call
284
+ .mockReturnValueOnce(crossMatches); // cross-project matchError call
285
+ const result = service.report({
286
+ project: 'test-project',
287
+ errorOutput: 'TypeError: cross project test',
288
+ });
289
+ expect(autoResolution.getSuggestions).toHaveBeenCalledTimes(1);
290
+ // Should be called with errorId, in-project matches, and cross-project matches
291
+ const callArgs = autoResolution.getSuggestions.mock.calls[0];
292
+ expect(callArgs[0]).toBe(1); // errorId
293
+ expect(callArgs[1]).toEqual(inProjectMatches);
294
+ // Cross-project matches will have discounted scores
295
+ expect(callArgs[2]).toHaveLength(1);
296
+ expect(result.crossProjectMatches).toHaveLength(1);
297
+ });
298
+ it('report() skips auto-resolution for duplicate (existing fingerprint) errors', () => {
299
+ errorRepo.findByFingerprint.mockReturnValue([{
300
+ id: 42,
301
+ project_id: 1,
302
+ fingerprint: 'fp-mock-123',
303
+ type: 'TypeError',
304
+ message: 'old error',
305
+ context: null,
306
+ resolved: 0,
307
+ occurrence_count: 3,
308
+ }]);
309
+ service.setAutoResolution(autoResolution);
310
+ const result = service.report({
311
+ project: 'test-project',
312
+ errorOutput: 'TypeError: old error',
313
+ });
314
+ // Duplicate errors return early — no matchError, no auto-resolution
315
+ expect(result.isNew).toBe(false);
316
+ expect(autoResolution.getSuggestions).not.toHaveBeenCalled();
317
+ expect(result.suggestions).toBeUndefined();
318
+ });
319
+ });
320
+ //# sourceMappingURL=error.service.auto-resolution.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.service.auto-resolution.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/error.service.auto-resolution.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { SolutionRecord } from '../types/solution.types.js';
2
+ import type { SolutionRepository } from '../db/repositories/solution.repository.js';
3
+ import type { ErrorRepository } from '../db/repositories/error.repository.js';
4
+ import type { SynapseManager } from '../synapses/synapse-manager.js';
5
+ import type { MatchResult } from '../matching/error-matcher.js';
6
+ export type SuggestionCategory = 'auto' | 'suggest' | 'learn';
7
+ export interface SolutionSuggestion {
8
+ solution: SolutionRecord;
9
+ /** Combined score factoring in match quality, confidence, and recency */
10
+ score: number;
11
+ /** Category: auto (≥0.85), suggest (0.5-0.85), learn (<0.5) */
12
+ category: SuggestionCategory;
13
+ /** Which matched error this solution originally solved */
14
+ matchedErrorId: number;
15
+ /** How similar the original error was to the current one */
16
+ matchScore: number;
17
+ /** Success rate of this solution across all attempts */
18
+ successRate: number;
19
+ /** Human-readable explanation of why this is suggested */
20
+ reasoning: string;
21
+ }
22
+ export interface AutoResolutionResult {
23
+ errorId: number;
24
+ suggestions: SolutionSuggestion[];
25
+ /** Best suggestion if any pass the auto-apply threshold */
26
+ autoApply: SolutionSuggestion | null;
27
+ /** Total solutions considered */
28
+ totalConsidered: number;
29
+ }
30
+ export declare class AutoResolutionService {
31
+ private solutionRepo;
32
+ private errorRepo;
33
+ private synapseManager;
34
+ private logger;
35
+ private eventBus;
36
+ constructor(solutionRepo: SolutionRepository, errorRepo: ErrorRepository, synapseManager: SynapseManager);
37
+ /**
38
+ * Given an error and its matches, find and rank solutions.
39
+ * Returns suggestions sorted by combined score.
40
+ */
41
+ getSuggestions(errorId: number, matches: MatchResult[], crossProjectMatches?: MatchResult[]): AutoResolutionResult;
42
+ /**
43
+ * Get suggestions for an existing error by re-running match + solution lookup.
44
+ */
45
+ getSuggestionsForError(errorId: number): AutoResolutionResult;
46
+ /**
47
+ * Compute a combined score for a solution suggestion.
48
+ * Factors: match quality (40%), solution confidence (30%), success rate (30%)
49
+ * Cross-project solutions get a 20% discount.
50
+ */
51
+ private computeScore;
52
+ /**
53
+ * Categorize a score into auto/suggest/learn.
54
+ */
55
+ private categorize;
56
+ /**
57
+ * Build a human-readable explanation of the suggestion.
58
+ */
59
+ private buildReasoning;
60
+ }