swarm-engine 1.38.0 → 1.43.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 (127) hide show
  1. package/dist/core/patterns.d.ts +7 -1
  2. package/dist/core/patterns.d.ts.map +1 -1
  3. package/dist/core/patterns.js +23 -0
  4. package/dist/core/patterns.js.map +1 -1
  5. package/dist/core/types.d.ts +11 -0
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/core/types.js.map +1 -1
  8. package/dist/index.d.ts +26 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +18 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/memory/index.d.ts.map +1 -1
  13. package/dist/memory/index.js +3 -9
  14. package/dist/memory/index.js.map +1 -1
  15. package/dist/runtime/acon.d.ts +61 -0
  16. package/dist/runtime/acon.d.ts.map +1 -0
  17. package/dist/runtime/acon.js +266 -0
  18. package/dist/runtime/acon.js.map +1 -0
  19. package/dist/runtime/adaptive.d.ts +1 -0
  20. package/dist/runtime/adaptive.d.ts.map +1 -1
  21. package/dist/runtime/adaptive.js +18 -4
  22. package/dist/runtime/adaptive.js.map +1 -1
  23. package/dist/runtime/agent-runner.d.ts +8 -0
  24. package/dist/runtime/agent-runner.d.ts.map +1 -1
  25. package/dist/runtime/agent-runner.js +79 -4
  26. package/dist/runtime/agent-runner.js.map +1 -1
  27. package/dist/runtime/backends/claude-session.d.ts +49 -0
  28. package/dist/runtime/backends/claude-session.d.ts.map +1 -0
  29. package/dist/runtime/backends/claude-session.js +237 -0
  30. package/dist/runtime/backends/claude-session.js.map +1 -0
  31. package/dist/runtime/backends/claude.d.ts.map +1 -1
  32. package/dist/runtime/backends/claude.js +90 -4
  33. package/dist/runtime/backends/claude.js.map +1 -1
  34. package/dist/runtime/backends/types.d.ts +31 -1
  35. package/dist/runtime/backends/types.d.ts.map +1 -1
  36. package/dist/runtime/benefits.d.ts +170 -0
  37. package/dist/runtime/benefits.d.ts.map +1 -0
  38. package/dist/runtime/benefits.js +588 -0
  39. package/dist/runtime/benefits.js.map +1 -0
  40. package/dist/runtime/compaction.d.ts +7 -1
  41. package/dist/runtime/compaction.d.ts.map +1 -1
  42. package/dist/runtime/compaction.js +12 -2
  43. package/dist/runtime/compaction.js.map +1 -1
  44. package/dist/runtime/compactor.d.ts +90 -0
  45. package/dist/runtime/compactor.d.ts.map +1 -0
  46. package/dist/runtime/compactor.js +418 -0
  47. package/dist/runtime/compactor.js.map +1 -0
  48. package/dist/runtime/context-decay.d.ts +45 -0
  49. package/dist/runtime/context-decay.d.ts.map +1 -0
  50. package/dist/runtime/context-decay.js +149 -0
  51. package/dist/runtime/context-decay.js.map +1 -0
  52. package/dist/runtime/distiller.d.ts +1 -0
  53. package/dist/runtime/distiller.d.ts.map +1 -1
  54. package/dist/runtime/distiller.js +8 -2
  55. package/dist/runtime/distiller.js.map +1 -1
  56. package/dist/runtime/engine.d.ts +44 -15
  57. package/dist/runtime/engine.d.ts.map +1 -1
  58. package/dist/runtime/engine.js +406 -68
  59. package/dist/runtime/engine.js.map +1 -1
  60. package/dist/runtime/execution-graph.d.ts.map +1 -1
  61. package/dist/runtime/execution-graph.js.map +1 -1
  62. package/dist/runtime/executor.d.ts +7 -1
  63. package/dist/runtime/executor.d.ts.map +1 -1
  64. package/dist/runtime/executor.js +20 -0
  65. package/dist/runtime/executor.js.map +1 -1
  66. package/dist/runtime/graph-adversarial.d.ts.map +1 -1
  67. package/dist/runtime/graph-adversarial.js.map +1 -1
  68. package/dist/runtime/graph-analyzer.d.ts.map +1 -1
  69. package/dist/runtime/graph-analyzer.js.map +1 -1
  70. package/dist/runtime/graph-discovery.d.ts.map +1 -1
  71. package/dist/runtime/graph-discovery.js +1 -4
  72. package/dist/runtime/graph-discovery.js.map +1 -1
  73. package/dist/runtime/graph-dropout.d.ts.map +1 -1
  74. package/dist/runtime/graph-dropout.js +10 -2
  75. package/dist/runtime/graph-dropout.js.map +1 -1
  76. package/dist/runtime/graph-embeddings.d.ts.map +1 -1
  77. package/dist/runtime/graph-embeddings.js +1 -3
  78. package/dist/runtime/graph-embeddings.js.map +1 -1
  79. package/dist/runtime/graph-feedback.d.ts.map +1 -1
  80. package/dist/runtime/graph-feedback.js +1 -3
  81. package/dist/runtime/graph-feedback.js.map +1 -1
  82. package/dist/runtime/graph-gnn.d.ts.map +1 -1
  83. package/dist/runtime/graph-gnn.js.map +1 -1
  84. package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -1
  85. package/dist/runtime/graph-meta-adversarial.js.map +1 -1
  86. package/dist/runtime/graph-meta.d.ts.map +1 -1
  87. package/dist/runtime/graph-meta.js +48 -20
  88. package/dist/runtime/graph-meta.js.map +1 -1
  89. package/dist/runtime/graph-self-evolve.d.ts.map +1 -1
  90. package/dist/runtime/graph-self-evolve.js.map +1 -1
  91. package/dist/runtime/graph-synthesis.d.ts.map +1 -1
  92. package/dist/runtime/graph-synthesis.js.map +1 -1
  93. package/dist/runtime/graph-trajectory.d.ts.map +1 -1
  94. package/dist/runtime/graph-trajectory.js +3 -8
  95. package/dist/runtime/graph-trajectory.js.map +1 -1
  96. package/dist/runtime/learning-engine.d.ts.map +1 -1
  97. package/dist/runtime/learning-engine.js +10 -4
  98. package/dist/runtime/learning-engine.js.map +1 -1
  99. package/dist/runtime/output-schemas.d.ts +21 -0
  100. package/dist/runtime/output-schemas.d.ts.map +1 -0
  101. package/dist/runtime/output-schemas.js +252 -0
  102. package/dist/runtime/output-schemas.js.map +1 -0
  103. package/dist/runtime/prompt-compressor.d.ts +16 -0
  104. package/dist/runtime/prompt-compressor.d.ts.map +1 -0
  105. package/dist/runtime/prompt-compressor.js +68 -0
  106. package/dist/runtime/prompt-compressor.js.map +1 -0
  107. package/dist/runtime/repo-map.d.ts +40 -0
  108. package/dist/runtime/repo-map.d.ts.map +1 -0
  109. package/dist/runtime/repo-map.js +358 -0
  110. package/dist/runtime/repo-map.js.map +1 -0
  111. package/dist/runtime/sdk-mcp-server.d.ts +44 -0
  112. package/dist/runtime/sdk-mcp-server.d.ts.map +1 -0
  113. package/dist/runtime/sdk-mcp-server.js +133 -0
  114. package/dist/runtime/sdk-mcp-server.js.map +1 -0
  115. package/dist/runtime/structured-handoff.d.ts +41 -0
  116. package/dist/runtime/structured-handoff.d.ts.map +1 -0
  117. package/dist/runtime/structured-handoff.js +279 -0
  118. package/dist/runtime/structured-handoff.js.map +1 -0
  119. package/dist/runtime/token-analytics.d.ts +38 -0
  120. package/dist/runtime/token-analytics.d.ts.map +1 -0
  121. package/dist/runtime/token-analytics.js +59 -0
  122. package/dist/runtime/token-analytics.js.map +1 -0
  123. package/dist/runtime/verifier.d.ts +10 -0
  124. package/dist/runtime/verifier.d.ts.map +1 -1
  125. package/dist/runtime/verifier.js +97 -1
  126. package/dist/runtime/verifier.js.map +1 -1
  127. package/package.json +1 -1
