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
@@ -2,6 +2,25 @@
2
2
  * BenefitsCollector — aggregates optimization metrics during orchestration
3
3
  * and produces a user-facing summary of what the engine did for them.
4
4
  */
5
+ // ─── Constants ────────────────────────────────────────────────
6
+ /** Approximate base payload loaded per Claude Code session spawn (system prompt + tool schemas + MCP + skills).
7
+ * Dropped from ~45k to ~31k in Wave 1 via ENABLE_TOOL_SEARCH (deferred tool loading). */
8
+ export const BASE_PAYLOAD_TOKENS_PER_AGENT = 31_000;
9
+ /** Cache-read pricing model: cache_read is billed at ~10% of regular input rate, so each
10
+ * cache_read token represents ~90% savings vs the equivalent regular input token.
11
+ * For Opus 4.6 we assume $5/MTok regular input → $4.5/MTok (90%) savings per cache_read token. */
12
+ export const CACHE_SAVINGS_RATE = 4.5 / 1_000_000;
13
+ /** Minimum cache-read ratio over the window for cliff detection to fire
14
+ * (if baseline is already low, the "cliff" isn't meaningful). */
15
+ const CLIFF_BASELINE_FLOOR = 0.2;
16
+ /** Current-ratio-vs-baseline drop threshold — >50% drop = cliff. */
17
+ const CLIFF_DROP_RATIO = 0.5;
18
+ /** Token floor for cliff detection — noise floor avoids flagging tiny requests. */
19
+ const CLIFF_NOISE_FLOOR_TOKENS = 1000;
20
+ /** Rolling history window size per agentType for baseline computation. */
21
+ const CLIFF_HISTORY_WINDOW = 10;
22
+ /** Minimum number of prior samples required before cliff detection activates. */
23
+ const CLIFF_MIN_HISTORY = 3;
5
24
  // ─── Collector ────────────────────────────────────────────────
6
25
  /**
7
26
  * Collects benefits metrics during orchestration execution.
@@ -13,7 +32,14 @@ export class BenefitsCollector {
13
32
  _promptCompressionSaved = 0;
14
33
  _verbatimCompactionSaved = 0;
15
34
  _contextDecaySaved = 0;
16
- _cacheSavingsUsd = 0;
35
+ _contextFilteringSaved = 0;
36
+ /** Pre-computed estimate accumulated via {@link addCacheSavingsUsd} (caller-side guess
37
+ * from shared-prefix length × parallel agent count). Used as a fallback only when
38
+ * no real API cache_read data has been recorded. */
39
+ _cacheSavingsUsdEstimate = 0;
40
+ /** Real savings accumulated via {@link recordApiUsage} from API-reported cache_read
41
+ * tokens. Takes priority over {@link _cacheSavingsUsdEstimate} in {@link build}. */
42
+ _cacheSavingsUsdReal = 0;
17
43
  // Graph counters
18
44
  _contextRoutingDecisions = 0;
19
45
  _coModHintsInjected = 0;
