swarm-engine 1.43.0 → 1.54.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.
Files changed (165) hide show
  1. package/README.md +145 -42
  2. package/agents/implementer.md +1 -14
  3. package/agents/orchestrator.md +127 -246
  4. package/agents/reviewer.md +3 -18
  5. package/dist/cli/commands/agents.js +13 -1
  6. package/dist/cli/commands/agents.js.map +1 -1
  7. package/dist/cli/commands/dashboard.d.ts +3 -0
  8. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  9. package/dist/cli/commands/dashboard.js +43 -0
  10. package/dist/cli/commands/dashboard.js.map +1 -0
  11. package/dist/cli/commands/orchestrate.d.ts.map +1 -1
  12. package/dist/cli/commands/orchestrate.js +17 -0
  13. package/dist/cli/commands/orchestrate.js.map +1 -1
  14. package/dist/cli/commands/run.d.ts.map +1 -1
  15. package/dist/cli/commands/run.js +20 -1
  16. package/dist/cli/commands/run.js.map +1 -1
  17. package/dist/cli/commands/status.d.ts +1 -0
  18. package/dist/cli/commands/status.d.ts.map +1 -1
  19. package/dist/cli/commands/status.js +5 -2
  20. package/dist/cli/commands/status.js.map +1 -1
  21. package/dist/cli/commands/usage.d.ts +3 -0
  22. package/dist/cli/commands/usage.d.ts.map +1 -0
  23. package/dist/cli/commands/usage.js +85 -0
  24. package/dist/cli/commands/usage.js.map +1 -0
  25. package/dist/cli/index.js +2 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/core/event-bus.d.ts.map +1 -1
  28. package/dist/core/event-bus.js +4 -1
  29. package/dist/core/event-bus.js.map +1 -1
  30. package/dist/core/types.d.ts +44 -1
  31. package/dist/core/types.d.ts.map +1 -1
  32. package/dist/core/types.js +4 -0
  33. package/dist/core/types.js.map +1 -1
  34. package/dist/hooks/cli.js +4 -1
  35. package/dist/hooks/cli.js.map +1 -1
  36. package/dist/hooks/index.d.ts +9 -0
  37. package/dist/hooks/index.d.ts.map +1 -1
  38. package/dist/hooks/index.js +54 -0
  39. package/dist/hooks/index.js.map +1 -1
  40. package/dist/hooks/transcript-parser.d.ts +68 -0
  41. package/dist/hooks/transcript-parser.d.ts.map +1 -0
  42. package/dist/hooks/transcript-parser.js +163 -0
  43. package/dist/hooks/transcript-parser.js.map +1 -0
  44. package/dist/hooks/usage-logger.d.ts +30 -0
  45. package/dist/hooks/usage-logger.d.ts.map +1 -0
  46. package/dist/hooks/usage-logger.js +67 -0
  47. package/dist/hooks/usage-logger.js.map +1 -0
  48. package/dist/index.d.ts +16 -1
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +10 -1
  51. package/dist/index.js.map +1 -1
  52. package/dist/memory/index.js +2 -2
  53. package/dist/memory/index.js.map +1 -1
  54. package/dist/runtime/agent-runner.d.ts +9 -0
  55. package/dist/runtime/agent-runner.d.ts.map +1 -1
  56. package/dist/runtime/agent-runner.js +167 -11
  57. package/dist/runtime/agent-runner.js.map +1 -1
  58. package/dist/runtime/backends/claude.d.ts +30 -0
  59. package/dist/runtime/backends/claude.d.ts.map +1 -1
  60. package/dist/runtime/backends/claude.js +112 -2
  61. package/dist/runtime/backends/claude.js.map +1 -1
  62. package/dist/runtime/backends/codex.d.ts.map +1 -1
  63. package/dist/runtime/backends/codex.js +4 -0
  64. package/dist/runtime/backends/codex.js.map +1 -1
  65. package/dist/runtime/backends/gemini.d.ts.map +1 -1
  66. package/dist/runtime/backends/gemini.js +4 -0
  67. package/dist/runtime/backends/gemini.js.map +1 -1
  68. package/dist/runtime/benefits.d.ts +81 -1
  69. package/dist/runtime/benefits.d.ts.map +1 -1
  70. package/dist/runtime/benefits.js +199 -12
  71. package/dist/runtime/benefits.js.map +1 -1
  72. package/dist/runtime/cache-optimizer.d.ts +7 -3
  73. package/dist/runtime/cache-optimizer.d.ts.map +1 -1
  74. package/dist/runtime/cache-optimizer.js +11 -7
  75. package/dist/runtime/cache-optimizer.js.map +1 -1
  76. package/dist/runtime/compaction.d.ts +6 -1
  77. package/dist/runtime/compaction.d.ts.map +1 -1
  78. package/dist/runtime/compaction.js +39 -2
  79. package/dist/runtime/compaction.js.map +1 -1
  80. package/dist/runtime/cost-model.d.ts.map +1 -1
  81. package/dist/runtime/cost-model.js +20 -17
  82. package/dist/runtime/cost-model.js.map +1 -1
  83. package/dist/runtime/engine.d.ts +2 -0
  84. package/dist/runtime/engine.d.ts.map +1 -1
  85. package/dist/runtime/engine.js +162 -3
  86. package/dist/runtime/engine.js.map +1 -1
  87. package/dist/runtime/graph-discovery.js +2 -2
  88. package/dist/runtime/graph-discovery.js.map +1 -1
  89. package/dist/runtime/graph-trajectory.js +3 -3
  90. package/dist/runtime/graph-trajectory.js.map +1 -1
  91. package/dist/runtime/handoff.d.ts +8 -0
  92. package/dist/runtime/handoff.d.ts.map +1 -0
  93. package/dist/runtime/handoff.js +109 -0
  94. package/dist/runtime/handoff.js.map +1 -0
  95. package/dist/runtime/heuristics.d.ts +2 -1
  96. package/dist/runtime/heuristics.d.ts.map +1 -1
  97. package/dist/runtime/heuristics.js +15 -2
  98. package/dist/runtime/heuristics.js.map +1 -1
  99. package/dist/runtime/lsp.d.ts.map +1 -1
  100. package/dist/runtime/lsp.js +4 -0
  101. package/dist/runtime/lsp.js.map +1 -1
  102. package/dist/runtime/mcp.d.ts +1 -0
  103. package/dist/runtime/mcp.d.ts.map +1 -1
  104. package/dist/runtime/mcp.js +38 -0
  105. package/dist/runtime/mcp.js.map +1 -1
  106. package/dist/runtime/model-router.d.ts +2 -1
  107. package/dist/runtime/model-router.d.ts.map +1 -1
  108. package/dist/runtime/model-router.js +8 -1
  109. package/dist/runtime/model-router.js.map +1 -1
  110. package/dist/runtime/output-summarizer.d.ts +45 -0
  111. package/dist/runtime/output-summarizer.d.ts.map +1 -0
  112. package/dist/runtime/output-summarizer.js +171 -0
  113. package/dist/runtime/output-summarizer.js.map +1 -0
  114. package/dist/runtime/plugins.d.ts +5 -1
  115. package/dist/runtime/plugins.d.ts.map +1 -1
  116. package/dist/runtime/plugins.js +14 -2
  117. package/dist/runtime/plugins.js.map +1 -1
  118. package/dist/runtime/prompt-tier.d.ts +33 -0
  119. package/dist/runtime/prompt-tier.d.ts.map +1 -0
  120. package/dist/runtime/prompt-tier.js +105 -0
  121. package/dist/runtime/prompt-tier.js.map +1 -0
  122. package/dist/runtime/savings-manifest.d.ts +66 -0
  123. package/dist/runtime/savings-manifest.d.ts.map +1 -0
  124. package/dist/runtime/savings-manifest.js +103 -0
  125. package/dist/runtime/savings-manifest.js.map +1 -0
  126. package/dist/runtime/sharing.js +2 -1
  127. package/dist/runtime/sharing.js.map +1 -1
  128. package/dist/runtime/stats.d.ts +2 -0
  129. package/dist/runtime/stats.d.ts.map +1 -1
  130. package/dist/runtime/stats.js +23 -3
  131. package/dist/runtime/stats.js.map +1 -1
  132. package/dist/runtime/violation-tracker.d.ts +31 -0
  133. package/dist/runtime/violation-tracker.d.ts.map +1 -0
  134. package/dist/runtime/violation-tracker.js +125 -0
  135. package/dist/runtime/violation-tracker.js.map +1 -0
  136. package/dist/utils/project-config.d.ts +20 -0
  137. package/dist/utils/project-config.d.ts.map +1 -1
  138. package/dist/utils/project-config.js +46 -1
  139. package/dist/utils/project-config.js.map +1 -1
  140. package/dist/utils/redact.d.ts.map +1 -1
  141. package/dist/utils/redact.js +5 -1
  142. package/dist/utils/redact.js.map +1 -1
  143. package/dist/web/bridge.d.ts +47 -0
  144. package/dist/web/bridge.d.ts.map +1 -0
  145. package/dist/web/bridge.js +267 -0
  146. package/dist/web/bridge.js.map +1 -0
  147. package/dist/web/graph-api.d.ts +19 -0
  148. package/dist/web/graph-api.d.ts.map +1 -0
  149. package/dist/web/graph-api.js +157 -0
  150. package/dist/web/graph-api.js.map +1 -0
  151. package/dist/web/index.d.ts +21 -0
  152. package/dist/web/index.d.ts.map +1 -0
  153. package/dist/web/index.js +38 -0
  154. package/dist/web/index.js.map +1 -0
  155. package/dist/web/public/index.html +1304 -0
  156. package/dist/web/public/public/index.html +1307 -0
  157. package/dist/web/server.d.ts +24 -0
  158. package/dist/web/server.d.ts.map +1 -0
  159. package/dist/web/server.js +113 -0
  160. package/dist/web/server.js.map +1 -0
  161. package/dist/web/tray.d.ts +23 -0
  162. package/dist/web/tray.d.ts.map +1 -0
  163. package/dist/web/tray.js +205 -0
  164. package/dist/web/tray.js.map +1 -0
  165. package/package.json +1 -1
