@timmeck/brain 3.26.0 → 3.28.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.
@@ -0,0 +1,112 @@
1
+ import { z } from 'zod';
2
+ function textResult(data) {
3
+ const text = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
4
+ return { content: [{ type: 'text', text }] };
5
+ }
6
+ export function registerMetacognitionTools(server, ipc) {
7
+ registerMetacognitionToolsWithCaller(server, (method, params) => ipc.request(method, params));
8
+ }
9
+ export function registerMetacognitionToolsDirect(server, router) {
10
+ registerMetacognitionToolsWithCaller(server, (method, params) => router.handle(method, params));
11
+ }
12
+ function registerMetacognitionToolsWithCaller(server, call) {
13
+ server.tool('brain_metacognition_status', 'Get Brain meta-cognition status: engine report cards (A-F grades), frequency adjustments, performance metrics.', {}, async () => {
14
+ const status = await call('metacognition.status', {});
15
+ const lines = [
16
+ '# Meta-Cognition Status',
17
+ '',
18
+ `**Engines Tracked:** ${status.totalEngines}`,
19
+ `**Cycle Metrics Recorded:** ${status.cycleMetrics}`,
20
+ '',
21
+ ];
22
+ if (status.reportCards?.length > 0) {
23
+ lines.push('## Engine Report Cards');
24
+ for (const card of status.reportCards) {
25
+ lines.push(`- **${card.engine}**: Grade **${card.grade}** (health: ${(card.health_score * 100).toFixed(0)}%, value: ${(card.value_score * 100).toFixed(0)}%, S/N: ${(card.signal_to_noise * 100).toFixed(0)}%)`);
26
+ }
27
+ lines.push('');
28
+ }
29
+ if (status.recentAdjustments?.length > 0) {
30
+ lines.push('## Recent Frequency Adjustments');
31
+ for (const adj of status.recentAdjustments) {
32
+ lines.push(`- ${adj.engine}: freq ${adj.old_frequency} → ${adj.new_frequency} (${adj.reason})`);
33
+ }
34
+ }
35
+ return textResult(lines.join('\n'));
36
+ });
37
+ server.tool('brain_engine_report', 'Get detailed report card and performance trend for a specific engine.', { engine: z.string().describe('Engine name (e.g. "self_observer", "anomaly_detective")') }, async (params) => {
38
+ const card = await call('metacognition.report', { engine: params.engine });
39
+ const trend = await call('metacognition.trend', { engine: params.engine, limit: 10 });
40
+ const lines = [
41
+ `# Engine Report: ${params.engine}`,
42
+ '',
43
+ ];
44
+ if (card) {
45
+ lines.push(`**Grade:** ${card.grade} | **Score:** ${(card.combined_score * 100).toFixed(0)}%`);
46
+ lines.push(`- Health: ${(card.health_score * 100).toFixed(0)}%`);
47
+ lines.push(`- Value: ${(card.value_score * 100).toFixed(0)}%`);
48
+ lines.push(`- Signal/Noise: ${(card.signal_to_noise * 100).toFixed(0)}%`);
49
+ lines.push('');
50
+ }
51
+ else {
52
+ lines.push('*No report card yet. Engine needs to run through evaluation cycles.*');
53
+ }
54
+ if (trend?.length > 0) {
55
+ lines.push('## Trend (recent evaluations)');
56
+ for (const t of trend) {
57
+ lines.push(`- ${t.evaluated_at}: Grade ${t.grade} (${(t.combined_score * 100).toFixed(0)}%)`);
58
+ }
59
+ }
60
+ return textResult(lines.join('\n'));
61
+ });
62
+ server.tool('brain_auto_experiment_status', 'Get status of Brain\'s autonomous parameter experiments: running, completed, candidates for next experiment.', {}, async () => {
63
+ const status = await call('autoexperiment.status', {});
64
+ const lines = [
65
+ '# Auto-Experiment Status',
66
+ '',
67
+ `**Total:** ${status.totalExperiments} | **Running:** ${status.running} | **Adopted:** ${status.adopted} | **Rolled Back:** ${status.rolledBack}`,
68
+ `**Cooldown Until Cycle:** ${status.cooldownUntilCycle}`,
69
+ '',
70
+ ];
71
+ if (status.candidates?.length > 0) {
72
+ lines.push('## Next Candidates');
73
+ for (const c of status.candidates) {
74
+ lines.push(`- **${c.engine}.${c.name}**: ${c.currentValue.toFixed(3)} → ${c.proposedValue.toFixed(3)} (priority: ${c.priority})`);
75
+ lines.push(` ${c.hypothesis}`);
76
+ }
77
+ }
78
+ else {
79
+ lines.push('*No candidates — either in cooldown or all parameters recently tested.*');
80
+ }
81
+ return textResult(lines.join('\n'));
82
+ });
83
+ server.tool('brain_parameter_registry', 'View all tunable parameters in Brain\'s parameter registry with current values, bounds, and recent changes.', { engine: z.string().optional().describe('Filter by engine name (optional)') }, async (params) => {
84
+ const allParams = await call('parameter.list', { engine: params.engine });
85
+ const changes = await call('parameter.history', { limit: 15 });
86
+ const lines = [
87
+ '# Parameter Registry',
88
+ '',
89
+ `**Total Parameters:** ${allParams?.length ?? 0}`,
90
+ '',
91
+ ];
92
+ if (allParams?.length > 0) {
93
+ let lastEngine = '';
94
+ for (const p of allParams) {
95
+ if (p.engine !== lastEngine) {
96
+ lines.push(`## ${p.engine}`);
97
+ lastEngine = p.engine;
98
+ }
99
+ lines.push(`- **${p.name}**: ${p.value} [${p.min} – ${p.max}] ${p.description ? `— ${p.description}` : ''}`);
100
+ }
101
+ lines.push('');
102
+ }
103
+ if (changes?.length > 0) {
104
+ lines.push('## Recent Changes');
105
+ for (const c of changes) {
106
+ lines.push(`- ${c.created_at}: ${c.engine}.${c.name} ${c.old_value} → ${c.new_value} (by ${c.changed_by}: ${c.reason?.substring(0, 80)})`);
107
+ }
108
+ }
109
+ return textResult(lines.join('\n'));
110
+ });
111
+ }
112
+ //# sourceMappingURL=metacognition-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metacognition-tools.js","sourceRoot":"","sources":["../../src/mcp/metacognition-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { IpcClient } from '@timmeck/brain-core';
3
+ import type { IpcRouter } from '../ipc/router.js';
4
+ export declare function registerSelfawareTools(server: McpServer, ipc: IpcClient): void;
5
+ export declare function registerSelfawareToolsDirect(server: McpServer, router: IpcRouter): void;
@@ -0,0 +1,437 @@
1
+ import { z } from 'zod';
2
+ function textResult(data) {
3
+ const text = typeof data === 'string' ? data : JSON.stringify(data, null, 2);
4
+ return { content: [{ type: 'text', text }] };
5
+ }
6
+ export function registerSelfawareTools(server, ipc) {
7
+ registerSelfawareToolsWithCaller(server, (method, params) => ipc.request(method, params));
8
+ }
9
+ export function registerSelfawareToolsDirect(server, router) {
10
+ registerSelfawareToolsWithCaller(server, (method, params) => router.handle(method, params));
11
+ }
12
+ function registerSelfawareToolsWithCaller(server, call) {
13
+ server.tool('brain_blind_spots', 'Detect knowledge blind spots: areas where Brain has high activity but low understanding, or topics it systematically avoids.', {}, async () => {
14
+ try {
15
+ const result = await call('blindspot.detect', {});
16
+ const lines = ['# Knowledge Blind Spots', ''];
17
+ if (result?.blindSpots?.length > 0) {
18
+ lines.push(`**Found:** ${result.blindSpots.length} blind spot(s)`, '');
19
+ for (const bs of result.blindSpots) {
20
+ lines.push(`## ${bs.topic}`);
21
+ lines.push(`**Type:** ${bs.type} | **Severity:** ${(bs.severity * 100).toFixed(0)}%`);
22
+ if (bs.reason)
23
+ lines.push(`**Reason:** ${bs.reason}`);
24
+ if (bs.suggestion)
25
+ lines.push(`**Suggestion:** ${bs.suggestion}`);
26
+ lines.push('');
27
+ }
28
+ }
29
+ else {
30
+ lines.push('No blind spots detected. Brain has good coverage across all active topics.');
31
+ }
32
+ return textResult(lines.join('\n'));
33
+ }
34
+ catch (err) {
35
+ return textResult(`Error detecting blind spots: ${err instanceof Error ? err.message : String(err)}`);
36
+ }
37
+ });
38
+ server.tool('brain_meta_trends', 'Get meta-learning trends: how Brain learning speed, hypothesis quality, and experiment success rates change over time.', { windowCycles: z.number().optional().describe('Number of cycles to analyze (default: 50)') }, async (params) => {
39
+ try {
40
+ const result = await call('metatrend.get', { windowCycles: params.windowCycles });
41
+ const lines = ['# Meta-Learning Trends', ''];
42
+ if (result?.trends?.length > 0) {
43
+ for (const t of result.trends) {
44
+ lines.push(`## ${t.metric}`);
45
+ lines.push(`**Current:** ${t.current?.toFixed(3) ?? 'N/A'} | **Average:** ${t.average?.toFixed(3) ?? 'N/A'} | **Trend:** ${t.direction ?? 'stable'}`);
46
+ if (t.changePercent !== undefined)
47
+ lines.push(`**Change:** ${t.changePercent > 0 ? '+' : ''}${t.changePercent.toFixed(1)}%`);
48
+ lines.push('');
49
+ }
50
+ }
51
+ else {
52
+ lines.push('No trends available yet. Brain needs more cycles to establish trend data.');
53
+ }
54
+ return textResult(lines.join('\n'));
55
+ }
56
+ catch (err) {
57
+ return textResult(`Error getting meta trends: ${err instanceof Error ? err.message : String(err)}`);
58
+ }
59
+ });
60
+ server.tool('brain_long_term_analysis', 'Get long-term learning analysis: overall Brain growth trajectory, milestone detection, and learning velocity over days/weeks.', { days: z.number().optional().describe('Number of days to analyze (default: 7)') }, async (params) => {
61
+ try {
62
+ const result = await call('metatrend.longterm', { days: params.days });
63
+ const lines = ['# Long-Term Learning Analysis', ''];
64
+ if (result) {
65
+ if (result.summary)
66
+ lines.push(result.summary, '');
67
+ if (result.milestones?.length > 0) {
68
+ lines.push('## Milestones');
69
+ for (const m of result.milestones) {
70
+ lines.push(`- **${m.date ?? m.cycle}**: ${m.description}`);
71
+ }
72
+ lines.push('');
73
+ }
74
+ if (result.velocity !== undefined) {
75
+ lines.push(`## Learning Velocity`);
76
+ lines.push(`**Current:** ${result.velocity.toFixed(3)} | **Trend:** ${result.velocityTrend ?? 'stable'}`);
77
+ }
78
+ }
79
+ else {
80
+ lines.push('Not enough data for long-term analysis yet.');
81
+ }
82
+ return textResult(lines.join('\n'));
83
+ }
84
+ catch (err) {
85
+ return textResult(`Error in long-term analysis: ${err instanceof Error ? err.message : String(err)}`);
86
+ }
87
+ });
88
+ server.tool('brain_creative_hypotheses', 'Generate creative hypotheses by combining unrelated knowledge domains, inverting assumptions, or applying analogies from other fields.', { count: z.number().optional().describe('Number of hypotheses to generate (default: 3)') }, async (params) => {
89
+ try {
90
+ const result = await call('hypothesis.creative', { count: params.count });
91
+ const hypotheses = Array.isArray(result) ? result : result?.hypotheses ?? [];
92
+ if (!hypotheses.length)
93
+ return textResult('No creative hypotheses could be generated. Brain needs more diverse knowledge first.');
94
+ const lines = [`# Creative Hypotheses: ${hypotheses.length}`, ''];
95
+ for (const h of hypotheses) {
96
+ lines.push(`## ${h.statement ?? h.title}`);
97
+ if (h.method)
98
+ lines.push(`**Method:** ${h.method}`);
99
+ if (h.confidence !== undefined)
100
+ lines.push(`**Confidence:** ${(h.confidence * 100).toFixed(0)}%`);
101
+ if (h.reasoning)
102
+ lines.push(`**Reasoning:** ${h.reasoning}`);
103
+ if (h.testable)
104
+ lines.push(`**How to test:** ${h.testable}`);
105
+ lines.push('');
106
+ }
107
+ return textResult(lines.join('\n'));
108
+ }
109
+ catch (err) {
110
+ return textResult(`Error generating hypotheses: ${err instanceof Error ? err.message : String(err)}`);
111
+ }
112
+ });
113
+ server.tool('brain_challenge_principle', 'Challenge a principle or belief using Advocatus Diaboli: generate counter-arguments, find edge cases, and stress-test assumptions.', { statement: z.string().describe('The principle or statement to challenge') }, async (params) => {
114
+ try {
115
+ const result = await call('challenge.principle', { statement: params.statement });
116
+ const lines = [`# Advocatus Diaboli: Challenge`, '', `**Statement:** "${params.statement}"`, ''];
117
+ if (result?.challenges?.length > 0) {
118
+ lines.push('## Counter-Arguments');
119
+ for (const c of result.challenges) {
120
+ lines.push(`- **${c.type ?? 'challenge'}**: ${c.argument}`);
121
+ if (c.strength)
122
+ lines.push(` Strength: ${c.strength}`);
123
+ }
124
+ lines.push('');
125
+ }
126
+ if (result?.verdict)
127
+ lines.push(`## Verdict`, result.verdict, '');
128
+ if (result?.score !== undefined)
129
+ lines.push(`**Robustness Score:** ${(result.score * 100).toFixed(0)}%`);
130
+ return textResult(lines.join('\n'));
131
+ }
132
+ catch (err) {
133
+ return textResult(`Error challenging principle: ${err instanceof Error ? err.message : String(err)}`);
134
+ }
135
+ });
136
+ server.tool('brain_dream_retrospective', 'Analyze dream pruning retrospective: what was pruned, compressed, or strengthened during dream cycles, and whether pruning decisions were good.', {}, async () => {
137
+ try {
138
+ const result = await call('dream.retrospective', {});
139
+ const lines = ['# Dream Retrospective', ''];
140
+ if (result) {
141
+ if (result.totalSessions !== undefined)
142
+ lines.push(`**Sessions:** ${result.totalSessions} | **Last:** ${result.lastSession ?? 'never'}`);
143
+ lines.push('');
144
+ if (result.pruned?.length > 0) {
145
+ lines.push('## Pruned (Removed)');
146
+ for (const p of result.pruned)
147
+ lines.push(`- ${p.topic ?? p.description}: weight ${p.weight?.toFixed(3) ?? 'N/A'}`);
148
+ lines.push('');
149
+ }
150
+ if (result.compressed?.length > 0) {
151
+ lines.push('## Compressed (Merged)');
152
+ for (const c of result.compressed)
153
+ lines.push(`- ${c.count ?? 2} items → "${c.result ?? c.topic}"`);
154
+ lines.push('');
155
+ }
156
+ if (result.strengthened?.length > 0) {
157
+ lines.push('## Strengthened');
158
+ for (const s of result.strengthened)
159
+ lines.push(`- ${s.topic}: ${s.oldWeight?.toFixed(3) ?? '?'} → ${s.newWeight?.toFixed(3) ?? '?'}`);
160
+ lines.push('');
161
+ }
162
+ if (result.regrets?.length > 0) {
163
+ lines.push('## Regrets (Questionable Prunes)');
164
+ for (const r of result.regrets)
165
+ lines.push(`- ${r.topic}: ${r.reason}`);
166
+ }
167
+ }
168
+ else {
169
+ lines.push('No dream sessions recorded yet.');
170
+ }
171
+ return textResult(lines.join('\n'));
172
+ }
173
+ catch (err) {
174
+ return textResult(`Error getting dream retrospective: ${err instanceof Error ? err.message : String(err)}`);
175
+ }
176
+ });
177
+ server.tool('brain_cross_brain_dialogue', 'Start a cross-brain dialogue: ask a question that gets perspectives from Brain, Trading Brain, and Marketing Brain.', { topic: z.string().describe('The topic or question to discuss across brains') }, async (params) => {
178
+ try {
179
+ const result = await call('dialogue.ask', { topic: params.topic });
180
+ const lines = [`# Cross-Brain Dialogue`, '', `**Topic:** "${params.topic}"`, ''];
181
+ if (result?.perspectives?.length > 0) {
182
+ for (const p of result.perspectives) {
183
+ lines.push(`## ${p.brain ?? p.source}`);
184
+ lines.push(p.response ?? p.perspective);
185
+ if (p.confidence !== undefined)
186
+ lines.push(`*Confidence: ${(p.confidence * 100).toFixed(0)}%*`);
187
+ lines.push('');
188
+ }
189
+ }
190
+ if (result?.synthesis) {
191
+ lines.push('## Synthesis');
192
+ lines.push(result.synthesis);
193
+ }
194
+ return textResult(lines.join('\n'));
195
+ }
196
+ catch (err) {
197
+ return textResult(`Error in cross-brain dialogue: ${err instanceof Error ? err.message : String(err)}`);
198
+ }
199
+ });
200
+ server.tool('brain_self_test', 'Self-test all principles: verify each learned principle against recent evidence and flag contradictions or outdated knowledge.', {}, async () => {
201
+ try {
202
+ const result = await call('selftest.all', {});
203
+ const lines = ['# Self-Test Results', ''];
204
+ if (result) {
205
+ lines.push(`**Tested:** ${result.tested ?? 0} | **Passed:** ${result.passed ?? 0} | **Failed:** ${result.failed ?? 0} | **Inconclusive:** ${result.inconclusive ?? 0}`);
206
+ lines.push('');
207
+ if (result.failures?.length > 0) {
208
+ lines.push('## Failed Principles');
209
+ for (const f of result.failures) {
210
+ lines.push(`- **${f.principle}**: ${f.reason}`);
211
+ if (f.evidence)
212
+ lines.push(` Evidence: ${f.evidence}`);
213
+ }
214
+ lines.push('');
215
+ }
216
+ if (result.warnings?.length > 0) {
217
+ lines.push('## Warnings');
218
+ for (const w of result.warnings)
219
+ lines.push(`- ${w.principle}: ${w.reason}`);
220
+ }
221
+ }
222
+ else {
223
+ lines.push('No principles to test yet.');
224
+ }
225
+ return textResult(lines.join('\n'));
226
+ }
227
+ catch (err) {
228
+ return textResult(`Error running self-test: ${err instanceof Error ? err.message : String(err)}`);
229
+ }
230
+ });
231
+ server.tool('brain_self_test_report', 'Get understanding report: comprehensive overview of what Brain knows, how confident it is, and where knowledge is weakest.', {}, async () => {
232
+ try {
233
+ const result = await call('selftest.report', {});
234
+ const lines = ['# Understanding Report', ''];
235
+ if (result) {
236
+ if (result.overallConfidence !== undefined)
237
+ lines.push(`**Overall Confidence:** ${(result.overallConfidence * 100).toFixed(0)}%`);
238
+ if (result.totalPrinciples !== undefined)
239
+ lines.push(`**Principles:** ${result.totalPrinciples} | **Verified:** ${result.verified ?? 0}`);
240
+ lines.push('');
241
+ if (result.strongestAreas?.length > 0) {
242
+ lines.push('## Strongest Areas');
243
+ for (const a of result.strongestAreas)
244
+ lines.push(`- ${a.topic}: ${(a.confidence * 100).toFixed(0)}% (${a.evidenceCount} evidence points)`);
245
+ lines.push('');
246
+ }
247
+ if (result.weakestAreas?.length > 0) {
248
+ lines.push('## Weakest Areas');
249
+ for (const a of result.weakestAreas)
250
+ lines.push(`- ${a.topic}: ${(a.confidence * 100).toFixed(0)}% — ${a.reason}`);
251
+ lines.push('');
252
+ }
253
+ if (result.recommendations?.length > 0) {
254
+ lines.push('## Recommendations');
255
+ for (const r of result.recommendations)
256
+ lines.push(`- ${r}`);
257
+ }
258
+ }
259
+ else {
260
+ lines.push('No understanding data available yet.');
261
+ }
262
+ return textResult(lines.join('\n'));
263
+ }
264
+ catch (err) {
265
+ return textResult(`Error getting understanding report: ${err instanceof Error ? err.message : String(err)}`);
266
+ }
267
+ });
268
+ server.tool('brain_teach_create', 'Create a teaching package: distill Brain knowledge into a transferable package for another brain.', { targetBrain: z.string().describe('Target brain to teach (e.g. "trading", "marketing")') }, async (params) => {
269
+ try {
270
+ const result = await call('teach.create', { targetBrain: params.targetBrain });
271
+ const lines = [`# Teaching Package for ${params.targetBrain}`, ''];
272
+ if (result) {
273
+ if (result.id)
274
+ lines.push(`**Package ID:** ${result.id}`);
275
+ lines.push(`**Principles:** ${result.principleCount ?? 0} | **Anti-Patterns:** ${result.antiPatternCount ?? 0} | **Strategies:** ${result.strategyCount ?? 0}`);
276
+ lines.push('');
277
+ if (result.topics?.length > 0) {
278
+ lines.push('## Topics Included');
279
+ for (const t of result.topics)
280
+ lines.push(`- ${t}`);
281
+ lines.push('');
282
+ }
283
+ if (result.summary)
284
+ lines.push('## Summary', result.summary);
285
+ }
286
+ else {
287
+ lines.push('Could not create teaching package. Brain may not have enough knowledge to share.');
288
+ }
289
+ return textResult(lines.join('\n'));
290
+ }
291
+ catch (err) {
292
+ return textResult(`Error creating teaching package: ${err instanceof Error ? err.message : String(err)}`);
293
+ }
294
+ });
295
+ server.tool('brain_teach_packages', 'List teaching packages: previously created knowledge packages for other brains.', { limit: z.number().optional().describe('Max packages to return (default: 10)') }, async (params) => {
296
+ try {
297
+ const packages = await call('teach.list', { limit: params.limit ?? 10 });
298
+ if (!packages?.length)
299
+ return textResult('No teaching packages created yet.');
300
+ const lines = [`# Teaching Packages: ${packages.length}`, ''];
301
+ for (const p of packages) {
302
+ lines.push(`## ${p.targetBrain ?? 'unknown'} — ${p.created_at ?? ''}`);
303
+ lines.push(`ID: ${p.id} | Principles: ${p.principleCount ?? 0} | Status: ${p.status ?? 'created'}`);
304
+ if (p.summary)
305
+ lines.push(p.summary);
306
+ lines.push('');
307
+ }
308
+ return textResult(lines.join('\n'));
309
+ }
310
+ catch (err) {
311
+ return textResult(`Error listing teaching packages: ${err instanceof Error ? err.message : String(err)}`);
312
+ }
313
+ });
314
+ server.tool('brain_scout_status', 'Get DataScout status: what external data sources are being monitored, last scan times, and discovery counts.', {}, async () => {
315
+ try {
316
+ const result = await call('scout.status', {});
317
+ const lines = ['# DataScout Status', ''];
318
+ if (result) {
319
+ lines.push(`**Active Sources:** ${result.activeSources ?? 0} | **Total Discoveries:** ${result.totalDiscoveries ?? 0}`);
320
+ if (result.lastScan)
321
+ lines.push(`**Last Scan:** ${result.lastScan}`);
322
+ lines.push('');
323
+ if (result.sources?.length > 0) {
324
+ lines.push('## Sources');
325
+ for (const s of result.sources) {
326
+ lines.push(`- **${s.name}**: ${s.status ?? 'active'} (${s.discoveryCount ?? 0} discoveries, last: ${s.lastScan ?? 'never'})`);
327
+ }
328
+ }
329
+ }
330
+ else {
331
+ lines.push('DataScout not initialized.');
332
+ }
333
+ return textResult(lines.join('\n'));
334
+ }
335
+ catch (err) {
336
+ return textResult(`Error getting scout status: ${err instanceof Error ? err.message : String(err)}`);
337
+ }
338
+ });
339
+ server.tool('brain_scout_discoveries', 'Get scout discoveries: external data insights found by DataScout from monitored sources.', {
340
+ source: z.string().optional().describe('Filter by source name'),
341
+ limit: z.number().optional().describe('Max discoveries to return (default: 20)'),
342
+ }, async (params) => {
343
+ try {
344
+ const discoveries = await call('scout.discoveries', { source: params.source, limit: params.limit ?? 20 });
345
+ if (!discoveries?.length)
346
+ return textResult('No discoveries yet. DataScout needs to scan external sources first.');
347
+ const lines = [`# Scout Discoveries: ${discoveries.length}`, ''];
348
+ for (const d of discoveries) {
349
+ lines.push(`## ${d.title ?? d.topic}`);
350
+ lines.push(`**Source:** ${d.source} | **Found:** ${d.discovered_at ?? d.created_at}`);
351
+ if (d.relevance !== undefined)
352
+ lines.push(`**Relevance:** ${(d.relevance * 100).toFixed(0)}%`);
353
+ if (d.summary)
354
+ lines.push(d.summary);
355
+ lines.push('');
356
+ }
357
+ return textResult(lines.join('\n'));
358
+ }
359
+ catch (err) {
360
+ return textResult(`Error getting discoveries: ${err instanceof Error ? err.message : String(err)}`);
361
+ }
362
+ });
363
+ server.tool('brain_simulate', 'Run a what-if simulation: predict what would happen if a metric changed by a given multiplier.', {
364
+ metric: z.string().describe('The metric to simulate changes for (e.g. "error_rate", "resolution_speed")'),
365
+ multiplier: z.number().describe('Multiplier for the metric (e.g. 2.0 = double, 0.5 = halve)'),
366
+ }, async (params) => {
367
+ try {
368
+ const result = await call('simulation.whatif', { metric: params.metric, multiplier: params.multiplier });
369
+ const lines = [`# What-If Simulation`, '', `**Scenario:** ${params.metric} x${params.multiplier}`, ''];
370
+ if (result) {
371
+ if (result.predictions?.length > 0) {
372
+ lines.push('## Predicted Effects');
373
+ for (const p of result.predictions) {
374
+ lines.push(`- **${p.metric ?? p.area}**: ${p.currentValue?.toFixed(3) ?? '?'} → ${p.predictedValue?.toFixed(3) ?? '?'} (${p.confidence ? (p.confidence * 100).toFixed(0) + '% confidence' : ''})`);
375
+ if (p.explanation)
376
+ lines.push(` ${p.explanation}`);
377
+ }
378
+ lines.push('');
379
+ }
380
+ if (result.risks?.length > 0) {
381
+ lines.push('## Risks');
382
+ for (const r of result.risks)
383
+ lines.push(`- ${r}`);
384
+ lines.push('');
385
+ }
386
+ if (result.summary)
387
+ lines.push('## Summary', result.summary);
388
+ }
389
+ else {
390
+ lines.push('Simulation could not produce results. Not enough historical data for this metric.');
391
+ }
392
+ return textResult(lines.join('\n'));
393
+ }
394
+ catch (err) {
395
+ return textResult(`Error running simulation: ${err instanceof Error ? err.message : String(err)}`);
396
+ }
397
+ });
398
+ server.tool('brain_emergence_explain', 'Explain an emergence event: provide detailed analysis of why an emergent behavior occurred and what it means.', { eventId: z.number().describe('The emergence event ID to explain') }, async (params) => {
399
+ try {
400
+ const result = await call('emergence.explain', { eventId: params.eventId });
401
+ const lines = [`# Emergence Explanation`, ''];
402
+ if (result) {
403
+ if (result.event) {
404
+ lines.push(`## Event: ${result.event.title ?? result.event.type}`);
405
+ lines.push(`**Type:** ${result.event.type} | **Surprise:** ${result.event.surprise_score !== undefined ? (result.event.surprise_score * 100).toFixed(0) + '%' : 'N/A'}`);
406
+ if (result.event.description)
407
+ lines.push(result.event.description);
408
+ lines.push('');
409
+ }
410
+ if (result.explanation) {
411
+ lines.push('## Explanation');
412
+ lines.push(result.explanation);
413
+ lines.push('');
414
+ }
415
+ if (result.contributing_factors?.length > 0) {
416
+ lines.push('## Contributing Factors');
417
+ for (const f of result.contributing_factors)
418
+ lines.push(`- ${f}`);
419
+ lines.push('');
420
+ }
421
+ if (result.implications?.length > 0) {
422
+ lines.push('## Implications');
423
+ for (const i of result.implications)
424
+ lines.push(`- ${i}`);
425
+ }
426
+ }
427
+ else {
428
+ lines.push(`No emergence event found with ID ${params.eventId}.`);
429
+ }
430
+ return textResult(lines.join('\n'));
431
+ }
432
+ catch (err) {
433
+ return textResult(`Error explaining emergence: ${err instanceof Error ? err.message : String(err)}`);
434
+ }
435
+ });
436
+ }
437
+ //# sourceMappingURL=selfaware-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selfaware-tools.js","sourceRoot":"","sources":["../../src/mcp/selfaware-tools.ts"],"names":[],"mappings":"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"}
@@ -18,11 +18,15 @@ import { registerNarrativeTools } from './narrative-tools.js';
18
18
  import { registerCuriosityTools } from './curiosity-tools.js';