@@ -35,6 +61,15 @@ export class BenefitsCollector {
35
61
  _cascadeTierChanges = 0;
36
62
  _budgetWarnings = 0;
37
63
  _livingSpecUpdates = 0;
64
+ // Cache cliff detection state
65
+ _cacheCliffs = 0;
66
+ _agentCacheRatios = new Map(); // agentType → recent ratios (last CLIFF_HISTORY_WINDOW)
67
+ // Cold-wake counter (incremented via recordColdWake, typically wired to 'cache:cold-wake' events)
68
+ _coldWakes = 0;
69
+ bus = null;
70
+ constructor(bus) {
71
+ this.bus = bus ?? null;
72
+ }
38
73
  // ─── Token savings methods ────────────────────────────────
39
74
  addSmartRoutingSaved(tokens) {
40
75
  this._smartRoutingSaved += tokens;
@@ -48,8 +83,82 @@ export class BenefitsCollector {
48
83
  addContextDecaySaved(tokens) {
49
84
  this._contextDecaySaved += tokens;
50
85
  }
86
+ addContextFilteringSaved(tokens) {
87
+ this._contextFilteringSaved += tokens;
88
+ }
89
+ /**
90
+ * Add a pre-computed cache savings estimate (caller-side). Used by the engine
91
+ * for shared-prefix-across-parallel-agents projections before any real API data
92
+ * is available. This estimate is **superseded** by real data from
93
+ * {@link recordApiUsage} in {@link build} — the two are tracked separately to
94
+ * avoid double-counting.
95
+ */
51
96
  addCacheSavingsUsd(usd) {
52
- this._cacheSavingsUsd += usd;
97
+ this._cacheSavingsUsdEstimate += usd;
98
+ }
99
+ /**
100
+ * Record actual API usage and credit real cache savings based on cache_read tokens
101
+ * reported by the Claude API. When any real data is recorded, the value reported
102
+ * by {@link build} switches to the real total, ignoring the caller-side estimate
103
+ * accumulated via {@link addCacheSavingsUsd} (the two were previously double-counted).
104
+ *
105
+ * Pricing: see {@link CACHE_SAVINGS_RATE} ($4.5/MTok cache_read).
106
+ *
107
+ * Also performs **cross-phase** cache-cliff detection per agentType — when an agent's
108
+ * cache_read ratio drops >{@link CLIFF_DROP_RATIO} vs its rolling baseline (over
109
+ * {@link CLIFF_HISTORY_WINDOW} prior samples), emits `cache:cliff` to the EventBus
110
+ * (if any) and increments the cliff counter.
111
+ *
112
+ * **Limitation**: detection happens at agent-execution granularity (one call per
113
+ * AgentInstance.usage roll-up). Mid-conversation cache TTL expiry within a single
114
+ * agent run is NOT detected here — that would require a per-API-call hook in the
115
+ * backend (see BackendOptions for per-call observability options if/when added).
116
+ */
117
+ recordApiUsage(usage, agentType) {
118
+ // ─── Real savings credit (separate accumulator from estimate) ─────────
119
+ this._cacheSavingsUsdReal += (usage.cacheReadInputTokens ?? 0) * CACHE_SAVINGS_RATE;
120
+ // ─── Cache cliff detection ────────────────────────────
121
+ // Only meaningful when we know which agentType this call belongs to.
122
+ if (!agentType)
123
+ return;
124
+ const cacheRead = usage.cacheReadInputTokens ?? 0;
125
+ const input = usage.inputTokens ?? 0;
126
+ const totalInput = cacheRead + input;
127
+ // Noise floor — avoid false positives on tiny requests where ratios swing wildly.
128
+ if (totalInput < CLIFF_NOISE_FLOOR_TOKENS)
129
+ return;
130
+ const ratio = cacheRead / totalInput;
131
+ const history = this._agentCacheRatios.get(agentType) ?? [];
132
+ if (history.length >= CLIFF_MIN_HISTORY) {
133
+ // Need at least CLIFF_MIN_HISTORY prior samples to establish a meaningful baseline.
134
+ const baseline = history.reduce((a, b) => a + b, 0) / history.length;
135
+ // Only flag when baseline was non-trivial AND dropped by more than the threshold.
136
+ if (baseline > CLIFF_BASELINE_FLOOR && ratio < baseline * CLIFF_DROP_RATIO) {
137
+ this._cacheCliffs++;
138
+ // Regular-vs-cache price delta: ($5 - $0.5) / 1M = $4.5/MTok extra cost per token
139
+ // moved from cache to regular input. Approximate cost of the missed cache.
140
+ const estimatedExtraCostUsd = (totalInput * (baseline - ratio) * (5 - 0.5)) / 1_000_000;
141
+ this.bus?.emit('cache:cliff', {
142
+ agentType,
143
+ previousRatio: baseline,
144
+ currentRatio: ratio,
145
+ estimatedExtraCostUsd,
146
+ }, 'benefits-collector');
147
+ }
148
+ }
149
+ history.push(ratio);
150
+ if (history.length > CLIFF_HISTORY_WINDOW)
151
+ history.shift();
152
+ this._agentCacheRatios.set(agentType, history);
153
+ }
154
+ /**
155
+ * Record a cold-wake event — fired when an agent's idle gap exceeds the prompt cache
156
+ * TTL (typically 5 minutes), so the next invocation rebuilds the cache from cold and
157
+ * pays full input price. Typically wired to the `cache:cold-wake` event from
158
+ * AgentRunner via `bus.on(...)` in the engine.
159
+ */
160
+ recordColdWake() {
161
+ this._coldWakes++;
53
162
  }
54
163
  // ─── Graph methods ────────────────────────────────────────
55
164
  addContextRoutingDecision() {
@@ -111,6 +220,7 @@ export class BenefitsCollector {
111
220
  * @param opts.actualCostUsd — total USD cost of the orchestration
112
221
  * @param opts.durationMs — wall-clock duration in milliseconds
113
222
  * @param opts.agentsExecuted — number of agents that ran
223
+ * @param opts.totalAgentTurns — sum of per-agent turns (each turn re-sends full context in stateless loop)
114
224
  * @param opts.phasesExecuted — number of phases that ran
115
225
  * @param opts.historicalAvgCostUsd — average cost for this pattern from history (null if none)
116
226
  * @param opts.patternRunsRecorded — how many historical runs exist for this pattern
@@ -121,19 +231,39 @@ export class BenefitsCollector {
121
231
  this._promptCompressionSaved +
122
232
  this._verbatimCompactionSaved +
123
233
  this._contextDecaySaved +
234
+ this._contextFilteringSaved +
124
235
  this._dropoutTokensSaved;
125
236
  // What would have been used without optimizations = actual + saved
126
237
  const wouldHaveUsed = opts.actualTotalTokens + totalTokensSaved;
127
238
  const savingsPercent = totalTokensSaved > 0 && wouldHaveUsed > 0 ? Math.round((totalTokensSaved / wouldHaveUsed) * 100) : 0;
128
239
  const costDelta = opts.historicalAvgCostUsd != null ? opts.actualCostUsd - opts.historicalAvgCostUsd : null;
240
+ // Real API data takes priority over caller-side estimate to avoid double-counting.
241
+ // If any real data was recorded (recordApiUsage with cache_read), use that exclusively;
242
+ // otherwise fall back to the pre-computed estimate (addCacheSavingsUsd).
243
+ const cacheSavingsUsd = this._cacheSavingsUsdReal > 0 ? this._cacheSavingsUsdReal : this._cacheSavingsUsdEstimate;
244
+ const cacheSavingsMeasured = this._cacheSavingsUsdReal > 0;
245
+ // ─── Turn-based compounding ──────────────────────────────
246
+ // The stateless loop re-sends full context every turn, so per-prompt/per-context
247
+ // savings compound across turns. Use conservative floor of avgTurns.
248
+ const totalAgentTurns = opts.totalAgentTurns ?? opts.agentsExecuted;
249
+ const avgTurns = totalAgentTurns / Math.max(opts.agentsExecuted, 1);
250
+ // Only compound savings that are part of the persistent re-sent context
251
+ const compoundable = this._smartRoutingSaved + this._promptCompressionSaved + this._contextDecaySaved + this._contextFilteringSaved;
252
+ // Non-compounding savings (output-side compaction or spawn-avoidance)
253
+ const nonCompounding = this._verbatimCompactionSaved + this._dropoutTokensSaved;
254
+ // Conservative: use floor of avgTurns (under-estimate)
255
+ const compoundedTotalSaved = Math.floor(compoundable * Math.floor(avgTurns)) + nonCompounding;
129
256
  return {
130
257
  tokens: {
131
258
  smartRoutingSaved: this._smartRoutingSaved,
132
259
  promptCompressionSaved: this._promptCompressionSaved,
133
260
  verbatimCompactionSaved: this._verbatimCompactionSaved,
134
261
  contextDecaySaved: this._contextDecaySaved,
135
- cacheSavingsUsd: Math.round(this._cacheSavingsUsd * 10000) / 10000,
262
+ contextFilteringSaved: this._contextFilteringSaved,
263
+ cacheSavingsUsd: Math.round(cacheSavingsUsd * 10000) / 10000,
264
+ cacheSavingsMeasured,
136
265
  totalTokensSaved,
266
+ compoundedTotalSaved,
137
267
  savingsPercent,
138
268
  },
139
269
  graph: {
@@ -168,6 +298,11 @@ export class BenefitsCollector {
168
298
  durationMs: opts.durationMs,
169
299
  agentsExecuted: opts.agentsExecuted,
170
300
  phasesExecuted: opts.phasesExecuted,
301
+ totalAgentTurns,
302
+ avgTurnsPerAgent: Math.round(avgTurns * 100) / 100,
303
+ cacheCliffs: this._cacheCliffs,
304
+ coldWakes: this._coldWakes,
305
+ basePayloadEstimateTokens: totalAgentTurns * BASE_PAYLOAD_TOKENS_PER_AGENT,
171
306
  };
172
307
  }
173
308
  /** Reset all counters */
@@ -176,7 +311,9 @@ export class BenefitsCollector {
176
311
  this._promptCompressionSaved = 0;
177
312
  this._verbatimCompactionSaved = 0;
178
313
  this._contextDecaySaved = 0;
179
- this._cacheSavingsUsd = 0;
314
+ this._contextFilteringSaved = 0;
315
+ this._cacheSavingsUsdEstimate = 0;
316
+ this._cacheSavingsUsdReal = 0;
180
317
  this._contextRoutingDecisions = 0;
181
318
  this._coModHintsInjected = 0;
182
319
  this._confidenceGatesEvaluated = 0;
@@ -195,6 +332,9 @@ export class BenefitsCollector {
195
332
  this._cascadeTierChanges = 0;
196
333
  this._budgetWarnings = 0;
197
334
  this._livingSpecUpdates = 0;
335
+ this._cacheCliffs = 0;
336
+ this._agentCacheRatios.clear();
337
+ this._coldWakes = 0;
198
338
  }
199
339
  }
200
340
  // ─── Formatter ────────────────────────────────────────────────
@@ -228,11 +368,18 @@ export function formatBenefitsSummary(summary) {
228
368
  if (t.contextDecaySaved > 0) {
229
369
  tokenLines.push(` Context decay saved ~${fmtNum(t.contextDecaySaved)} tokens (older phases summarized)`);
230
370
  }
371
+ if (t.contextFilteringSaved > 0) {
372
+ tokenLines.push(` Context filtering saved ~${fmtNum(t.contextFilteringSaved)} tokens (per-agent file-scope filtering)`);
373
+ }
231
374
  if (t.cacheSavingsUsd > 0) {
232
- tokenLines.push(` Cache savings: ${fmtUsd(t.cacheSavingsUsd)} (shared prefix caching across parallel agents)`);
375
+ const cacheTag = t.cacheSavingsMeasured ? '(measured)' : '(est.)';
376
+ tokenLines.push(` Cache savings ${cacheTag}: ${fmtUsd(t.cacheSavingsUsd)} (shared prefix caching across parallel agents)`);
233
377
  }
234
378
  if (t.totalTokensSaved > 0) {
235
- tokenLines.push(` Total: ~${fmtNum(t.totalTokensSaved)} tokens saved (${t.savingsPercent}% reduction)`);
379
+ tokenLines.push(` Per-injection total: ~${fmtNum(t.totalTokensSaved)} tokens saved (${t.savingsPercent}% reduction)`);
380
+ }
381
+ if (t.compoundedTotalSaved > 0 && t.compoundedTotalSaved !== t.totalTokensSaved) {
382
+ tokenLines.push(` Compounded savings (conservative est.): ~${fmtNum(t.compoundedTotalSaved)} tokens (x avg ${fmtNum(summary.avgTurnsPerAgent)} turns/agent)`);
236
383
  }
237
384
  if (tokenLines.length > 0) {
238
385
  sections.push(`TOKEN EFFICIENCY\n${tokenLines.join('\n')}`);
@@ -384,16 +531,53 @@ export function formatBenefitsTable(summary) {
384
531
  detail: 'older phases summarized',
385
532
  });
386
533
  }
534
+ if (t.contextFilteringSaved > 0) {
535
+ tokenRows.push({
536
+ label: 'Context filtering',
537
+ value: `-${fmtNum(t.contextFilteringSaved)} tok`,
538
+ detail: 'file-scope filtering',
539
+ });
540
+ }
387
541
  if (t.cacheSavingsUsd > 0) {
388
- tokenRows.push({ label: 'Cache savings', value: fmtUsd(t.cacheSavingsUsd), detail: 'prefix sharing' });
542
+ const cacheLabel = t.cacheSavingsMeasured ? 'Cache savings (measured)' : 'Cache savings (est.)';
543
+ tokenRows.push({ label: cacheLabel, value: fmtUsd(t.cacheSavingsUsd), detail: 'prefix sharing' });
389
544
  }
390
545
  if (t.totalTokensSaved > 0) {
391
546
  tokenRows.push({
392
- label: 'TOTAL SAVED',
547
+ label: 'Per-injection saved',
393
548
  value: `-${fmtNum(t.totalTokensSaved)} tok`,
394
549
  detail: `${t.savingsPercent}% reduction`,
395
550
  });
396
551
  }
552
+ if (t.compoundedTotalSaved > 0 && t.compoundedTotalSaved !== t.totalTokensSaved) {
553
+ tokenRows.push({
554
+ label: 'Compounded (est.)',
555
+ value: `~${fmtNum(t.compoundedTotalSaved)} tok`,
556
+ detail: `x avg ${fmtNum(summary.avgTurnsPerAgent)} turns/agent (conservative)`,
557
+ });
558
+ }
559
+ if (summary.basePayloadEstimateTokens > 0) {
560
+ const avgT = summary.avgTurnsPerAgent;
561
+ tokenRows.push({
562
+ label: 'Base-payload tax',
563
+ value: `+${fmtNum(summary.basePayloadEstimateTokens)} tok`,
564
+ detail: `${fmtNum(summary.totalAgentTurns)} turns x ~31k/turn (${fmtNum(summary.agentsExecuted)} agents, avg ${fmtNum(avgT)} turns)`,
565
+ });
566
+ }
567
+ if (summary.cacheCliffs > 0) {
568
+ tokenRows.push({
569
+ label: 'Cache cliffs',
570
+ value: `${summary.cacheCliffs} detected`,
571
+ detail: 'cache_read ratio dropped >50%',
572
+ });
573
+ }
574
+ if (summary.coldWakes > 0) {
575
+ tokenRows.push({
576
+ label: 'Cold wakes',
577
+ value: `${summary.coldWakes} detected`,
578
+ detail: 'idle gap > prompt cache TTL',
579
+ });
580
+ }
397
581
  if (tokenRows.length > 0) {
398
582
  sections.push({ title: 'TOKEN EFFICIENCY', rows: tokenRows });
399
583
  }
@@ -514,15 +698,18 @@ export function formatBenefitsTable(summary) {
514
698
  sections.push({ title: 'ADAPTIVE', rows: adaptiveRows });
515
699
  }
516
700
  // ─── Pre-compute cost bar to include in width calc ──────
517
- let costText = `Cost: ${fmtUsd(summary.actualCostUsd)}`;
701
+ const costParts = [`$${summary.actualCostUsd.toFixed(2)}`];
518
702
  if (summary.historicalAvgCostUsd != null && summary.costDeltaUsd != null) {
519
703
  const dir = summary.costDeltaUsd <= 0 ? 'saved' : 'over';
520
- costText += ` (avg: ${fmtUsd(summary.historicalAvgCostUsd)}, ${dir} ${fmtUsd(Math.abs(summary.costDeltaUsd))})`;
704
+ costParts.push(`${dir} $${Math.abs(summary.costDeltaUsd).toFixed(2)} vs avg`);
521
705
  }
522
706
  if (summary.tokens.savingsPercent > 0) {
523
- costText += ` | ${summary.tokens.savingsPercent}% tokens saved`;
707
+ costParts.push(`${summary.tokens.savingsPercent}% tokens saved`);
524
708
  }
525
- costText += ` | ${fmtNum(summary.agentsExecuted)} agents | ${fmtNum(summary.phasesExecuted)} phases | ${(summary.durationMs / 1000).toFixed(1)}s`;
709
+ costParts.push(`${fmtNum(summary.agentsExecuted)} agents`);
710
+ costParts.push(`${fmtNum(summary.phasesExecuted)} phases`);
711
+ costParts.push(`${(summary.durationMs / 1000).toFixed(1)}s`);
712
+ let costText = costParts.join(' | ');
526
713
  // ─── Compute column widths ──────────────────────────────
527
714
  const allRows = sections.flatMap((s) => s.rows);
528
715
  const treePrefix = 5; // " ├─ " or " └─ "
@@ -1 +1 @@
1
- {"version":3,"file":"benefits.js","sourceRoot":"","sources":["../../src/runtime/benefits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benefits.js","sourceRoot":"","sources":["../../src/runtime/benefits.ts"],"names":[],"mappings":"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"}
@@ -19,10 +19,14 @@ export interface CacheOptimizedPrompt {
19
19
  /**
20
20
  * Structure a prompt for optimal cache utilization.
21
21
  *
22
- * Order: Orchestration context → Shared phase context Agent definition → Task
22
+ * Order: Orchestration context → Agent definitionPhase context → Task
23
23
  *
24
- * The orchestration context and shared phase context are identical across
25
- * parallel agents, so they form the cacheable prefix.
24
+ * Security (CWE-74): the agent's own definition is placed BEFORE the
25
+ * (potentially untrusted) phase context so the model reads its instructions
26
+ * first. This is a structural defense — position in prompt matters for LLM
27
+ * attention. Trade-off: sharedPrefix now varies per agent (includes
28
+ * agent-specific definition), weakening cross-agent cache sharing.
29
+ * Security wins over caching in this trade-off.
26
30
  */
27
31
  export declare function optimizeForCache(orchestrationContext: string, sharedPhaseContext: string, agentDefinition: string, task: string): CacheOptimizedPrompt;
28
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cache-optimizer.d.ts","sourceRoot":"","sources":["../../src/runtime/cache-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,oBAAoB,EAAE,MAAM,EAC5B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,oBAAoB,CAYtB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,MAAM,EAClB,oBAAoB,EAAE,MAAM,GAC3B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAetF"}
1
+ {"version":3,"file":"cache-optimizer.d.ts","sourceRoot":"","sources":["../../src/runtime/cache-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,oBAAoB;IACnC,2EAA2E;IAC3E,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,oBAAoB,EAAE,MAAM,EAC5B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,GACX,oBAAoB,CAYtB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,MAAM,EAClB,oBAAoB,EAAE,MAAM,GAC3B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAetF"}
@@ -11,16 +11,20 @@
11
11
  /**
12
12
  * Structure a prompt for optimal cache utilization.
13
13
  *
14
- * Order: Orchestration context → Shared phase context Agent definition → Task
14
+ * Order: Orchestration context → Agent definitionPhase context → Task
15
15
  *
16
- * The orchestration context and shared phase context are identical across
17
- * parallel agents, so they form the cacheable prefix.
16
+ * Security (CWE-74): the agent's own definition is placed BEFORE the
17
+ * (potentially untrusted) phase context so the model reads its instructions
18
+ * first. This is a structural defense — position in prompt matters for LLM
19
+ * attention. Trade-off: sharedPrefix now varies per agent (includes
20
+ * agent-specific definition), weakening cross-agent cache sharing.
21
+ * Security wins over caching in this trade-off.
18
22
  */
19
23
  export function optimizeForCache(orchestrationContext, sharedPhaseContext, agentDefinition, task) {
20
- // Shared prefix: identical across all agents in this phase
21
- const sharedPrefix = [orchestrationContext, sharedPhaseContext].filter(Boolean).join('\n\n');
22
- // Agent-specific: varies per agent
23
- const agentSuffix = [agentDefinition, task].filter(Boolean).join('\n\n');
24
+ // Shared prefix: orchestration context + agent's own instructions first
25
+ const sharedPrefix = [orchestrationContext, agentDefinition].filter(Boolean).join('\n\n');
26
+ // Agent suffix: untrusted phase context + task-specific content
27
+ const agentSuffix = [sharedPhaseContext, task].filter(Boolean).join('\n\n');
24
28
  return {
25
29
  sharedPrefix,
26
30
  agentSuffix,
@@ -1 +1 @@
1
- {"version":3,"file":"cache-optimizer.js","sourceRoot":"","sources":["../../src/runtime/cache-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,oBAA4B,EAC5B,kBAA0B,EAC1B,eAAuB,EACvB,IAAY;IAEZ,2DAA2D;IAC3D,MAAM,YAAY,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE7F,mCAAmC;IACnC,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY;QACZ,WAAW;QACX,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,kBAA0B,EAC1B,UAAkB,EAClB,oBAA4B;IAE5B,IAAI,kBAAkB,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,GAAG,UAAU,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAC1F,8EAA8E;IAC9E,MAAM,SAAS,GACb,kBAAkB,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACvD,kBAAkB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,oBAAoB,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACrF,OAAO;QACL,YAAY;QACZ,SAAS;QACT,OAAO,EAAE,YAAY,GAAG,SAAS;QACjC,cAAc,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cache-optimizer.js","sourceRoot":"","sources":["../../src/runtime/cache-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC9B,oBAA4B,EAC5B,kBAA0B,EAC1B,eAAuB,EACvB,IAAY;IAEZ,wEAAwE;IACxE,MAAM,YAAY,GAAG,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1F,gEAAgE;IAChE,MAAM,WAAW,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5E,OAAO;QACL,YAAY;QACZ,WAAW;QACX,IAAI,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,kBAA0B,EAC1B,UAAkB,EAClB,oBAA4B;IAE5B,IAAI,kBAAkB,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC;IAC1E,CAAC;IACD,MAAM,YAAY,GAAG,kBAAkB,GAAG,UAAU,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAC1F,8EAA8E;IAC9E,MAAM,SAAS,GACb,kBAAkB,GAAG,CAAC,oBAAoB,GAAG,SAAS,CAAC;QACvD,kBAAkB,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,oBAAoB,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;IACrF,OAAO;QACL,YAAY;QACZ,SAAS;QACT,OAAO,EAAE,YAAY,GAAG,SAAS;QACjC,cAAc,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACtF,CAAC;AACJ,CAAC"}
@@ -20,9 +20,14 @@ export interface CompactionResult {
20
20
  }
21
21
  export declare class CompactionManager {
22
22
  private config;
23
+ /** Accumulated tokens saved by file-scope filtering across buildContextPrefix calls.
24
+ * Drained via {@link popContextFilteringSaved}. */
25
+ private _contextFilteringSaved;
23
26
  constructor(config?: Partial<CompactionConfig>);
27
+ /** Read and reset the accumulated context filtering savings (tokens). */
28
+ popContextFilteringSaved(): number;
24
29
  needsCompaction(tokens: number): boolean;
25
30
  generateCompactionInstruction(): string;
26
- buildContextPrefix(phaseOutputs: Map<string, string[]>, maxTokens?: number, complexity?: TaskComplexity): string;
31
+ buildContextPrefix(phaseOutputs: Map<string, string[]>, maxTokens?: number, complexity?: TaskComplexity, agentFileScope?: string[]): string;
27
32
  }
28
33
  //# sourceMappingURL=compaction.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/runtime/compaction.ts"],"names":[],"mappings":"AAGA,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;IAEjC;wDACoD;IACpD,OAAO,CAAC,sBAAsB,CAAK;gBAEvB,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAI9C,yEAAyE;IACzE,wBAAwB,IAAI,MAAM;IAMlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,6BAA6B,IAAI,MAAM;IAIvC,kBAAkB,CAChB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACnC,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,cAAc,EAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,MAAM;CAgDV"}
@@ -1,4 +1,5 @@
1
1
  import { estimateTokens } from '../utils/tokens.js';
2
+ import { basename } from 'path';
2
3
  export function getContextBudget(complexity) {
3
4
  switch (complexity) {
4
5
  case 'simple':
@@ -18,20 +19,56 @@ export const DEFAULT_COMPACTION = {
18
19
  };
19
20
  export class CompactionManager {
20
21
  config;
22
+ /** Accumulated tokens saved by file-scope filtering across buildContextPrefix calls.
23
+ * Drained via {@link popContextFilteringSaved}. */
24
+ _contextFilteringSaved = 0;
21
25
  constructor(config) {
22
26
  this.config = { ...DEFAULT_COMPACTION, ...config };
23
27
  }
28
+ /** Read and reset the accumulated context filtering savings (tokens). */
29
+ popContextFilteringSaved() {
30
+ const saved = this._contextFilteringSaved;
31
+ this._contextFilteringSaved = 0;
32
+ return saved;
33
+ }
24
34
  needsCompaction(tokens) {
25
35
  return this.config.enabled && tokens >= this.config.maxContextTokens;
26
36
  }
27
37
  generateCompactionInstruction() {
28
38
  return `## Context Management\nYour context limit is ~${this.config.maxContextTokens} tokens. Summarize earlier findings when conversation gets long.`;
29
39
  }
30
- buildContextPrefix(phaseOutputs, maxTokens, complexity) {
40
+ buildContextPrefix(phaseOutputs, maxTokens, complexity, agentFileScope) {
31
41
  const max = maxTokens ?? (complexity ? getContextBudget(complexity).target : this.config.targetTokens);
32
42
  const sections = [];
43
+ let unfilteredTokens = 0;
44
+ let filteredTokens = 0;
33
45
  for (const [phase, outputs] of phaseOutputs) {
34
- sections.push(`## Context from ${phase}:\n${outputs.join('\n\n')}`);
46
+ if (agentFileScope && agentFileScope.length > 0) {
47
+ const allOutputText = outputs.join('\n\n');
48
+ unfilteredTokens += estimateTokens(allOutputText);
49
+ // Relevance filter: only include outputs that mention at least one file in scope
50
+ const relevant = outputs.filter((output) => agentFileScope.some((file) => output.includes(file) || output.includes(basename(file))));
51
+ if (relevant.length > 0) {
52
+ const relevantText = relevant.join('\n\n');
53
+ filteredTokens += estimateTokens(relevantText);
54
+ sections.push(`## Context from ${phase}:\n${relevantText}`);
55
+ }
56
+ else {
57
+ // No file overlap — include a brief summary instead of full content
58
+ const summaryLines = outputs.map((o) => o.split('\n').slice(0, 3).join('\n'));
59
+ const summaryText = summaryLines.join('\n\n');
60
+ filteredTokens += estimateTokens(summaryText);
61
+ sections.push(`## Context from ${phase} (summary — no file overlap):\n${summaryText}`);
62
+ }
63
+ }
64
+ else {
65
+ // No file scope info — include everything (backward compatible)
66
+ sections.push(`## Context from ${phase}:\n${outputs.join('\n\n')}`);
67
+ }
68
+ }
69
+ // Track filtering savings
70
+ if (agentFileScope && agentFileScope.length > 0 && unfilteredTokens > filteredTokens) {
71
+ this._contextFilteringSaved += unfilteredTokens - filteredTokens;
35
72
  }
36
73
  let combined = sections.join('\n\n');
37
74
  if (estimateTokens(combined) > max) {
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/runtime/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AASpD,MAAM,UAAU,gBAAgB,CAAC,UAA0B;IACzD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACzC,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACzC,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAUD,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,EAAE;IACvB,QAAQ,EAAE,WAAW;CACtB,CAAC;AASF,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IAEjC,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACvE,CAAC;IAED,6BAA6B;QAC3B,OAAO,iDAAiD,IAAI,CAAC,MAAM,CAAC,gBAAgB,kEAAkE,CAAC;IACzJ,CAAC;IAED,kBAAkB,CAAC,YAAmC,EAAE,SAAkB,EAAE,UAA2B;QACrG,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvG,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC;YAC5B,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBAClC,QAAQ,GAAG,qCAAqC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;YAClG,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/runtime/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAShC,MAAM,UAAU,gBAAgB,CAAC,UAA0B;IACzD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACzC,KAAK,QAAQ;YACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACzC,KAAK,SAAS;YACZ,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC5C,CAAC;AACH,CAAC;AAUD,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,OAAO,EAAE,IAAI;IACb,gBAAgB,EAAE,OAAO;IACzB,YAAY,EAAE,MAAM;IACpB,mBAAmB,EAAE,EAAE;IACvB,QAAQ,EAAE,WAAW;CACtB,CAAC;AASF,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IAEjC;wDACoD;IAC5C,sBAAsB,GAAG,CAAC,CAAC;IAEnC,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,kBAAkB,EAAE,GAAG,MAAM,EAAE,CAAC;IACrD,CAAC;IAED,yEAAyE;IACzE,wBAAwB;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC1C,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACvE,CAAC;IAED,6BAA6B;QAC3B,OAAO,iDAAiD,IAAI,CAAC,MAAM,CAAC,gBAAgB,kEAAkE,CAAC;IACzJ,CAAC;IAED,kBAAkB,CAChB,YAAmC,EACnC,SAAkB,EAClB,UAA2B,EAC3B,cAAyB;QAEzB,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACvG,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3C,gBAAgB,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;gBAElD,iFAAiF;gBACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CACxF,CAAC;gBACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,cAAc,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC/C,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,MAAM,YAAY,EAAE,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9E,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,cAAc,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC;oBAC9C,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,kCAAkC,WAAW,EAAE,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,GAAG,cAAc,EAAE,CAAC;YACrF,IAAI,CAAC,sBAAsB,IAAI,gBAAgB,GAAG,cAAc,CAAC;QACnE,CAAC;QAED,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC;YAC5B,IAAI,QAAQ,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC;gBAClC,QAAQ,GAAG,qCAAqC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;YAClG,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cost-model.d.ts","sourceRoot":"","sources":["../../src/runtime/cost-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAoCD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAwB;gBAEzB,KAAK,CAAC,EAAE,cAAc;IAIlC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ;IAyCvC,kEAAkE;IAClE,KAAK,CACH,IAAI,EAAE,aAAa,EACnB,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACjF,MAAM;IAmBT,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;CAa9B"}
1
+ {"version":3,"file":"cost-model.d.ts","sourceRoot":"","sources":["../../src/runtime/cost-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAuCD,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAwB;gBAEzB,KAAK,CAAC,EAAE,cAAc;IAIlC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,QAAQ;IAyCvC,kEAAkE;IAClE,KAAK,CACH,IAAI,EAAE,aAAa,EACnB,WAAW,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACjF,MAAM;IAmBT,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;CAa9B"}