@timmeck/trading-brain 2.21.0 → 2.23.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,56 @@
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('trading_metacognition_status', 'Get Trading Brain meta-cognition status: engine report cards (A-F grades), frequency adjustments.', {}, async () => {
14
+ const status = await call('metacognition.status', {});
15
+ const lines = ['# Trading Meta-Cognition Status', '', `**Engines:** ${status.totalEngines} | **Metrics:** ${status.cycleMetrics}`, ''];
16
+ if (status.reportCards?.length > 0) {
17
+ lines.push('## Report Cards');
18
+ for (const card of status.reportCards) {
19
+ lines.push(`- **${card.engine}**: Grade **${card.grade}** (${(card.combined_score * 100).toFixed(0)}%)`);
20
+ }
21
+ }
22
+ return textResult(lines.join('\n'));
23
+ });
24
+ server.tool('trading_engine_report', 'Get detailed report card for a Trading Brain engine.', { engine: z.string().describe('Engine name') }, async (params) => {
25
+ const card = await call('metacognition.report', { engine: params.engine });
26
+ if (!card)
27
+ return textResult('No report card yet for this engine.');
28
+ return textResult(`# ${params.engine}: Grade ${card.grade}\nHealth: ${(card.health_score * 100).toFixed(0)}% | Value: ${(card.value_score * 100).toFixed(0)}% | S/N: ${(card.signal_to_noise * 100).toFixed(0)}%`);
29
+ });
30
+ server.tool('trading_auto_experiment_status', 'Get Trading Brain auto-experiment status: running experiments, candidates, results.', {}, async () => {
31
+ const status = await call('autoexperiment.status', {});
32
+ const lines = ['# Trading Auto-Experiments', '', `Total: ${status.totalExperiments} | Running: ${status.running} | Adopted: ${status.adopted} | Rolled Back: ${status.rolledBack}`, ''];
33
+ if (status.candidates?.length > 0) {
34
+ lines.push('## Candidates');
35
+ for (const c of status.candidates)
36
+ lines.push(`- ${c.engine}.${c.name}: ${c.currentValue.toFixed(3)} → ${c.proposedValue.toFixed(3)}`);
37
+ }
38
+ return textResult(lines.join('\n'));
39
+ });
40
+ server.tool('trading_parameter_registry', 'View Trading Brain tunable parameters with values and bounds.', { engine: z.string().optional().describe('Filter by engine') }, async (params) => {
41
+ const allParams = await call('parameter.list', { engine: params.engine });
42
+ const lines = ['# Trading Parameter Registry', '', `**Parameters:** ${allParams?.length ?? 0}`, ''];
43
+ if (allParams?.length > 0) {
44
+ let lastEngine = '';
45
+ for (const p of allParams) {
46
+ if (p.engine !== lastEngine) {
47
+ lines.push(`## ${p.engine}`);
48
+ lastEngine = p.engine;
49
+ }
50
+ lines.push(`- **${p.name}**: ${p.value} [${p.min} – ${p.max}]`);
51
+ }
52
+ }
53
+ return textResult(lines.join('\n'));
54
+ });
55
+ }
56
+ //# 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,344 @@
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('trading_blind_spots', 'Detect Trading Brain knowledge blind spots: areas with high activity but low understanding.', {}, async () => {
14
+ try {
15
+ const result = await call('blindspot.detect', {});
16
+ const lines = ['# Trading 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}** [${bs.type}]: severity ${(bs.severity * 100).toFixed(0)}%${bs.reason ? ` — ${bs.reason}` : ''}`);
21
+ }
22
+ }
23
+ else {
24
+ lines.push('No blind spots detected.');
25
+ }
26
+ return textResult(lines.join('\n'));
27
+ }
28
+ catch (err) {
29
+ return textResult(`Error detecting blind spots: ${err instanceof Error ? err.message : String(err)}`);
30
+ }
31
+ });
32
+ server.tool('trading_meta_trends', 'Get Trading Brain meta-learning trends: learning speed, hypothesis quality, experiment success rates.', { windowCycles: z.number().optional().describe('Number of cycles to analyze (default: 50)') }, async (params) => {
33
+ try {
34
+ const result = await call('metatrend.get', { windowCycles: params.windowCycles });
35
+ const lines = ['# Trading Meta-Learning Trends', ''];
36
+ if (result?.trends?.length > 0) {
37
+ for (const t of result.trends) {
38
+ lines.push(`- **${t.metric}**: ${t.current?.toFixed(3) ?? 'N/A'} (avg: ${t.average?.toFixed(3) ?? 'N/A'}, trend: ${t.direction ?? 'stable'})`);
39
+ }
40
+ }
41
+ else {
42
+ lines.push('No trends available yet.');
43
+ }
44
+ return textResult(lines.join('\n'));
45
+ }
46
+ catch (err) {
47
+ return textResult(`Error getting meta trends: ${err instanceof Error ? err.message : String(err)}`);
48
+ }
49
+ });
50
+ server.tool('trading_long_term_analysis', 'Get Trading Brain long-term learning analysis: growth trajectory, milestones, learning velocity.', { days: z.number().optional().describe('Number of days to analyze (default: 7)') }, async (params) => {
51
+ try {
52
+ const result = await call('metatrend.longterm', { days: params.days });
53
+ const lines = ['# Trading Long-Term Analysis', ''];
54
+ if (result?.summary)
55
+ lines.push(result.summary, '');
56
+ if (result?.milestones?.length > 0) {
57
+ lines.push('## Milestones');
58
+ for (const m of result.milestones)
59
+ lines.push(`- **${m.date ?? m.cycle}**: ${m.description}`);
60
+ }
61
+ if (result?.velocity !== undefined)
62
+ lines.push('', `**Learning Velocity:** ${result.velocity.toFixed(3)} (${result.velocityTrend ?? 'stable'})`);
63
+ if (!result)
64
+ lines.push('Not enough data for long-term analysis.');
65
+ return textResult(lines.join('\n'));
66
+ }
67
+ catch (err) {
68
+ return textResult(`Error in long-term analysis: ${err instanceof Error ? err.message : String(err)}`);
69
+ }
70
+ });
71
+ server.tool('trading_creative_hypotheses', 'Generate creative trading hypotheses by combining unrelated domains, inverting assumptions, or applying analogies.', { count: z.number().optional().describe('Number of hypotheses (default: 3)') }, async (params) => {
72
+ try {
73
+ const result = await call('hypothesis.creative', { count: params.count });
74
+ const hypotheses = Array.isArray(result) ? result : result?.hypotheses ?? [];
75
+ if (!hypotheses.length)
76
+ return textResult('No creative hypotheses generated.');
77
+ const lines = [`# Creative Trading Hypotheses: ${hypotheses.length}`, ''];
78
+ for (const h of hypotheses) {
79
+ lines.push(`- **${h.statement ?? h.title}** (${h.method ?? 'creative'}, confidence: ${h.confidence !== undefined ? (h.confidence * 100).toFixed(0) + '%' : 'N/A'})`);
80
+ if (h.reasoning)
81
+ lines.push(` ${h.reasoning}`);
82
+ }
83
+ return textResult(lines.join('\n'));
84
+ }
85
+ catch (err) {
86
+ return textResult(`Error generating hypotheses: ${err instanceof Error ? err.message : String(err)}`);
87
+ }
88
+ });
89
+ server.tool('trading_challenge_principle', 'Challenge a trading principle using Advocatus Diaboli: find counter-arguments and edge cases.', { statement: z.string().describe('The principle or statement to challenge') }, async (params) => {
90
+ try {
91
+ const result = await call('challenge.principle', { statement: params.statement });
92
+ const lines = [`# Challenge: "${params.statement}"`, ''];
93
+ if (result?.challenges?.length > 0) {
94
+ for (const c of result.challenges)
95
+ lines.push(`- **${c.type ?? 'counter'}**: ${c.argument}`);
96
+ lines.push('');
97
+ }
98
+ if (result?.verdict)
99
+ lines.push(`**Verdict:** ${result.verdict}`);
100
+ if (result?.score !== undefined)
101
+ lines.push(`**Robustness:** ${(result.score * 100).toFixed(0)}%`);
102
+ return textResult(lines.join('\n'));
103
+ }
104
+ catch (err) {
105
+ return textResult(`Error challenging principle: ${err instanceof Error ? err.message : String(err)}`);
106
+ }
107
+ });
108
+ server.tool('trading_dream_retrospective', 'Analyze Trading Brain dream pruning: what was pruned, compressed, or strengthened, and whether decisions were good.', {}, async () => {
109
+ try {
110
+ const result = await call('dream.retrospective', {});
111
+ const lines = ['# Trading Dream Retrospective', ''];
112
+ if (result) {
113
+ lines.push(`**Sessions:** ${result.totalSessions ?? 0} | **Last:** ${result.lastSession ?? 'never'}`, '');
114
+ if (result.pruned?.length > 0) {
115
+ lines.push('## Pruned');
116
+ for (const p of result.pruned)
117
+ lines.push(`- ${p.topic ?? p.description}`);
118
+ lines.push('');
119
+ }
120
+ if (result.compressed?.length > 0) {
121
+ lines.push('## Compressed');
122
+ for (const c of result.compressed)
123
+ lines.push(`- ${c.count ?? 2} items → "${c.result ?? c.topic}"`);
124
+ lines.push('');
125
+ }
126
+ if (result.strengthened?.length > 0) {
127
+ lines.push('## Strengthened');
128
+ for (const s of result.strengthened)
129
+ lines.push(`- ${s.topic}: ${s.oldWeight?.toFixed(3) ?? '?'} → ${s.newWeight?.toFixed(3) ?? '?'}`);
130
+ lines.push('');
131
+ }
132
+ if (result.regrets?.length > 0) {
133
+ lines.push('## Regrets');
134
+ for (const r of result.regrets)
135
+ lines.push(`- ${r.topic}: ${r.reason}`);
136
+ }
137
+ }
138
+ else {
139
+ lines.push('No dream sessions recorded.');
140
+ }
141
+ return textResult(lines.join('\n'));
142
+ }
143
+ catch (err) {
144
+ return textResult(`Error getting dream retrospective: ${err instanceof Error ? err.message : String(err)}`);
145
+ }
146
+ });
147
+ server.tool('trading_cross_brain_dialogue', 'Start cross-brain dialogue from Trading Brain perspective on a topic.', { topic: z.string().describe('Topic or question to discuss') }, async (params) => {
148
+ try {
149
+ const result = await call('dialogue.ask', { topic: params.topic });
150
+ const lines = [`# Cross-Brain Dialogue: "${params.topic}"`, ''];
151
+ if (result?.perspectives?.length > 0) {
152
+ for (const p of result.perspectives) {
153
+ lines.push(`## ${p.brain ?? p.source}`);
154
+ lines.push(p.response ?? p.perspective);
155
+ lines.push('');
156
+ }
157
+ }
158
+ if (result?.synthesis)
159
+ lines.push('## Synthesis', result.synthesis);
160
+ return textResult(lines.join('\n'));
161
+ }
162
+ catch (err) {
163
+ return textResult(`Error in dialogue: ${err instanceof Error ? err.message : String(err)}`);
164
+ }
165
+ });
166
+ server.tool('trading_self_test', 'Self-test all Trading Brain principles: verify against recent evidence, flag contradictions.', {}, async () => {
167
+ try {
168
+ const result = await call('selftest.all', {});
169
+ const lines = ['# Trading Self-Test Results', ''];
170
+ if (result) {
171
+ lines.push(`**Tested:** ${result.tested ?? 0} | **Passed:** ${result.passed ?? 0} | **Failed:** ${result.failed ?? 0}`, '');
172
+ if (result.failures?.length > 0) {
173
+ lines.push('## Failures');
174
+ for (const f of result.failures)
175
+ lines.push(`- **${f.principle}**: ${f.reason}`);
176
+ }
177
+ }
178
+ else {
179
+ lines.push('No principles to test.');
180
+ }
181
+ return textResult(lines.join('\n'));
182
+ }
183
+ catch (err) {
184
+ return textResult(`Error running self-test: ${err instanceof Error ? err.message : String(err)}`);
185
+ }
186
+ });
187
+ server.tool('trading_self_test_report', 'Get Trading Brain understanding report: what it knows, confidence levels, weakest areas.', {}, async () => {
188
+ try {
189
+ const result = await call('selftest.report', {});
190
+ const lines = ['# Trading Understanding Report', ''];
191
+ if (result) {
192
+ if (result.overallConfidence !== undefined)
193
+ lines.push(`**Overall Confidence:** ${(result.overallConfidence * 100).toFixed(0)}%`);
194
+ if (result.totalPrinciples !== undefined)
195
+ lines.push(`**Principles:** ${result.totalPrinciples}`);
196
+ lines.push('');
197
+ if (result.strongestAreas?.length > 0) {
198
+ lines.push('## Strongest');
199
+ for (const a of result.strongestAreas)
200
+ lines.push(`- ${a.topic}: ${(a.confidence * 100).toFixed(0)}%`);
201
+ lines.push('');
202
+ }
203
+ if (result.weakestAreas?.length > 0) {
204
+ lines.push('## Weakest');
205
+ for (const a of result.weakestAreas)
206
+ lines.push(`- ${a.topic}: ${(a.confidence * 100).toFixed(0)}% — ${a.reason}`);
207
+ }
208
+ }
209
+ else {
210
+ lines.push('No understanding data available.');
211
+ }
212
+ return textResult(lines.join('\n'));
213
+ }
214
+ catch (err) {
215
+ return textResult(`Error getting report: ${err instanceof Error ? err.message : String(err)}`);
216
+ }
217
+ });
218
+ server.tool('trading_teach_create', 'Create a teaching package from Trading Brain knowledge for another brain.', { targetBrain: z.string().describe('Target brain (e.g. "brain", "marketing")') }, async (params) => {
219
+ try {
220
+ const result = await call('teach.create', { targetBrain: params.targetBrain });
221
+ const lines = [`# Trading Teaching Package → ${params.targetBrain}`, ''];
222
+ if (result) {
223
+ lines.push(`**Principles:** ${result.principleCount ?? 0} | **Anti-Patterns:** ${result.antiPatternCount ?? 0} | **Strategies:** ${result.strategyCount ?? 0}`);
224
+ if (result.topics?.length > 0) {
225
+ lines.push('', '## Topics');
226
+ for (const t of result.topics)
227
+ lines.push(`- ${t}`);
228
+ }
229
+ }
230
+ else {
231
+ lines.push('Could not create teaching package.');
232
+ }
233
+ return textResult(lines.join('\n'));
234
+ }
235
+ catch (err) {
236
+ return textResult(`Error creating package: ${err instanceof Error ? err.message : String(err)}`);
237
+ }
238
+ });
239
+ server.tool('trading_teach_packages', 'List Trading Brain teaching packages.', { limit: z.number().optional().describe('Max packages (default: 10)') }, async (params) => {
240
+ try {
241
+ const packages = await call('teach.list', { limit: params.limit ?? 10 });
242
+ if (!packages?.length)
243
+ return textResult('No teaching packages created yet.');
244
+ const lines = [`# Trading Teaching Packages: ${packages.length}`, ''];
245
+ for (const p of packages)
246
+ lines.push(`- **${p.targetBrain}** (${p.created_at}): ${p.principleCount ?? 0} principles, status: ${p.status ?? 'created'}`);
247
+ return textResult(lines.join('\n'));
248
+ }
249
+ catch (err) {
250
+ return textResult(`Error listing packages: ${err instanceof Error ? err.message : String(err)}`);
251
+ }
252
+ });
253
+ server.tool('trading_scout_status', 'Get Trading Brain DataScout status: monitored sources, scan times, discovery counts.', {}, async () => {
254
+ try {
255
+ const result = await call('scout.status', {});
256
+ const lines = ['# Trading DataScout Status', ''];
257
+ if (result) {
258
+ lines.push(`**Sources:** ${result.activeSources ?? 0} | **Discoveries:** ${result.totalDiscoveries ?? 0} | **Last Scan:** ${result.lastScan ?? 'never'}`, '');
259
+ if (result.sources?.length > 0) {
260
+ for (const s of result.sources)
261
+ lines.push(`- **${s.name}**: ${s.discoveryCount ?? 0} discoveries`);
262
+ }
263
+ }
264
+ else {
265
+ lines.push('DataScout not initialized.');
266
+ }
267
+ return textResult(lines.join('\n'));
268
+ }
269
+ catch (err) {
270
+ return textResult(`Error getting scout status: ${err instanceof Error ? err.message : String(err)}`);
271
+ }
272
+ });
273
+ server.tool('trading_scout_discoveries', 'Get Trading Brain scout discoveries from monitored sources.', {
274
+ source: z.string().optional().describe('Filter by source'),
275
+ limit: z.number().optional().describe('Max discoveries (default: 20)'),
276
+ }, async (params) => {
277
+ try {
278
+ const discoveries = await call('scout.discoveries', { source: params.source, limit: params.limit ?? 20 });
279
+ if (!discoveries?.length)
280
+ return textResult('No discoveries yet.');
281
+ const lines = [`# Trading Discoveries: ${discoveries.length}`, ''];
282
+ for (const d of discoveries) {
283
+ lines.push(`- **${d.title ?? d.topic}** (${d.source}, ${d.discovered_at ?? d.created_at})${d.relevance !== undefined ? ` — relevance: ${(d.relevance * 100).toFixed(0)}%` : ''}`);
284
+ }
285
+ return textResult(lines.join('\n'));
286
+ }
287
+ catch (err) {
288
+ return textResult(`Error getting discoveries: ${err instanceof Error ? err.message : String(err)}`);
289
+ }
290
+ });
291
+ server.tool('trading_simulate', 'Run what-if simulation on Trading Brain: predict effects of metric changes.', {
292
+ metric: z.string().describe('Metric to simulate (e.g. "win_rate", "drawdown")'),
293
+ multiplier: z.number().describe('Multiplier (e.g. 2.0 = double, 0.5 = halve)'),
294
+ }, async (params) => {
295
+ try {
296
+ const result = await call('simulation.whatif', { metric: params.metric, multiplier: params.multiplier });
297
+ const lines = [`# Trading Simulation: ${params.metric} x${params.multiplier}`, ''];
298
+ if (result?.predictions?.length > 0) {
299
+ for (const p of result.predictions)
300
+ lines.push(`- **${p.metric ?? p.area}**: ${p.currentValue?.toFixed(3) ?? '?'} → ${p.predictedValue?.toFixed(3) ?? '?'}`);
301
+ lines.push('');
302
+ }
303
+ if (result?.risks?.length > 0) {
304
+ lines.push('## Risks');
305
+ for (const r of result.risks)
306
+ lines.push(`- ${r}`);
307
+ }
308
+ if (result?.summary)
309
+ lines.push('', result.summary);
310
+ if (!result)
311
+ lines.push('Not enough data for simulation.');
312
+ return textResult(lines.join('\n'));
313
+ }
314
+ catch (err) {
315
+ return textResult(`Error running simulation: ${err instanceof Error ? err.message : String(err)}`);
316
+ }
317
+ });
318
+ server.tool('trading_emergence_explain', 'Explain an emergence event in Trading Brain: why it occurred and what it means.', { eventId: z.number().describe('Emergence event ID') }, async (params) => {
319
+ try {
320
+ const result = await call('emergence.explain', { eventId: params.eventId });
321
+ const lines = ['# Trading Emergence Explanation', ''];
322
+ if (result?.event) {
323
+ lines.push(`**Event:** ${result.event.title ?? result.event.type} | **Surprise:** ${result.event.surprise_score !== undefined ? (result.event.surprise_score * 100).toFixed(0) + '%' : 'N/A'}`);
324
+ if (result.event.description)
325
+ lines.push(result.event.description);
326
+ lines.push('');
327
+ }
328
+ if (result?.explanation)
329
+ lines.push('## Explanation', result.explanation, '');
330
+ if (result?.contributing_factors?.length > 0) {
331
+ lines.push('## Factors');
332
+ for (const f of result.contributing_factors)
333
+ lines.push(`- ${f}`);
334
+ }
335
+ if (!result)
336
+ lines.push(`No event found with ID ${params.eventId}.`);
337
+ return textResult(lines.join('\n'));
338
+ }
339
+ catch (err) {
340
+ return textResult(`Error explaining emergence: ${err instanceof Error ? err.message : String(err)}`);
341
+ }
342
+ });
343
+ }
344
+ //# 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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"}
@@ -13,10 +13,14 @@ import { registerNarrativeTools } from './narrative-tools.js';
13
13
  import { registerCuriosityTools } from './curiosity-tools.js';