@@ -11,24 +11,27 @@ const TIER_QUALITY = {
11
11
  mid: 0.85,
12
12
  cheap: 0.65,
13
13
  };
14
- // Default token estimates when no stats available (per agent type)
14
+ // Default token estimates when no stats available (per agent type).
15
+ // Calibrated from real orchestration data (April 2026 audit of multi-agent sessions).
16
+ // These are CONSERVATIVE (high-side) estimates — prefer overestimate to surprise.
17
+ // Historical stats from StatsCollector override these when sampleCount >= 3.
15
18
  const DEFAULT_TOKENS = {
16
- researcher: 5000,
17
- implementer: 15000,
18
- reviewer: 8000,
19
- tester: 10000,
20
- debugger: 12000,
21
- planner: 6000,
22
- judge: 5000,
23
- refactorer: 12000,
24
- integrator: 8000,
25
- 'devils-advocate': 6000,
26
- grounding: 4000,
27
- sentinel: 3000,
28
- guardian: 4000,
29
- librarian: 3000,
30
- documenter: 5000,
31
- orchestrator: 8000,
19
+ researcher: 40000,
20
+ implementer: 100000,
21
+ reviewer: 60000,
22
+ tester: 60000,
23
+ debugger: 80000,
24
+ planner: 40000,
25
+ judge: 30000,
26
+ refactorer: 80000,
27
+ integrator: 60000,
28
+ 'devils-advocate': 40000,
29
+ grounding: 30000,
30
+ sentinel: 15000,
31
+ guardian: 20000,
32
+ librarian: 15000,
33
+ documenter: 40000,
34
+ orchestrator: 50000,
32
35
  };
