@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.
- package/command-center.html +46 -0
- package/dist/codegen/feature-extractor.js +1 -0
- package/dist/codegen/feature-extractor.js.map +1 -1
- package/dist/curiosity/curiosity-engine.js +2 -2
- package/dist/curiosity/curiosity-engine.js.map +1 -1
- package/dist/debate/debate-engine.js +1 -1
- package/dist/debate/debate-engine.js.map +1 -1
- package/dist/governance/engine-token-budget.d.ts +66 -0
- package/dist/governance/engine-token-budget.js +203 -0
- package/dist/governance/engine-token-budget.js.map +1 -0
- package/dist/governance/governance-layer.d.ts +3 -0
- package/dist/governance/governance-layer.js +24 -1
- package/dist/governance/governance-layer.js.map +1 -1
- package/dist/governance/index.d.ts +2 -0
- package/dist/governance/index.js +1 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/hypothesis/engine.js +1 -1
- package/dist/hypothesis/engine.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/llm-service.d.ts +14 -0
- package/dist/llm/llm-service.js +59 -7
- package/dist/llm/llm-service.js.map +1 -1
- package/dist/llm/middleware.d.ts +1 -0
- package/dist/missions/mission-engine.js +4 -4
- package/dist/missions/mission-engine.js.map +1 -1
- package/dist/narrative/narrative-engine.js +4 -4
- package/dist/narrative/narrative-engine.js.map +1 -1
- package/dist/rag/rag-engine.js +1 -1
- package/dist/rag/rag-engine.js.map +1 -1
- package/dist/research/cycle-outcome-tracker.d.ts +127 -0
- package/dist/research/cycle-outcome-tracker.js +236 -0
- package/dist/research/cycle-outcome-tracker.js.map +1 -0
- package/dist/research/research-orchestrator.d.ts +3 -0
- package/dist/research/research-orchestrator.js +34 -0
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/research/semantic-compressor.js +1 -1
- package/dist/research/semantic-compressor.js.map +1 -1
- package/dist/techradar/daily-digest.js +2 -1
- package/dist/techradar/daily-digest.js.map +1 -1
- package/dist/techradar/relevance-scorer.js +1 -1
- package/dist/techradar/relevance-scorer.js.map +1 -1
- 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(', ')}`);
|