swarm-engine 1.3.0 → 1.38.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/README.md +45 -7
- package/dist/cli/commands/memory.js +117 -0
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/core/types.d.ts +30 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.d.ts +46 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +37 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +97 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts +10 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -1
- package/dist/runtime/agent-runner.js +71 -3
- package/dist/runtime/agent-runner.js.map +1 -1
- package/dist/runtime/engine.d.ts +18 -0
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +306 -2
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/execution-graph.d.ts +86 -0
- package/dist/runtime/execution-graph.d.ts.map +1 -0
- package/dist/runtime/execution-graph.js +441 -0
- package/dist/runtime/execution-graph.js.map +1 -0
- package/dist/runtime/graph-adversarial.d.ts +88 -0
- package/dist/runtime/graph-adversarial.d.ts.map +1 -0
- package/dist/runtime/graph-adversarial.js +378 -0
- package/dist/runtime/graph-adversarial.js.map +1 -0
- package/dist/runtime/graph-analyzer.d.ts +106 -0
- package/dist/runtime/graph-analyzer.d.ts.map +1 -0
- package/dist/runtime/graph-analyzer.js +321 -0
- package/dist/runtime/graph-analyzer.js.map +1 -0
- package/dist/runtime/graph-causal.d.ts +91 -0
- package/dist/runtime/graph-causal.d.ts.map +1 -0
- package/dist/runtime/graph-causal.js +292 -0
- package/dist/runtime/graph-causal.js.map +1 -0
- package/dist/runtime/graph-context-router.d.ts +73 -0
- package/dist/runtime/graph-context-router.d.ts.map +1 -0
- package/dist/runtime/graph-context-router.js +162 -0
- package/dist/runtime/graph-context-router.js.map +1 -0
- package/dist/runtime/graph-discovery.d.ts +71 -0
- package/dist/runtime/graph-discovery.d.ts.map +1 -0
- package/dist/runtime/graph-discovery.js +367 -0
- package/dist/runtime/graph-discovery.js.map +1 -0
- package/dist/runtime/graph-dropout.d.ts +59 -0
- package/dist/runtime/graph-dropout.d.ts.map +1 -0
- package/dist/runtime/graph-dropout.js +196 -0
- package/dist/runtime/graph-dropout.js.map +1 -0
- package/dist/runtime/graph-embeddings.d.ts +58 -0
- package/dist/runtime/graph-embeddings.d.ts.map +1 -0
- package/dist/runtime/graph-embeddings.js +301 -0
- package/dist/runtime/graph-embeddings.js.map +1 -0
- package/dist/runtime/graph-feedback.d.ts +30 -0
- package/dist/runtime/graph-feedback.d.ts.map +1 -0
- package/dist/runtime/graph-feedback.js +82 -0
- package/dist/runtime/graph-feedback.js.map +1 -0
- package/dist/runtime/graph-gnn.d.ts +120 -0
- package/dist/runtime/graph-gnn.d.ts.map +1 -0
- package/dist/runtime/graph-gnn.js +524 -0
- package/dist/runtime/graph-gnn.js.map +1 -0
- package/dist/runtime/graph-learner.d.ts +70 -0
- package/dist/runtime/graph-learner.d.ts.map +1 -0
- package/dist/runtime/graph-learner.js +265 -0
- package/dist/runtime/graph-learner.js.map +1 -0
- package/dist/runtime/graph-meta-adversarial.d.ts +113 -0
- package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -0
- package/dist/runtime/graph-meta-adversarial.js +366 -0
- package/dist/runtime/graph-meta-adversarial.js.map +1 -0
- package/dist/runtime/graph-meta.d.ts +115 -0
- package/dist/runtime/graph-meta.d.ts.map +1 -0
- package/dist/runtime/graph-meta.js +437 -0
- package/dist/runtime/graph-meta.js.map +1 -0
- package/dist/runtime/graph-self-evolve.d.ts +92 -0
- package/dist/runtime/graph-self-evolve.d.ts.map +1 -0
- package/dist/runtime/graph-self-evolve.js +422 -0
- package/dist/runtime/graph-self-evolve.js.map +1 -0
- package/dist/runtime/graph-synthesis.d.ts +47 -0
- package/dist/runtime/graph-synthesis.d.ts.map +1 -0
- package/dist/runtime/graph-synthesis.js +232 -0
- package/dist/runtime/graph-synthesis.js.map +1 -0
- package/dist/runtime/graph-trajectory.d.ts +88 -0
- package/dist/runtime/graph-trajectory.d.ts.map +1 -0
- package/dist/runtime/graph-trajectory.js +339 -0
- package/dist/runtime/graph-trajectory.js.map +1 -0
- package/dist/runtime/learning-engine.d.ts +12 -0
- package/dist/runtime/learning-engine.d.ts.map +1 -1
- package/dist/runtime/learning-engine.js +64 -0
- package/dist/runtime/learning-engine.js.map +1 -1
- package/package.json +2 -2
- package/skills/swarm-output-style/SKILL.md +71 -33
package/dist/runtime/engine.js
CHANGED
|
@@ -25,7 +25,24 @@ import { estimateTokens } from '../utils/tokens.js';
|
|
|
25
25
|
import { unlinkSync } from 'fs';
|
|
26
26
|
import { AgentRunner } from './agent-runner.js';
|
|
27
27
|
import { LearningEngine } from './learning-engine.js';
|
|
28
|
+
import { ExecutionGraph } from './execution-graph.js';
|
|
29
|
+
import { GraphLearner } from './graph-learner.js';
|
|
30
|
+
import { GraphAnalyzer } from './graph-analyzer.js';
|
|
31
|
+
import { GraphContextRouter } from './graph-context-router.js';
|
|
32
|
+
import { ReviewFeedbackRecorder } from './graph-feedback.js';
|
|
33
|
+
import { parseReviewOutput } from './review-schema.js';
|
|
28
34
|
import { closeDatabase } from './database.js';
|
|
35
|
+
import { CausalGraphEngine } from './graph-causal.js';
|
|
36
|
+
import { FailurePropagationPredictor } from './graph-gnn.js';
|
|
37
|
+
import { AdversarialEvolver } from './graph-adversarial.js';
|
|
38
|
+
import { MetaPatternSelector } from './graph-meta.js';
|
|
39
|
+
import { PredictiveDropout } from './graph-dropout.js';
|
|
40
|
+
import { PatternSynthesizer } from './graph-synthesis.js';
|
|
41
|
+
import { TrajectoryPredictor } from './graph-trajectory.js';
|
|
42
|
+
import { MetaAdversarialTester } from './graph-meta-adversarial.js';
|
|
43
|
+
import { RuleEvolver } from './graph-self-evolve.js';
|
|
44
|
+
import { TaskDiscovery } from './graph-discovery.js';
|
|
45
|
+
import { OrchestrationEmbedder } from './graph-embeddings.js';
|
|
29
46
|
/**
|
|
30
47
|
* The Swarm Orchestration Engine.
|
|
31
48
|
*
|
|
@@ -61,6 +78,22 @@ export class SwarmEngine {
|
|
|
61
78
|
livingSpec = null;
|
|
62
79
|
agentRunner;
|
|
63
80
|
learningEngine;
|
|
81
|
+
executionGraph = null;
|
|
82
|
+
graphAnalyzer = null;
|
|
83
|
+
graphLearner = null;
|
|
84
|
+
reviewFeedback = null;
|
|
85
|
+
causalEngine = null;
|
|
86
|
+
gnnPredictor = null;
|
|
87
|
+
adversarialEvolver = null;
|
|
88
|
+
metaSelector = null;
|
|
89
|
+
predictiveDropout = null;
|
|
90
|
+
gnnWeights = null;
|
|
91
|
+
patternSynthesizer = null;
|
|
92
|
+
trajectoryPredictor = null;
|
|
93
|
+
metaAdversarial = null;
|
|
94
|
+
ruleEvolver = null;
|
|
95
|
+
taskDiscovery = null;
|
|
96
|
+
orchestrationEmbedder = null;
|
|
64
97
|
constructor(options) {
|
|
65
98
|
this.options = options;
|
|
66
99
|
this.registry = options.registry;
|
|
@@ -92,6 +125,61 @@ export class SwarmEngine {
|
|
|
92
125
|
this.modelRouter = this.tryInit(() => new ModelRouter(), 'ModelRouter');
|
|
93
126
|
this.autonomyTracker = this.tryInit(() => new AutonomyTracker(), 'AutonomyTracker');
|
|
94
127
|
this.compounder = this.tryInit(() => new KnowledgeCompounder(), 'KnowledgeCompounder');
|
|
128
|
+
this.executionGraph = this.tryInit(() => new ExecutionGraph(), 'ExecutionGraph');
|
|
129
|
+
this.executionGraph?.attachToEventBus(this.bus);
|
|
130
|
+
// Create graph analysis deps (reused by AgentRunner + LearningEngine)
|
|
131
|
+
this.graphLearner = this.executionGraph ? this.tryInit(() => new GraphLearner(this.executionGraph), 'GraphLearner') : null;
|
|
132
|
+
this.graphAnalyzer = this.executionGraph ? this.tryInit(() => new GraphAnalyzer(this.executionGraph), 'GraphAnalyzer') : null;
|
|
133
|
+
this.reviewFeedback = this.executionGraph ? this.tryInit(() => new ReviewFeedbackRecorder(this.executionGraph), 'ReviewFeedbackRecorder') : null;
|
|
134
|
+
// Cutting-edge ML features
|
|
135
|
+
this.causalEngine = this.executionGraph
|
|
136
|
+
? this.tryInit(() => new CausalGraphEngine(this.executionGraph), 'CausalGraphEngine')
|
|
137
|
+
: null;
|
|
138
|
+
this.gnnPredictor = this.executionGraph
|
|
139
|
+
? this.tryInit(() => new FailurePropagationPredictor(this.executionGraph), 'FailurePropagationPredictor')
|
|
140
|
+
: null;
|
|
141
|
+
this.adversarialEvolver = this.executionGraph
|
|
142
|
+
? this.tryInit(() => new AdversarialEvolver(this.executionGraph), 'AdversarialEvolver')
|
|
143
|
+
: null;
|
|
144
|
+
this.metaSelector = this.executionGraph
|
|
145
|
+
? this.tryInit(() => new MetaPatternSelector(this.executionGraph), 'MetaPatternSelector')
|
|
146
|
+
: null;
|
|
147
|
+
this.predictiveDropout = this.executionGraph
|
|
148
|
+
? this.tryInit(() => new PredictiveDropout(this.executionGraph), 'PredictiveDropout')
|
|
149
|
+
: null;
|
|
150
|
+
// Initialize GNN weights (training happens lazily via background scheduling)
|
|
151
|
+
if (this.gnnPredictor) {
|
|
152
|
+
try {
|
|
153
|
+
this.gnnWeights = this.gnnPredictor.initWeights();
|
|
154
|
+
}
|
|
155
|
+
catch { /* silent */ }
|
|
156
|
+
}
|
|
157
|
+
// Self-aware engine features
|
|
158
|
+
this.patternSynthesizer = this.executionGraph ? this.tryInit(() => new PatternSynthesizer(this.executionGraph), 'PatternSynthesizer') : null;
|
|
159
|
+
this.trajectoryPredictor = this.executionGraph ? this.tryInit(() => new TrajectoryPredictor(this.executionGraph), 'TrajectoryPredictor') : null;
|
|
160
|
+
this.metaAdversarial = this.executionGraph ? this.tryInit(() => new MetaAdversarialTester(this.executionGraph), 'MetaAdversarialTester') : null;
|
|
161
|
+
this.ruleEvolver = this.executionGraph ? this.tryInit(() => new RuleEvolver(this.executionGraph), 'RuleEvolver') : null;
|
|
162
|
+
this.taskDiscovery = this.executionGraph ? this.tryInit(() => new TaskDiscovery(this.executionGraph), 'TaskDiscovery') : null;
|
|
163
|
+
this.orchestrationEmbedder = this.executionGraph ? this.tryInit(() => new OrchestrationEmbedder(this.executionGraph), 'OrchestrationEmbedder') : null;
|
|
164
|
+
// Prune stale graph data on init (Feature 6: graph decay)
|
|
165
|
+
if (this.executionGraph) {
|
|
166
|
+
try {
|
|
167
|
+
this.executionGraph.pruneOlderThan(90);
|
|
168
|
+
}
|
|
169
|
+
catch { /* silent */ }
|
|
170
|
+
}
|
|
171
|
+
// Rule evolution proposal on startup (skip in mock mode and when no historical data)
|
|
172
|
+
if (this.ruleEvolver && !this.options.mock) {
|
|
173
|
+
try {
|
|
174
|
+
const proposals = this.ruleEvolver.evolveRules(50);
|
|
175
|
+
if (proposals.length > 0) {
|
|
176
|
+
this.log.info(`Rule evolver proposes ${proposals.length} rule updates (top: ${proposals[0].rule.name}, +${Math.round(proposals[0].backtestedImprovement * 100)}%)`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (e) {
|
|
180
|
+
this.log.debug(`Rule evolution failed: ${e}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
95
183
|
if (options.worktreeEnabled) {
|
|
96
184
|
try {
|
|
97
185
|
this.worktreeManager = new WorktreeManager(options.cwd);
|
|
@@ -107,6 +195,9 @@ export class SwarmEngine {
|
|
|
107
195
|
logger: options.logger,
|
|
108
196
|
compaction: this.compaction,
|
|
109
197
|
worktreeManager: this.worktreeManager,
|
|
198
|
+
contextRouter: this.executionGraph ? new GraphContextRouter(this.executionGraph) : undefined,
|
|
199
|
+
graphLearner: this.graphLearner,
|
|
200
|
+
graphAnalyzer: this.graphAnalyzer,
|
|
110
201
|
});
|
|
111
202
|
this.learningEngine = new LearningEngine({
|
|
112
203
|
traceStore: this.traceStore,
|
|
@@ -114,6 +205,10 @@ export class SwarmEngine {
|
|
|
114
205
|
modelRouter: this.modelRouter,
|
|
115
206
|
autonomyTracker: this.autonomyTracker,
|
|
116
207
|
compounder: this.compounder,
|
|
208
|
+
graphLearner: this.graphLearner,
|
|
209
|
+
metaSelector: this.metaSelector,
|
|
210
|
+
predictiveDropout: this.predictiveDropout,
|
|
211
|
+
orchestrationEmbedder: this.orchestrationEmbedder,
|
|
117
212
|
log: options.logger,
|
|
118
213
|
});
|
|
119
214
|
if (options.pluginLoader) {
|
|
@@ -158,6 +253,20 @@ export class SwarmEngine {
|
|
|
158
253
|
completed.add(phase.config.name);
|
|
159
254
|
}
|
|
160
255
|
}
|
|
256
|
+
// GNN pre-execution risk prediction (Feature 2: GNN Failure Propagation)
|
|
257
|
+
if (this.gnnPredictor && this.gnnWeights) {
|
|
258
|
+
try {
|
|
259
|
+
const risks = this.gnnPredictor.predict(orchestration.config.id, this.gnnWeights);
|
|
260
|
+
const highRisk = risks.filter(r => r.riskScore > 0.7);
|
|
261
|
+
if (highRisk.length > 0) {
|
|
262
|
+
this.log.warn(`GNN predicts high failure risk for ${highRisk.length} nodes`);
|
|
263
|
+
this.bus.emit('system:warning', { type: 'gnn-risk', risks: highRisk }, 'engine');
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
this.log.debug(`GNN prediction failed: ${e}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
161
270
|
while (completed.size < orchestration.phases.length) {
|
|
162
271
|
// Check if abort was requested
|
|
163
272
|
if (this.abortController.signal.aborted) {
|
|
@@ -226,11 +335,62 @@ export class SwarmEngine {
|
|
|
226
335
|
}
|
|
227
336
|
if (phase.status === 'completed') {
|
|
228
337
|
completed.add(phase.config.name);
|
|
338
|
+
// Confidence-gated phase transition (Feature 3)
|
|
339
|
+
if (this.graphAnalyzer) {
|
|
340
|
+
try {
|
|
341
|
+
const reflection = this.reflectionEngine.reflect(phase);
|
|
342
|
+
const patternStats = this.graphLearner?.getPatternStats(orchestration.config.pattern)?.[0];
|
|
343
|
+
const gateOutputs = this.phaseOutputs.get(phase.config.name) || [];
|
|
344
|
+
const gate = this.graphAnalyzer.evaluatePhaseConfidence({ kind: phase.config.kind ?? 'implement', agentCount: phase.agents.length, outputs: gateOutputs, usage: phase.usage }, { confidence: reflection.confidence }, patternStats ? { successRate: patternStats.successRate, avgDurationMs: patternStats.avgDurationMs } : undefined);
|
|
345
|
+
if (gate.result === 'halt') {
|
|
346
|
+
this.log.warn(`Phase gate HALT: ${gate.reason}`);
|
|
347
|
+
orchestration.status = 'failed';
|
|
348
|
+
}
|
|
349
|
+
if (gate.result === 'warn') {
|
|
350
|
+
this.log.warn(`Phase gate WARNING: ${gate.reason}`);
|
|
351
|
+
this.bus.emit('system:warning', { type: 'gate-warning', orchestrationId: orchestration.config.id, phase: phase.config.name, reason: gate.reason }, 'engine');
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
catch { /* Graph gate evaluation failed — continue */ }
|
|
355
|
+
}
|
|
356
|
+
// Trajectory prediction after each completed phase
|
|
357
|
+
if (this.trajectoryPredictor) {
|
|
358
|
+
try {
|
|
359
|
+
const features = this.trajectoryPredictor.extractFeatures(orchestration, phase);
|
|
360
|
+
const pred = this.trajectoryPredictor.predict(features);
|
|
361
|
+
if (pred.successProbability < 0.3 && pred.confidence !== 'low') {
|
|
362
|
+
this.log.warn(`Trajectory predictor: ${(pred.successProbability * 100).toFixed(0)}% success probability (${pred.trajectory})`);
|
|
363
|
+
this.bus.emit('system:warning', { type: 'trajectory-risk', ...pred }, 'engine');
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
catch (e) {
|
|
367
|
+
this.log.debug(`Trajectory prediction failed: ${e}`);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
229
370
|
}
|
|
230
371
|
else if (phase.status === 'failed') {
|
|
231
372
|
orchestration.status = 'failed';
|
|
232
373
|
}
|
|
233
374
|
}
|
|
375
|
+
// Trajectory forecast over remaining phases
|
|
376
|
+
if (this.trajectoryPredictor) {
|
|
377
|
+
try {
|
|
378
|
+
const forecastCompleted = orchestration.phases
|
|
379
|
+
.filter(p => p.status === 'completed')
|
|
380
|
+
.map(p => ({ name: p.config.name, status: p.status, tokens: p.usage?.totalTokens || 0, durationMs: p.usage?.durationMs || 0, confidence: 'medium' }));
|
|
381
|
+
const forecastRemaining = orchestration.phases.filter(p => p.status === 'pending').map(p => p.config.name);
|
|
382
|
+
if (forecastRemaining.length > 0) {
|
|
383
|
+
const forecast = this.trajectoryPredictor.predictTrajectory(orchestration.config.id, forecastCompleted, forecastRemaining, orchestration.config.pattern);
|
|
384
|
+
if (forecast.overallSuccessProb < 0.3) {
|
|
385
|
+
this.log.warn(`Trajectory forecast: ${Math.round(forecast.overallSuccessProb * 100)}% success probability`);
|
|
386
|
+
this.bus.emit('system:warning', { type: 'trajectory-forecast', forecast }, 'engine');
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
catch (e) {
|
|
391
|
+
this.log.debug(`Trajectory forecast failed: ${e}`);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
234
394
|
if (orchestration.status === 'failed')
|
|
235
395
|
break;
|
|
236
396
|
// Check cost budget after each batch of phases
|
|
@@ -264,6 +424,48 @@ export class SwarmEngine {
|
|
|
264
424
|
error: error instanceof Error ? error.message : String(error),
|
|
265
425
|
});
|
|
266
426
|
}
|
|
427
|
+
// Post-failure causal analysis (Feature 1: Causal Inference)
|
|
428
|
+
// Note: suggestIntervention scans all historical orchestrations — skip when graph is large
|
|
429
|
+
if (orchestration.status === 'failed' && this.causalEngine && this.executionGraph) {
|
|
430
|
+
try {
|
|
431
|
+
const orchCount = this.executionGraph.getNodesByType('orchestration').length;
|
|
432
|
+
if (orchCount <= 200) {
|
|
433
|
+
const suggestions = this.causalEngine.suggestIntervention(orchestration.config.id);
|
|
434
|
+
if (suggestions.length > 0) {
|
|
435
|
+
this.log.info(`Causal analysis suggests: ${suggestions[0].reasoning}`);
|
|
436
|
+
this.bus.emit('system:warning', { type: 'causal-suggestion', suggestions }, 'engine');
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
catch (e) {
|
|
441
|
+
this.log.debug(`Causal suggestion failed: ${e}`);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
// Self-audit on failure: red-team the engine's own ML subsystems
|
|
445
|
+
// Skipped in mock mode and when insufficient historical data to avoid test overhead
|
|
446
|
+
if (orchestration.status === 'failed' && this.metaAdversarial && !this.options.mock) {
|
|
447
|
+
try {
|
|
448
|
+
const orchCount = this.executionGraph?.getNodesByType('orchestration').length ?? 0;
|
|
449
|
+
if (orchCount >= 5) {
|
|
450
|
+
const report = this.metaAdversarial.runFullAudit({
|
|
451
|
+
patternSelector: this.metaSelector ?? undefined,
|
|
452
|
+
dropout: this.predictiveDropout ?? undefined,
|
|
453
|
+
causal: this.causalEngine ? {
|
|
454
|
+
estimateCausalEffect: (t, tv, cv) =>
|
|
455
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
456
|
+
this.causalEngine.estimateCausalEffect(t, tv, cv),
|
|
457
|
+
} : undefined,
|
|
458
|
+
});
|
|
459
|
+
if (report.overallRisk !== 'low') {
|
|
460
|
+
this.log.warn(`Self-audit found ${report.vulnerabilities.length} ML vulnerabilities (risk: ${report.overallRisk})`);
|
|
461
|
+
this.bus.emit('system:warning', { type: 'self-audit', overallRisk: report.overallRisk, recommendations: report.recommendations }, 'engine');
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
catch (e) {
|
|
466
|
+
this.log.debug(`Meta-adversarial audit failed: ${e}`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
267
469
|
orchestration.completedAt = new Date();
|
|
268
470
|
continuousVerifier.stop();
|
|
269
471
|
// Clean up shared context files
|
|
@@ -276,6 +478,15 @@ export class SwarmEngine {
|
|
|
276
478
|
this.sharedContextFiles = [];
|
|
277
479
|
// Record learning outcomes (traces, heuristics, model routing, autonomy)
|
|
278
480
|
await this.learningEngine.recordOutcome(orchestration, config, this.reflections);
|
|
481
|
+
// Train trajectory predictor on final outcome
|
|
482
|
+
if (this.trajectoryPredictor) {
|
|
483
|
+
try {
|
|
484
|
+
this.trajectoryPredictor.recordOutcome(orchestration, orchestration.status === 'completed');
|
|
485
|
+
}
|
|
486
|
+
catch (e) {
|
|
487
|
+
this.log.debug(`Trajectory training failed: ${e}`);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
279
490
|
// Compute total usage
|
|
280
491
|
orchestration.usage = orchestration.phases.reduce((total, phase) => mergeUsageStats(total, phase.usage), emptyUsageStats());
|
|
281
492
|
this.bus.emit(orchestration.status === 'completed' ? 'orchestration:complete' : 'orchestration:failed', {
|
|
@@ -382,6 +593,56 @@ export class SwarmEngine {
|
|
|
382
593
|
// Inject learned heuristics and past solutions into the plan
|
|
383
594
|
this.learningEngine.injectHeuristics(rewrittenPlan);
|
|
384
595
|
this.learningEngine.injectSolutions(rewrittenPlan);
|
|
596
|
+
// Meta-pattern recommendation (Feature 4: Meta-Pattern Selector)
|
|
597
|
+
if (this.metaSelector) {
|
|
598
|
+
try {
|
|
599
|
+
const recommendation = this.metaSelector.selectPattern(task);
|
|
600
|
+
if (recommendation.confidence > 0.6) {
|
|
601
|
+
this.log.info(`Meta-selector recommends: ${recommendation.pattern} (${Math.round(recommendation.confidence * 100)}% confidence)`);
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
catch (e) {
|
|
605
|
+
this.log.debug(`Meta-pattern selection failed: ${e}`);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
// Task discovery: log discovered backlog items from historical failure patterns (skip in mock mode)
|
|
609
|
+
if (this.taskDiscovery && !this.options.mock) {
|
|
610
|
+
try {
|
|
611
|
+
const backlog = this.taskDiscovery.generateBacklog(3);
|
|
612
|
+
if (backlog.length > 0) {
|
|
613
|
+
this.log.info(`Task discovery: ${backlog.length} actionable items found (top: ${backlog[0]?.title})`);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
catch (e) {
|
|
617
|
+
this.log.debug(`Task discovery failed: ${e}`);
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
// Pattern synthesis: log insights from topology analysis (skip in mock mode)
|
|
621
|
+
if (this.patternSynthesizer && !this.options.mock) {
|
|
622
|
+
try {
|
|
623
|
+
const insights = this.patternSynthesizer.analyzeTopologyDiffs(3);
|
|
624
|
+
if (insights.length > 0) {
|
|
625
|
+
const top = insights[0];
|
|
626
|
+
this.log.info(`Pattern synthesis top insight: "${top.feature}" (correlation: ${top.successCorrelation.toFixed(2)}, n=${top.sampleSize})`);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
catch (e) {
|
|
630
|
+
this.log.debug(`Pattern synthesis failed: ${e}`);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
// Pattern synthesis: suggest novel pattern from historical success topology
|
|
634
|
+
if (this.patternSynthesizer && !this.options.mock) {
|
|
635
|
+
try {
|
|
636
|
+
const synthesized = this.patternSynthesizer.synthesizePattern(task);
|
|
637
|
+
if (synthesized && synthesized.confidence > 0.5) {
|
|
638
|
+
this.log.info(`Pattern synthesis suggests: ${synthesized.name} (${Math.round(synthesized.confidence * 100)}% confidence)`);
|
|
639
|
+
this.bus.emit('system:warning', { type: 'pattern-synthesis', pattern: synthesized }, 'engine');
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
catch (e) {
|
|
643
|
+
this.log.debug(`Pattern synthesis suggestion failed: ${e}`);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
385
646
|
// Search over candidate plans to find the best one
|
|
386
647
|
const searcher = new PlanSearcher(this.costModel, this.traceStore ?? undefined);
|
|
387
648
|
const candidates = searcher.search(rewrittenPlan, {
|
|
@@ -417,6 +678,20 @@ export class SwarmEngine {
|
|
|
417
678
|
this.bus.emit('system:warning', { type: 'agent-dropout', ...dropout }, 'adaptive');
|
|
418
679
|
}
|
|
419
680
|
}
|
|
681
|
+
// Predictive dropout from ML model (Feature 5: Predictive Dropout)
|
|
682
|
+
if (this.predictiveDropout && phase.config.agents.length > 1) {
|
|
683
|
+
try {
|
|
684
|
+
const recommendations = this.predictiveDropout.predictRedundant(phase.config.agents.map(a => ({ id: a.name || a.type, agentType: a.type })), phase.config.kind ?? 'implement', 0, orchestration.config.pattern || '');
|
|
685
|
+
const toDrop = recommendations.filter(r => r.shouldDropOut);
|
|
686
|
+
if (toDrop.length > 0) {
|
|
687
|
+
this.log.info(`Predictive dropout: skipping ${toDrop.map(d => d.agentType).join(', ')}`);
|
|
688
|
+
phase.config.agents = phase.config.agents.filter(a => !toDrop.some(d => d.agentType === a.type));
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
catch (e) {
|
|
692
|
+
this.log.debug(`Predictive dropout failed: ${e}`);
|
|
693
|
+
}
|
|
694
|
+
}
|
|
420
695
|
const maxRetries = phase.config.maxRetries ?? 2;
|
|
421
696
|
const runContext = {
|
|
422
697
|
phaseOutputs: this.phaseOutputs,
|
|
@@ -467,9 +742,16 @@ export class SwarmEngine {
|
|
|
467
742
|
}
|
|
468
743
|
}
|
|
469
744
|
else {
|
|
470
|
-
// Run agents sequentially (with retry)
|
|
745
|
+
// Run agents sequentially (with retry) — accumulate intra-phase outputs for live re-routing (Feature 1)
|
|
746
|
+
const intraPhaseOutputs = new Map();
|
|
471
747
|
for (const assignment of phase.config.agents) {
|
|
472
|
-
await this.agentRunner.executeAgentWithRetry(assignment, phase, orchestration, maxRetries, runContext);
|
|
748
|
+
const agentInstance = await this.agentRunner.executeAgentWithRetry(assignment, phase, orchestration, maxRetries, { ...runContext, intraPhaseOutputs });
|
|
749
|
+
// After agent completes, add its output to intra-phase buffer for next sequential agent
|
|
750
|
+
if (agentInstance?.result?.output) {
|
|
751
|
+
const existing = intraPhaseOutputs.get(phase.config.name) || [];
|
|
752
|
+
existing.push(agentInstance.result.output);
|
|
753
|
+
intraPhaseOutputs.set(phase.config.name, existing);
|
|
754
|
+
}
|
|
473
755
|
// Check phase token budget after each agent
|
|
474
756
|
if (phase.config.tokenBudget) {
|
|
475
757
|
const phaseTokens = phase.agents.reduce((sum, a) => sum + a.usage.totalTokens, 0);
|
|
@@ -490,6 +772,21 @@ export class SwarmEngine {
|
|
|
490
772
|
}
|
|
491
773
|
phase.completedAt = new Date();
|
|
492
774
|
phase.usage = phase.agents.reduce((total, agent) => mergeUsageStats(total, agent.usage), emptyUsageStats());
|
|
775
|
+
// Record review feedback into the knowledge graph (Feature 7)
|
|
776
|
+
if (phase.config.kind === 'review' && this.reviewFeedback) {
|
|
777
|
+
for (const agent of phase.agents) {
|
|
778
|
+
if (agent.result?.output) {
|
|
779
|
+
try {
|
|
780
|
+
this.reviewFeedback.recordFindings(orchestration.config.id, phase.config.name, agent.result.output, agent.config.name);
|
|
781
|
+
const findings = parseReviewOutput(agent.result.output, agent.config.name);
|
|
782
|
+
this.reviewFeedback.adjustContextWeights(orchestration.config.id, findings);
|
|
783
|
+
}
|
|
784
|
+
catch (e) {
|
|
785
|
+
this.log.debug(`Review feedback recording failed: ${e}`);
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
493
790
|
// Run verification after implementation phases
|
|
494
791
|
if (phase.config.kind === 'implement' || phase.config.kind === 'integrate') {
|
|
495
792
|
const results = await this.verifier.verify();
|
|
@@ -635,6 +932,10 @@ export class SwarmEngine {
|
|
|
635
932
|
}
|
|
636
933
|
catch { }
|
|
637
934
|
this.learningEngine.close();
|
|
935
|
+
try {
|
|
936
|
+
this.executionGraph?.close();
|
|
937
|
+
}
|
|
938
|
+
catch { }
|
|
638
939
|
closeDatabase();
|
|
639
940
|
this.removeSignalHandlers();
|
|
640
941
|
}
|
|
@@ -660,6 +961,9 @@ export class SwarmEngine {
|
|
|
660
961
|
get patternRegistry() {
|
|
661
962
|
return this.patterns;
|
|
662
963
|
}
|
|
964
|
+
get graph() {
|
|
965
|
+
return this.executionGraph;
|
|
966
|
+
}
|
|
663
967
|
// ─── Helpers ───────────────────────────────────────────────────
|
|
664
968
|
tryInit(factory, name) {
|
|
665
969
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
|