@timmeck/brain-core 2.7.0 → 2.8.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.
package/dist/index.d.ts CHANGED
@@ -89,3 +89,6 @@ export { ResearchJournal, runJournalMigration } from './research/journal.js';
89
89
  export type { JournalEntry, JournalEntryType, Significance, JournalSummary, JournalConfig } from './research/journal.js';
90
90
  export { ResearchOrchestrator } from './research/research-orchestrator.js';
91
91
  export type { ResearchOrchestratorConfig } from './research/research-orchestrator.js';
92
+ export { DataMiner, runDataMinerMigration } from './research/data-miner.js';
93
+ export type { DataMinerAdapter, DataMinerEngines, DataMinerState, MineResult, MinedObservation, MinedCausalEvent, MinedMetric, MinedHypothesisObservation, MinedCrossDomainEvent } from './research/data-miner.js';
94
+ export { BrainDataMinerAdapter, TradingDataMinerAdapter, MarketingDataMinerAdapter } from './research/adapters/index.js';
package/dist/index.js CHANGED
@@ -80,4 +80,7 @@ export { AnomalyDetective, runAnomalyDetectiveMigration } from './research/anoma
80
80
  export { ResearchJournal, runJournalMigration } from './research/journal.js';
81
81
  // ── Research Orchestrator ─────────────────────────────
82
82
  export { ResearchOrchestrator } from './research/research-orchestrator.js';
83
+ // ── DataMiner ────────────────────────────────────────
84
+ export { DataMiner, runDataMinerMigration } from './research/data-miner.js';
85
+ export { BrainDataMinerAdapter, TradingDataMinerAdapter, MarketingDataMinerAdapter } from './research/adapters/index.js';
83
86
  //# sourceMappingURL=index.js.map
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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"}
@@ -13,5 +13,7 @@ export interface McpServerOptions {
13
13
  registerTools: (server: McpServer, ipc: IpcClient) => void;
14
14
  /** Register MCP prompts on the server (optional) */
15
15
  registerPrompts?: (server: McpServer, ipc: IpcClient) => void;
16
+ /** Callback when a tool is called — used for DataMiner/SelfObserver tracking */
17
+ onToolCall?: (toolName: string, durationMs: number, success: boolean) => void;
16
18
  }
17
19
  export declare function startMcpServer(opts: McpServerOptions): Promise<void>;
@@ -51,6 +51,22 @@ export async function startMcpServer(opts) {
51
51
  process.exit(1);
52
52
  }
53
53
  }
54
+ // Wrap IPC client to track tool calls if onToolCall callback is provided
55
+ if (opts.onToolCall) {
56
+ const originalRequest = ipc.request.bind(ipc);
57
+ const onToolCall = opts.onToolCall;
58
+ ipc.request = (method, params) => {
59
+ const start = Date.now();
60
+ let success = true;
61
+ return originalRequest(method, params).then((result) => { try {
62
+ onToolCall(method, Date.now() - start, success);
63
+ }
64
+ catch { /* best effort */ } return result; }, (err) => { success = false; try {
65
+ onToolCall(method, Date.now() - start, success);
66
+ }
67
+ catch { /* best effort */ } throw err; });
68
+ };
69
+ }
54
70
  opts.registerTools(server, ipc);
55
71
  opts.registerPrompts?.(server, ipc);
56
72
  const transport = new StdioServerTransport();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { DataMinerAdapter, MinedObservation, MinedCausalEvent, MinedMetric, MinedHypothesisObservation, MinedCrossDomainEvent } from '../data-miner.js';