33
36
  export class CostModel {
34
37
  stats;
@@ -1 +1 @@
1
- {"version":3,"file":"cost-model.js","sourceRoot":"","sources":["../../src/runtime/cost-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cost-model.js","sourceRoot":"","sources":["../../src/runtime/cost-model.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,7 @@ export declare class SwarmEngine {
90
90
  private swarmMcpServer;
91
91
  private decisions;
92
92
  private benefitsCollector;
93
+ private violationTracker;
93
94
  get reviewFeedback(): ReviewFeedbackRecorder | null;
94
95
  get causalEngine(): CausalGraphEngine | null;
95
96
  get gnnPredictor(): FailurePropagationPredictor | null;
@@ -117,6 +118,7 @@ export declare class SwarmEngine {
117
118
  model?: string;
118
119
  costBudget?: number;
119
120
  params?: Record<string, unknown>;
121
+ promptDiet?: import('../core/types.js').PromptDietConfig;
120
122
  }): Promise<OrchestrationInstance>;
121
123
  /**
122
124
  * Generate a serializable execution plan WITHOUT executing anything.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/runtime/engine.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,9 @@ import { HandoffParser } from './structured-handoff.js';
50
50
  import { classifyTaskComplexity } from './cascade.js';
51
51
  import { SwarmMcpServer } from './sdk-mcp-server.js';
52
52
  import { BenefitsCollector } from './benefits.js';
53
+ import { ViolationTracker } from './violation-tracker.js';
54
+ import { extractFileReferences } from './graph-learner.js';
55
+ import { pruneManifests, writeSavingsManifest } from './savings-manifest.js';
53
56
  /**
54
57
  * The Swarm Orchestration Engine.
55
58
  *
@@ -104,7 +107,8 @@ export class SwarmEngine {
104
107
  _orchestrationEmbedder;
105
108
  swarmMcpServer = null;
106
109
  decisions = new Map();
107
- benefitsCollector = new BenefitsCollector();
110
+ benefitsCollector;
111
+ violationTracker = null;
108
112
  get reviewFeedback() {
109
113
  if (this._reviewFeedback === undefined) {
110
114
  this._reviewFeedback = this.executionGraph
@@ -221,6 +225,10 @@ export class SwarmEngine {
221
225
  this.options = options;
222
226
  this.registry = options.registry;
223
227
  this.bus = options.bus;
228
+ this.benefitsCollector = new BenefitsCollector(this.bus);
229
+ // Wire cold-wake events from AgentRunner into the benefits counter so the
230
+ // Cold wakes row in the summary table reflects what actually happened.
231
+ this.bus.on('cache:cold-wake', () => this.benefitsCollector.recordColdWake());
224
232
  this.executor = new AgentExecutor({
225
233
  bus: this.bus,
226
234
  logger: options.logger,
@@ -240,6 +248,9 @@ export class SwarmEngine {
240
248
  this.verifier = new Verifier(options.cwd ?? process.cwd());
241
249
  this.stats = new StatsCollector();
242
250
  this.stats.attachToEventBus(this.bus, undefined);
251
+ if (!options.mock) {
252
+ this.violationTracker = this.tryInit(() => new ViolationTracker(), 'ViolationTracker');
253
+ }
243
254
  this.costModel = new CostModel(this.stats);
244
255
  this.reflectionEngine = new ReflectionEngine();
245
256
  this.traceStore = this.tryInit(() => new TraceStore(), 'TraceStore');
@@ -275,7 +286,7 @@ export class SwarmEngine {
275
286
  // Prune stale graph data on init (Feature 6: graph decay)
276
287
  if (this.executionGraph) {
277
288
  try {
278
- this.executionGraph.pruneOlderThan(90);
289
+ this.executionGraph.pruneOlderThan(14); // 2 weeks — prevents unbounded growth from high-frequency orchestrations
279
290
  }
280
291
  catch {
281
292
  /* silent */
@@ -415,6 +426,19 @@ export class SwarmEngine {
415
426
  this.sharedContextFiles = [];
416
427
  this.abortController = new AbortController();
417
428
  this.livingSpec = createLivingSpec(config.description);
429
+ // Initialize savings manifest for this orchestration
430
+ const cwd = this.options.cwd || process.cwd();
431
+ try {
432
+ writeSavingsManifest(cwd, {
433
+ orchestrationId: config.id,
434
+ pattern: config.pattern,
435
+ startedAt: new Date().toISOString(),
436
+ agents: [],
437
+ });
438
+ }
439
+ catch {
440
+ /* Savings manifest init is best-effort */
441
+ }
418
442
  // Start continuous verification
419
443
  const continuousVerifier = new ContinuousVerifier(this.verifier, this.bus);
420
444
  continuousVerifier.start();
@@ -442,6 +466,19 @@ export class SwarmEngine {
442
466
  this.log.debug(`GNN prediction failed: ${e}`);
443
467
  }
444
468
  }
469
+ // Pre-flight warnings: surface recurring violation hot spots before execution
470
+ if (this.violationTracker) {
471
+ try {
472
+ const warnings = this.violationTracker.formatPreFlightWarnings(this.options.cwd);
473
+ if (warnings) {
474
+ this.log.warn(warnings);
475
+ this.bus.emit('system:warning', { type: 'violation-preflight', warnings }, 'engine');
476
+ }
477
+ }
478
+ catch (e) {
479
+ this.log.debug(`Violation pre-flight check failed: ${e}`);
480
+ }
481
+ }
445
482
  while (completed.size < orchestration.phases.length) {
446
483
  // Check if abort was requested
447
484
  if (this.abortController.signal.aborted) {
@@ -702,11 +739,15 @@ export class SwarmEngine {
702
739
  }
703
740
  }
704
741
  const durationMs = orchestration.completedAt.getTime() - (orchestration.startedAt?.getTime() ?? 0);
742
+ const allAgents = orchestration.phases.flatMap((p) => p.agents);
743
+ const agentsExecuted = allAgents.length;
744
+ const totalAgentTurns = allAgents.reduce((sum, a) => sum + (a.usage?.turns || 1), 0);
705
745
  const benefitsSummary = this.benefitsCollector.build({
706
746
  actualTotalTokens: orchestration.usage.totalTokens,
707
747
  actualCostUsd: orchestration.usage.costUsd,
708
748
  durationMs,
709
- agentsExecuted: orchestration.phases.reduce((s, p) => s + p.agents.length, 0),
749
+ agentsExecuted,
750
+ totalAgentTurns,
710
751
  phasesExecuted: orchestration.phases.filter((p) => p.status === 'completed').length,
711
752
  historicalAvgCostUsd: patternStats?.avgCostUsd ?? null,
712
753
  patternRunsRecorded: patternStats?.totalRuns ?? 0,
@@ -727,6 +768,13 @@ export class SwarmEngine {
727
768
  });
728
769
  // Prune terminal agent instances to free memory
729
770
  this.registry.pruneTerminalInstances();
771
+ // Prune old savings manifests (keep last 10)
772
+ try {
773
+ pruneManifests(this.options.cwd || process.cwd(), 10);
774
+ }
775
+ catch {
776
+ /* Manifest pruning is best-effort */
777
+ }
730
778
  return orchestration;
731
779
  }
732
780
  /**
@@ -754,6 +802,7 @@ export class SwarmEngine {
754
802
  })),
755
803
  })),
756
804
  costBudget: options?.costBudget,
805
+ promptDiet: options?.promptDiet,
757
806
  };
758
807
  // Substitute pattern parameters into agent prompts
759
808
  if (options?.params && pattern.parameters) {
@@ -941,6 +990,32 @@ export class SwarmEngine {
941
990
  this.log.debug(`Predictive dropout failed: ${e}`);
942
991
  }
943
992
  }
993
+ // File-conflict detection: check if parallel agents target overlapping files
994
+ if (this.violationTracker && phase.config.parallel && phase.config.agents.length > 1) {
995
+ try {
996
+ const filesByAgent = phase.config.agents.map((a) => ({
997
+ name: a.name,
998
+ files: extractFileReferences(a.prompt || ''),
999
+ }));
1000
+ for (let i = 0; i < filesByAgent.length; i++) {
1001
+ for (let j = i + 1; j < filesByAgent.length; j++) {
1002
+ const overlap = filesByAgent[i].files.filter((f) => filesByAgent[j].files.includes(f));
1003
+ if (overlap.length > 0) {
1004
+ this.violationTracker.record({
1005
+ type: 'file-conflict',
1006
+ orchestrationId: orchestration.config.id,
1007
+ phase: phase.config.name,
1008
+ details: `${filesByAgent[i].name} and ${filesByAgent[j].name} both target: ${overlap.join(', ')}`,
1009
+ repo: this.options.cwd,
1010
+ });
1011
+ }
1012
+ }
1013
+ }
1014
+ }
1015
+ catch (e) {
1016
+ this.log.debug(`File-conflict detection failed: ${e}`);
1017
+ }
1018
+ }
944
1019
  // Feature 5: Diff-based review context — inject git diff before review phases
945
1020
  if (phase.config.kind === 'review' && !this.options.mock) {
946
1021
  try {
@@ -1016,6 +1091,40 @@ export class SwarmEngine {
1016
1091
  filteredOutputs = testFiltered;
1017
1092
  }
1018
1093
  }
1094
+ if (phase.config.kind === 'implement') {
1095
+ // Implementers need research/plan/design outputs, not other implement phases (noise)
1096
+ const implFiltered = new Map();
1097
+ for (const [phaseName, outputs] of this.phaseOutputs) {
1098
+ if (phaseName.includes('research') || phaseName.includes('plan') || phaseName.includes('design')) {
1099
+ implFiltered.set(phaseName, outputs);
1100
+ }
1101
+ }
1102
+ if (implFiltered.size > 0) {
1103
+ const filteredTokens = [...implFiltered.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1104
+ const totalTokens = [...this.phaseOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1105
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
1106
+ filteredOutputs = implFiltered;
1107
+ }
1108
+ }
1109
+ // Default recency cap: for unhandled phase kinds with >3 phases of history,
1110
+ // keep only the most recent 3 (immediately-preceding phase always included)
1111
+ if (!['review', 'test', 'implement'].includes(phase.config.kind ?? '')) {
1112
+ const phaseNames = [...filteredOutputs.keys()];
1113
+ if (phaseNames.length > 3) {
1114
+ const recencyCapped = new Map();
1115
+ const recent3 = phaseNames.slice(-3);
1116
+ // preceding phase is always in slice(-3) — no separate guard needed
1117
+ for (const name of recent3) {
1118
+ const outputs = filteredOutputs.get(name);
1119
+ if (outputs)
1120
+ recencyCapped.set(name, outputs);
1121
+ }
1122
+ const filteredTokens = [...recencyCapped.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1123
+ const totalTokens = [...filteredOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1124
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
1125
+ filteredOutputs = recencyCapped;
1126
+ }
1127
+ }
1019
1128
  const runContext = {
1020
1129
  phaseOutputs: filteredOutputs,
1021
1130
  livingSpec: this.livingSpec,
@@ -1032,6 +1141,19 @@ export class SwarmEngine {
1032
1141
  agentCount: phase.config.agents.length,
1033
1142
  parallel: phase.config.parallel,
1034
1143
  }, 'engine');
1144
+ // Track per-agent error counts during this phase for retry-burst detection
1145
+ const phaseRetryCounts = new Map();
1146
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1147
+ const retryListener = this.violationTracker
1148
+ ? (event) => {
1149
+ const data = (event?.data ?? {});
1150
+ const name = String(data.agentName ?? data.agentType ?? '');
1151
+ if (name)
1152
+ phaseRetryCounts.set(name, (phaseRetryCounts.get(name) ?? 0) + 1);
1153
+ }
1154
+ : null;
1155
+ if (retryListener)
1156
+ this.bus.on('agent:error', retryListener);
1035
1157
  try {
1036
1158
  if (phase.config.parallel) {
1037
1159
  // Run all agents in parallel (with retry)
@@ -1094,8 +1216,45 @@ export class SwarmEngine {
1094
1216
  phase.status = 'failed';
1095
1217
  throw error;
1096
1218
  }
1219
+ finally {
1220
+ // Remove retry listener regardless of success/failure
1221
+ if (retryListener)
1222
+ this.bus.off('agent:error', retryListener);
1223
+ }
1097
1224
  phase.completedAt = new Date();
1098
1225
  phase.usage = phase.agents.reduce((total, agent) => mergeUsageStats(total, agent.usage), emptyUsageStats());
1226
+ // Record retry-burst violations (>2 retries for any agent in this phase)
1227
+ if (this.violationTracker) {
1228
+ for (const [agentName, retryCount] of phaseRetryCounts) {
1229
+ if (retryCount > 2) {
1230
+ this.violationTracker.record({
1231
+ type: 'retry-burst',
1232
+ orchestrationId: orchestration.config.id,
1233
+ phase: phase.config.name,
1234
+ agentType: agentName,
1235
+ details: `Agent ${agentName} retried ${retryCount} times`,
1236
+ repo: this.options.cwd,
1237
+ });
1238
+ }
1239
+ }
1240
+ }
1241
+ // Drain per-agent file-scope filtering savings accumulated during this phase
1242
+ const contextFilteringSaved = this.compaction.popContextFilteringSaved();
1243
+ if (contextFilteringSaved > 0) {
1244
+ this.benefitsCollector.addContextFilteringSaved(contextFilteringSaved);
1245
+ }
1246
+ // Credit real cache savings from API-reported cache_read tokens (supersedes caller estimates).
1247
+ // Also drives per-agentType cache-cliff detection — must call even when cacheRead is 0,
1248
+ // because that's exactly the cliff signal we want to capture. The "agentType" is the
1249
+ // registry name (e.g., "researcher") taken from the matching AgentAssignment, since
1250
+ // AgentInstance only carries the per-instance display name.
1251
+ const assignmentByName = new Map(phase.config.agents.map((a) => [a.name, a.type]));
1252
+ for (const agent of phase.agents) {
1253
+ if (agent.usage) {
1254
+ const agentType = assignmentByName.get(agent.config.name);
1255
+ this.benefitsCollector.recordApiUsage(agent.usage, agentType);
1256
+ }
1257
+ }
1099
1258
  // Record review feedback into the knowledge graph (Feature 7)
1100
1259
  if (phase.config.kind === 'review' && this.reviewFeedback) {
1101
1260
  for (const agent of phase.agents) {