14
14
  import { registerEmergenceTools } from './emergence-tools.js';
15
15
  import { registerDebateTools } from './debate-tools.js';
16
+ import { registerMetacognitionTools } from './metacognition-tools.js';
17
+ import { registerSelfawareTools } from './selfaware-tools.js';
18
+ import { registerMemoryPalaceTools } from './memory-palace-tools.js';
19
+ import { registerGoalTools } from './goal-tools.js';
16
20
  export async function startMcpServer() {
17
21
  await coreStartMcpServer({
18
22
  name: 'trading-brain',
19
- version: '2.20.0',
23
+ version: '2.21.0',
20
24
  entryPoint: path.resolve(import.meta.dirname, '../index.ts'),
21
25
  registerTools: (server, ipc) => {
22
26
  registerTools(server, ipc);
@@ -32,6 +36,10 @@ export async function startMcpServer() {
32
36
  registerCuriosityTools(server, ipc);
33
37
  registerEmergenceTools(server, ipc);
34
38
  registerDebateTools(server, ipc);
39
+ registerMetacognitionTools(server, ipc);
40
+ registerSelfawareTools(server, ipc);
41
+ registerMemoryPalaceTools(server, ipc);
42
+ registerGoalTools(server, ipc);
35
43
  },
36
44
  });
37
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,kBAAkB,CAAC;QACvB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC5D,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7B,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3C,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACrC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,kBAAkB,CAAC;QACvB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC5D,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC7B,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnC,6BAA6B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAC3C,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAChC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACrC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACnC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACpC,yBAAyB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACvC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -43,7 +43,7 @@ import { IpcServer } from '@timmeck/brain-core';
43
43
  import { ApiServer } from './api/server.js';
44
44
  import { McpHttpServer } from './mcp/http-server.js';
45
45
  // Cross-Brain
46
- import { CrossBrainClient, CrossBrainNotifier, CrossBrainSubscriptionManager, CrossBrainCorrelator, WebhookService, ExportService, BackupService, AutonomousResearchScheduler, ResearchOrchestrator, DataMiner, TradingDataMinerAdapter, DreamEngine, ThoughtStream, ConsciousnessServer, PredictionEngine, AttentionEngine, TransferEngine, NarrativeEngine, CuriosityEngine, EmergenceEngine, DebateEngine } from '@timmeck/brain-core';
46
+ import { CrossBrainClient, CrossBrainNotifier, CrossBrainSubscriptionManager, CrossBrainCorrelator, WebhookService, ExportService, BackupService, AutonomousResearchScheduler, ResearchOrchestrator, DataMiner, TradingDataMinerAdapter, DreamEngine, ThoughtStream, ConsciousnessServer, PredictionEngine, AttentionEngine, TransferEngine, NarrativeEngine, CuriosityEngine, EmergenceEngine, DebateEngine, ParameterRegistry, MetaCognitionLayer, AutoExperimentEngine, SelfTestEngine, TeachEngine, DataScout, runDataScoutMigration, SimulationEngine, runSimulationMigration, MemoryPalace, GoalEngine } from '@timmeck/brain-core';
47
47
  export class TradingCore {
48
48
  db = null;
49
49
  ipcServer = null;
@@ -312,6 +312,122 @@ export class TradingCore {
312
312
  this.orchestrator.setDebateEngine(debateEngine);
313
313
  this.debateEngine = debateEngine;
314
314
  services.debateEngine = debateEngine;
315
+ // 11j.11 Meta-Cognition: ParameterRegistry + MetaCognitionLayer + AutoExperimentEngine
316
+ const parameterRegistry = new ParameterRegistry(this.db);
317
+ parameterRegistry.registerAll([
318
+ { engine: 'dream', name: 'prune_threshold', value: 0.15, min: 0.01, max: 0.5, description: 'Synapse prune cutoff weight', category: 'consolidation' },
319
+ { engine: 'dream', name: 'learning_rate', value: 0.15, min: 0.01, max: 0.5, description: 'Dream synapse strengthening rate', category: 'consolidation' },
320
+ { engine: 'dream', name: 'cluster_similarity', value: 0.80, min: 0.5, max: 0.95, description: 'Memory compression similarity threshold', category: 'consolidation' },
321
+ { engine: 'dream', name: 'importance_decay_rate', value: 0.5, min: 0.1, max: 0.9, description: 'Memory importance decay factor', category: 'consolidation' },
322
+ { engine: 'dream', name: 'replay_batch_size', value: 15, min: 5, max: 100, description: 'Memories per replay batch', category: 'consolidation' },
323
+ { engine: 'attention', name: 'decay_rate', value: 0.85, min: 0.5, max: 0.99, description: 'Attention score decay per cycle', category: 'focus' },
324
+ { engine: 'attention', name: 'burst_threshold', value: 3, min: 1, max: 10, description: 'Events to trigger urgency', category: 'focus' },
325
+ { engine: 'attention', name: 'burst_window_ms', value: 180000, min: 30000, max: 600000, description: 'Burst detection window', category: 'focus' },
326
+ { engine: 'curiosity', name: 'exploration_constant', value: 1.41, min: 0.5, max: 3.0, description: 'UCB1 exploration factor', category: 'exploration' },
327
+ { engine: 'curiosity', name: 'gap_threshold', value: 0.6, min: 0.2, max: 0.9, description: 'Knowledge gap detection cutoff', category: 'exploration' },
328
+ { engine: 'curiosity', name: 'explore_cooldown', value: 5, min: 1, max: 20, description: 'Cycles between explorations', category: 'exploration' },
329
+ { engine: 'curiosity', name: 'max_questions_per_topic', value: 10, min: 3, max: 50, description: 'Max questions generated per topic', category: 'exploration' },
330
+ { engine: 'auto_responder', name: 'max_responses_per_cycle', value: 3, min: 1, max: 10, description: 'Max automatic responses per cycle', category: 'response' },
331
+ { engine: 'auto_responder', name: 'cooldown_ms', value: 1800000, min: 60000, max: 7200000, description: 'Cooldown between responses', category: 'response' },
332
+ { engine: 'orchestrator', name: 'distillEvery', value: 5, min: 1, max: 20, description: 'Knowledge distillation frequency', category: 'orchestration' },
333
+ { engine: 'orchestrator', name: 'agendaEvery', value: 3, min: 1, max: 15, description: 'Agenda generation frequency', category: 'orchestration' },
334
+ { engine: 'orchestrator', name: 'reflectEvery', value: 10, min: 3, max: 50, description: 'Journal reflection frequency', category: 'orchestration' },
335
+ ]);
336
+ this.orchestrator.setParameterRegistry(parameterRegistry);
337
+ services.parameterRegistry = parameterRegistry;
338
+ const metaCognitionLayer = new MetaCognitionLayer(this.db);
339
+ this.orchestrator.setMetaCognitionLayer(metaCognitionLayer);
340
+ services.metaCognitionLayer = metaCognitionLayer;
341
+ const autoExperimentEngine = new AutoExperimentEngine(this.db, parameterRegistry, this.orchestrator.experimentEngine, this.orchestrator.selfObserver, metaCognitionLayer);
342
+ autoExperimentEngine.setPredictionEngine(predictionEngine);
343
+ this.orchestrator.setAutoExperimentEngine(autoExperimentEngine);
344
+ services.autoExperimentEngine = autoExperimentEngine;
345
+ // 12n. SelfTestEngine — validates Brain's own understanding
346
+ const selfTestEngine = new SelfTestEngine(this.db);
347
+ selfTestEngine.setKnowledgeDistiller(this.orchestrator.knowledgeDistiller);
348
+ selfTestEngine.setPredictionEngine(predictionEngine);
349
+ selfTestEngine.setHypothesisEngine(researchScheduler.hypothesisEngine);
350
+ selfTestEngine.setThoughtStream(thoughtStream);
351
+ this.orchestrator.setSelfTestEngine(selfTestEngine);
352
+ services.selfTestEngine = selfTestEngine;
353
+ // 12o. TeachEngine — packages knowledge for other brains
354
+ const teachEngine = new TeachEngine(this.db);
355
+ teachEngine.setKnowledgeDistiller(this.orchestrator.knowledgeDistiller);
356
+ teachEngine.setHypothesisEngine(researchScheduler.hypothesisEngine);
357
+ teachEngine.setJournal(this.orchestrator.journal);
358
+ teachEngine.setThoughtStream(thoughtStream);
359
+ this.orchestrator.setTeachEngine(teachEngine);
360
+ services.teachEngine = teachEngine;
361
+ // 12p. DataScout — discovers external data sources
362
+ runDataScoutMigration(this.db);
363
+ const dataScout = new DataScout(this.db);
364
+ dataScout.setThoughtStream(thoughtStream);
365
+ this.orchestrator.setDataScout(dataScout);
366
+ services.dataScout = dataScout;
367
+ // 12q. SimulationEngine — what-if scenario simulations
368
+ runSimulationMigration(this.db);
369
+ const simulationEngine = new SimulationEngine(this.db);
370
+ simulationEngine.setPredictionEngine(predictionEngine);
371
+ simulationEngine.setCausalGraph(researchScheduler.causalGraph);
372
+ simulationEngine.setMetaCognitionLayer(metaCognitionLayer);
373
+ simulationEngine.setThoughtStream(thoughtStream);
374
+ this.orchestrator.setSimulationEngine(simulationEngine);
375
+ services.simulationEngine = simulationEngine;
376
+ // 12r. MemoryPalace — knowledge connection graph
377
+ const memoryPalace = new MemoryPalace(this.db, { brainName: 'trading-brain' });
378
+ memoryPalace.setThoughtStream(thoughtStream);
379
+ memoryPalace.setDataSources({
380
+ getHypotheses: (status, limit) => this.orchestrator.hypothesisEngine.list(status, limit ?? 200),
381
+ getPrinciples: (domain, limit) => this.orchestrator.knowledgeDistiller.getPrinciples(domain, limit ?? 200),
382
+ getAntiPatterns: (domain, limit) => this.orchestrator.knowledgeDistiller.getAntiPatterns(domain, limit ?? 200),
383
+ getExperiments: (status, limit) => this.orchestrator.experimentEngine.list(status, limit ?? 200),
384
+ getJournalEntries: (limit) => this.orchestrator.journal.getEntries(undefined, limit ?? 200),
385
+ getAnomalies: (type, limit) => this.orchestrator.anomalyDetective.getAnomalies(type, limit ?? 200),
386
+ getCuriosityGaps: (limit) => this.curiosityEngine ? this.curiosityEngine.getGaps(limit ?? 100) : [],
387
+ });
388
+ this.orchestrator.setMemoryPalace(memoryPalace);
389
+ services.memoryPalace = memoryPalace;
390
+ // 12s. GoalEngine — autonomous goal setting and tracking
391
+ const goalEngine = new GoalEngine(this.db, { brainName: 'trading-brain' });
392
+ goalEngine.setThoughtStream(thoughtStream);
393
+ goalEngine.setDataSources({
394
+ getPredictionAccuracy: () => {
395
+ try {
396
+ const summary = predictionEngine.getSummary();
397
+ const domains = (summary?.by_domain ?? []);
398
+ return domains.length > 0 ? (domains[0]?.accuracy_rate ?? 0) : 0;
399
+ }
400
+ catch {
401
+ return 0;
402
+ }
403
+ },
404
+ getActiveGaps: () => {
405
+ try {
406
+ return this.curiosityEngine ? this.curiosityEngine.getStatus().activeGaps : 0;
407
+ }
408
+ catch {
409
+ return 0;
410
+ }
411
+ },
412
+ getPrincipleCount: () => {
413
+ try {
414
+ return this.orchestrator.knowledgeDistiller.getPrinciples(undefined, 1000).length;
415
+ }
416
+ catch {
417
+ return 0;
418
+ }
419
+ },
420
+ getExperimentCount: () => {
421
+ try {
422
+ return this.orchestrator.experimentEngine.list(undefined, 1000).length;
423
+ }
424
+ catch {
425
+ return 0;
426
+ }
427
+ },
428
+ });
429
+ this.orchestrator.setGoalEngine(goalEngine);
430
+ services.goalEngine = goalEngine;
315
431
  logger.info('Research orchestrator started (9 engines, feedback loops active, DataMiner bootstrapped, Dream Mode active, Prediction Engine active, Consciousness on :7785)');
316
432
  // 13. IPC Server
317
433
  const router = new IpcRouter(services);