@timmeck/brain 3.36.53 → 3.36.55

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,65 @@
1
+ import { Command } from 'commander';
2
+ import { withIpc } from '../ipc-helper.js';
3
+ import { c, header, keyValue, divider } from '../colors.js';
4
+ export function codeforgeCommand() {
5
+ const cmd = new Command('codeforge')
6
+ .description('CodeForge — pattern extraction, code generation & auto-apply');
7
+ cmd.command('patterns')
8
+ .description('Show extracted code patterns')
9
+ .action(async () => {
10
+ await withIpc(async (client) => {
11
+ const patterns = await client.request('codeforge.patterns');
12
+ console.log(header(`Code Patterns (${patterns.length})`, '🔍'));
13
+ for (const p of patterns) {
14
+ console.log(` ${c.dim(`#${p.id}`)} ${p.pattern} — ${p.occurrences} occurrences, similarity=${c.value((p.similarity * 100).toFixed(0) + '%')}`);
15
+ }
16
+ console.log(divider());
17
+ });
18
+ });
19
+ cmd.command('products')
20
+ .description('Show code products')
21
+ .option('--status <status>', 'Filter by status (generated, tested, applied, failed)')
22
+ .action(async (opts) => {
23
+ await withIpc(async (client) => {
24
+ const products = await client.request('codeforge.products', { status: opts.status });
25
+ console.log(header(`Code Products (${products.length})`, '📦'));
26
+ for (const p of products) {
27
+ const status = p.status === 'applied' ? c.green(p.status) : p.status === 'failed' ? c.red(p.status) : c.dim(p.status);
28
+ console.log(` ${c.dim(`#${p.id}`)} ${p.name} (${p.type}) — ${status} ${p.files?.length ?? 0} files`);
29
+ }
30
+ console.log(divider());
31
+ });
32
+ });
33
+ cmd.command('apply')
34
+ .description('Apply a code product')
35
+ .argument('<id>', 'Product ID')
36
+ .action(async (id) => {
37
+ await withIpc(async (client) => {
38
+ const result = await client.request('codeforge.apply', { id: parseInt(id, 10) });
39
+ if (result.success) {
40
+ console.log(` ${c.green('Product applied successfully')}`);
41
+ }
42
+ else {
43
+ console.log(` ${c.red('Apply failed')}`);
44
+ }
45
+ });
46
+ });
47
+ cmd.command('status')
48
+ .description('Show CodeForge status')
49
+ .action(async () => {
50
+ await withIpc(async (client) => {
51
+ const status = await client.request('codeforge.status');
52
+ console.log(header('CodeForge Status', '🔧'));
53
+ console.log(keyValue('Patterns', String(status.patterns)));
54
+ console.log(keyValue('Products', String(status.products)));
55
+ console.log(keyValue('Applied', String(status.applied)));
56
+ console.log(keyValue('Success Rate', `${(status.successRate * 100).toFixed(1)}%`));
57
+ console.log(divider());
58
+ });
59
+ });
60
+ cmd.action(async () => {
61
+ await cmd.commands.find(c => c.name() === 'status').parseAsync([], { from: 'user' });
62
+ });
63
+ return cmd;
64
+ }
65
+ //# sourceMappingURL=codeforge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeforge.js","sourceRoot":"","sources":["../../../src/cli/commands/codeforge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function contentCommand(): Command;
@@ -0,0 +1,70 @@
1
+ import { Command } from 'commander';
2
+ import { withIpc } from '../ipc-helper.js';
3
+ import { c, header, keyValue, divider } from '../colors.js';
4
+ export function contentCommand() {
5
+ const cmd = new Command('content')
6
+ .description('ContentForge — autonomous content generation & publishing');
7
+ cmd.command('generate')
8
+ .description('Generate content from a source')
9
+ .argument('<sourceType>', 'Source type: insight, mission, trend, principle')
10
+ .option('--platform <platform>', 'Target platform', 'bluesky')
11
+ .action(async (sourceType, opts) => {
12
+ await withIpc(async (client) => {
13
+ const result = await client.request('content.generate', { sourceType, insight: 'Generated via CLI', noveltyScore: 0.5, platform: opts.platform });
14
+ console.log(` ${c.green('Content generated')} — #${result.id}: ${result.title}`);
15
+ });
16
+ });
17
+ cmd.command('publish')
18
+ .description('Publish a content piece')
19
+ .argument('<id>', 'Content piece ID')
20
+ .action(async (id) => {
21
+ await withIpc(async (client) => {
22
+ const result = await client.request('content.publish', { id: parseInt(id, 10) });
23
+ if (result.success) {
24
+ console.log(` ${c.green('Published')} — post ID: ${result.postId ?? '?'}`);
25
+ }
26
+ else {
27
+ console.log(` ${c.red('Publish failed')}`);
28
+ }
29
+ });
30
+ });
31
+ cmd.command('schedule')
32
+ .description('Show scheduled content')
33
+ .action(async () => {
34
+ await withIpc(async (client) => {
35
+ const schedule = await client.request('content.list');
36
+ console.log(header(`Scheduled Content (${schedule.length})`, '📅'));
37
+ for (const p of schedule) {
38
+ console.log(` ${c.dim(`#${p.id}`)} ${p.title} → ${c.value(p.platform)} ${c.dim(p.scheduledFor ?? 'no time')}`);
39
+ }
40
+ console.log(divider());
41
+ });
42
+ });
43
+ cmd.command('best')
44
+ .description('Show best performing content')
45
+ .option('-n, --limit <n>', 'Number of entries', '10')
46
+ .action(async (opts) => {
47
+ await withIpc(async (client) => {
48
+ const best = await client.request('content.best', { limit: parseInt(opts.limit, 10) });
49
+ console.log(header(`Top Content (${best.length})`, '🏆'));
50
+ for (const p of best) {
51
+ const eng = p.engagement ? `likes=${p.engagement.likes} reposts=${p.engagement.reposts} replies=${p.engagement.replies}` : 'no data';
52
+ console.log(` ${c.dim(`#${p.id}`)} ${p.title} — ${c.value(eng)}`);
53
+ }
54
+ console.log(divider());
55
+ });
56
+ });
57
+ cmd.action(async () => {
58
+ await withIpc(async (client) => {
59
+ const status = await client.request('content.status');
60
+ console.log(header('ContentForge Status', '✍️'));
61
+ console.log(keyValue('Drafts', String(status.drafts)));
62
+ console.log(keyValue('Scheduled', String(status.scheduled)));
63
+ console.log(keyValue('Published', String(status.published)));
64
+ console.log(keyValue('Avg Engagement', status.avgEngagement.toFixed(1)));
65
+ console.log(divider());
66
+ });
67
+ });
68
+ return cmd;
69
+ }
70
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/cli/commands/content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function strategyCommand(): Command;
@@ -0,0 +1,79 @@
1
+ import { Command } from 'commander';
2
+ import { withIpc } from '../ipc-helper.js';
3
+ import { c, header, keyValue, divider } from '../colors.js';
4
+ export function strategyCommand() {
5
+ const cmd = new Command('strategy')
6
+ .description('StrategyForge — autonomous strategy creation, backtesting & execution');
7
+ cmd.command('list')
8
+ .description('Show active strategies')
9
+ .action(async () => {
10
+ await withIpc(async (client) => {
11
+ const strategies = await client.request('strategy.active');
12
+ console.log(header(`Active Strategies (${strategies.length})`, '♟️'));
13
+ for (const s of strategies) {
14
+ const winRate = s.performance?.executions > 0 ? (s.performance.successes / s.performance.executions * 100).toFixed(0) + '%' : '-';
15
+ console.log(` ${c.dim(`#${s.id}`)} ${s.name} (${s.type}) — ${s.rules?.length ?? 0} rules, win=${c.value(winRate)}`);
16
+ }
17
+ console.log(divider());
18
+ });
19
+ });
20
+ cmd.command('create')
21
+ .description('Create a strategy from learned principles')
22
+ .argument('<domain>', 'Knowledge domain (e.g. trading, marketing, research)')
23
+ .action(async (domain) => {
24
+ await withIpc(async (client) => {
25
+ const result = await client.request('strategy.create', { domain });
26
+ if (result) {
27
+ console.log(` ${c.green('Strategy created')} — #${result.id}: ${result.name} (${result.rules?.length ?? 0} rules)`);
28
+ }
29
+ else {
30
+ console.log(` ${c.dim('No principles found for domain:')} ${domain}`);
31
+ }
32
+ });
33
+ });
34
+ cmd.command('performance')
35
+ .description('Show strategy performance')
36
+ .argument('<id>', 'Strategy ID')
37
+ .action(async (id) => {
38
+ await withIpc(async (client) => {
39
+ const perf = await client.request('strategy.performance', { id: parseInt(id, 10) });
40
+ if (perf) {
41
+ console.log(header(`Strategy #${id} Performance`, '📊'));
42
+ console.log(keyValue('Executions', String(perf.executions)));
43
+ console.log(keyValue('Successes', String(perf.successes)));
44
+ console.log(keyValue('Win Rate', perf.executions > 0 ? `${(perf.successes / perf.executions * 100).toFixed(1)}%` : '-'));
45
+ console.log(keyValue('Avg Return', `${(perf.avgReturn * 100).toFixed(2)}%`));
46
+ console.log(divider());
47
+ }
48
+ else {
49
+ console.log(` ${c.red('Strategy not found')}`);
50
+ }
51
+ });
52
+ });
53
+ cmd.command('evolve')
54
+ .description('Evolve new strategy from best active strategies')
55
+ .action(async () => {
56
+ await withIpc(async (client) => {
57
+ const result = await client.request('strategy.evolve');
58
+ if (result) {
59
+ console.log(` ${c.green('Evolved strategy')} — #${result.id}: ${result.name}`);
60
+ }
61
+ else {
62
+ console.log(` ${c.dim('Need at least 2 active strategies to evolve')}`);
63
+ }
64
+ });
65
+ });
66
+ cmd.action(async () => {
67
+ await withIpc(async (client) => {
68
+ const status = await client.request('strategy.status');
69
+ console.log(header('StrategyForge Status', '♟️'));
70
+ console.log(keyValue('Active', String(status.active)));
71
+ console.log(keyValue('Total', String(status.total)));
72
+ console.log(keyValue('Avg Performance', `${(status.avgPerformance * 100).toFixed(1)}%`));
73
+ console.log(keyValue('Top Strategy', status.topStrategy ?? c.dim('none')));
74
+ console.log(divider());
75
+ });
76
+ });
77
+ return cmd;
78
+ }
79
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/cli/commands/strategy.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -48,6 +48,10 @@ import { llmCommand } from './cli/commands/llm.js';
48
48
  import { guardrailCommand } from './cli/commands/guardrail.js';
49
49
  import { roadmapCommand } from './cli/commands/roadmap.js';
50
50
  import { creativeCommand } from './cli/commands/creative.js';
51
+ import { actionCommand } from './cli/commands/action.js';
52
+ import { contentCommand } from './cli/commands/content.js';
53
+ import { codeforgeCommand } from './cli/commands/codeforge.js';
54
+ import { strategyCommand } from './cli/commands/strategy.js';
51
55
  import { getCurrentVersion } from './cli/update-check.js';
52
56
  const program = new Command();
53
57
  program
@@ -84,6 +88,10 @@ program.addCommand(llmCommand());
84
88
  program.addCommand(guardrailCommand());
85
89
  program.addCommand(roadmapCommand());
86
90
  program.addCommand(creativeCommand());
91
+ program.addCommand(actionCommand());
92
+ program.addCommand(contentCommand());
93
+ program.addCommand(codeforgeCommand());
94
+ program.addCommand(strategyCommand());
87
95
  // Hidden command: run MCP server (called by Claude Code)
88
96
  program
89
97
  .command('mcp-server')
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -156,6 +156,13 @@ export interface Services {
156
156
  causalPlanner?: import('@timmeck/brain-core').CausalPlanner;
157
157
  researchRoadmap?: import('@timmeck/brain-core').ResearchRoadmap;
158
158
  creativeEngine?: import('@timmeck/brain-core').CreativeEngine;
159
+ actionBridge?: import('@timmeck/brain-core').ActionBridgeEngine;
160
+ contentForge?: import('@timmeck/brain-core').ContentForge;
161
+ codeForge?: import('@timmeck/brain-core').CodeForge;
162
+ strategyForge?: import('@timmeck/brain-core').StrategyForge;
163
+ signalRouter?: import('@timmeck/brain-core').CrossBrainSignalRouter;
164
+ chatEngine?: import('@timmeck/brain-core').ChatEngine;
165
+ subAgentFactory?: import('@timmeck/brain-core').SubAgentFactory;
159
166
  }
160
167
  type MethodHandler = (params: unknown) => unknown | Promise<unknown>;
161
168
  export declare class IpcRouter {
@@ -1339,6 +1339,111 @@ export class IpcRouter {
1339
1339
  throw new Error('CreativeEngine not available'); return { converted: s.creativeEngine.convertTopInsights(p(params)?.minNovelty ?? 0.5) }; }],
1340
1340
  ['creative.status', () => { if (!s.creativeEngine)
1341
1341
  throw new Error('CreativeEngine not available'); return s.creativeEngine.getStatus(); }],
1342
+ // ─── Action Bridge ───────────────────────────────────
1343
+ ['action.propose', (params) => { if (!s.actionBridge)
1344
+ throw new Error('ActionBridge not available'); return { id: s.actionBridge.propose(p(params)) }; }],
1345
+ ['action.queue', (params) => { if (!s.actionBridge)
1346
+ throw new Error('ActionBridge not available'); return s.actionBridge.getQueue(p(params)?.status); }],
1347
+ ['action.history', (params) => { if (!s.actionBridge)
1348
+ throw new Error('ActionBridge not available'); return s.actionBridge.getHistory(p(params)?.limit); }],
1349
+ ['action.execute', async (params) => { if (!s.actionBridge)
1350
+ throw new Error('ActionBridge not available'); return s.actionBridge.executeAction(p(params).id); }],
1351
+ ['action.outcome', (params) => { if (!s.actionBridge)
1352
+ throw new Error('ActionBridge not available'); s.actionBridge.recordOutcome(p(params).id, p(params).outcome); return { ok: true }; }],
1353
+ ['action.rollback', (params) => { if (!s.actionBridge)
1354
+ throw new Error('ActionBridge not available'); s.actionBridge.rollback(p(params).id); return { ok: true }; }],
1355
+ ['action.stats', (params) => { if (!s.actionBridge)
1356
+ throw new Error('ActionBridge not available'); return { successRate: s.actionBridge.getSuccessRate(p(params)?.type, p(params)?.source) }; }],
1357
+ ['action.status', () => { if (!s.actionBridge)
1358
+ throw new Error('ActionBridge not available'); return s.actionBridge.getStatus(); }],
1359
+ // ─── Content Forge ──────────────────────────────────
1360
+ ['content.generate', (params) => { if (!s.contentForge)
1361
+ throw new Error('ContentForge not available'); const pp = p(params); if (pp.sourceType === 'mission')
1362
+ return s.contentForge.generateFromMission(pp); if (pp.sourceType === 'trend')
1363
+ return s.contentForge.generateFromTrend(pp); if (pp.sourceType === 'principle')
1364
+ return s.contentForge.generateFromPrinciple(pp); return s.contentForge.generateFromInsight(pp, pp.platform); }],
1365
+ ['content.schedule', (params) => { if (!s.contentForge)
1366
+ throw new Error('ContentForge not available'); s.contentForge.schedule(p(params).id, p(params).when); return { ok: true }; }],
1367
+ ['content.publish', async (params) => { if (!s.contentForge)
1368
+ throw new Error('ContentForge not available'); return s.contentForge.publishNow(p(params).id); }],
1369
+ ['content.list', () => { if (!s.contentForge)
1370
+ throw new Error('ContentForge not available'); return s.contentForge.getSchedule(); }],
1371
+ ['content.engagement', (params) => { if (!s.contentForge)
1372
+ throw new Error('ContentForge not available'); s.contentForge.recordEngagement(p(params).id, p(params).metrics); return { ok: true }; }],
1373
+ ['content.best', (params) => { if (!s.contentForge)
1374
+ throw new Error('ContentForge not available'); return s.contentForge.getBestPerforming(p(params)?.limit); }],
1375
+ ['content.optimal', (params) => { if (!s.contentForge)
1376
+ throw new Error('ContentForge not available'); return { time: s.contentForge.getOptimalTime(p(params).platform) }; }],
1377
+ ['content.status', () => { if (!s.contentForge)
1378
+ throw new Error('ContentForge not available'); return s.contentForge.getStatus(); }],
1379
+ // ─── Code Forge ─────────────────────────────────────
1380
+ ['codeforge.patterns', () => { if (!s.codeForge)
1381
+ throw new Error('CodeForge not available'); return s.codeForge.extractPatterns(); }],
1382
+ ['codeforge.generate', (params) => { if (!s.codeForge)
1383
+ throw new Error('CodeForge not available'); return s.codeForge.generateUtility(p(params)); }],
1384
+ ['codeforge.scaffold', (params) => { if (!s.codeForge)
1385
+ throw new Error('CodeForge not available'); return s.codeForge.scaffoldProject(p(params).template, p(params).config ?? {}); }],
1386
+ ['codeforge.test', (params) => { if (!s.codeForge)
1387
+ throw new Error('CodeForge not available'); return s.codeForge.generateTest(p(params).targetFile); }],
1388
+ ['codeforge.apply', (params) => { if (!s.codeForge)
1389
+ throw new Error('CodeForge not available'); return s.codeForge.applyProduct(p(params).id); }],
1390
+ ['codeforge.products', (params) => { if (!s.codeForge)
1391
+ throw new Error('CodeForge not available'); return s.codeForge.getProducts(p(params)?.status); }],
1392
+ ['codeforge.rollback', (params) => { if (!s.codeForge)
1393
+ throw new Error('CodeForge not available'); s.codeForge.rollback(p(params).id); return { ok: true }; }],
1394
+ ['codeforge.status', () => { if (!s.codeForge)
1395
+ throw new Error('CodeForge not available'); return s.codeForge.getStatus(); }],
1396
+ // ─── Strategy Forge ─────────────────────────────────
1397
+ ['strategy.create', (params) => { if (!s.strategyForge)
1398
+ throw new Error('StrategyForge not available'); return s.strategyForge.createFromPrinciples(p(params).domain); }],
1399
+ ['strategy.fromSignals', (params) => { if (!s.strategyForge)
1400
+ throw new Error('StrategyForge not available'); return s.strategyForge.createFromSignals(p(params).signals); }],
1401
+ ['strategy.backtest', (params) => { if (!s.strategyForge)
1402
+ throw new Error('StrategyForge not available'); return s.strategyForge.backtest(p(params).id, p(params).data); }],
1403
+ ['strategy.activate', (params) => { if (!s.strategyForge)
1404
+ throw new Error('StrategyForge not available'); s.strategyForge.activate(p(params).id); return { ok: true }; }],
1405
+ ['strategy.pause', (params) => { if (!s.strategyForge)
1406
+ throw new Error('StrategyForge not available'); s.strategyForge.pause(p(params).id); return { ok: true }; }],
1407
+ ['strategy.execute', (params) => { if (!s.strategyForge)
1408
+ throw new Error('StrategyForge not available'); return s.strategyForge.executeStep(p(params).id); }],
1409
+ ['strategy.evolve', (params) => { if (!s.strategyForge)
1410
+ throw new Error('StrategyForge not available'); return s.strategyForge.evolve(p(params)?.ids); }],
1411
+ ['strategy.active', () => { if (!s.strategyForge)
1412
+ throw new Error('StrategyForge not available'); return s.strategyForge.getActive(); }],
1413
+ ['strategy.performance', (params) => { if (!s.strategyForge)
1414
+ throw new Error('StrategyForge not available'); return s.strategyForge.getPerformance(p(params).id); }],
1415
+ ['strategy.retire', (params) => { if (!s.strategyForge)
1416
+ throw new Error('StrategyForge not available'); s.strategyForge.retire(p(params).id, p(params).reason); return { ok: true }; }],
1417
+ ['strategy.status', () => { if (!s.strategyForge)
1418
+ throw new Error('StrategyForge not available'); return s.strategyForge.getStatus(); }],
1419
+ // ─── Cross-Brain Signals ────────────────────────────────────
1420
+ ['signal.cross.emit', async (params) => { if (!s.signalRouter)
1421
+ throw new Error('SignalRouter not available'); return { signalId: await s.signalRouter.emit(p(params)) }; }],
1422
+ ['signal.cross.history', (params) => { if (!s.signalRouter)
1423
+ throw new Error('SignalRouter not available'); return s.signalRouter.getHistory(p(params).limit); }],
1424
+ ['signal.cross.status', () => { if (!s.signalRouter)
1425
+ throw new Error('SignalRouter not available'); return s.signalRouter.getStatus(); }],
1426
+ // ─── Chat Interface ──────────────────────────────────────────
1427
+ ['chat.message', async (params) => { if (!s.chatEngine)
1428
+ throw new Error('ChatEngine not available'); return s.chatEngine.processMessage(p(params).sessionId ?? 'default', p(params).content); }],
1429
+ ['chat.history', (params) => { if (!s.chatEngine)
1430
+ throw new Error('ChatEngine not available'); return s.chatEngine.getHistory(p(params).sessionId ?? 'default', p(params).limit); }],
1431
+ ['chat.status', () => { if (!s.chatEngine)
1432
+ throw new Error('ChatEngine not available'); return s.chatEngine.getStatus(); }],
1433
+ // ─── Sub-Agent Factory ───────────────────────────────────────
1434
+ ['subagent.list', () => { if (!s.subAgentFactory)
1435
+ throw new Error('SubAgentFactory not available'); return s.subAgentFactory.getStatus(); }],
1436
+ ['subagent.create', (params) => { if (!s.subAgentFactory)
1437
+ throw new Error('SubAgentFactory not available'); const pp = p(params); if (pp.preset)
1438
+ return s.subAgentFactory.createFromPreset(pp.preset, pp.name)?.getStatus(); return s.subAgentFactory.create(pp)?.getStatus(); }],
1439
+ ['subagent.status', (params) => { if (!s.subAgentFactory)
1440
+ throw new Error('SubAgentFactory not available'); const agent = s.subAgentFactory.get(p(params).name); if (!agent)
1441
+ throw new Error(`Agent not found: ${p(params).name}`); return agent.getStatus(); }],
1442
+ ['subagent.run', async (params) => { if (!s.subAgentFactory)
1443
+ throw new Error('SubAgentFactory not available'); const pp = p(params); const agent = s.subAgentFactory.get(pp.name); if (!agent)
1444
+ throw new Error(`Agent not found: ${pp.name}`); return agent.execute(pp.input); }],
1445
+ ['subagent.presets', () => { if (!s.subAgentFactory)
1446
+ throw new Error('SubAgentFactory not available'); return s.subAgentFactory.getPresets(); }],
1342
1447
  // Status (cross-brain)
1343
1448
  ['status', () => ({
1344
1449
  name: 'brain',