@timmeck/brain-core 2.36.73 → 2.36.75
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 +74 -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/dashboard/command-center-server.d.ts +2 -0
- package/dist/dashboard/command-center-server.js +19 -0
- package/dist/dashboard/command-center-server.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 +65 -0
- package/dist/governance/engine-token-budget.js +198 -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 +107 -0
- package/dist/research/cycle-outcome-tracker.js +216 -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
|
@@ -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(', ')}`);
|