@@ -0,0 +1,588 @@
1
+ /**
2
+ * BenefitsCollector — aggregates optimization metrics during orchestration
3
+ * and produces a user-facing summary of what the engine did for them.
4
+ */
5
+ // ─── Collector ────────────────────────────────────────────────
6
+ /**
7
+ * Collects benefits metrics during orchestration execution.
8
+ * Call increment methods as optimizations occur, then call `build()` at the end.
9
+ */
10
+ export class BenefitsCollector {
11
+ // Token savings accumulators
12
+ _smartRoutingSaved = 0;
13
+ _promptCompressionSaved = 0;
14
+ _verbatimCompactionSaved = 0;
15
+ _contextDecaySaved = 0;
16
+ _cacheSavingsUsd = 0;
17
+ // Graph counters
18
+ _contextRoutingDecisions = 0;
19
+ _coModHintsInjected = 0;
20
+ _confidenceGatesEvaluated = 0;
21
+ _gatesTriggered = 0;
22
+ _reviewFindingsRecorded = 0;
23
+ // ML counters
24
+ _gnnPredictionsMade = 0;
25
+ _highRiskNodesIdentified = 0;
26
+ _agentsDroppedML = 0;
27
+ _agentsDroppedRules = 0;
28
+ _dropoutTokensSaved = 0;
29
+ _affinityEscalations = 0;
30
+ _trajectoryPredictionsMade = 0;
31
+ // Adaptive counters
32
+ _phasesSkipped = 0;
33
+ _modelDowngrades = 0;
34
+ _modelUpgrades = 0;
35
+ _cascadeTierChanges = 0;
36
+ _budgetWarnings = 0;
37
+ _livingSpecUpdates = 0;
38
+ // ─── Token savings methods ────────────────────────────────
39
+ addSmartRoutingSaved(tokens) {
40
+ this._smartRoutingSaved += tokens;
41
+ }
42
+ addPromptCompressionSaved(tokens) {
43
+ this._promptCompressionSaved += tokens;
44
+ }
45
+ addVerbatimCompactionSaved(tokens) {
46
+ this._verbatimCompactionSaved += tokens;
47
+ }
48
+ addContextDecaySaved(tokens) {
49
+ this._contextDecaySaved += tokens;
50
+ }
51
+ addCacheSavingsUsd(usd) {
52
+ this._cacheSavingsUsd += usd;
53
+ }
54
+ // ─── Graph methods ────────────────────────────────────────
55
+ addContextRoutingDecision() {
56
+ this._contextRoutingDecisions++;
57
+ }
58
+ addCoModHintInjected() {
59
+ this._coModHintsInjected++;
60
+ }
61
+ addConfidenceGateEvaluated(triggered) {
62
+ this._confidenceGatesEvaluated++;
63
+ if (triggered)
64
+ this._gatesTriggered++;
65
+ }
66
+ addReviewFindingRecorded() {
67
+ this._reviewFindingsRecorded++;
68
+ }
69
+ // ─── ML methods ───────────────────────────────────────────
70
+ addGnnPrediction(highRiskCount) {
71
+ this._gnnPredictionsMade++;
72
+ this._highRiskNodesIdentified += highRiskCount;
73
+ }
74
+ addAgentDroppedML(estimatedTokensSaved) {
75
+ this._agentsDroppedML++;
76
+ this._dropoutTokensSaved += estimatedTokensSaved;
77
+ }
78
+ addAgentDroppedRules() {
79
+ this._agentsDroppedRules++;
80
+ }
81
+ addAffinityEscalation() {
82
+ this._affinityEscalations++;
83
+ }
84
+ addTrajectoryPrediction() {
85
+ this._trajectoryPredictionsMade++;
86
+ }
87
+ // ─── Adaptive methods ─────────────────────────────────────
88
+ addPhaseSkipped() {
89
+ this._phasesSkipped++;
90
+ }
91
+ addModelDowngrade() {
92
+ this._modelDowngrades++;
93
+ }
94
+ addModelUpgrade() {
95
+ this._modelUpgrades++;
96
+ }
97
+ addCascadeTierChange() {
98
+ this._cascadeTierChanges++;
99
+ }
100
+ addBudgetWarning() {
101
+ this._budgetWarnings++;
102
+ }
103
+ addLivingSpecUpdate() {
104
+ this._livingSpecUpdates++;
105
+ }
106
+ // ─── Build ────────────────────────────────────────────────
107
+ /**
108
+ * Build the final summary. Call at orchestration end.
109
+ *
110
+ * @param opts.actualTotalTokens — total input tokens actually consumed (used to compute savingsPercent)
111
+ * @param opts.actualCostUsd — total USD cost of the orchestration
112
+ * @param opts.durationMs — wall-clock duration in milliseconds
113
+ * @param opts.agentsExecuted — number of agents that ran
114
+ * @param opts.phasesExecuted — number of phases that ran
115
+ * @param opts.historicalAvgCostUsd — average cost for this pattern from history (null if none)
116
+ * @param opts.patternRunsRecorded — how many historical runs exist for this pattern
117
+ * @param opts.historicalSuccessRate — success rate from history (null if none)
118
+ */
119
+ build(opts) {
120
+ const totalTokensSaved = this._smartRoutingSaved +
121
+ this._promptCompressionSaved +
122
+ this._verbatimCompactionSaved +
123
+ this._contextDecaySaved +
124
+ this._dropoutTokensSaved;
125
+ // What would have been used without optimizations = actual + saved
126
+ const wouldHaveUsed = opts.actualTotalTokens + totalTokensSaved;
127
+ const savingsPercent = totalTokensSaved > 0 && wouldHaveUsed > 0 ? Math.round((totalTokensSaved / wouldHaveUsed) * 100) : 0;
128
+ const costDelta = opts.historicalAvgCostUsd != null ? opts.actualCostUsd - opts.historicalAvgCostUsd : null;
129
+ return {
130
+ tokens: {
131
+ smartRoutingSaved: this._smartRoutingSaved,
132
+ promptCompressionSaved: this._promptCompressionSaved,
133
+ verbatimCompactionSaved: this._verbatimCompactionSaved,
134
+ contextDecaySaved: this._contextDecaySaved,
135
+ cacheSavingsUsd: Math.round(this._cacheSavingsUsd * 10000) / 10000,
136
+ totalTokensSaved,
137
+ savingsPercent,
138
+ },
139
+ graph: {
140
+ contextRoutingDecisions: this._contextRoutingDecisions,
141
+ coModHintsInjected: this._coModHintsInjected,
142
+ confidenceGatesEvaluated: this._confidenceGatesEvaluated,
143
+ gatesTriggered: this._gatesTriggered,
144
+ patternRunsRecorded: opts.patternRunsRecorded ?? 0,
145
+ historicalSuccessRate: opts.historicalSuccessRate ?? null,
146
+ reviewFindingsRecorded: this._reviewFindingsRecorded,
147
+ },
148
+ ml: {
149
+ gnnPredictionsMade: this._gnnPredictionsMade,
150
+ highRiskNodesIdentified: this._highRiskNodesIdentified,
151
+ agentsDroppedML: this._agentsDroppedML,
152
+ agentsDroppedRules: this._agentsDroppedRules,
153
+ dropoutTokensSaved: this._dropoutTokensSaved,
154
+ affinityEscalations: this._affinityEscalations,
155
+ trajectoryPredictionsMade: this._trajectoryPredictionsMade,
156
+ },
157
+ adaptive: {
158
+ phasesSkipped: this._phasesSkipped,
159
+ modelDowngrades: this._modelDowngrades,
160
+ modelUpgrades: this._modelUpgrades,
161
+ cascadeTierChanges: this._cascadeTierChanges,
162
+ budgetWarnings: this._budgetWarnings,
163
+ livingSpecUpdates: this._livingSpecUpdates,
164
+ },
165
+ actualCostUsd: Math.round(opts.actualCostUsd * 10000) / 10000,
166
+ historicalAvgCostUsd: opts.historicalAvgCostUsd ?? null,
167
+ costDeltaUsd: costDelta != null ? Math.round(costDelta * 10000) / 10000 : null,
168
+ durationMs: opts.durationMs,
169
+ agentsExecuted: opts.agentsExecuted,
170
+ phasesExecuted: opts.phasesExecuted,
171
+ };
172
+ }
173
+ /** Reset all counters */
174
+ reset() {
175
+ this._smartRoutingSaved = 0;
176
+ this._promptCompressionSaved = 0;
177
+ this._verbatimCompactionSaved = 0;
178
+ this._contextDecaySaved = 0;
179
+ this._cacheSavingsUsd = 0;
180
+ this._contextRoutingDecisions = 0;
181
+ this._coModHintsInjected = 0;
182
+ this._confidenceGatesEvaluated = 0;
183
+ this._gatesTriggered = 0;
184
+ this._reviewFindingsRecorded = 0;
185
+ this._gnnPredictionsMade = 0;
186
+ this._highRiskNodesIdentified = 0;
187
+ this._agentsDroppedML = 0;
188
+ this._agentsDroppedRules = 0;
189
+ this._dropoutTokensSaved = 0;
190
+ this._affinityEscalations = 0;
191
+ this._trajectoryPredictionsMade = 0;
192
+ this._phasesSkipped = 0;
193
+ this._modelDowngrades = 0;
194
+ this._modelUpgrades = 0;
195
+ this._cascadeTierChanges = 0;
196
+ this._budgetWarnings = 0;
197
+ this._livingSpecUpdates = 0;
198
+ }
199
+ }
200
+ // ─── Formatter ────────────────────────────────────────────────
201
+ /** Format a number with commas: 12345 → "12,345" */
202
+ function fmtNum(n) {
203
+ return n.toLocaleString('en-US');
204
+ }
205
+ /** Format a USD amount to 4 decimal places */
206
+ function fmtUsd(n) {
207
+ return `$${n.toFixed(4)}`;
208
+ }
209
+ /**
210
+ * Format a BenefitsSummary into a human-readable string.
211
+ * Only shows sections that have at least one non-zero metric.
212
+ * Uses plain text (no box-drawing characters).
213
+ */
214
+ export function formatBenefitsSummary(summary) {
215
+ const sections = [];
216
+ // ─── Token Efficiency ───────────────────────────────────
217
+ const t = summary.tokens;
218
+ const tokenLines = [];
219
+ if (t.smartRoutingSaved > 0) {
220
+ tokenLines.push(` Smart routing saved ~${fmtNum(t.smartRoutingSaved)} tokens (filtered irrelevant phase outputs)`);
221
+ }
222
+ if (t.promptCompressionSaved > 0) {
223
+ tokenLines.push(` Prompt compression saved ~${fmtNum(t.promptCompressionSaved)} tokens (stripped markdown boilerplate)`);
224
+ }
225
+ if (t.verbatimCompactionSaved > 0) {
226
+ tokenLines.push(` Verbatim compaction saved ~${fmtNum(t.verbatimCompactionSaved)} tokens (replaced file reads with refs)`);
227
+ }
228
+ if (t.contextDecaySaved > 0) {
229
+ tokenLines.push(` Context decay saved ~${fmtNum(t.contextDecaySaved)} tokens (older phases summarized)`);
230
+ }
231
+ if (t.cacheSavingsUsd > 0) {
232
+ tokenLines.push(` Cache savings: ${fmtUsd(t.cacheSavingsUsd)} (shared prefix caching across parallel agents)`);
233
+ }
234
+ if (t.totalTokensSaved > 0) {
235
+ tokenLines.push(` Total: ~${fmtNum(t.totalTokensSaved)} tokens saved (${t.savingsPercent}% reduction)`);
236
+ }
237
+ if (tokenLines.length > 0) {
238
+ sections.push(`TOKEN EFFICIENCY\n${tokenLines.join('\n')}`);
239
+ }
240
+ // ─── Knowledge Graph ────────────────────────────────────
241
+ const g = summary.graph;
242
+ const graphLines = [];
243
+ if (g.contextRoutingDecisions > 0) {
244
+ graphLines.push(` ${fmtNum(g.contextRoutingDecisions)} context routing decisions (graph-optimized context per agent)`);
245
+ }
246
+ if (g.coModHintsInjected > 0) {
247
+ graphLines.push(` ${fmtNum(g.coModHintsInjected)} co-modification hints (suggested related files from history)`);
248
+ }
249
+ if (g.confidenceGatesEvaluated > 0) {
250
+ const triggeredPart = g.gatesTriggered > 0
251
+ ? `, ${fmtNum(g.gatesTriggered)} triggered (prevented low-quality handoff)`
252
+ : ', 0 triggered';
253
+ graphLines.push(` ${fmtNum(g.confidenceGatesEvaluated)} confidence gates evaluated${triggeredPart}`);
254
+ }
255
+ if (g.patternRunsRecorded > 0 && g.historicalSuccessRate != null) {
256
+ graphLines.push(` Pattern has ${g.historicalSuccessRate}% success rate across ${fmtNum(g.patternRunsRecorded)} historical runs`);
257
+ }
258
+ if (g.reviewFindingsRecorded > 0) {
259
+ graphLines.push(` ${fmtNum(g.reviewFindingsRecorded)} review findings recorded to graph`);
260
+ }
261
+ if (graphLines.length > 0) {
262
+ sections.push(`KNOWLEDGE GRAPH\n${graphLines.join('\n')}`);
263
+ }
264
+ // ─── ML/GNN Predictions ─────────────────────────────────
265
+ const m = summary.ml;
266
+ const mlLines = [];
267
+ if (m.gnnPredictionsMade > 0) {
268
+ mlLines.push(` ${fmtNum(m.gnnPredictionsMade)} GNN risk predictions, ${fmtNum(m.highRiskNodesIdentified)} high-risk nodes identified`);
269
+ }
270
+ if (m.agentsDroppedML > 0) {
271
+ mlLines.push(` ${fmtNum(m.agentsDroppedML)} agents dropped by predictive dropout (saved ~${fmtNum(m.dropoutTokensSaved)} tokens)`);
272
+ }
273
+ if (m.agentsDroppedRules > 0) {
274
+ mlLines.push(` ${fmtNum(m.agentsDroppedRules)} agents dropped by rule-based dropout`);
275
+ }
276
+ if (m.affinityEscalations > 0) {
277
+ mlLines.push(` ${fmtNum(m.affinityEscalations)} affinity escalation${m.affinityEscalations === 1 ? '' : 's'} (upgraded model for historically-difficult files)`);
278
+ }
279
+ if (m.trajectoryPredictionsMade > 0) {
280
+ mlLines.push(` ${fmtNum(m.trajectoryPredictionsMade)} trajectory predictions (success probability forecasts)`);
281
+ }
282
+ if (mlLines.length > 0) {
283
+ sections.push(`ML/GNN PREDICTIONS\n${mlLines.join('\n')}`);
284
+ }
285
+ // ─── Adaptive Optimization ──────────────────────────────
286
+ const a = summary.adaptive;
287
+ const adaptiveLines = [];
288
+ if (a.phasesSkipped > 0) {
289
+ adaptiveLines.push(` ${fmtNum(a.phasesSkipped)} phase${a.phasesSkipped === 1 ? '' : 's'} skipped (replanner determined ${a.phasesSkipped === 1 ? 'it was' : 'they were'} redundant)`);
290
+ }
291
+ if (a.modelDowngrades > 0) {
292
+ adaptiveLines.push(` ${fmtNum(a.modelDowngrades)} model downgrade${a.modelDowngrades === 1 ? '' : 's'} (used cheaper model where safe)`);
293
+ }
294
+ if (a.modelUpgrades > 0) {
295
+ adaptiveLines.push(` ${fmtNum(a.modelUpgrades)} model upgrade${a.modelUpgrades === 1 ? '' : 's'} (used more capable model where needed)`);
296
+ }
297
+ if (a.cascadeTierChanges > 0) {
298
+ adaptiveLines.push(` ${fmtNum(a.cascadeTierChanges)} cascade tier change${a.cascadeTierChanges === 1 ? '' : 's'} (started cheap, escalated on failure)`);
299
+ }
300
+ if (a.budgetWarnings > 0) {
301
+ adaptiveLines.push(` ${fmtNum(a.budgetWarnings)} budget warning${a.budgetWarnings === 1 ? '' : 's'} issued`);
302
+ }
303
+ if (a.livingSpecUpdates > 0) {
304
+ adaptiveLines.push(` Living spec refined ${fmtNum(a.livingSpecUpdates)} time${a.livingSpecUpdates === 1 ? '' : 's'} during execution`);
305
+ }
306
+ if (adaptiveLines.length > 0) {
307
+ sections.push(`ADAPTIVE OPTIMIZATION\n${adaptiveLines.join('\n')}`);
308
+ }
309
+ // ─── Cost line ──────────────────────────────────────────
310
+ let costLine = `COST: ${fmtUsd(summary.actualCostUsd)}`;
311
+ if (summary.historicalAvgCostUsd != null && summary.costDeltaUsd != null) {
312
+ const direction = summary.costDeltaUsd <= 0 ? 'saved' : 'over';
313
+ const delta = Math.abs(summary.costDeltaUsd);
314
+ costLine += ` (historical avg: ${fmtUsd(summary.historicalAvgCostUsd)}, ${direction} ${fmtUsd(delta)} vs baseline)`;
315
+ }
316
+ sections.push(costLine);
317
+ return sections.join('\n\n');
318
+ }
319
+ // ─── Styled Table Formatter ──────────────────────────────────
320
+ /** Measure display width in a monospace terminal (ASCII = 1 col) */
321
+ function displayWidth(s) {
322
+ let w = 0;
323
+ for (const ch of s) {
324
+ // East Asian wide characters take 2 columns; everything else takes 1.
325
+ // Simplified: codepoints above 0x1100 that are CJK/emoji get 2, rest get 1.
326
+ const cp = ch.codePointAt(0) ?? 0;
327
+ if ((cp >= 0x1100 && cp <= 0x115f) ||
328
+ (cp >= 0x2e80 && cp <= 0xa4cf) ||
329
+ (cp >= 0xac00 && cp <= 0xd7a3) ||
330
+ (cp >= 0xf900 && cp <= 0xfaff) ||
331
+ (cp >= 0xfe10 && cp <= 0xfe6f) ||
332
+ (cp >= 0xff01 && cp <= 0xff60) ||
333
+ (cp >= 0xffe0 && cp <= 0xffe6) ||
334
+ (cp >= 0x1f000 && cp <= 0x1faff) ||
335
+ (cp >= 0x20000 && cp <= 0x2fa1f)) {
336
+ w += 2;
337
+ }
338
+ else {
339
+ w += 1;
340
+ }
341
+ }
342
+ return w;
343
+ }
344
+ /** Right-pad a string to a target display width */
345
+ function padTo(s, target) {
346
+ const gap = target - displayWidth(s);
347
+ return s + ' '.repeat(Math.max(gap, 0));
348
+ }
349
+ /**
350
+ * Format a BenefitsSummary as a styled box-drawing table.
351
+ * Only shows sections that have at least one non-zero metric.
352
+ * No emojis inside the box — uses text labels to avoid alignment issues.
353
+ */
354
+ export function formatBenefitsTable(summary) {
355
+ const sections = [];
356
+ // ─── Token Efficiency ───────────────────────────────────
357
+ const t = summary.tokens;
358
+ const tokenRows = [];
359
+ if (t.smartRoutingSaved > 0) {
360
+ tokenRows.push({
361
+ label: 'Smart routing',
362
+ value: `-${fmtNum(t.smartRoutingSaved)} tok`,
363
+ detail: 'filtered phase outputs',
364
+ });
365
+ }
366
+ if (t.promptCompressionSaved > 0) {
367
+ tokenRows.push({
368
+ label: 'Prompt compression',
369
+ value: `-${fmtNum(t.promptCompressionSaved)} tok`,
370
+ detail: 'stripped boilerplate',
371
+ });
372
+ }
373
+ if (t.verbatimCompactionSaved > 0) {
374
+ tokenRows.push({
375
+ label: 'Verbatim compaction',
376
+ value: `-${fmtNum(t.verbatimCompactionSaved)} tok`,
377
+ detail: 'replaced with refs',
378
+ });
379
+ }
380
+ if (t.contextDecaySaved > 0) {
381
+ tokenRows.push({
382
+ label: 'Context decay',
383
+ value: `-${fmtNum(t.contextDecaySaved)} tok`,
384
+ detail: 'older phases summarized',
385
+ });
386
+ }
387
+ if (t.cacheSavingsUsd > 0) {
388
+ tokenRows.push({ label: 'Cache savings', value: fmtUsd(t.cacheSavingsUsd), detail: 'prefix sharing' });
389
+ }
390
+ if (t.totalTokensSaved > 0) {
391
+ tokenRows.push({
392
+ label: 'TOTAL SAVED',
393
+ value: `-${fmtNum(t.totalTokensSaved)} tok`,
394
+ detail: `${t.savingsPercent}% reduction`,
395
+ });
396
+ }
397
+ if (tokenRows.length > 0) {
398
+ sections.push({ title: 'TOKEN EFFICIENCY', rows: tokenRows });
399
+ }
400
+ // ─── Knowledge Graph ────────────────────────────────────
401
+ const g = summary.graph;
402
+ const graphRows = [];
403
+ if (g.contextRoutingDecisions > 0) {
404
+ graphRows.push({
405
+ label: 'Context routing',
406
+ value: `${fmtNum(g.contextRoutingDecisions)}`,
407
+ detail: 'graph-optimized per agent',
408
+ });
409
+ }
410
+ if (g.coModHintsInjected > 0) {
411
+ graphRows.push({
412
+ label: 'Co-mod hints',
413
+ value: `${fmtNum(g.coModHintsInjected)}`,
414
+ detail: 'related files from history',
415
+ });
416
+ }
417
+ if (g.confidenceGatesEvaluated > 0) {
418
+ const detail = g.gatesTriggered > 0 ? `${g.gatesTriggered} blocked handoff` : 'all passed';
419
+ graphRows.push({ label: 'Confidence gates', value: `${fmtNum(g.confidenceGatesEvaluated)} eval`, detail });
420
+ }
421
+ if (g.patternRunsRecorded > 0 && g.historicalSuccessRate != null) {
422
+ graphRows.push({
423
+ label: 'Pattern history',
424
+ value: `${g.historicalSuccessRate}% success`,
425
+ detail: `${fmtNum(g.patternRunsRecorded)} runs`,
426
+ });
427
+ }
428
+ if (g.reviewFindingsRecorded > 0) {
429
+ graphRows.push({
430
+ label: 'Review findings',
431
+ value: `${fmtNum(g.reviewFindingsRecorded)}`,
432
+ detail: 'recorded to graph',
433
+ });
434
+ }
435
+ if (graphRows.length > 0) {
436
+ sections.push({ title: 'KNOWLEDGE GRAPH', rows: graphRows });
437
+ }
438
+ // ─── ML/GNN ─────────────────────────────────────────────
439
+ const m = summary.ml;
440
+ const mlRows = [];
441
+ if (m.gnnPredictionsMade > 0) {
442
+ mlRows.push({
443
+ label: 'GNN risk scan',
444
+ value: `${fmtNum(m.highRiskNodesIdentified)} high-risk`,
445
+ detail: `${fmtNum(m.gnnPredictionsMade)} predictions`,
446
+ });
447
+ }
448
+ if (m.agentsDroppedML > 0) {
449
+ mlRows.push({
450
+ label: 'Predictive dropout',
451
+ value: `${fmtNum(m.agentsDroppedML)} agents`,
452
+ detail: `-${fmtNum(m.dropoutTokensSaved)} tok saved`,
453
+ });
454
+ }
455
+ if (m.agentsDroppedRules > 0) {
456
+ mlRows.push({
457
+ label: 'Rule-based dropout',
458
+ value: `${fmtNum(m.agentsDroppedRules)} agents`,
459
+ detail: 'redundant removed',
460
+ });
461
+ }
462
+ if (m.affinityEscalations > 0) {
463
+ mlRows.push({
464
+ label: 'Affinity escalation',
465
+ value: `${fmtNum(m.affinityEscalations)}`,
466
+ detail: 'model upgraded for hard files',
467
+ });
468
+ }
469
+ if (m.trajectoryPredictionsMade > 0) {
470
+ mlRows.push({
471
+ label: 'Trajectory forecast',
472
+ value: `${fmtNum(m.trajectoryPredictionsMade)}`,
473
+ detail: 'success probabilities',
474
+ });
475
+ }
476
+ if (mlRows.length > 0) {
477
+ sections.push({ title: 'ML / GNN', rows: mlRows });
478
+ }
479
+ // ─── Adaptive ───────────────────────────────────────────
480
+ const a = summary.adaptive;
481
+ const adaptiveRows = [];
482
+ if (a.phasesSkipped > 0) {
483
+ adaptiveRows.push({ label: 'Phases skipped', value: `${fmtNum(a.phasesSkipped)}`, detail: 'replanner: redundant' });
484
+ }
485
+ if (a.modelDowngrades > 0) {
486
+ adaptiveRows.push({
487
+ label: 'Model downgrades',
488
+ value: `${fmtNum(a.modelDowngrades)}`,
489
+ detail: 'cheaper where safe',
490
+ });
491
+ }
492
+ if (a.modelUpgrades > 0) {
493
+ adaptiveRows.push({
494
+ label: 'Model upgrades',
495
+ value: `${fmtNum(a.modelUpgrades)}`,
496
+ detail: 'stronger where needed',
497
+ });
498
+ }
499
+ if (a.cascadeTierChanges > 0) {
500
+ adaptiveRows.push({
501
+ label: 'Cascade changes',
502
+ value: `${fmtNum(a.cascadeTierChanges)}`,
503
+ detail: 'start cheap, escalate',
504
+ });
505
+ }
506
+ if (a.livingSpecUpdates > 0) {
507
+ adaptiveRows.push({
508
+ label: 'Living spec',
509
+ value: `${fmtNum(a.livingSpecUpdates)} updates`,
510
+ detail: 'refined during run',
511
+ });
512
+ }
513
+ if (adaptiveRows.length > 0) {
514
+ sections.push({ title: 'ADAPTIVE', rows: adaptiveRows });
515
+ }
516
+ // ─── Pre-compute cost bar to include in width calc ──────
517
+ let costText = `Cost: ${fmtUsd(summary.actualCostUsd)}`;
518
+ if (summary.historicalAvgCostUsd != null && summary.costDeltaUsd != null) {
519
+ const dir = summary.costDeltaUsd <= 0 ? 'saved' : 'over';
520
+ costText += ` (avg: ${fmtUsd(summary.historicalAvgCostUsd)}, ${dir} ${fmtUsd(Math.abs(summary.costDeltaUsd))})`;
521
+ }
522
+ if (summary.tokens.savingsPercent > 0) {
523
+ costText += ` | ${summary.tokens.savingsPercent}% tokens saved`;
524
+ }
525
+ costText += ` | ${fmtNum(summary.agentsExecuted)} agents | ${fmtNum(summary.phasesExecuted)} phases | ${(summary.durationMs / 1000).toFixed(1)}s`;
526
+ // ─── Compute column widths ──────────────────────────────
527
+ const allRows = sections.flatMap((s) => s.rows);
528
+ const treePrefix = 5; // " ├─ " or " └─ "
529
+ const labelW = Math.max(20, ...allRows.map((r) => displayWidth(r.label)));
530
+ const valueW = Math.max(14, ...allRows.map((r) => displayWidth(r.value)));
531
+ const detailW = Math.max(20, ...allRows.map((r) => displayWidth(r.detail)));
532
+ // Row content: " " + tree + label + " " + value + " " + detail + " "
533
+ const rowInnerW = 2 + treePrefix + labelW + 2 + valueW + 2 + detailW + 2;
534
+ // Cost bar wraps if needed — don't let it blow out the table width
535
+ const costInnerW = Math.min(2 + displayWidth(costText) + 2, rowInnerW + 10);
536
+ const innerW = Math.max(rowInnerW, costInnerW, 64);
537
+ // ─── Build table ────────────────────────────────────────
538
+ const H = '\u2500'; // ─
539
+ const V = '\u2502'; // │
540
+ const TL = '\u250c'; // ┌
541
+ const TR = '\u2510'; // ┐
542
+ const BL = '\u2514'; // └
543
+ const BR = '\u2518'; // ┘
544
+ const LT = '\u251c'; // ├
545
+ const RT = '\u2524'; // ┤
546
+ const bottomBorder = `${BL}${H.repeat(innerW)}${BR}`;
547
+ const separator = `${LT}${H.repeat(innerW)}${RT}`;
548
+ const emptyRow = `${V}${' '.repeat(innerW)}${V}`;
549
+ const lines = [];
550
+ // Title row
551
+ const title = ' Engine Benefits ';
552
+ const titlePad = innerW - displayWidth(title) - 1;
553
+ lines.push(`${TL}${H}${title}${H.repeat(Math.max(0, titlePad))}${TR}`);
554
+ // Cost bar at top — truncate if wider than table
555
+ const maxCostW = innerW - 4; // 2 padding each side
556
+ if (displayWidth(costText) > maxCostW) {
557
+ // Trim from the end (drop duration/phases if needed)
558
+ let trimmed = costText;
559
+ while (displayWidth(trimmed) > maxCostW - 3 && trimmed.length > 0) {
560
+ trimmed = trimmed.slice(0, -1);
561
+ }
562
+ costText = trimmed.trimEnd() + '...';
563
+ }
564
+ lines.push(`${V} ${padTo(costText, innerW - 2)}${V}`);
565
+ lines.push(separator);
566
+ for (let si = 0; si < sections.length; si++) {
567
+ const section = sections[si];
568
+ // Section header
569
+ lines.push(`${V} ${padTo(section.title, innerW - 2)}${V}`);
570
+ for (let ri = 0; ri < section.rows.length; ri++) {
571
+ const row = section.rows[ri];
572
+ const isLast = ri === section.rows.length - 1;
573
+ const tree = isLast ? '\u2514\u2500' : '\u251c\u2500'; // └─ or ├─
574
+ const labelPart = `${tree} ${padTo(row.label, labelW)}`;
575
+ const valuePart = padTo(row.value, valueW);
576
+ const detailPart = padTo(row.detail, detailW);
577
+ const content = `${labelPart} ${valuePart} ${detailPart}`;
578
+ lines.push(`${V} ${padTo(content, innerW - 2)}${V}`);
579
+ }
580
+ // Add separator between sections (not after last)
581
+ if (si < sections.length - 1) {
582
+ lines.push(emptyRow);
583
+ }
584
+ }
585
+ lines.push(bottomBorder);
586
+ return lines.join('\n');
587
+ }
588
+ //# sourceMappingURL=benefits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"benefits.js","sourceRoot":"","sources":["../../src/runtime/benefits.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ export type TaskComplexity = 'simple' | 'medium' | 'complex';
2
+ export interface ContextBudget {
3
+ target: number;
4
+ max: number;
5
+ }
6
+ export declare function getContextBudget(complexity: TaskComplexity): ContextBudget;
1
7
  export interface CompactionConfig {
2
8
  enabled: boolean;
3
9
  maxContextTokens: number;
@@ -17,6 +23,6 @@ export declare class CompactionManager {
17
23
  constructor(config?: Partial<CompactionConfig>);
18
24
  needsCompaction(tokens: number): boolean;
19
25
  generateCompactionInstruction(): string;
20
- buildContextPrefix(phaseOutputs: Map<string, string[]>, maxTokens?: number): string;
26
+ buildContextPrefix(phaseOutputs: Map<string, string[]>, maxTokens?: number, complexity?: TaskComplexity): string;
21
27
  }
22
28
  //# sourceMappingURL=compaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/runtime/compaction.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC;CACpD;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAMhC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,6BAA6B,IAAI,MAAM;IAIvC,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAmBpF"}
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/runtime/compaction.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,CAS1E;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC;CACpD;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAMhC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,6BAA6B,IAAI,MAAM;IAIvC,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM;CAmBjH"}