3
+ /**
4
+ * DataMiner adapter for the main Brain.
5
+ * Mines: errors, solutions, code_modules, synapses, insights, git_commits, decisions.
6
+ */
7
+ export declare class BrainDataMinerAdapter implements DataMinerAdapter {
8
+ readonly name = "brain";
9
+ mineObservations(db: Database.Database, since: number): MinedObservation[];
10
+ mineCausalEvents(db: Database.Database, since: number): MinedCausalEvent[];
11
+ mineMetrics(db: Database.Database, since: number): MinedMetric[];
12
+ mineHypothesisObservations(db: Database.Database, since: number): MinedHypothesisObservation[];
13
+ mineCrossDomainEvents(db: Database.Database, since: number): MinedCrossDomainEvent[];
14
+ }
@@ -0,0 +1,161 @@
1
+ /**
2
+ * DataMiner adapter for the main Brain.
3
+ * Mines: errors, solutions, code_modules, synapses, insights, git_commits, decisions.
4
+ */
5
+ export class BrainDataMinerAdapter {
6
+ name = 'brain';
7
+ mineObservations(db, since) {
8
+ const observations = [];
9
+ // Error type distribution
10
+ const errors = safeAll(db, `SELECT type, COUNT(*) as cnt, SUM(CASE WHEN resolved = 1 THEN 1 ELSE 0 END) as resolved
11
+ FROM errors WHERE last_seen > ? GROUP BY type`, [isoFromTs(since)]);
12
+ for (const e of errors) {
13
+ observations.push({
14
+ category: 'resolution_rate',
15
+ event_type: 'error:type_stats',
16
+ metrics: { type: e.type, count: e.cnt, resolved: e.resolved, resolution_rate: e.cnt > 0 ? e.resolved / e.cnt : 0 },
17
+ });
18
+ }
19
+ // Solution success rates
20
+ const solutions = safeAll(db, `SELECT id, description, success_count, fail_count FROM solutions WHERE updated_at > ?`, [isoFromTs(since)]);
21
+ for (const s of solutions) {
22
+ const total = s.success_count + s.fail_count;
23
+ observations.push({
24
+ category: 'resolution_rate',
25
+ event_type: 'solution:effectiveness',
26
+ metrics: { solution_id: s.id, success_count: s.success_count, fail_count: s.fail_count, success_rate: total > 0 ? s.success_count / total : 0 },
27
+ });
28
+ }
29
+ // Code module complexity
30
+ const modules = safeAll(db, `SELECT id, file_path, complexity, lines FROM code_modules WHERE updated_at > ?`, [isoFromTs(since)]);
31
+ for (const m of modules) {
32
+ observations.push({
33
+ category: 'tool_usage',
34
+ event_type: 'module:complexity',
35
+ metrics: { module_id: m.id, file_path: m.file_path, complexity: m.complexity ?? 0, lines: m.lines ?? 0 },
36
+ });
37
+ }
38
+ // Synapse network stats
39
+ const synapseStats = safeAll(db, `SELECT relationship, COUNT(*) as cnt, AVG(weight) as avg_weight
40
+ FROM synapses WHERE updated_at > ? GROUP BY relationship`, [isoFromTs(since)]);
41
+ for (const s of synapseStats) {
42
+ observations.push({
43
+ category: 'tool_usage',
44
+ event_type: 'synapse:network_stats',
45
+ metrics: { relationship: s.relationship, count: s.cnt, avg_weight: s.avg_weight },
46
+ });
47
+ }
48
+ // Insight quality
49
+ const insights = safeAll(db, `SELECT id, type, confidence FROM insights WHERE created_at > ?`, [isoFromTs(since)]);
50
+ for (const i of insights) {
51
+ observations.push({
52
+ category: 'query_quality',
53
+ event_type: 'insight:quality',
54
+ metrics: { insight_id: i.id, type: i.type, confidence: i.confidence ?? 0 },
55
+ });
56
+ }
57
+ return observations;
58
+ }
59
+ mineCausalEvents(db, since) {
60
+ const events = [];
61
+ // Errors as causal events
62
+ const errors = safeAll(db, `SELECT id, type, fingerprint, resolved, project_id FROM errors WHERE last_seen > ?`, [isoFromTs(since)]);
63
+ for (const e of errors) {
64
+ events.push({ source: 'brain', type: 'error:occurred', data: { errorId: e.id, errorType: e.type, fingerprint: e.fingerprint, resolved: e.resolved === 1, projectId: e.project_id } });
65
+ }
66
+ // Decisions as causal events
67
+ const decisions = safeAll(db, `SELECT id, title, outcome, project_id FROM decisions WHERE created_at > ?`, [isoFromTs(since)]);
68
+ for (const d of decisions) {
69
+ events.push({ source: 'brain', type: 'decision:made', data: { decisionId: d.id, title: d.title, outcome: d.outcome, projectId: d.project_id } });
70
+ }
71
+ // Git commits as causal events
72
+ const commits = safeAll(db, `SELECT id, hash, project_id, files_changed FROM git_commits WHERE created_at > ?`, [isoFromTs(since)]);
73
+ for (const c of commits) {
74
+ events.push({ source: 'brain', type: 'commit:pushed', data: { commitId: c.id, hash: c.hash, projectId: c.project_id, filesChanged: c.files_changed ?? 0 } });
75
+ }
76
+ return events;
77
+ }
78
+ mineMetrics(db, since) {
79
+ const metrics = [];
80
+ // Error counts by type
81
+ const errorCounts = safeAll(db, `SELECT type, COUNT(*) as cnt FROM errors WHERE last_seen > ? GROUP BY type`, [isoFromTs(since)]);
82
+ for (const e of errorCounts) {
83
+ metrics.push({ name: `error_count:${e.type}`, value: e.cnt });
84
+ }
85
+ // Overall resolution rate
86
+ const resolution = safeGet(db, `SELECT COUNT(*) as total, SUM(CASE WHEN resolved = 1 THEN 1 ELSE 0 END) as resolved FROM errors WHERE last_seen > ?`, [isoFromTs(since)]);
87
+ if (resolution && resolution.total > 0) {
88
+ metrics.push({ name: 'resolution_rate', value: resolution.resolved / resolution.total });
89
+ }
90
+ // Average module complexity
91
+ const complexity = safeGet(db, `SELECT AVG(complexity) as avg_complexity FROM code_modules WHERE complexity IS NOT NULL AND updated_at > ?`, [isoFromTs(since)]);
92
+ if (complexity?.avg_complexity != null) {
93
+ metrics.push({ name: 'avg_module_complexity', value: complexity.avg_complexity });
94
+ }
95
+ // Synapse count
96
+ const synapseCount = safeGet(db, `SELECT COUNT(*) as cnt FROM synapses WHERE updated_at > ?`, [isoFromTs(since)]);
97
+ if (synapseCount) {
98
+ metrics.push({ name: 'synapse_count', value: synapseCount.cnt });
99
+ }
100
+ // Insight count
101
+ const insightCount = safeGet(db, `SELECT COUNT(*) as cnt FROM insights WHERE created_at > ?`, [isoFromTs(since)]);
102
+ if (insightCount) {
103
+ metrics.push({ name: 'insight_count', value: insightCount.cnt });
104
+ }
105
+ return metrics;
106
+ }
107
+ mineHypothesisObservations(db, since) {
108
+ const observations = [];
109
+ // Errors as hypothesis observations
110
+ const errors = safeAll(db, `SELECT type, COUNT(*) as cnt FROM errors WHERE last_seen > ? GROUP BY type`, [isoFromTs(since)]);
111
+ for (const e of errors) {
112
+ observations.push({ source: 'brain', type: 'error:reported', value: e.cnt, metadata: { errorType: e.type } });
113
+ }
114
+ // Solution applications
115
+ const solutions = safeAll(db, `SELECT success, COUNT(*) as cnt FROM error_solutions WHERE applied_at > ? GROUP BY success`, [isoFromTs(since)]);
116
+ for (const s of solutions) {
117
+ observations.push({ source: 'brain', type: s.success ? 'solution:success' : 'solution:failure', value: s.cnt });
118
+ }
119
+ // Insights by type
120
+ const insights = safeAll(db, `SELECT type, COUNT(*) as cnt FROM insights WHERE created_at > ? GROUP BY type`, [isoFromTs(since)]);
121
+ for (const i of insights) {
122
+ observations.push({ source: 'brain', type: 'insight:created', value: i.cnt, metadata: { insightType: i.type } });
123
+ }
124
+ return observations;
125
+ }
126
+ mineCrossDomainEvents(db, since) {
127
+ const events = [];
128
+ // Errors → cross-domain signal for error frequency
129
+ const errorCount = safeGet(db, `SELECT COUNT(*) as cnt FROM errors WHERE last_seen > ?`, [isoFromTs(since)]);
130
+ if (errorCount && errorCount.cnt > 0) {
131
+ events.push({ brain: 'brain', eventType: 'error:batch', data: { count: errorCount.cnt } });
132
+ }
133
+ // Insights → cross-domain signal
134
+ const insightCount = safeGet(db, `SELECT COUNT(*) as cnt FROM insights WHERE created_at > ?`, [isoFromTs(since)]);
135
+ if (insightCount && insightCount.cnt > 0) {
136
+ events.push({ brain: 'brain', eventType: 'insight:batch', data: { count: insightCount.cnt } });
137
+ }
138
+ return events;
139
+ }
140
+ }
141
+ // ── Helpers ─────────────────────────────────────────────
142
+ function isoFromTs(ts) {
143
+ return ts > 0 ? new Date(ts).toISOString() : '1970-01-01T00:00:00.000Z';
144
+ }
145
+ function safeAll(db, sql, params) {
146
+ try {
147
+ return db.prepare(sql).all(...params);
148
+ }
149
+ catch {
150
+ return [];
151
+ }
152
+ }
153
+ function safeGet(db, sql, params) {
154
+ try {
155
+ return db.prepare(sql).get(...params);
156
+ }
157
+ catch {
158
+ return undefined;
159
+ }
160
+ }
161
+ //# sourceMappingURL=brain-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-adapter.js","sourceRoot":"","sources":["../../../src/research/adapters/brain-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { BrainDataMinerAdapter } from './brain-adapter.js';
2
+ export { TradingDataMinerAdapter } from './trading-adapter.js';
3
+ export { MarketingDataMinerAdapter } from './marketing-adapter.js';
@@ -0,0 +1,4 @@
1
+ export { BrainDataMinerAdapter } from './brain-adapter.js';
2
+ export { TradingDataMinerAdapter } from './trading-adapter.js';
3
+ export { MarketingDataMinerAdapter } from './marketing-adapter.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/research/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { DataMinerAdapter, MinedObservation, MinedCausalEvent, MinedMetric, MinedHypothesisObservation, MinedCrossDomainEvent } from '../data-miner.js';
3
+ /**
4
+ * DataMiner adapter for Marketing Brain.
5
+ * Mines: posts + engagement (platform/format performance), campaigns (goal achievement),
6
+ * content_templates (template effectiveness), competitor_posts (benchmarks).
7
+ */
8
+ export declare class MarketingDataMinerAdapter implements DataMinerAdapter {
9
+ readonly name = "marketing-brain";
10
+ mineObservations(db: Database.Database, since: number): MinedObservation[];
11
+ mineCausalEvents(db: Database.Database, since: number): MinedCausalEvent[];
12
+ mineMetrics(db: Database.Database, since: number): MinedMetric[];
13
+ mineHypothesisObservations(db: Database.Database, since: number): MinedHypothesisObservation[];
14
+ mineCrossDomainEvents(db: Database.Database, since: number): MinedCrossDomainEvent[];
15
+ }
@@ -0,0 +1,196 @@
1
+ /**
2
+ * DataMiner adapter for Marketing Brain.
3
+ * Mines: posts + engagement (platform/format performance), campaigns (goal achievement),
4
+ * content_templates (template effectiveness), competitor_posts (benchmarks).
5
+ */
6
+ export class MarketingDataMinerAdapter {
7
+ name = 'marketing-brain';
8
+ mineObservations(db, since) {
9
+ const observations = [];
10
+ // Post performance by platform
11
+ const platformStats = safeAll(db, `SELECT p.platform, COUNT(*) as cnt,
12
+ AVG(COALESCE(e.likes, 0)) as avg_likes,
13
+ AVG(COALESCE(e.shares, 0)) as avg_shares,
14
+ AVG(COALESCE(e.comments, 0)) as avg_comments
15
+ FROM posts p LEFT JOIN engagement e ON e.post_id = p.id
16
+ WHERE p.created_at > ? GROUP BY p.platform`, [isoFromTs(since)]);
17
+ for (const s of platformStats) {
18
+ observations.push({
19
+ category: 'tool_usage',
20
+ event_type: 'post:platform_stats',
21
+ metrics: { platform: s.platform, count: s.cnt, avg_likes: s.avg_likes, avg_shares: s.avg_shares, avg_comments: s.avg_comments },
22
+ });
23
+ }
24
+ // Post performance by format
25
+ const formatStats = safeAll(db, `SELECT p.format, COUNT(*) as cnt, AVG(COALESCE(e.likes, 0)) as avg_likes
26
+ FROM posts p LEFT JOIN engagement e ON e.post_id = p.id
27
+ WHERE p.format IS NOT NULL AND p.created_at > ? GROUP BY p.format`, [isoFromTs(since)]);
28
+ for (const f of formatStats) {
29
+ observations.push({
30
+ category: 'tool_usage',
31
+ event_type: 'post:format_stats',
32
+ metrics: { format: f.format, count: f.cnt, avg_likes: f.avg_likes },
33
+ });
34
+ }
35
+ // Campaign goal achievement
36
+ const campaigns = safeAll(db, `SELECT id, name, status, COALESCE(goal_type, 'unknown') as goal_type,
37
+ COALESCE(goal_target, 0) as goal_target, COALESCE(goal_current, 0) as goal_current
38
+ FROM campaigns WHERE updated_at > ?`, [isoFromTs(since)]);
39
+ for (const c of campaigns) {
40
+ observations.push({
41
+ category: 'query_quality',
42
+ event_type: 'campaign:goal_progress',
43
+ metrics: {
44
+ campaign_id: c.id, name: c.name, status: c.status,
45
+ goal_type: c.goal_type, goal_target: c.goal_target, goal_current: c.goal_current,
46
+ achievement_rate: c.goal_target > 0 ? c.goal_current / c.goal_target : 0,
47
+ },
48
+ });
49
+ }
50
+ // Template effectiveness
51
+ const templates = safeAll(db, `SELECT id, name, COALESCE(use_count, 0) as use_count, COALESCE(avg_engagement, 0) as avg_engagement
52
+ FROM content_templates WHERE updated_at > ?`, [isoFromTs(since)]);
53
+ for (const t of templates) {
54
+ observations.push({
55
+ category: 'tool_usage',
56
+ event_type: 'template:effectiveness',
57
+ metrics: { template_id: t.id, name: t.name, use_count: t.use_count, avg_engagement: t.avg_engagement },
58
+ });
59
+ }
60
+ // Competitor benchmarks
61
+ const competitors = safeAll(db, `SELECT competitor_name, COUNT(*) as cnt, AVG(COALESCE(likes, 0)) as avg_likes
62
+ FROM competitor_posts WHERE created_at > ? GROUP BY competitor_name`, [isoFromTs(since)]);
63
+ for (const c of competitors) {
64
+ observations.push({
65
+ category: 'cross_brain',
66
+ event_type: 'competitor:benchmark',
67
+ metrics: { competitor: c.competitor_name, post_count: c.cnt, avg_likes: c.avg_likes },
68
+ });
69
+ }
70
+ return observations;
71
+ }
72
+ mineCausalEvents(db, since) {
73
+ const events = [];
74
+ // Post publications as causal events
75
+ const posts = safeAll(db, `SELECT id, platform, COALESCE(format, 'unknown') as format, campaign_id
76
+ FROM posts WHERE published_at IS NOT NULL AND created_at > ? ORDER BY created_at LIMIT 500`, [isoFromTs(since)]);
77
+ for (const p of posts) {
78
+ events.push({
79
+ source: 'marketing-brain',
80
+ type: 'post:published',
81
+ data: { postId: p.id, platform: p.platform, format: p.format, campaignId: p.campaign_id },
82
+ });
83
+ }
84
+ // Campaign lifecycle events
85
+ const campaigns = safeAll(db, `SELECT id, name, status FROM campaigns WHERE created_at > ?`, [isoFromTs(since)]);
86
+ for (const c of campaigns) {
87
+ events.push({
88
+ source: 'marketing-brain',
89
+ type: `campaign:${c.status}`,
90
+ data: { campaignId: c.id, name: c.name },
91
+ });
92
+ }
93
+ return events;
94
+ }
95
+ mineMetrics(db, since) {
96
+ const metrics = [];
97
+ // Total post count
98
+ const postCount = safeGet(db, `SELECT COUNT(*) as cnt FROM posts WHERE created_at > ?`, [isoFromTs(since)]);
99
+ if (postCount) {
100
+ metrics.push({ name: 'post_count', value: postCount.cnt });
101
+ }
102
+ // Average engagement (likes + shares + comments)
103
+ const avgEng = safeGet(db, `SELECT AVG(COALESCE(likes, 0) + COALESCE(shares, 0) + COALESCE(comments, 0)) as avg_total
104
+ FROM engagement WHERE created_at > ?`, [isoFromTs(since)]);
105
+ if (avgEng?.avg_total != null) {
106
+ metrics.push({ name: 'avg_engagement', value: avgEng.avg_total });
107
+ }
108
+ // Active campaigns
109
+ const activeCampaigns = safeGet(db, `SELECT COUNT(*) as cnt FROM campaigns WHERE status = 'active'`, []);
110
+ if (activeCampaigns) {
111
+ metrics.push({ name: 'active_campaigns', value: activeCampaigns.cnt });
112
+ }
113
+ // Template count
114
+ const templateCount = safeGet(db, `SELECT COUNT(*) as cnt FROM content_templates WHERE updated_at > ?`, [isoFromTs(since)]);
115
+ if (templateCount) {
116
+ metrics.push({ name: 'template_count', value: templateCount.cnt });
117
+ }
118
+ // Competitor post count
119
+ const compCount = safeGet(db, `SELECT COUNT(*) as cnt FROM competitor_posts WHERE created_at > ?`, [isoFromTs(since)]);
120
+ if (compCount) {
121
+ metrics.push({ name: 'competitor_posts', value: compCount.cnt });
122
+ }
123
+ return metrics;
124
+ }
125
+ mineHypothesisObservations(db, since) {
126
+ const observations = [];
127
+ // Post publications by platform
128
+ const posts = safeAll(db, `SELECT platform, COUNT(*) as cnt FROM posts WHERE published_at IS NOT NULL AND created_at > ? GROUP BY platform`, [isoFromTs(since)]);
129
+ for (const p of posts) {
130
+ observations.push({
131
+ source: 'marketing-brain',
132
+ type: 'post:published',
133
+ value: p.cnt,
134
+ metadata: { platform: p.platform },
135
+ });
136
+ }
137
+ // Engagement by platform
138
+ const engagement = safeAll(db, `SELECT p.platform, AVG(COALESCE(e.likes, 0) + COALESCE(e.shares, 0) + COALESCE(e.comments, 0)) as avg_engagement
139
+ FROM posts p JOIN engagement e ON e.post_id = p.id
140
+ WHERE p.created_at > ? GROUP BY p.platform`, [isoFromTs(since)]);
141
+ for (const e of engagement) {
142
+ observations.push({
143
+ source: 'marketing-brain',
144
+ type: 'engagement:platform',
145
+ value: e.avg_engagement,
146
+ metadata: { platform: e.platform },
147
+ });
148
+ }
149
+ return observations;
150
+ }
151
+ mineCrossDomainEvents(db, since) {
152
+ const events = [];
153
+ // Post batch summary
154
+ const summary = safeGet(db, `SELECT COUNT(*) as total, SUM(CASE WHEN published_at IS NOT NULL THEN 1 ELSE 0 END) as published
155
+ FROM posts WHERE created_at > ?`, [isoFromTs(since)]);
156
+ if (summary && summary.total > 0) {
157
+ events.push({
158
+ brain: 'marketing-brain',
159
+ eventType: 'post:batch',
160
+ data: { count: summary.total, published: summary.published },
161
+ });
162
+ }
163
+ // Campaign summary
164
+ const campaignSummary = safeGet(db, `SELECT COUNT(*) as total, SUM(CASE WHEN status = 'active' THEN 1 ELSE 0 END) as active
165
+ FROM campaigns WHERE created_at > ?`, [isoFromTs(since)]);
166
+ if (campaignSummary && campaignSummary.total > 0) {
167
+ events.push({
168
+ brain: 'marketing-brain',
169
+ eventType: 'campaign:batch',
170
+ data: { count: campaignSummary.total, active: campaignSummary.active },
171
+ });
172
+ }
173
+ return events;
174
+ }
175
+ }
176
+ // ── Helpers ─────────────────────────────────────────────
177
+ function isoFromTs(ts) {
178
+ return ts > 0 ? new Date(ts).toISOString() : '1970-01-01T00:00:00.000Z';
179
+ }
180
+ function safeAll(db, sql, params) {
181
+ try {
182
+ return db.prepare(sql).all(...params);
183
+ }
184
+ catch {
185
+ return [];
186
+ }
187
+ }
188
+ function safeGet(db, sql, params) {
189
+ try {
190
+ return db.prepare(sql).get(...params);
191
+ }
192
+ catch {
193
+ return undefined;
194
+ }
195
+ }
196
+ //# sourceMappingURL=marketing-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketing-adapter.js","sourceRoot":"","sources":["../../../src/research/adapters/marketing-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { DataMinerAdapter, MinedObservation, MinedCausalEvent, MinedMetric, MinedHypothesisObservation, MinedCrossDomainEvent } from '../data-miner.js';
3
+ /**
4
+ * DataMiner adapter for Trading Brain.
5
+ * Mines: trades (win/loss, profit, regime, pair), rules (confidence, win-rate),
6
+ * chains (streak patterns), calibration.
7
+ */
8
+ export declare class TradingDataMinerAdapter implements DataMinerAdapter {
9
+ readonly name = "trading-brain";
10
+ mineObservations(db: Database.Database, since: number): MinedObservation[];
11
+ mineCausalEvents(db: Database.Database, since: number): MinedCausalEvent[];
12
+ mineMetrics(db: Database.Database, since: number): MinedMetric[];
13
+ mineHypothesisObservations(db: Database.Database, since: number): MinedHypothesisObservation[];
14
+ mineCrossDomainEvents(db: Database.Database, since: number): MinedCrossDomainEvent[];
15
+ }
@@ -0,0 +1,165 @@
1
+ /**
2
+ * DataMiner adapter for Trading Brain.
3
+ * Mines: trades (win/loss, profit, regime, pair), rules (confidence, win-rate),
4
+ * chains (streak patterns), calibration.
5
+ */
6
+ export class TradingDataMinerAdapter {
7
+ name = 'trading-brain';
8
+ mineObservations(db, since) {
9
+ const observations = [];
10
+ // Trade outcomes by pair
11
+ const trades = safeAll(db, `SELECT pair, COUNT(*) as cnt, SUM(CASE WHEN win = 1 THEN 1 ELSE 0 END) as wins,
12
+ SUM(COALESCE(profit, 0)) as total_profit
13
+ FROM trades WHERE created_at > ? GROUP BY pair`, [isoFromTs(since)]);
14
+ for (const t of trades) {
15
+ observations.push({
16
+ category: 'tool_usage',
17
+ event_type: 'trade:pair_stats',
18
+ metrics: { pair: t.pair, count: t.cnt, wins: t.wins, win_rate: t.cnt > 0 ? t.wins / t.cnt : 0, total_profit: t.total_profit },
19
+ });
20
+ }
21
+ // Trade outcomes by regime
22
+ const regimes = safeAll(db, `SELECT COALESCE(regime, 'unknown') as regime, COUNT(*) as cnt,
23
+ SUM(CASE WHEN win = 1 THEN 1 ELSE 0 END) as wins
24
+ FROM trades WHERE created_at > ? GROUP BY regime`, [isoFromTs(since)]);
25
+ for (const r of regimes) {
26
+ observations.push({
27
+ category: 'tool_usage',
28
+ event_type: 'trade:regime_stats',
29
+ metrics: { regime: r.regime, count: r.cnt, wins: r.wins, win_rate: r.cnt > 0 ? r.wins / r.cnt : 0 },
30
+ });
31
+ }
32
+ // Rule confidence distribution
33
+ const rules = safeAll(db, `SELECT id, pattern, confidence, COALESCE(win_rate, 0) as win_rate FROM rules WHERE updated_at > ?`, [isoFromTs(since)]);
34
+ for (const r of rules) {
35
+ observations.push({
36
+ category: 'query_quality',
37
+ event_type: 'rule:confidence',
38
+ metrics: { rule_id: r.id, pattern: r.pattern, confidence: r.confidence, win_rate: r.win_rate },
39
+ });
40
+ }
41
+ // Chain/streak patterns
42
+ const chains = safeAll(db, `SELECT pair, type, length FROM chains WHERE created_at > ?`, [isoFromTs(since)]);
43
+ for (const c of chains) {
44
+ observations.push({
45
+ category: 'tool_usage',
46
+ event_type: 'chain:streak',
47
+ metrics: { pair: c.pair, type: c.type, length: c.length },
48
+ });
49
+ }
50
+ return observations;
51
+ }
52
+ mineCausalEvents(db, since) {
53
+ const events = [];
54
+ // Individual trades as causal events
55
+ const trades = safeAll(db, `SELECT id, pair, win, COALESCE(profit, 0) as profit, COALESCE(regime, 'unknown') as regime, fingerprint
56
+ FROM trades WHERE created_at > ? ORDER BY created_at LIMIT 500`, [isoFromTs(since)]);
57
+ for (const t of trades) {
58
+ events.push({
59
+ source: 'trading-brain',
60
+ type: t.win ? 'trade:win' : 'trade:loss',
61
+ data: { tradeId: t.id, pair: t.pair, profit: t.profit, regime: t.regime, fingerprint: t.fingerprint },
62
+ });
63
+ }
64
+ // Rule learning events
65
+ const rules = safeAll(db, `SELECT id, pattern, confidence FROM rules WHERE created_at > ?`, [isoFromTs(since)]);
66
+ for (const r of rules) {
67
+ events.push({
68
+ source: 'trading-brain',
69
+ type: 'rule:learned',
70
+ data: { ruleId: r.id, pattern: r.pattern, confidence: r.confidence },
71
+ });
72
+ }
73
+ return events;
74
+ }
75
+ mineMetrics(db, since) {
76
+ const metrics = [];
77
+ // Overall win rate
78
+ const winRate = safeGet(db, `SELECT COUNT(*) as total, SUM(CASE WHEN win = 1 THEN 1 ELSE 0 END) as wins FROM trades WHERE created_at > ?`, [isoFromTs(since)]);
79
+ if (winRate && winRate.total > 0) {
80
+ metrics.push({ name: 'win_rate', value: winRate.wins / winRate.total });
81
+ metrics.push({ name: 'trade_count', value: winRate.total });
82
+ }
83
+ // Average profit per trade
84
+ const profit = safeGet(db, `SELECT AVG(COALESCE(profit, 0)) as avg_profit FROM trades WHERE created_at > ?`, [isoFromTs(since)]);
85
+ if (profit?.avg_profit != null) {
86
+ metrics.push({ name: 'avg_profit', value: profit.avg_profit });
87
+ }
88
+ // Average rule confidence
89
+ const ruleConf = safeGet(db, `SELECT AVG(confidence) as avg_confidence FROM rules WHERE confidence IS NOT NULL AND updated_at > ?`, [isoFromTs(since)]);
90
+ if (ruleConf?.avg_confidence != null) {
91
+ metrics.push({ name: 'avg_rule_confidence', value: ruleConf.avg_confidence });
92
+ }
93
+ // Max streak length
94
+ const maxStreak = safeGet(db, `SELECT MAX(length) as max_length FROM chains WHERE created_at > ?`, [isoFromTs(since)]);
95
+ if (maxStreak?.max_length != null) {
96
+ metrics.push({ name: 'max_streak_length', value: maxStreak.max_length });
97
+ }
98
+ // Calibration score
99
+ const calibration = safeGet(db, `SELECT overall_accuracy FROM calibration ORDER BY updated_at DESC LIMIT 1`, []);
100
+ if (calibration?.overall_accuracy != null) {
101
+ metrics.push({ name: 'calibration_accuracy', value: calibration.overall_accuracy });
102
+ }
103
+ return metrics;
104
+ }
105
+ mineHypothesisObservations(db, since) {
106
+ const observations = [];
107
+ // Trade wins/losses per pair
108
+ const trades = safeAll(db, `SELECT pair, win, COUNT(*) as cnt FROM trades WHERE created_at > ? GROUP BY pair, win`, [isoFromTs(since)]);
109
+ for (const t of trades) {
110
+ observations.push({
111
+ source: 'trading-brain',
112
+ type: t.win ? 'trade:win' : 'trade:loss',
113
+ value: t.cnt,
114
+ metadata: { pair: t.pair },
115
+ });
116
+ }
117
+ // Chain detections
118
+ const chains = safeAll(db, `SELECT pair, type, length FROM chains WHERE created_at > ?`, [isoFromTs(since)]);
119
+ for (const c of chains) {
120
+ observations.push({
121
+ source: 'trading-brain',
122
+ type: 'chain:detected',
123
+ value: c.length,
124
+ metadata: { pair: c.pair, streakType: c.type },
125
+ });
126
+ }
127
+ return observations;
128
+ }
129
+ mineCrossDomainEvents(db, since) {
130
+ const events = [];
131
+ // Trade batch summary for cross-domain
132
+ const summary = safeGet(db, `SELECT COUNT(*) as total, SUM(CASE WHEN win = 1 THEN 1 ELSE 0 END) as wins,
133
+ SUM(COALESCE(profit, 0)) as total_profit
134
+ FROM trades WHERE created_at > ?`, [isoFromTs(since)]);
135
+ if (summary && summary.total > 0) {
136
+ events.push({
137
+ brain: 'trading-brain',
138
+ eventType: 'trade:batch',
139
+ data: { count: summary.total, wins: summary.wins, win_rate: summary.wins / summary.total, total_profit: summary.total_profit },
140
+ });
141
+ }
142
+ return events;
143
+ }
144
+ }
145
+ // ── Helpers ─────────────────────────────────────────────
146
+ function isoFromTs(ts) {
147
+ return ts > 0 ? new Date(ts).toISOString() : '1970-01-01T00:00:00.000Z';
148
+ }
149
+ function safeAll(db, sql, params) {
150
+ try {
151
+ return db.prepare(sql).all(...params);
152
+ }
153
+ catch {
154
+ return [];
155
+ }
156
+ }
157
+ function safeGet(db, sql, params) {
158
+ try {
159
+ return db.prepare(sql).get(...params);
160
+ }
161
+ catch {
162
+ return undefined;
163
+ }
164
+ }
165
+ //# sourceMappingURL=trading-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading-adapter.js","sourceRoot":"","sources":["../../../src/research/adapters/trading-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { SelfObserver } from './self-observer.js';
3
+ import type { AnomalyDetective } from './anomaly-detective.js';
4
+ import type { CrossDomainEngine } from './cross-domain-engine.js';
5
+ import type { CausalGraph } from '../causal/engine.js';
6
+ import type { HypothesisEngine } from '../hypothesis/engine.js';
7
+ export interface MinedObservation {
8
+ category: 'tool_usage' | 'query_quality' | 'resolution_rate' | 'latency' | 'cross_brain';
9
+ event_type: string;
10
+ metrics: Record<string, unknown>;
11
+ }
12
+ export interface MinedCausalEvent {
13
+ source: string;
14
+ type: string;
15
+ data?: unknown;
16
+ }
17
+ export interface MinedMetric {
18
+ name: string;
19
+ value: number;
20
+ }
21
+ export interface MinedHypothesisObservation {
22
+ source: string;
23
+ type: string;
24
+ value: number;
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ export interface MinedCrossDomainEvent {
28
+ brain: string;
29
+ eventType: string;
30
+ data?: Record<string, unknown>;
31
+ }
32
+ export interface MineResult {
33
+ observations: MinedObservation[];
34
+ causalEvents: MinedCausalEvent[];
35
+ metrics: MinedMetric[];
36
+ hypothesisObservations: MinedHypothesisObservation[];
37
+ crossDomainEvents: MinedCrossDomainEvent[];
38
+ }
39
+ export interface DataMinerAdapter {
40
+ /** Human-readable name for logging. */
41
+ readonly name: string;
42
+ /** Mine observations for SelfObserver from domain tables. */
43
+ mineObservations(db: Database.Database, since: number): MinedObservation[];
44
+ /** Mine causal events for CausalGraph from domain tables. */
45
+ mineCausalEvents(db: Database.Database, since: number): MinedCausalEvent[];
46
+ /** Mine metric values for AnomalyDetective from domain tables. */
47
+ mineMetrics(db: Database.Database, since: number): MinedMetric[];
48
+ /** Mine observations for HypothesisEngine from domain tables. */
49
+ mineHypothesisObservations(db: Database.Database, since: number): MinedHypothesisObservation[];
50
+ /** Mine cross-domain events for CrossDomainEngine from domain tables. */
51
+ mineCrossDomainEvents(db: Database.Database, since: number): MinedCrossDomainEvent[];
52
+ }
53
+ export interface DataMinerEngines {
54
+ selfObserver: SelfObserver;
55
+ anomalyDetective: AnomalyDetective;
56
+ crossDomain: CrossDomainEngine;
57
+ causalGraph?: CausalGraph;
58
+ hypothesisEngine?: HypothesisEngine;
59
+ }
60
+ export interface DataMinerState {
61
+ last_mined_at: number;
62
+ bootstrap_complete: boolean;
63
+ total_observations_mined: number;
64
+ total_causal_events_mined: number;
65
+ total_metrics_mined: number;
66
+ }
67
+ export declare function runDataMinerMigration(db: Database.Database): void;
68
+ export declare class DataMiner {
69
+ private db;
70
+ private adapter;
71
+ private engines;
72
+ private log;
73
+ private state;
74
+ constructor(db: Database.Database, adapter: DataMinerAdapter, engines: DataMinerEngines);
75
+ /** Bootstrap: scan ALL historical data and feed into engines. Only runs once. */
76
+ bootstrap(): void;
77
+ /** Incremental mine: fetch new data since last run and feed into engines. */
78
+ mine(): void;
79
+ /** Get current miner state. */
80
+ getState(): DataMinerState;
81
+ private mineFrom;
82
+ private loadState;
83
+ private saveState;
84
+ }
@@ -0,0 +1,174 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ // ── Migration ───────────────────────────────────────────
3
+ export function runDataMinerMigration(db) {
4
+ db.exec(`
5
+ CREATE TABLE IF NOT EXISTS data_miner_state (
6
+ id INTEGER PRIMARY KEY CHECK (id = 1),
7
+ last_mined_at INTEGER NOT NULL DEFAULT 0,
8
+ bootstrap_complete INTEGER NOT NULL DEFAULT 0,
9
+ total_observations_mined INTEGER NOT NULL DEFAULT 0,
10
+ total_causal_events_mined INTEGER NOT NULL DEFAULT 0,
11
+ total_metrics_mined INTEGER NOT NULL DEFAULT 0,
12
+ updated_at TEXT DEFAULT (datetime('now'))
13
+ );
14
+ INSERT OR IGNORE INTO data_miner_state (id) VALUES (1);
15
+ `);
16
+ }
17
+ // ── DataMiner ───────────────────────────────────────────
18
+ export class DataMiner {
19
+ db;
20
+ adapter;
21
+ engines;
22
+ log = getLogger();
23
+ state;
24
+ constructor(db, adapter, engines) {
25
+ this.db = db;
26
+ this.adapter = adapter;
27
+ this.engines = engines;
28
+ runDataMinerMigration(db);
29
+ this.state = this.loadState();
30
+ }
31
+ /** Bootstrap: scan ALL historical data and feed into engines. Only runs once. */
32
+ bootstrap() {
33
+ if (this.state.bootstrap_complete) {
34
+ this.log.info(`[data-miner] Bootstrap already complete for ${this.adapter.name}`);
35
+ return;
36
+ }
37
+ this.log.info(`[data-miner] Bootstrapping ${this.adapter.name} — scanning all historical data...`);
38
+ const start = Date.now();
39
+ // Mine everything from epoch
40
+ const result = this.mineFrom(0);
41
+ this.state.bootstrap_complete = true;
42
+ this.state.last_mined_at = Date.now();
43
+ this.saveState();
44
+ const duration = Date.now() - start;
45
+ this.log.info(`[data-miner] Bootstrap complete for ${this.adapter.name} in ${duration}ms — ` +
46
+ `${result.observations} observations, ${result.causalEvents} causal events, ` +
47
+ `${result.metrics} metrics, ${result.hypothesisObs} hypothesis observations, ` +
48
+ `${result.crossDomain} cross-domain events`);
49
+ }
50
+ /** Incremental mine: fetch new data since last run and feed into engines. */
51
+ mine() {
52
+ const since = this.state.last_mined_at;
53
+ const now = Date.now();
54
+ const result = this.mineFrom(since);
55
+ this.state.last_mined_at = now;
56
+ this.saveState();
57
+ if (result.total > 0) {
58
+ this.log.info(`[data-miner] Mined ${result.total} items from ${this.adapter.name} ` +
59
+ `(obs: ${result.observations}, causal: ${result.causalEvents}, ` +
60
+ `metrics: ${result.metrics}, hypo: ${result.hypothesisObs}, cross: ${result.crossDomain})`);
61
+ }
62
+ }
63
+ /** Get current miner state. */
64
+ getState() {
65
+ return { ...this.state };
66
+ }
67
+ // ── Internal ─────────────────────────────────────────
68
+ mineFrom(since) {
69
+ let observations = 0;
70
+ let causalEvents = 0;
71
+ let metrics = 0;
72
+ let hypothesisObs = 0;
73
+ let crossDomain = 0;
74
+ // 1. Mine observations → SelfObserver
75
+ try {
76
+ const obs = this.adapter.mineObservations(this.db, since);
77
+ for (const o of obs) {
78
+ this.engines.selfObserver.record({
79
+ category: o.category,
80
+ event_type: o.event_type,
81
+ metrics: o.metrics,
82
+ });
83
+ }
84
+ observations = obs.length;
85
+ this.state.total_observations_mined += observations;
86
+ }
87
+ catch (err) {
88
+ this.log.error(`[data-miner] Error mining observations: ${err.message}`);
89
+ }
90
+ // 2. Mine causal events → CausalGraph
91
+ try {
92
+ const events = this.adapter.mineCausalEvents(this.db, since);
93
+ if (this.engines.causalGraph) {
94
+ for (const e of events) {
95
+ this.engines.causalGraph.recordEvent(e.source, e.type, e.data);
96
+ }
97
+ }
98
+ causalEvents = events.length;
99
+ this.state.total_causal_events_mined += causalEvents;
100
+ }
101
+ catch (err) {
102
+ this.log.error(`[data-miner] Error mining causal events: ${err.message}`);
103
+ }
104
+ // 3. Mine metrics → AnomalyDetective
105
+ try {
106
+ const m = this.adapter.mineMetrics(this.db, since);
107
+ for (const metric of m) {
108
+ this.engines.anomalyDetective.recordMetric(metric.name, metric.value);
109
+ }
110
+ metrics = m.length;
111
+ }
112
+ catch (err) {
113
+ this.log.error(`[data-miner] Error mining metrics: ${err.message}`);
114
+ }
115
+ // 4. Mine hypothesis observations → HypothesisEngine
116
+ try {
117
+ const hypo = this.adapter.mineHypothesisObservations(this.db, since);
118
+ if (this.engines.hypothesisEngine) {
119
+ for (const h of hypo) {
120
+ this.engines.hypothesisEngine.observe({
121
+ source: h.source,
122
+ type: h.type,
123
+ value: h.value,
124
+ timestamp: Date.now(),
125
+ metadata: h.metadata,
126
+ });
127
+ }
128
+ }
129
+ hypothesisObs = hypo.length;
130
+ }
131
+ catch (err) {
132
+ this.log.error(`[data-miner] Error mining hypothesis observations: ${err.message}`);
133
+ }
134
+ // 5. Mine cross-domain events → CrossDomainEngine
135
+ try {
136
+ const cd = this.adapter.mineCrossDomainEvents(this.db, since);
137
+ for (const c of cd) {
138
+ this.engines.crossDomain.recordEvent(c.brain, c.eventType, c.data);
139
+ }
140
+ crossDomain = cd.length;
141
+ }
142
+ catch (err) {
143
+ this.log.error(`[data-miner] Error mining cross-domain events: ${err.message}`);
144
+ }
145
+ const total = observations + causalEvents + metrics + hypothesisObs + crossDomain;
146
+ return { observations, causalEvents, metrics, hypothesisObs, crossDomain, total };
147
+ }
148
+ loadState() {
149
+ const row = this.db.prepare('SELECT * FROM data_miner_state WHERE id = 1').get();
150
+ if (!row) {
151
+ return { last_mined_at: 0, bootstrap_complete: false, total_observations_mined: 0, total_causal_events_mined: 0, total_metrics_mined: 0 };
152
+ }
153
+ return {
154
+ last_mined_at: row.last_mined_at,
155
+ bootstrap_complete: row.bootstrap_complete === 1,
156
+ total_observations_mined: row.total_observations_mined,
157
+ total_causal_events_mined: row.total_causal_events_mined,
158
+ total_metrics_mined: row.total_metrics_mined,
159
+ };
160
+ }
161
+ saveState() {
162
+ this.db.prepare(`
163
+ UPDATE data_miner_state SET
164
+ last_mined_at = ?,
165
+ bootstrap_complete = ?,
166
+ total_observations_mined = ?,
167
+ total_causal_events_mined = ?,
168
+ total_metrics_mined = ?,
169
+ updated_at = datetime('now')
170
+ WHERE id = 1
171
+ `).run(this.state.last_mined_at, this.state.bootstrap_complete ? 1 : 0, this.state.total_observations_mined, this.state.total_causal_events_mined, this.state.total_metrics_mined);
172
+ }
173
+ }
174
+ //# sourceMappingURL=data-miner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-miner.js","sourceRoot":"","sources":["../../src/research/data-miner.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { AnomalyDetective } from './anomaly-detective.js';
10
10
  import { ResearchJournal } from './journal.js';
11
11
  import type { CausalGraph } from '../causal/engine.js';
12
12
  import type { ResearchCycleReport } from './autonomous-scheduler.js';
13
+ import type { DataMiner } from './data-miner.js';
13
14
  export interface ResearchOrchestratorConfig {
14
15
  brainName: string;
15
16
  /** Feedback loop interval in ms. Default: 300_000 (5 min) */
@@ -31,6 +32,7 @@ export declare class ResearchOrchestrator {
31
32
  readonly researchAgenda: ResearchAgendaEngine;
32
33
  readonly anomalyDetective: AnomalyDetective;
33
34
  readonly journal: ResearchJournal;
35
+ private dataMiner;
34
36
  private brainName;
35
37
  private feedbackTimer;
36
38
  private cycleCount;
@@ -39,6 +41,8 @@ export declare class ResearchOrchestrator {
39
41
  private reflectEvery;
40
42
  private log;
41
43
  constructor(db: Database.Database, config: ResearchOrchestratorConfig, causalGraph?: CausalGraph);
44
+ /** Set the DataMiner instance for DB-driven engine feeding. */
45
+ setDataMiner(miner: DataMiner): void;
42
46
  /** Start the autonomous feedback loop timer. */
43
47
  start(intervalMs?: number): void;
44
48
  /** Stop the feedback loop. */
@@ -19,6 +19,7 @@ export class ResearchOrchestrator {
19
19
  researchAgenda;
20
20
  anomalyDetective;
21
21
  journal;
22
+ dataMiner = null;
22
23
  brainName;
23
24
  feedbackTimer = null;
24
25
  cycleCount = 0;
@@ -41,6 +42,10 @@ export class ResearchOrchestrator {
41
42
  this.anomalyDetective = new AnomalyDetective(db, { brainName: config.brainName });
42
43
  this.journal = new ResearchJournal(db, { brainName: config.brainName });
43
44
  }
45
+ /** Set the DataMiner instance for DB-driven engine feeding. */
46
+ setDataMiner(miner) {
47
+ this.dataMiner = miner;
48
+ }
44
49
  /** Start the autonomous feedback loop timer. */
45
50
  start(intervalMs = 300_000) {
46
51
  if (this.feedbackTimer)
@@ -118,6 +123,15 @@ export class ResearchOrchestrator {
118
123
  this.cycleCount++;
119
124
  const start = Date.now();
120
125
  this.log.info(`[orchestrator] ─── Feedback Cycle #${this.cycleCount} ───`);
126
+ // 0. DataMiner: mine new data from DB into engines
127
+ if (this.dataMiner) {
128
+ try {
129
+ this.dataMiner.mine();
130
+ }
131
+ catch (err) {
132
+ this.log.error(`[orchestrator] DataMiner error: ${err.message}`);
133
+ }
134
+ }
121
135
  // 1. Self-observer analyzes accumulated observations → insights
122
136
  const insights = this.selfObserver.analyze();
123
137
  if (insights.length > 0) {
@@ -202,6 +216,7 @@ export class ResearchOrchestrator {
202
216
  return {
203
217
  brainName: this.brainName,
204
218
  feedbackCycles: this.cycleCount,
219
+ dataMiner: this.dataMiner?.getState() ?? null,
205
220
  selfInsights: this.selfObserver.getInsights(undefined, 10),
206
221
  anomalies: this.anomalyDetective.getAnomalies(undefined, 10),
207
222
  experiments: this.experimentEngine.list(undefined, 10),
@@ -1 +1 @@
1
- {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timmeck/brain-core",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "Shared core infrastructure for the Brain ecosystem — IPC, MCP, CLI, DB connection, and utilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",