@timmeck/brain-core 2.36.74 → 2.36.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/command-center.html +46 -0
  2. package/dist/codegen/feature-extractor.js +1 -0
  3. package/dist/codegen/feature-extractor.js.map +1 -1
  4. package/dist/curiosity/curiosity-engine.js +2 -2
  5. package/dist/curiosity/curiosity-engine.js.map +1 -1
  6. package/dist/debate/debate-engine.js +1 -1
  7. package/dist/debate/debate-engine.js.map +1 -1
  8. package/dist/governance/engine-token-budget.d.ts +66 -0
  9. package/dist/governance/engine-token-budget.js +203 -0
  10. package/dist/governance/engine-token-budget.js.map +1 -0
  11. package/dist/governance/governance-layer.d.ts +3 -0
  12. package/dist/governance/governance-layer.js +24 -1
  13. package/dist/governance/governance-layer.js.map +1 -1
  14. package/dist/governance/index.d.ts +2 -0
  15. package/dist/governance/index.js +1 -0
  16. package/dist/governance/index.js.map +1 -1
  17. package/dist/hypothesis/engine.js +1 -1
  18. package/dist/hypothesis/engine.js.map +1 -1
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.js +3 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/llm/llm-service.d.ts +14 -0
  23. package/dist/llm/llm-service.js +59 -7
  24. package/dist/llm/llm-service.js.map +1 -1
  25. package/dist/llm/middleware.d.ts +1 -0
  26. package/dist/missions/mission-engine.js +4 -4
  27. package/dist/missions/mission-engine.js.map +1 -1
  28. package/dist/narrative/narrative-engine.js +4 -4
  29. package/dist/narrative/narrative-engine.js.map +1 -1
  30. package/dist/rag/rag-engine.js +1 -1
  31. package/dist/rag/rag-engine.js.map +1 -1
  32. package/dist/research/cycle-outcome-tracker.d.ts +127 -0
  33. package/dist/research/cycle-outcome-tracker.js +236 -0
  34. package/dist/research/cycle-outcome-tracker.js.map +1 -0
  35. package/dist/research/research-orchestrator.d.ts +3 -0
  36. package/dist/research/research-orchestrator.js +34 -0
  37. package/dist/research/research-orchestrator.js.map +1 -1
  38. package/dist/research/semantic-compressor.js +1 -1
  39. package/dist/research/semantic-compressor.js.map +1 -1
  40. package/dist/techradar/daily-digest.js +2 -1
  41. package/dist/techradar/daily-digest.js.map +1 -1
  42. package/dist/techradar/relevance-scorer.js +1 -1
  43. package/dist/techradar/relevance-scorer.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rag-engine.js","sourceRoot":"","sources":["../../src/rag/rag-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rag-engine.js","sourceRoot":"","sources":["../../src/rag/rag-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * CycleOutcomeTracker — Measures whether Brain improves over time.
