swarm-engine 1.41.0 → 1.51.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 (141) 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/core/event-bus.d.ts.map +1 -1
  22. package/dist/core/event-bus.js +4 -1
  23. package/dist/core/event-bus.js.map +1 -1
  24. package/dist/core/types.d.ts +26 -1
  25. package/dist/core/types.d.ts.map +1 -1
  26. package/dist/core/types.js +4 -0
  27. package/dist/core/types.js.map +1 -1
  28. package/dist/index.d.ts +18 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +12 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/memory/index.js +2 -2
  33. package/dist/memory/index.js.map +1 -1
  34. package/dist/runtime/acon.d.ts +61 -0
  35. package/dist/runtime/acon.d.ts.map +1 -0
  36. package/dist/runtime/acon.js +266 -0
  37. package/dist/runtime/acon.js.map +1 -0
  38. package/dist/runtime/agent-runner.d.ts +8 -0
  39. package/dist/runtime/agent-runner.d.ts.map +1 -1
  40. package/dist/runtime/agent-runner.js +93 -4
  41. package/dist/runtime/agent-runner.js.map +1 -1
  42. package/dist/runtime/backends/claude.d.ts +1 -0
  43. package/dist/runtime/backends/claude.d.ts.map +1 -1
  44. package/dist/runtime/backends/claude.js +50 -2
  45. package/dist/runtime/backends/claude.js.map +1 -1
  46. package/dist/runtime/backends/codex.d.ts.map +1 -1
  47. package/dist/runtime/backends/codex.js +4 -0
  48. package/dist/runtime/backends/codex.js.map +1 -1
  49. package/dist/runtime/backends/gemini.d.ts.map +1 -1
  50. package/dist/runtime/backends/gemini.js +4 -0
  51. package/dist/runtime/backends/gemini.js.map +1 -1
  52. package/dist/runtime/benefits.d.ts +250 -0
  53. package/dist/runtime/benefits.d.ts.map +1 -0
  54. package/dist/runtime/benefits.js +775 -0
  55. package/dist/runtime/benefits.js.map +1 -0
  56. package/dist/runtime/cache-optimizer.d.ts +7 -3
  57. package/dist/runtime/cache-optimizer.d.ts.map +1 -1
  58. package/dist/runtime/cache-optimizer.js +11 -7
  59. package/dist/runtime/cache-optimizer.js.map +1 -1
  60. package/dist/runtime/compaction.d.ts +6 -1
  61. package/dist/runtime/compaction.d.ts.map +1 -1
  62. package/dist/runtime/compaction.js +39 -2
  63. package/dist/runtime/compaction.js.map +1 -1
  64. package/dist/runtime/compactor.d.ts +90 -0
  65. package/dist/runtime/compactor.d.ts.map +1 -0
  66. package/dist/runtime/compactor.js +418 -0
  67. package/dist/runtime/compactor.js.map +1 -0
  68. package/dist/runtime/context-decay.d.ts +45 -0
  69. package/dist/runtime/context-decay.d.ts.map +1 -0
  70. package/dist/runtime/context-decay.js +149 -0
  71. package/dist/runtime/context-decay.js.map +1 -0
  72. package/dist/runtime/cost-model.d.ts.map +1 -1
  73. package/dist/runtime/cost-model.js +20 -17
  74. package/dist/runtime/cost-model.js.map +1 -1
  75. package/dist/runtime/engine.d.ts +2 -0
  76. package/dist/runtime/engine.d.ts.map +1 -1
  77. package/dist/runtime/engine.js +113 -3
  78. package/dist/runtime/engine.js.map +1 -1
  79. package/dist/runtime/graph-discovery.js +2 -2
  80. package/dist/runtime/graph-discovery.js.map +1 -1
  81. package/dist/runtime/graph-trajectory.js +3 -3
  82. package/dist/runtime/graph-trajectory.js.map +1 -1
  83. package/dist/runtime/lsp.d.ts.map +1 -1
  84. package/dist/runtime/lsp.js +4 -0
  85. package/dist/runtime/lsp.js.map +1 -1
  86. package/dist/runtime/mcp.d.ts +1 -0
  87. package/dist/runtime/mcp.d.ts.map +1 -1
  88. package/dist/runtime/mcp.js +38 -0
  89. package/dist/runtime/mcp.js.map +1 -1
  90. package/dist/runtime/output-schemas.d.ts +21 -0
  91. package/dist/runtime/output-schemas.d.ts.map +1 -0
  92. package/dist/runtime/output-schemas.js +252 -0
  93. package/dist/runtime/output-schemas.js.map +1 -0
  94. package/dist/runtime/output-summarizer.d.ts +45 -0
  95. package/dist/runtime/output-summarizer.d.ts.map +1 -0
  96. package/dist/runtime/output-summarizer.js +171 -0
  97. package/dist/runtime/output-summarizer.js.map +1 -0
  98. package/dist/runtime/plugins.d.ts +5 -1
  99. package/dist/runtime/plugins.d.ts.map +1 -1
  100. package/dist/runtime/plugins.js +14 -2
  101. package/dist/runtime/plugins.js.map +1 -1
  102. package/dist/runtime/prompt-tier.d.ts +33 -0
  103. package/dist/runtime/prompt-tier.d.ts.map +1 -0
  104. package/dist/runtime/prompt-tier.js +105 -0
  105. package/dist/runtime/prompt-tier.js.map +1 -0
  106. package/dist/runtime/sharing.js +2 -1
  107. package/dist/runtime/sharing.js.map +1 -1
  108. package/dist/runtime/stats.d.ts +2 -0
  109. package/dist/runtime/stats.d.ts.map +1 -1
  110. package/dist/runtime/stats.js +17 -3
  111. package/dist/runtime/stats.js.map +1 -1
  112. package/dist/utils/project-config.d.ts +20 -0
  113. package/dist/utils/project-config.d.ts.map +1 -1
  114. package/dist/utils/project-config.js +46 -1
  115. package/dist/utils/project-config.js.map +1 -1
  116. package/dist/utils/redact.d.ts.map +1 -1
  117. package/dist/utils/redact.js +5 -1
  118. package/dist/utils/redact.js.map +1 -1
  119. package/dist/web/bridge.d.ts +47 -0
  120. package/dist/web/bridge.d.ts.map +1 -0
  121. package/dist/web/bridge.js +267 -0
  122. package/dist/web/bridge.js.map +1 -0
  123. package/dist/web/graph-api.d.ts +19 -0
  124. package/dist/web/graph-api.d.ts.map +1 -0
  125. package/dist/web/graph-api.js +157 -0
  126. package/dist/web/graph-api.js.map +1 -0
  127. package/dist/web/index.d.ts +21 -0
  128. package/dist/web/index.d.ts.map +1 -0
  129. package/dist/web/index.js +38 -0
  130. package/dist/web/index.js.map +1 -0
  131. package/dist/web/public/index.html +1304 -0
  132. package/dist/web/public/public/index.html +1307 -0
  133. package/dist/web/server.d.ts +24 -0
  134. package/dist/web/server.d.ts.map +1 -0
  135. package/dist/web/server.js +113 -0
  136. package/dist/web/server.js.map +1 -0
  137. package/dist/web/tray.d.ts +23 -0
  138. package/dist/web/tray.d.ts.map +1 -0
  139. package/dist/web/tray.js +205 -0
  140. package/dist/web/tray.js.map +1 -0
  141. 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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"}
