@timmeck/brain-core 2.36.53 → 2.36.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/command-center.html +53 -0
- package/dist/causal/causal-planner.d.ts +45 -0
- package/dist/causal/causal-planner.js +135 -0
- package/dist/causal/causal-planner.js.map +1 -0
- package/dist/creative/creative-engine.d.ts +81 -0
- package/dist/creative/creative-engine.js +289 -0
- package/dist/creative/creative-engine.js.map +1 -0
- package/dist/creative/index.d.ts +2 -0
- package/dist/creative/index.js +2 -0
- package/dist/creative/index.js.map +1 -0
- package/dist/dream/dream-engine.js +3 -5
- package/dist/dream/dream-engine.js.map +1 -1
- package/dist/goals/research-roadmap.d.ts +73 -0
- package/dist/goals/research-roadmap.js +231 -0
- package/dist/goals/research-roadmap.js.map +1 -0
- package/dist/guardrails/guardrail-engine.d.ts +82 -0
- package/dist/guardrails/guardrail-engine.js +279 -0
- package/dist/guardrails/guardrail-engine.js.map +1 -0
- package/dist/guardrails/index.d.ts +2 -0
- package/dist/guardrails/index.js +2 -0
- package/dist/guardrails/index.js.map +1 -0
- package/dist/index.d.ts +12 -2
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/anthropic-provider.d.ts +2 -0
- package/dist/llm/anthropic-provider.js +27 -2
- package/dist/llm/anthropic-provider.js.map +1 -1
- package/dist/llm/index.d.ts +2 -2
- package/dist/llm/ollama-provider.d.ts +3 -0
- package/dist/llm/ollama-provider.js +28 -6
- package/dist/llm/ollama-provider.js.map +1 -1
- package/dist/llm/provider.d.ts +3 -1
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/structured-output.d.ts +6 -1
- package/dist/llm/structured-output.js.map +1 -1
- package/dist/mcp/vision-tools.d.ts +64 -0
- package/dist/mcp/vision-tools.js +106 -0
- package/dist/mcp/vision-tools.js.map +1 -0
- package/dist/narrative/narrative-engine.js +6 -0
- package/dist/narrative/narrative-engine.js.map +1 -1
- package/dist/research/research-orchestrator.d.ts +12 -0
- package/dist/research/research-orchestrator.js +118 -3
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/self-modification/self-modification-engine.js +14 -1
- package/dist/self-modification/self-modification-engine.js.map +1 -1
- package/package.json +1 -1
|
@@ -27,7 +27,12 @@ export interface JsonBlock {
|
|
|
27
27
|
type: 'json';
|
|
28
28
|
data: unknown;
|
|
29
29
|
}
|
|
30
|
-
export
|
|
30
|
+
export interface ImageBlock {
|
|
31
|
+
type: 'image';
|
|
32
|
+
data: string;
|
|
33
|
+
mediaType: 'image/jpeg' | 'image/png' | 'image/webp';
|
|
34
|
+
}
|
|
35
|
+
export type ContentBlock = TextBlock | ReasoningBlock | ToolCallBlock | CitationBlock | JsonBlock | ImageBlock;
|
|
31
36
|
export interface StructuredLLMResponse {
|
|
32
37
|
/** Full raw text (for backwards-compat) */
|
|
33
38
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../src/llm/structured-output.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"structured-output.js","sourceRoot":"","sources":["../../src/llm/structured-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vision MCP Tools — Image analysis via LLM Vision
|
|
3
|
+
*
|
|
4
|
+
* Tools:
|
|
5
|
+
* - llm_analyze_image: Analyze an image file with a question
|
|
6
|
+
* - llm_analyze_screenshot: Take a screenshot of a URL and analyze it
|
|
7
|
+
*/
|
|
8
|
+
import type { LLMProvider } from '../llm/provider.js';
|
|
9
|
+
import type { ImageBlock } from '../llm/structured-output.js';
|
|
10
|
+
export interface VisionToolDeps {
|
|
11
|
+
llmProvider: LLMProvider;
|
|
12
|
+
playwrightAdapter?: {
|
|
13
|
+
extract: (url: string, opts?: {
|
|
14
|
+
screenshot?: boolean;
|
|
15
|
+
}) => Promise<{
|
|
16
|
+
content: string;
|
|
17
|
+
screenshot?: Buffer;
|
|
18
|
+
}>;
|
|
19
|
+
} | null;
|
|
20
|
+
}
|
|
21
|
+
/** Create an ImageBlock from a file path. */
|
|
22
|
+
export declare function imageBlockFromFile(filePath: string): ImageBlock;
|
|
23
|
+
/** Create an ImageBlock from a Buffer. */
|
|
24
|
+
export declare function imageBlockFromBuffer(buffer: Buffer, mediaType?: ImageBlock['mediaType']): ImageBlock;
|
|
25
|
+
/** Get the MCP tool definitions for vision. */
|
|
26
|
+
export declare function getVisionToolDefinitions(): ({
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: "object";
|
|
31
|
+
properties: {
|
|
32
|
+
imagePath: {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
question: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
url?: undefined;
|
|
41
|
+
};
|
|
42
|
+
required: string[];
|
|
43
|
+
};
|
|
44
|
+
} | {
|
|
45
|
+
name: string;
|
|
46
|
+
description: string;
|
|
47
|
+
inputSchema: {
|
|
48
|
+
type: "object";
|
|
49
|
+
properties: {
|
|
50
|
+
url: {
|
|
51
|
+
type: string;
|
|
52
|
+
description: string;
|
|
53
|
+
};
|
|
54
|
+
question: {
|
|
55
|
+
type: string;
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
imagePath?: undefined;
|
|
59
|
+
};
|
|
60
|
+
required: string[];
|
|
61
|
+
};
|
|
62
|
+
})[];
|
|
63
|
+
/** Handle vision tool calls. */
|
|
64
|
+
export declare function handleVisionTool(toolName: string, args: Record<string, unknown>, deps: VisionToolDeps): Promise<string>;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vision MCP Tools — Image analysis via LLM Vision
|
|
3
|
+
*
|
|
4
|
+
* Tools:
|
|
5
|
+
* - llm_analyze_image: Analyze an image file with a question
|
|
6
|
+
* - llm_analyze_screenshot: Take a screenshot of a URL and analyze it
|
|
7
|
+
*/
|
|
8
|
+
import fs from 'node:fs';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
/** Create an ImageBlock from a file path. */
|
|
11
|
+
export function imageBlockFromFile(filePath) {
|
|
12
|
+
const data = fs.readFileSync(filePath);
|
|
13
|
+
const ext = path.extname(filePath).toLowerCase();
|
|
14
|
+
const mediaType = ext === '.png' ? 'image/png'
|
|
15
|
+
: ext === '.webp' ? 'image/webp'
|
|
16
|
+
: 'image/jpeg'; // default to jpeg for .jpg, .jpeg, and others
|
|
17
|
+
return {
|
|
18
|
+
type: 'image',
|
|
19
|
+
data: data.toString('base64'),
|
|
20
|
+
mediaType,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** Create an ImageBlock from a Buffer. */
|
|
24
|
+
export function imageBlockFromBuffer(buffer, mediaType = 'image/png') {
|
|
25
|
+
return {
|
|
26
|
+
type: 'image',
|
|
27
|
+
data: buffer.toString('base64'),
|
|
28
|
+
mediaType,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Get the MCP tool definitions for vision. */
|
|
32
|
+
export function getVisionToolDefinitions() {
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
name: 'llm_analyze_image',
|
|
36
|
+
description: 'Analyze an image file using LLM vision. Supports JPEG, PNG, WebP.',
|
|
37
|
+
inputSchema: {
|
|
38
|
+
type: 'object',
|
|
39
|
+
properties: {
|
|
40
|
+
imagePath: { type: 'string', description: 'Absolute path to the image file' },
|
|
41
|
+
question: { type: 'string', description: 'Question about the image' },
|
|
42
|
+
},
|
|
43
|
+
required: ['imagePath', 'question'],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'llm_analyze_screenshot',
|
|
48
|
+
description: 'Take a screenshot of a URL and analyze it using LLM vision. Requires Playwright.',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
url: { type: 'string', description: 'URL to screenshot' },
|
|
53
|
+
question: { type: 'string', description: 'Question about the page' },
|
|
54
|
+
},
|
|
55
|
+
required: ['url', 'question'],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
/** Handle vision tool calls. */
|
|
61
|
+
export async function handleVisionTool(toolName, args, deps) {
|
|
62
|
+
switch (toolName) {
|
|
63
|
+
case 'llm_analyze_image': {
|
|
64
|
+
const imagePath = args.imagePath;
|
|
65
|
+
const question = args.question;
|
|
66
|
+
if (!fs.existsSync(imagePath)) {
|
|
67
|
+
return `Error: File not found: ${imagePath}`;
|
|
68
|
+
}
|
|
69
|
+
const imageBlock = imageBlockFromFile(imagePath);
|
|
70
|
+
const result = await deps.llmProvider.chat([
|
|
71
|
+
{
|
|
72
|
+
role: 'user',
|
|
73
|
+
content: [imageBlock, question],
|
|
74
|
+
},
|
|
75
|
+
]);
|
|
76
|
+
return result.text;
|
|
77
|
+
}
|
|
78
|
+
case 'llm_analyze_screenshot': {
|
|
79
|
+
const url = args.url;
|
|
80
|
+
const question = args.question;
|
|
81
|
+
if (!deps.playwrightAdapter) {
|
|
82
|
+
return 'Error: Playwright not available for screenshots';
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const result = await deps.playwrightAdapter.extract(url, { screenshot: true });
|
|
86
|
+
if (!result.screenshot) {
|
|
87
|
+
return `Extracted page text but no screenshot. Text: ${result.content.substring(0, 500)}`;
|
|
88
|
+
}
|
|
89
|
+
const imageBlock = imageBlockFromBuffer(result.screenshot, 'image/png');
|
|
90
|
+
const analysis = await deps.llmProvider.chat([
|
|
91
|
+
{
|
|
92
|
+
role: 'user',
|
|
93
|
+
content: [imageBlock, `URL: ${url}\n\n${question}`],
|
|
94
|
+
},
|
|
95
|
+
]);
|
|
96
|
+
return analysis.text;
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
return `Error taking screenshot: ${err.message}`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
default:
|
|
103
|
+
return `Unknown vision tool: ${toolName}`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=vision-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vision-tools.js","sourceRoot":"","sources":["../../src/mcp/vision-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -275,6 +275,8 @@ export class NarrativeEngine {
|
|
|
275
275
|
const confirmed = hypotheses.filter(h => h.status === 'confirmed');
|
|
276
276
|
for (const h of confirmed) {
|
|
277
277
|
for (const a of antiPatterns) {
|
|
278
|
+
if (h.statement === a.statement)
|
|
279
|
+
continue;
|
|
278
280
|
if (this.topicOverlap(h.statement, a.statement) >= 0.5) {
|
|
279
281
|
contradictions.push({
|
|
280
282
|
id: idCounter++,
|
|
@@ -293,6 +295,8 @@ export class NarrativeEngine {
|
|
|
293
295
|
const rejected = hypotheses.filter(h => h.status === 'rejected');
|
|
294
296
|
for (const c of confirmed) {
|
|
295
297
|
for (const r of rejected) {
|
|
298
|
+
if (c.statement === r.statement)
|
|
299
|
+
continue;
|
|
296
300
|
if (this.topicOverlap(c.statement, r.statement) >= 0.5) {
|
|
297
301
|
contradictions.push({
|
|
298
302
|
id: idCounter++,
|
|
@@ -312,6 +316,8 @@ export class NarrativeEngine {
|
|
|
312
316
|
for (let j = i + 1; j < principles.length; j++) {
|
|
313
317
|
const a = principles[i];
|
|
314
318
|
const b = principles[j];
|
|
319
|
+
if (a.statement === b.statement)
|
|
320
|
+
continue;
|
|
315
321
|
// Check for negation patterns
|
|
316
322
|
if (this.seemsContradictory(a.statement, b.statement)) {
|
|
317
323
|
contradictions.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"narrative-engine.js","sourceRoot":"","sources":["../../src/narrative/narrative-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"narrative-engine.js","sourceRoot":"","sources":["../../src/narrative/narrative-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -125,6 +125,10 @@ export declare class ResearchOrchestrator {
|
|
|
125
125
|
private userModelEngine;
|
|
126
126
|
private consensusEngine;
|
|
127
127
|
private traceCollector;
|
|
128
|
+
private guardrailEngine;
|
|
129
|
+
private causalPlanner;
|
|
130
|
+
private researchRoadmap;
|
|
131
|
+
private creativeEngine;
|
|
128
132
|
private lastAutoMissionTime;
|
|
129
133
|
private lastGoalMissionTime;
|
|
130
134
|
private onSuggestionCallback;
|
|
@@ -235,6 +239,14 @@ export declare class ResearchOrchestrator {
|
|
|
235
239
|
setConsensusEngine(engine: import('../consensus/consensus-engine.js').ConsensusEngine): void;
|
|
236
240
|
/** Set the TraceCollector — auto-instrumentation of research cycles. */
|
|
237
241
|
setTraceCollector(collector: import('../observability/trace-collector.js').TraceCollector): void;
|
|
242
|
+
/** Set the GuardrailEngine — safety checks for parameter changes. */
|
|
243
|
+
setGuardrailEngine(engine: import('../guardrails/guardrail-engine.js').GuardrailEngine): void;
|
|
244
|
+
/** Set the CausalPlanner — diagnose stagnant goals via causal analysis. */
|
|
245
|
+
setCausalPlanner(planner: import('../causal/causal-planner.js').CausalPlanner): void;
|
|
246
|
+
/** Set the ResearchRoadmap — multi-step goal decomposition. */
|
|
247
|
+
setResearchRoadmap(roadmap: import('../goals/research-roadmap.js').ResearchRoadmap): void;
|
|
248
|
+
/** Set the CreativeEngine — cross-domain idea generation. */
|
|
249
|
+
setCreativeEngine(engine: import('../creative/creative-engine.js').CreativeEngine): void;
|
|
238
250
|
/** Set the LLMService — propagates to all engines that can use LLM. */
|
|
239
251
|
setLLMService(llm: LLMService): void;
|
|
240
252
|
/** Get the LLMService instance. */
|
|
@@ -76,6 +76,10 @@ export class ResearchOrchestrator {
|
|
|
76
76
|
userModelEngine = null;
|
|
77
77
|
consensusEngine = null;
|
|
78
78
|
traceCollector = null;
|
|
79
|
+
guardrailEngine = null;
|
|
80
|
+
causalPlanner = null;
|
|
81
|
+
researchRoadmap = null;
|
|
82
|
+
creativeEngine = null;
|
|
79
83
|
lastAutoMissionTime = 0;
|
|
80
84
|
lastGoalMissionTime = 0;
|
|
81
85
|
onSuggestionCallback = null;
|
|
@@ -257,6 +261,14 @@ export class ResearchOrchestrator {
|
|
|
257
261
|
setConsensusEngine(engine) { this.consensusEngine = engine; }
|
|
258
262
|
/** Set the TraceCollector — auto-instrumentation of research cycles. */
|
|
259
263
|
setTraceCollector(collector) { this.traceCollector = collector; }
|
|
264
|
+
/** Set the GuardrailEngine — safety checks for parameter changes. */
|
|
265
|
+
setGuardrailEngine(engine) { this.guardrailEngine = engine; }
|
|
266
|
+
/** Set the CausalPlanner — diagnose stagnant goals via causal analysis. */
|
|
267
|
+
setCausalPlanner(planner) { this.causalPlanner = planner; }
|
|
268
|
+
/** Set the ResearchRoadmap — multi-step goal decomposition. */
|
|
269
|
+
setResearchRoadmap(roadmap) { this.researchRoadmap = roadmap; }
|
|
270
|
+
/** Set the CreativeEngine — cross-domain idea generation. */
|
|
271
|
+
setCreativeEngine(engine) { this.creativeEngine = engine; }
|
|
260
272
|
/** Set the LLMService — propagates to all engines that can use LLM. */
|
|
261
273
|
setLLMService(llm) {
|
|
262
274
|
this.llmService = llm;
|
|
@@ -800,6 +812,19 @@ export class ResearchOrchestrator {
|
|
|
800
812
|
this.predictionEngine.recordMetric('journal_entries', journalStats.total_entries ?? 0, 'metric');
|
|
801
813
|
const responderStatus = this.autoResponder.getStatus();
|
|
802
814
|
this.predictionEngine.recordMetric('auto_response_count', responderStatus.total_responses, 'metric');
|
|
815
|
+
// Hypothesis & knowledge metrics (useful for prediction)
|
|
816
|
+
try {
|
|
817
|
+
const hypSummary = this.hypothesisEngine.getSummary();
|
|
818
|
+
this.predictionEngine.recordMetric('hypothesis_total', hypSummary.total, 'metric');
|
|
819
|
+
this.predictionEngine.recordMetric('hypothesis_confirmed', hypSummary.confirmed, 'metric');
|
|
820
|
+
}
|
|
821
|
+
catch { /* skip */ }
|
|
822
|
+
try {
|
|
823
|
+
const kSummary = this.knowledgeDistiller.getSummary();
|
|
824
|
+
this.predictionEngine.recordMetric('principle_count', kSummary.principles, 'metric');
|
|
825
|
+
this.predictionEngine.recordMetric('knowledge_confidence', kSummary.avgConfidence, 'metric');
|
|
826
|
+
}
|
|
827
|
+
catch { /* skip */ }
|
|
803
828
|
ts?.emit('orchestrator', 'perceiving', `Self-metrics recorded: ${anomalies.length} anomalies, ${insights.length} insights, ${cycleDuration}ms`);
|
|
804
829
|
// 11b. Re-resolve predictions now that fresh metrics are available
|
|
805
830
|
// (Step 9 resolves before metrics are recorded, so we re-check here)
|
|
@@ -1686,7 +1711,9 @@ export class ResearchOrchestrator {
|
|
|
1686
1711
|
}
|
|
1687
1712
|
}
|
|
1688
1713
|
// Step 36: EvolutionEngine — evolve parameter configurations (every generationEvery cycles, default 20)
|
|
1689
|
-
|
|
1714
|
+
// Skip if circuit breaker tripped (guardrails)
|
|
1715
|
+
if (this.evolutionEngine && this.cycleCount % this.evolutionEngine.generationEvery === 0
|
|
1716
|
+
&& !(this.guardrailEngine?.isCircuitBreakerTripped())) {
|
|
1690
1717
|
try {
|
|
1691
1718
|
ts?.emit('evolution', 'reflecting', 'Step 36: Running evolution generation...', 'routine');
|
|
1692
1719
|
const gen = this.evolutionEngine.runGeneration();
|
|
@@ -1813,7 +1840,9 @@ export class ResearchOrchestrator {
|
|
|
1813
1840
|
}
|
|
1814
1841
|
}
|
|
1815
1842
|
// Step 40: SelfModification — propose and test code changes (every 20 cycles)
|
|
1816
|
-
|
|
1843
|
+
// Skip if circuit breaker tripped (guardrails)
|
|
1844
|
+
if (this.selfModificationEngine && this.cycleCount % 20 === 0
|
|
1845
|
+
&& !(this.guardrailEngine?.isCircuitBreakerTripped())) {
|
|
1817
1846
|
try {
|
|
1818
1847
|
// Skip if there are already pending modifications
|
|
1819
1848
|
const pending = this.selfModificationEngine.getPending();
|
|
@@ -2289,6 +2318,91 @@ export class ResearchOrchestrator {
|
|
|
2289
2318
|
}
|
|
2290
2319
|
catch { /* not critical */ }
|
|
2291
2320
|
}
|
|
2321
|
+
// Step 55: GuardrailEngine — health check (every 50 cycles)
|
|
2322
|
+
if (this.guardrailEngine && this.cycleCount % 50 === 0) {
|
|
2323
|
+
try {
|
|
2324
|
+
ts?.emit('guardrails', 'analyzing', 'Step 55: Running health check...', 'routine');
|
|
2325
|
+
const health = this.guardrailEngine.checkHealth();
|
|
2326
|
+
if (health.warnings.length > 0) {
|
|
2327
|
+
this.journal.write({
|
|
2328
|
+
title: `Health Check: ${health.warnings.length} warnings`,
|
|
2329
|
+
content: `Score: ${health.score.toFixed(2)} | ${health.warnings.map(w => `[${w.severity}] ${w.message}`).join('; ')}`,
|
|
2330
|
+
type: 'insight',
|
|
2331
|
+
significance: health.circuitBreakerTripped ? 'breakthrough' : 'notable',
|
|
2332
|
+
tags: [this.brainName, 'guardrails', 'health'],
|
|
2333
|
+
references: [],
|
|
2334
|
+
data: { score: health.score, warningCount: health.warnings.length, circuitBreaker: health.circuitBreakerTripped },
|
|
2335
|
+
});
|
|
2336
|
+
}
|
|
2337
|
+
// Check for auto-rollback
|
|
2338
|
+
this.guardrailEngine.checkAutoRollback();
|
|
2339
|
+
}
|
|
2340
|
+
catch (err) {
|
|
2341
|
+
this.log.warn(`[orchestrator] Step 55 (guardrails) error: ${err.message}`);
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
// Step 56: CausalPlanner — diagnose stagnant goals (every 20 cycles)
|
|
2345
|
+
if (this.causalPlanner && this.cycleCount % 20 === 0) {
|
|
2346
|
+
try {
|
|
2347
|
+
ts?.emit('causal_planner', 'analyzing', 'Step 56: Diagnosing stagnant goals...', 'routine');
|
|
2348
|
+
const diagnoses = this.causalPlanner.diagnoseStagnantGoals();
|
|
2349
|
+
for (const { goal, diagnosis } of diagnoses.slice(0, 3)) {
|
|
2350
|
+
const topCause = diagnosis.rootCauses[0];
|
|
2351
|
+
if (topCause) {
|
|
2352
|
+
this.journal.write({
|
|
2353
|
+
title: `Causal Diagnosis: ${goal.title}`,
|
|
2354
|
+
content: `Root cause: ${topCause.event} (strength: ${topCause.strength.toFixed(2)}, confidence: ${topCause.confidence.toFixed(2)})` +
|
|
2355
|
+
(diagnosis.suggestedInterventions[0] ? ` | Intervention: ${diagnosis.suggestedInterventions[0].action}` : ''),
|
|
2356
|
+
type: 'discovery',
|
|
2357
|
+
significance: 'notable',
|
|
2358
|
+
tags: [this.brainName, 'causal', 'diagnosis'],
|
|
2359
|
+
references: [],
|
|
2360
|
+
data: { goalId: goal.id, rootCause: topCause.event, strength: topCause.strength },
|
|
2361
|
+
});
|
|
2362
|
+
}
|
|
2363
|
+
}
|
|
2364
|
+
}
|
|
2365
|
+
catch (err) {
|
|
2366
|
+
this.log.warn(`[orchestrator] Step 56 (causal planner) error: ${err.message}`);
|
|
2367
|
+
}
|
|
2368
|
+
}
|
|
2369
|
+
// Step 57: ResearchRoadmap — check roadmap progress (every 10 cycles)
|
|
2370
|
+
if (this.researchRoadmap && this.goalEngine && this.cycleCount % 10 === 0) {
|
|
2371
|
+
try {
|
|
2372
|
+
ts?.emit('roadmap', 'analyzing', 'Step 57: Checking roadmap progress...', 'routine');
|
|
2373
|
+
// Check blocked goals — only evaluate goals that can start
|
|
2374
|
+
const readyGoals = this.researchRoadmap.getReadyGoals();
|
|
2375
|
+
if (readyGoals.length > 0) {
|
|
2376
|
+
ts?.emit('roadmap', 'reflecting', `${readyGoals.length} goals ready to start`, 'routine');
|
|
2377
|
+
}
|
|
2378
|
+
}
|
|
2379
|
+
catch (err) {
|
|
2380
|
+
this.log.warn(`[orchestrator] Step 57 (roadmap) error: ${err.message}`);
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2383
|
+
// Step 58: CreativeEngine — cross-pollination (every 20 cycles)
|
|
2384
|
+
if (this.creativeEngine && this.cycleCount % 20 === 0) {
|
|
2385
|
+
try {
|
|
2386
|
+
ts?.emit('creative', 'discovering', 'Step 58: Cross-pollinating ideas...', 'routine');
|
|
2387
|
+
const insights = this.creativeEngine.crossPollinate();
|
|
2388
|
+
if (insights.length > 0) {
|
|
2389
|
+
// Convert top insights to hypotheses
|
|
2390
|
+
const converted = this.creativeEngine.convertTopInsights(0.5);
|
|
2391
|
+
this.journal.write({
|
|
2392
|
+
title: `Creative Cross-Pollination: ${insights.length} insights`,
|
|
2393
|
+
content: `Generated ${insights.length} cross-domain insights, ${converted} converted to hypotheses`,
|
|
2394
|
+
type: 'discovery',
|
|
2395
|
+
significance: insights.length > 3 ? 'notable' : 'routine',
|
|
2396
|
+
tags: [this.brainName, 'creative', 'cross-pollination'],
|
|
2397
|
+
references: [],
|
|
2398
|
+
data: { insightCount: insights.length, converted },
|
|
2399
|
+
});
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
catch (err) {
|
|
2403
|
+
this.log.warn(`[orchestrator] Step 58 (creative) error: ${err.message}`);
|
|
2404
|
+
}
|
|
2405
|
+
}
|
|
2292
2406
|
const duration = Date.now() - start;
|
|
2293
2407
|
ts?.emit('orchestrator', 'reflecting', `Feedback Cycle #${this.cycleCount} complete (${duration}ms)`);
|
|
2294
2408
|
this.log.info(`[orchestrator] ─── Feedback Cycle #${this.cycleCount} complete (${duration}ms) ───`);
|
|
@@ -3025,7 +3139,8 @@ export class ResearchOrchestrator {
|
|
|
3025
3139
|
case 'prediction_accuracy': {
|
|
3026
3140
|
const predSummary = this.predictionEngine?.getSummary();
|
|
3027
3141
|
const domains = (predSummary?.by_domain ?? []);
|
|
3028
|
-
|
|
3142
|
+
// Average across ALL domains, not just the first
|
|
3143
|
+
value = domains.length > 0 ? domains.reduce((sum, d) => sum + (d.accuracy_rate ?? 0), 0) / domains.length : 0;
|
|
3029
3144
|
break;
|
|
3030
3145
|
}
|
|
3031
3146
|
default: value = 0;
|