3
+ *
4
+ * Tracks 4 hard metrics per cycle. Each metric documents what it measures,
5
+ * what it does NOT measure, and how it can be gamed.
6
+ *
7
+ * ─── 1. productive_rate ───────────────────────────────────────────────
8
+ * MEASURES: Cycles with at least one measurable artifact (confirmed hypothesis,
9
+ * learned rule, completed experiment, or actionable insight).
10
+ * Anomaly detection alone does NOT count.
11
+ * DOES NOT MEASURE: Whether the artifact is valuable, non-trivial, or useful.
12
+ * A cycle with 3 banale insights counts the same as one with a breakthrough.
13
+ * CAN BE GAMED BY: Generating many trivial insights or low-confidence rules.
14
+ * An agent producing "insight: X happened today" inflates the rate.
15
+ * FORMULA: count(productive) / count(total) over window
16
+ * FUTURE: Split into raw_productive and meaningful_productive (weight by significance).
17
+ *
18
+ * ─── 2. failed_rate ──────────────────────────────────────────────────
19
+ * MEASURES: Cycles that errored OR consumed tokens but produced zero outputs.
20
+ * DOES NOT MEASURE: Cycles that produced useless/wrong outputs. A cycle with
21
+ * garbage output and tokens > 0 is classified "productive", not "failed".
22
+ * CAN BE GAMED BY: Producing any output at all (even trivial) to avoid "failed".
23
+ * FORMULA: count(failed) / count(total) over window
24
+ * FUTURE: Add "wasted_rate" for cycles with output that gets rejected/ignored.
25
+ *
26
+ * ─── 3. novelty_rate (actually: recent-uniqueness-rate) ──────────────
27
+ * MEASURES: Whether output fingerprints were seen in the last 100 cycles.
28
+ * This is repeat suppression / deduplication, not semantic novelty.
29
+ * DOES NOT MEASURE: Whether output is substantively new, relevant, or a real
30
+ * epistemic contribution. Rephrasing old knowledge passes the fingerprint check.
31
+ * CAN BE GAMED BY: Minimally rephrasing old outputs to generate new fingerprints.
32
+ * FORMULA: count(cycles with novel output) / count(productive cycles) over window
33
+ * FUTURE: Semantic similarity check against knowledge base, not just fingerprint dedup.
34
+ *
35
+ * ─── 4. efficiency_rate ──────────────────────────────────────────────
36
+ * MEASURES: Raw output count per 1k tokens consumed.
37
+ * DOES NOT MEASURE: Value per token. Rewards quantity over quality.
38
+ * Fragmenting one insight into 5 small ones quintuples the rate.
39
+ * CAN BE GAMED BY: Producing many tiny, fragmented outputs cheaply.
40
+ * FORMULA: sum(total_outputs) / max(sum(tokens_used), 1) * 1000
41
+ * FUTURE: weighted_efficiency using significance weights (breakthrough=5x, routine=1x).
42
+ *
43
+ * All outcomes are persisted to SQLite and can be aggregated over any time window.
44
+ */
45
+ import type Database from 'better-sqlite3';
46
+ export interface CycleOutcomeRecord {
47
+ cycle: number;
48
+ timestamp: number;
49
+ durationMs: number;
50
+ tokensUsed: number;
51
+ insightsFound: number;
52
+ rulesLearned: number;
53
+ hypothesesConfirmed: number;
54
+ experimentsCompleted: number;
55
+ actionsExecuted: number;
56
+ errored: boolean;
57
+ outputFingerprints: string[];
58
+ }
59
+ export type CycleClassification = 'productive' | 'failed' | 'idle';
60
+ export interface CycleRates {
61
+ window: string;
62
+ totalCycles: number;
63
+ productiveRate: number;
64
+ failedRate: number;
65
+ noveltyRate: number;
66
+ efficiencyRate: number;
67
+ avgDurationMs: number;
68
+ }
69
+ export interface CycleOutcomeRow {
70
+ id: number;
71
+ cycle: number;
72
+ timestamp: number;
73
+ duration_ms: number;
74
+ tokens_used: number;
75
+ insights_found: number;
76
+ rules_learned: number;
77
+ hypotheses_confirmed: number;
78
+ experiments_completed: number;
79
+ actions_executed: number;
80
+ errored: number;
81
+ classification: string;
82
+ novel_outputs: number;
83
+ total_outputs: number;
84
+ output_fingerprints: string;
85
+ }
86
+ export declare class CycleOutcomeTracker {
87
+ private db;
88
+ private log;
89
+ constructor(db: Database.Database);
90
+ private ensureTable;
91
+ /**
92
+ * Record one cycle's outcome.
93
+ * Call this at the end of each ResearchOrchestrator cycle.
94
+ */
95
+ recordOutcome(record: CycleOutcomeRecord): CycleClassification;
96
+ /**
97
+ * Get aggregated rates for a time window.
98
+ * @param windowHours Hours to look back (0 = all time)
99
+ */
100
+ getRates(windowHours?: number): CycleRates;
101
+ /**
102
+ * Get rate history as time series (one point per day).
103
+ * @param days Number of days to look back
104
+ */
105
+ getRateHistory(days?: number): Array<{
106
+ date: string;
107
+ } & CycleRates>;
108
+ /** Get the last N cycle outcomes. */
109
+ getRecent(limit?: number): CycleOutcomeRow[];
110
+ /**
111
+ * Classify a cycle. Rules:
112
+ * - errored → 'failed'
113
+ * - tokens > 0 but totalOutputs === 0 → 'failed' (consumed resources, produced nothing)
114
+ * - totalOutputs > 0 → 'productive'
115
+ * - everything else → 'idle' (no tokens, no output — scheduler skipped or trivial)
116
+ */
117
+ private classify;
118
+ /**
119
+ * Count how many of this cycle's fingerprints are genuinely new
120
+ * (not seen in the last NOVELTY_LOOKBACK_CYCLES cycles).
121
+ */
122
+ private countNovelOutputs;
123
+ }
124
+ /** Create a content fingerprint for novelty detection. */
125
+ export declare function fingerprint(content: string): string;
126
+ /** Run the cycle_outcomes migration (idempotent). */
127
+ export declare function runCycleOutcomeMigration(db: Database.Database): void;
@@ -0,0 +1,236 @@
1
+ /**
2
+ * CycleOutcomeTracker — Measures whether Brain improves over time.
3
+ *
4
+ * Tracks 4 hard metrics per cycle. Each metric documents what it measures,
5
+ * what it does NOT measure, and how it can be gamed.
6
+ *
7
+ * ─── 1. productive_rate ───────────────────────────────────────────────
8
+ * MEASURES: Cycles with at least one measurable artifact (confirmed hypothesis,
9
+ * learned rule, completed experiment, or actionable insight).
10
+ * Anomaly detection alone does NOT count.
11
+ * DOES NOT MEASURE: Whether the artifact is valuable, non-trivial, or useful.
12
+ * A cycle with 3 banale insights counts the same as one with a breakthrough.
13
+ * CAN BE GAMED BY: Generating many trivial insights or low-confidence rules.
14
+ * An agent producing "insight: X happened today" inflates the rate.
15
+ * FORMULA: count(productive) / count(total) over window
16
+ * FUTURE: Split into raw_productive and meaningful_productive (weight by significance).
17
+ *
18
+ * ─── 2. failed_rate ──────────────────────────────────────────────────
19
+ * MEASURES: Cycles that errored OR consumed tokens but produced zero outputs.
20
+ * DOES NOT MEASURE: Cycles that produced useless/wrong outputs. A cycle with
21
+ * garbage output and tokens > 0 is classified "productive", not "failed".
22
+ * CAN BE GAMED BY: Producing any output at all (even trivial) to avoid "failed".
23
+ * FORMULA: count(failed) / count(total) over window
24
+ * FUTURE: Add "wasted_rate" for cycles with output that gets rejected/ignored.
25
+ *
26
+ * ─── 3. novelty_rate (actually: recent-uniqueness-rate) ──────────────
27
+ * MEASURES: Whether output fingerprints were seen in the last 100 cycles.
28
+ * This is repeat suppression / deduplication, not semantic novelty.
29
+ * DOES NOT MEASURE: Whether output is substantively new, relevant, or a real
30
+ * epistemic contribution. Rephrasing old knowledge passes the fingerprint check.
31
+ * CAN BE GAMED BY: Minimally rephrasing old outputs to generate new fingerprints.
32
+ * FORMULA: count(cycles with novel output) / count(productive cycles) over window
33
+ * FUTURE: Semantic similarity check against knowledge base, not just fingerprint dedup.
34
+ *
35
+ * ─── 4. efficiency_rate ──────────────────────────────────────────────
36
+ * MEASURES: Raw output count per 1k tokens consumed.
37
+ * DOES NOT MEASURE: Value per token. Rewards quantity over quality.
38
+ * Fragmenting one insight into 5 small ones quintuples the rate.
39
+ * CAN BE GAMED BY: Producing many tiny, fragmented outputs cheaply.
40
+ * FORMULA: sum(total_outputs) / max(sum(tokens_used), 1) * 1000
41
+ * FUTURE: weighted_efficiency using significance weights (breakthrough=5x, routine=1x).
42
+ *
43
+ * All outcomes are persisted to SQLite and can be aggregated over any time window.
44
+ */
45
+ import { createHash } from 'node:crypto';
46
+ import { getLogger } from '../utils/logger.js';
47
+ // ── Constants ───────────────────────────────────────────
48
+ /** How many recent cycles to check for fingerprint deduplication. */
49
+ const NOVELTY_LOOKBACK_CYCLES = 100;
50
+ // ── Tracker ─────────────────────────────────────────────
51
+ export class CycleOutcomeTracker {
52
+ db;
53
+ log = getLogger();
54
+ constructor(db) {
55
+ this.db = db;
56
+ this.ensureTable();
57
+ }
58
+ ensureTable() {
59
+ this.db.exec(`
60
+ CREATE TABLE IF NOT EXISTS cycle_outcomes (
61
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
62
+ cycle INTEGER NOT NULL,
63
+ timestamp INTEGER NOT NULL,
64
+ duration_ms INTEGER NOT NULL DEFAULT 0,
65
+ tokens_used INTEGER NOT NULL DEFAULT 0,
66
+ insights_found INTEGER NOT NULL DEFAULT 0,
67
+ rules_learned INTEGER NOT NULL DEFAULT 0,
68
+ hypotheses_confirmed INTEGER NOT NULL DEFAULT 0,
69
+ experiments_completed INTEGER NOT NULL DEFAULT 0,
70
+ actions_executed INTEGER NOT NULL DEFAULT 0,
71
+ errored INTEGER NOT NULL DEFAULT 0,
72
+ classification TEXT NOT NULL DEFAULT 'idle',
73
+ novel_outputs INTEGER NOT NULL DEFAULT 0,
74
+ total_outputs INTEGER NOT NULL DEFAULT 0,
75
+ output_fingerprints TEXT NOT NULL DEFAULT '[]',
76
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
77
+ );
78
+ CREATE INDEX IF NOT EXISTS idx_cycle_outcomes_cycle ON cycle_outcomes(cycle);
79
+ CREATE INDEX IF NOT EXISTS idx_cycle_outcomes_ts ON cycle_outcomes(timestamp);
80
+ `);
81
+ }
82
+ /**
83
+ * Record one cycle's outcome.
84
+ * Call this at the end of each ResearchOrchestrator cycle.
85
+ */
86
+ recordOutcome(record) {
87
+ const totalOutputs = record.insightsFound + record.rulesLearned
88
+ + record.hypothesesConfirmed + record.experimentsCompleted + record.actionsExecuted;
89
+ const classification = this.classify(record, totalOutputs);
90
+ const novelOutputs = this.countNovelOutputs(record.cycle, record.outputFingerprints);
91
+ this.db.prepare(`
92
+ INSERT INTO cycle_outcomes
93
+ (cycle, timestamp, duration_ms, tokens_used, insights_found, rules_learned,
94
+ hypotheses_confirmed, experiments_completed, actions_executed, errored,
95
+ classification, novel_outputs, total_outputs, output_fingerprints)
96
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
97
+ `).run(record.cycle, record.timestamp, record.durationMs, record.tokensUsed, record.insightsFound, record.rulesLearned, record.hypothesesConfirmed, record.experimentsCompleted, record.actionsExecuted, record.errored ? 1 : 0, classification, novelOutputs, totalOutputs, JSON.stringify(record.outputFingerprints));
98
+ this.log.debug(`[CycleOutcome] Cycle #${record.cycle}: ${classification}, ${totalOutputs} outputs (${novelOutputs} novel), ${record.tokensUsed} tokens`);
99
+ return classification;
100
+ }
101
+ /**
102
+ * Get aggregated rates for a time window.
103
+ * @param windowHours Hours to look back (0 = all time)
104
+ */
105
+ getRates(windowHours = 0) {
106
+ const windowLabel = windowHours === 0 ? 'all'
107
+ : windowHours <= 24 ? `${windowHours}h`
108
+ : `${Math.round(windowHours / 24)}d`;
109
+ const whereClause = windowHours > 0
110
+ ? `WHERE timestamp > ${Date.now() - windowHours * 3_600_000}`
111
+ : '';
112
+ const rows = this.db.prepare(`
113
+ SELECT
114
+ COUNT(*) as total,
115
+ SUM(CASE WHEN classification = 'productive' THEN 1 ELSE 0 END) as productive,
116
+ SUM(CASE WHEN classification = 'failed' THEN 1 ELSE 0 END) as failed,
117
+ SUM(CASE WHEN classification = 'productive' AND novel_outputs > 0 THEN 1 ELSE 0 END) as novel_productive,
118
+ SUM(total_outputs) as total_outputs,
119
+ SUM(tokens_used) as total_tokens,
120
+ AVG(duration_ms) as avg_duration
121
+ FROM cycle_outcomes ${whereClause}
122
+ `).get();
123
+ if (!rows || rows.total === 0) {
124
+ return {
125
+ window: windowLabel, totalCycles: 0,
126
+ productiveRate: 0, failedRate: 0, noveltyRate: 0, efficiencyRate: 0, avgDurationMs: 0,
127
+ };
128
+ }
129
+ return {
130
+ window: windowLabel,
131
+ totalCycles: rows.total,
132
+ productiveRate: rows.productive / rows.total,
133
+ failedRate: rows.failed / rows.total,
134
+ noveltyRate: rows.productive > 0 ? rows.novel_productive / rows.productive : 0,
135
+ efficiencyRate: (rows.total_outputs / Math.max(rows.total_tokens, 1)) * 1000,
136
+ avgDurationMs: rows.avg_duration,
137
+ };
138
+ }
139
+ /**
140
+ * Get rate history as time series (one point per day).
141
+ * @param days Number of days to look back
142
+ */
143
+ getRateHistory(days = 30) {
144
+ const since = Date.now() - days * 86_400_000;
145
+ const rows = this.db.prepare(`
146
+ SELECT
147
+ date(created_at) as day,
148
+ COUNT(*) as total,
149
+ SUM(CASE WHEN classification = 'productive' THEN 1 ELSE 0 END) as productive,
150
+ SUM(CASE WHEN classification = 'failed' THEN 1 ELSE 0 END) as failed,
151
+ SUM(CASE WHEN classification = 'productive' AND novel_outputs > 0 THEN 1 ELSE 0 END) as novel_productive,
152
+ SUM(total_outputs) as total_outputs,
153
+ SUM(tokens_used) as total_tokens,
154
+ AVG(duration_ms) as avg_duration
155
+ FROM cycle_outcomes
156
+ WHERE timestamp > ?
157
+ GROUP BY day
158
+ ORDER BY day
159
+ `).all(since);
160
+ return rows.map(r => ({
161
+ date: r.day,
162
+ window: '1d',
163
+ totalCycles: r.total,
164
+ productiveRate: r.productive / r.total,
165
+ failedRate: r.failed / r.total,
166
+ noveltyRate: r.productive > 0 ? r.novel_productive / r.productive : 0,
167
+ efficiencyRate: (r.total_outputs / Math.max(r.total_tokens, 1)) * 1000,
168
+ avgDurationMs: r.avg_duration,
169
+ }));
170
+ }
171
+ /** Get the last N cycle outcomes. */
172
+ getRecent(limit = 20) {
173
+ return this.db.prepare(`
174
+ SELECT * FROM cycle_outcomes ORDER BY cycle DESC LIMIT ?
175
+ `).all(limit);
176
+ }
177
+ // ── Classification ────────────────────────────────────
178
+ /**
179
+ * Classify a cycle. Rules:
180
+ * - errored → 'failed'
181
+ * - tokens > 0 but totalOutputs === 0 → 'failed' (consumed resources, produced nothing)
182
+ * - totalOutputs > 0 → 'productive'
183
+ * - everything else → 'idle' (no tokens, no output — scheduler skipped or trivial)
184
+ */
185
+ classify(record, totalOutputs) {
186
+ if (record.errored)
187
+ return 'failed';
188
+ if (totalOutputs > 0)
189
+ return 'productive';
190
+ if (record.tokensUsed > 0)
191
+ return 'failed'; // consumed tokens but produced nothing
192
+ return 'idle';
193
+ }
194
+ // ── Novelty detection ─────────────────────────────────
195
+ /**
196
+ * Count how many of this cycle's fingerprints are genuinely new
197
+ * (not seen in the last NOVELTY_LOOKBACK_CYCLES cycles).
198
+ */
199
+ countNovelOutputs(currentCycle, fingerprints) {
200
+ if (fingerprints.length === 0)
201
+ return 0;
202
+ // Get all fingerprints from recent cycles
203
+ const recentRows = this.db.prepare(`
204
+ SELECT output_fingerprints FROM cycle_outcomes
205
+ WHERE cycle > ? AND cycle < ?
206
+ ORDER BY cycle DESC
207
+ `).all(currentCycle - NOVELTY_LOOKBACK_CYCLES, currentCycle);
208
+ const seenFingerprints = new Set();
209
+ for (const row of recentRows) {
210
+ try {
211
+ const fps = JSON.parse(row.output_fingerprints);
212
+ for (const fp of fps)
213
+ seenFingerprints.add(fp);
214
+ }
215
+ catch { /* skip malformed */ }
216
+ }
217
+ let novel = 0;
218
+ for (const fp of fingerprints) {
219
+ if (!seenFingerprints.has(fp))
220
+ novel++;
221
+ }
222
+ return novel;
223
+ }
224
+ }
225
+ // ── Utility ─────────────────────────────────────────────
226
+ /** Create a content fingerprint for novelty detection. */
227
+ export function fingerprint(content) {
228
+ // Normalize whitespace and case, then hash
229
+ const normalized = content.toLowerCase().replace(/\s+/g, ' ').trim();
230
+ return createHash('sha256').update(normalized).digest('hex').slice(0, 16);
231
+ }
232
+ /** Run the cycle_outcomes migration (idempotent). */
233
+ export function runCycleOutcomeMigration(db) {
234
+ new CycleOutcomeTracker(db);
235
+ }
236
+ //# sourceMappingURL=cycle-outcome-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cycle-outcome-tracker.js","sourceRoot":"","sources":["../../src/research/cycle-outcome-tracker.ts"],"names":[],"mappings":"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"}
@@ -142,6 +142,7 @@ export declare class ResearchOrchestrator {
142
142
  private loopDetector;
143
143
  private governanceLayer;
144
144
  private adaptiveScheduler;
145
+ private cycleOutcomeTracker;
145
146
  private lastAutoMissionTime;
146
147
  private lastGoalMissionTime;
147
148
  private roadmapBootstrapped;
@@ -177,6 +178,8 @@ export declare class ResearchOrchestrator {
177
178
  setOnSuggestion(callback: (suggestions: string[]) => void): void;
178
179
  /** Set the AdaptiveScheduler for dynamic cycle intervals. */
179
180
  setAdaptiveScheduler(scheduler: AdaptiveScheduler): void;
181
+ /** Set the CycleOutcomeTracker for long-term cycle metrics. */
182
+ setCycleOutcomeTracker(tracker: import('./cycle-outcome-tracker.js').CycleOutcomeTracker): void;
180
183
  /** Get the AdaptiveScheduler instance. */
181
184
  getAdaptiveScheduler(): AdaptiveScheduler | null;
182
185
  /** Set the DataMiner instance for DB-driven engine feeding. */
@@ -90,6 +90,7 @@ export class ResearchOrchestrator {
90
90
  loopDetector = null;
91
91
  governanceLayer = null;
92
92
  adaptiveScheduler = null;
93
+ cycleOutcomeTracker = null;
93
94
  lastAutoMissionTime = 0;
94
95
  lastGoalMissionTime = 0;
95
96
  roadmapBootstrapped = false;
@@ -151,6 +152,10 @@ export class ResearchOrchestrator {
151
152
  setAdaptiveScheduler(scheduler) {
152
153
  this.adaptiveScheduler = scheduler;
153
154
  }
155
+ /** Set the CycleOutcomeTracker for long-term cycle metrics. */
156
+ setCycleOutcomeTracker(tracker) {
157
+ this.cycleOutcomeTracker = tracker;
158
+ }
154
159
  /** Get the AdaptiveScheduler instance. */
155
160
  getAdaptiveScheduler() {
156
161
  return this.adaptiveScheduler;
@@ -3143,6 +3148,35 @@ export class ResearchOrchestrator {
3143
3148
  durationMs: duration,
3144
3149
  });
3145
3150
  }
3151
+ // Cycle Outcome Tracking: long-term productive/failed/novelty/efficiency rates
3152
+ if (this.cycleOutcomeTracker) {
3153
+ try {
3154
+ const { fingerprint } = await import('./cycle-outcome-tracker.js');
3155
+ const hypSummary = this.hypothesisEngine.getSummary();
3156
+ const llmStats = this.llmService?.getStats?.();
3157
+ // Build output fingerprints from this cycle's concrete artifacts
3158
+ const fps = [];
3159
+ for (const ins of insights.slice(0, 10)) {
3160
+ fps.push(fingerprint(ins.title ?? ins.type ?? JSON.stringify(ins)));
3161
+ }
3162
+ this.cycleOutcomeTracker.recordOutcome({
3163
+ cycle: this.cycleCount,
3164
+ timestamp: Date.now(),
3165
+ durationMs: duration,
3166
+ tokensUsed: llmStats?.tokensThisHour ?? 0,
3167
+ insightsFound: insights.length,
3168
+ rulesLearned: 0,
3169
+ hypothesesConfirmed: hypSummary.confirmed ?? 0,
3170
+ experimentsCompleted: 0, // tracked externally via AutoExperimentEngine
3171
+ actionsExecuted: 0,
3172
+ errored: false,
3173
+ outputFingerprints: fps,
3174
+ });
3175
+ }
3176
+ catch (err) {
3177
+ this.log.debug(`[orchestrator] CycleOutcomeTracker error: ${err.message}`);
3178
+ }
3179
+ }
3146
3180
  // Step-profiling summary: log slow steps if any
3147
3181
  if (stepTimings.length > 0) {
3148
3182
  this.log.warn(`[orchestrator] Cycle #${this.cycleCount} slow steps: ${stepTimings.map(s => `${s.step}(${s.ms}ms)`).join(', ')}`);