19
19
  import { registerEmergenceTools } from './emergence-tools.js';
20
20
  import { registerDebateTools } from './debate-tools.js';
21
+ import { registerMetacognitionTools } from './metacognition-tools.js';
22
+ import { registerSelfawareTools } from './selfaware-tools.js';
23
+ import { registerMemoryPalaceTools } from './memory-palace-tools.js';
24
+ import { registerGoalTools } from './goal-tools.js';
21
25
  import { registerPrompts } from './prompts.js';
22
26
  export async function startMcpServer() {
23
27
  await coreStartMcpServer({
24
28
  name: 'brain',
25
- version: '3.25.0',
29
+ version: '3.26.0',
26
30
  entryPoint: path.resolve(import.meta.dirname, '../index.ts'),
27
31
  registerTools: (server, ipc) => {
28
32
  registerTools(server, ipc);
@@ -43,6 +47,10 @@ export async function startMcpServer() {
43
47
  registerCuriosityTools(server, ipc);
44
48
  registerEmergenceTools(server, ipc);
45
49
  registerDebateTools(server, ipc);
50
+ registerMetacognitionTools(server, ipc);
51
+ registerSelfawareTools(server, ipc);
52
+ registerMemoryPalaceTools(server, ipc);
53
+ registerGoalTools(server, ipc);
46
54
  },
47
55
  registerPrompts,
48
56
  });