@@ -89,6 +89,7 @@ export declare class SwarmEngine {
89
89
  private _orchestrationEmbedder?;
90
90
  private swarmMcpServer;
91
91
  private decisions;
92
+ private benefitsCollector;
92
93
  get reviewFeedback(): ReviewFeedbackRecorder | null;
93
94
  get causalEngine(): CausalGraphEngine | null;
94
95
  get gnnPredictor(): FailurePropagationPredictor | null;
@@ -116,6 +117,7 @@ export declare class SwarmEngine {
116
117
  model?: string;
117
118
  costBudget?: number;
118
119
  params?: Record<string, unknown>;
120
+ promptDiet?: import('../core/types.js').PromptDietConfig;
119
121
  }): Promise<OrchestrationInstance>;
120
122
  /**
121
123
  * 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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"}
@@ -49,6 +49,7 @@ import { OrchestrationEmbedder } from './graph-embeddings.js';
49
49
  import { HandoffParser } from './structured-handoff.js';
50
50
  import { classifyTaskComplexity } from './cascade.js';
51
51
  import { SwarmMcpServer } from './sdk-mcp-server.js';
52
+ import { BenefitsCollector } from './benefits.js';
52
53
  /**
53
54
  * The Swarm Orchestration Engine.
54
55
  *
@@ -103,6 +104,7 @@ export class SwarmEngine {
103
104
  _orchestrationEmbedder;
104
105
  swarmMcpServer = null;
105
106
  decisions = new Map();
107
+ benefitsCollector;
106
108
  get reviewFeedback() {
107
109
  if (this._reviewFeedback === undefined) {
108
110
  this._reviewFeedback = this.executionGraph
@@ -219,6 +221,10 @@ export class SwarmEngine {
219
221
  this.options = options;
220
222
  this.registry = options.registry;
221
223
  this.bus = options.bus;
224
+ this.benefitsCollector = new BenefitsCollector(this.bus);
225
+ // Wire cold-wake events from AgentRunner into the benefits counter so the
226
+ // Cold wakes row in the summary table reflects what actually happened.
227
+ this.bus.on('cache:cold-wake', () => this.benefitsCollector.recordColdWake());
222
228
  this.executor = new AgentExecutor({
223
229
  bus: this.bus,
224
230
  logger: options.logger,
@@ -430,6 +436,7 @@ export class SwarmEngine {
430
436
  try {
431
437
  const risks = this.gnnPredictor.predict(orchestration.config.id, this.gnnWeights);
432
438
  const highRisk = risks.filter((r) => r.riskScore > 0.7);
439
+ this.benefitsCollector.addGnnPrediction(highRisk.length);
433
440
  if (highRisk.length > 0) {
434
441
  this.log.warn(`GNN predicts high failure risk for ${highRisk.length} nodes`);
435
442
  this.bus.emit('system:warning', { type: 'gnn-risk', risks: highRisk }, 'engine');
@@ -521,6 +528,7 @@ export class SwarmEngine {
521
528
  }, { confidence: reflection.confidence }, patternStats
522
529
  ? { successRate: patternStats.successRate, avgDurationMs: patternStats.avgDurationMs }
523
530
  : undefined);
531
+ this.benefitsCollector.addConfidenceGateEvaluated(gate.result !== 'pass');
524
532
  if (gate.result === 'halt') {
525
533
  this.log.warn(`Phase gate HALT: ${gate.reason}`);
526
534
  orchestration.status = 'failed';
@@ -685,12 +693,42 @@ export class SwarmEngine {
685
693
  }
686
694
  // Compute total usage
687
695
  orchestration.usage = orchestration.phases.reduce((total, phase) => mergeUsageStats(total, phase.usage), emptyUsageStats());
696
+ // Build benefits summary
697
+ let patternStats;
698
+ if (this.graphLearner) {
699
+ try {
700
+ const stats = this.graphLearner.getPatternStats(config.pattern)?.[0];
701
+ if (stats)
702
+ patternStats = { totalRuns: stats.totalRuns, successRate: stats.successRate, avgCostUsd: stats.avgCostUsd };
703
+ }
704
+ catch {
705
+ /* pattern stats unavailable */
706
+ }
707
+ }
708
+ const durationMs = orchestration.completedAt.getTime() - (orchestration.startedAt?.getTime() ?? 0);
709
+ const allAgents = orchestration.phases.flatMap((p) => p.agents);
710
+ const agentsExecuted = allAgents.length;
711
+ const totalAgentTurns = allAgents.reduce((sum, a) => sum + (a.usage?.turns || 1), 0);
712
+ const benefitsSummary = this.benefitsCollector.build({
713
+ actualTotalTokens: orchestration.usage.totalTokens,
714
+ actualCostUsd: orchestration.usage.costUsd,
715
+ durationMs,
716
+ agentsExecuted,
717
+ totalAgentTurns,
718
+ phasesExecuted: orchestration.phases.filter((p) => p.status === 'completed').length,
719
+ historicalAvgCostUsd: patternStats?.avgCostUsd ?? null,
720
+ patternRunsRecorded: patternStats?.totalRuns ?? 0,
721
+ historicalSuccessRate: patternStats?.successRate ?? null,
722
+ });
723
+ orchestration.benefits = benefitsSummary;
724
+ this.benefitsCollector.reset();
688
725
  this.bus.emit(orchestration.status === 'completed' ? 'orchestration:complete' : 'orchestration:failed', {
689
726
  id: config.id,
690
727
  name: config.name,
691
728
  status: orchestration.status,
692
729
  usage: orchestration.usage,
693
- durationMs: orchestration.completedAt.getTime() - (orchestration.startedAt?.getTime() ?? 0),
730
+ benefits: benefitsSummary,
731
+ durationMs,
694
732
  }, 'engine');
695
733
  this.log.info(`Orchestration ${orchestration.status}: ${config.name}`, {
696
734
  usage: orchestration.usage,
@@ -724,6 +762,7 @@ export class SwarmEngine {
724
762
  })),
725
763
  })),
726
764
  costBudget: options?.costBudget,
765
+ promptDiet: options?.promptDiet,
727
766
  };
728
767
  // Substitute pattern parameters into agent prompts
729
768
  if (options?.params && pattern.parameters) {
@@ -888,6 +927,9 @@ export class SwarmEngine {
888
927
  const dropout = this.replanner.evaluateDropout(orchestration, phase.config);
889
928
  if (dropout) {
890
929
  this.log.info(`Agent dropout: ${dropout.reason}`);
930
+ const droppedCount = phase.config.agents.length - dropout.agentsToKeep.length;
931
+ for (let i = 0; i < droppedCount; i++)
932
+ this.benefitsCollector.addAgentDroppedRules();
891
933
  phase.config.agents = phase.config.agents.filter((a) => dropout.agentsToKeep.includes(a.name));
892
934
  this.bus.emit('system:warning', { type: 'agent-dropout', ...dropout }, 'adaptive');
893
935
  }
@@ -899,6 +941,8 @@ export class SwarmEngine {
899
941
  const toDrop = recommendations.filter((r) => r.shouldDropOut);
900
942
  if (toDrop.length > 0) {
901
943
  this.log.info(`Predictive dropout: skipping ${toDrop.map((d) => d.agentType).join(', ')}`);
944
+ for (const d of toDrop)
945
+ this.benefitsCollector.addAgentDroppedML(5000); // ~5K tokens per dropped agent
902
946
  phase.config.agents = phase.config.agents.filter((a) => !toDrop.some((d) => d.agentType === a.type));
903
947
  }
904
948
  }
@@ -959,8 +1003,12 @@ export class SwarmEngine {
959
1003
  }
960
1004
  }
961
1005
  // Fall back to all outputs if nothing matched
962
- if (reviewFiltered.size > 0)
1006
+ if (reviewFiltered.size > 0) {
1007
+ const filteredTokens = [...reviewFiltered.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1008
+ const totalTokens = [...this.phaseOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1009
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
963
1010
  filteredOutputs = reviewFiltered;
1011
+ }
964
1012
  }
965
1013
  if (phase.config.kind === 'test') {
966
1014
  // Test phase only needs implement outputs
@@ -970,8 +1018,46 @@ export class SwarmEngine {
970
1018
  testFiltered.set(phaseName, outputs);
971
1019
  }
972
1020
  }
973
- if (testFiltered.size > 0)
1021
+ if (testFiltered.size > 0) {
1022
+ const filteredTokens = [...testFiltered.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1023
+ const totalTokens = [...this.phaseOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1024
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
974
1025
  filteredOutputs = testFiltered;
1026
+ }
1027
+ }
1028
+ if (phase.config.kind === 'implement') {
1029
+ // Implementers need research/plan/design outputs, not other implement phases (noise)
1030
+ const implFiltered = new Map();
1031
+ for (const [phaseName, outputs] of this.phaseOutputs) {
1032
+ if (phaseName.includes('research') || phaseName.includes('plan') || phaseName.includes('design')) {
1033
+ implFiltered.set(phaseName, outputs);
1034
+ }
1035
+ }
1036
+ if (implFiltered.size > 0) {
1037
+ const filteredTokens = [...implFiltered.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1038
+ const totalTokens = [...this.phaseOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1039
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
1040
+ filteredOutputs = implFiltered;
1041
+ }
1042
+ }
1043
+ // Default recency cap: for unhandled phase kinds with >3 phases of history,
1044
+ // keep only the most recent 3 (immediately-preceding phase always included)
1045
+ if (!['review', 'test', 'implement'].includes(phase.config.kind ?? '')) {
1046
+ const phaseNames = [...filteredOutputs.keys()];
1047
+ if (phaseNames.length > 3) {
1048
+ const recencyCapped = new Map();
1049
+ const recent3 = phaseNames.slice(-3);
1050
+ // preceding phase is always in slice(-3) — no separate guard needed
1051
+ for (const name of recent3) {
1052
+ const outputs = filteredOutputs.get(name);
1053
+ if (outputs)
1054
+ recencyCapped.set(name, outputs);
1055
+ }
1056
+ const filteredTokens = [...recencyCapped.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1057
+ const totalTokens = [...filteredOutputs.values()].flat().reduce((s, o) => s + estimateTokens(o), 0);
1058
+ this.benefitsCollector.addSmartRoutingSaved(Math.max(0, totalTokens - filteredTokens));
1059
+ filteredOutputs = recencyCapped;
1060
+ }
975
1061
  }
976
1062
  const runContext = {
977
1063
  phaseOutputs: filteredOutputs,
@@ -999,6 +1085,7 @@ export class SwarmEngine {
999
1085
  const sharedTokens = estimateTokens(`## Orchestration: ${orchestration.config.name}\nPattern: ${orchestration.config.pattern}\n\n${phaseContext}`);
1000
1086
  if (sharedTokens > 0) {
1001
1087
  const savings = estimateCacheSavings(sharedTokens, phase.config.agents.length, 3.0);
1088
+ this.benefitsCollector.addCacheSavingsUsd(savings.savings ?? 0);
1002
1089
  this.log.info(`Cache optimization: ${savings.savingsPercent}% estimated savings on shared prefix (${phase.config.agents.length} agents)`, savings);
1003
1090
  }
1004
1091
  }
@@ -1052,12 +1139,30 @@ export class SwarmEngine {
1052
1139
  }
1053
1140
  phase.completedAt = new Date();
1054
1141
  phase.usage = phase.agents.reduce((total, agent) => mergeUsageStats(total, agent.usage), emptyUsageStats());
1142
+ // Drain per-agent file-scope filtering savings accumulated during this phase
1143
+ const contextFilteringSaved = this.compaction.popContextFilteringSaved();
1144
+ if (contextFilteringSaved > 0) {
1145
+ this.benefitsCollector.addContextFilteringSaved(contextFilteringSaved);
1146
+ }
1147
+ // Credit real cache savings from API-reported cache_read tokens (supersedes caller estimates).
1148
+ // Also drives per-agentType cache-cliff detection — must call even when cacheRead is 0,
1149
+ // because that's exactly the cliff signal we want to capture. The "agentType" is the
1150
+ // registry name (e.g., "researcher") taken from the matching AgentAssignment, since
1151
+ // AgentInstance only carries the per-instance display name.
1152
+ const assignmentByName = new Map(phase.config.agents.map((a) => [a.name, a.type]));
1153
+ for (const agent of phase.agents) {
1154
+ if (agent.usage) {
1155
+ const agentType = assignmentByName.get(agent.config.name);
1156
+ this.benefitsCollector.recordApiUsage(agent.usage, agentType);
1157
+ }
1158
+ }
1055
1159
  // Record review feedback into the knowledge graph (Feature 7)
1056
1160
  if (phase.config.kind === 'review' && this.reviewFeedback) {
1057
1161
  for (const agent of phase.agents) {
1058
1162
  if (agent.result?.output) {
1059
1163
  try {
1060
1164
  this.reviewFeedback.recordFindings(orchestration.config.id, phase.config.name, agent.result.output, agent.config.name);
1165
+ this.benefitsCollector.addReviewFindingRecorded();
1061
1166
  const findings = parseReviewOutput(agent.result.output, agent.config.name);
1062
1167
  this.reviewFeedback.adjustContextWeights(orchestration.config.id, findings);
1063
1168
  }
@@ -1078,6 +1183,10 @@ export class SwarmEngine {
1078
1183
  const adaptation = this.replanner.analyze(orchestration, phase);
1079
1184
  if (adaptation) {
1080
1185
  this.replanner.apply(orchestration, adaptation);
1186
+ for (const _s of adaptation.skipPhases || [])
1187
+ this.benefitsCollector.addPhaseSkipped();
1188
+ for (const _o of Object.keys(adaptation.modelOverrides || {}))
1189
+ this.benefitsCollector.addModelDowngrade();
1081
1190
  this.bus.emit('system:warning', {
1082
1191
  type: 'adaptive-replan',
1083
1192
  reason: adaptation.reason,
@@ -1112,6 +1221,7 @@ export class SwarmEngine {
1112
1221
  // Update living spec with phase outputs
1113
1222
  if (this.livingSpec) {
1114
1223
  this.livingSpec = updateSpecFromPhase(this.livingSpec, phase.config.name, outputs);
1224
+ this.benefitsCollector.addLivingSpecUpdate();
1115
1225
  }
1116
1226
  // Generate reflection and inject into outputs for next phase
1117
1227
  const reflection = this.reflectionEngine.reflect(phase);
@@ -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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"}
@@ -334,7 +334,7 @@ export class TaskDiscovery {
334
334
  const patternId = `pattern:${pattern}`;
335
335
  const patternNode = this.graph.getNode(patternId);
336
336
  if (!patternNode)
337
- return 0.05 * fileCount; // fallback: $0.05/file
337
+ return 0.5 * fileCount; // fallback: $0.50/file (calibrated April 2026)
338
338
  // Get orchestrations that used this pattern
339
339
  const usedPatternEdges = this.graph.getEdges(patternId, 'incoming').filter((e) => e.type === 'used_pattern');
340
340
  const costs = [];
@@ -353,7 +353,7 @@ export class TaskDiscovery {
353
353
  }
354
354
  }
355
355
  if (costs.length === 0)
356
- return 0.05 * fileCount;
356
+ return 0.5 * fileCount;
357
357
  // Average cost per file, then scale by requested fileCount
358
358
  const totalCost = costs.reduce((a, b) => a + b, 0);
359
359
  const totalFiles = fileCounts.reduce((a, b) => a + b, 0);