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,266 @@
1
+ /**
2
+ * ACON (Agent Context Optimization) — failure-driven compression guidelines.
3
+ *
4
+ * Optimizes context compression by analyzing trajectory pairs: when compressed
5
+ * context produces a worse outcome than full context, ACON records what was
6
+ * lost and refines compression rules. Gradient-free, works with any model.
7
+ */
8
+ import { randomUUID } from 'crypto';
9
+ /**
10
+ * Regex patterns used to detect content categories in removed content.
11
+ * Each maps a guideline pattern name to a regex that matches that category.
12
+ */
13
+ const CONTENT_DETECTORS = {
14
+ 'error-messages': /(?:error|exception|throw|assert|fail|panic|traceback|stack\s*trace|ENOENT|EACCES|TypeError|ReferenceError|SyntaxError)/i,
15
+ 'file-paths': /(?:\/[\w.\-/]+\.\w+|[\w.\-/]+\.(?:ts|js|py|go|rs|java|tsx|jsx|css|html|json|yaml|yml|toml|sh)|line\s+\d+|:\d+:\d+)/,
16
+ decisions: /(?:decided|chose|because|instead\s+of|trade-?off|prefer|alternative|approach|rationale|reason)/i,
17
+ 'api-contracts': /(?:function\s+\w+|interface\s+\w+|type\s+\w+|class\s+\w+|export\s+(?:default\s+)?(?:function|class|interface|type|const)|=>\s*\{|\)\s*:\s*\w+)/,
18
+ 'test-names': /(?:describe\s*\(|it\s*\(|test\s*\(|PASS|FAIL|✓|✗|✘|passed|failed|\d+\s+(?:passing|failing|pending))/i,
19
+ 'config-values': /(?:(?:PORT|HOST|URL|KEY|SECRET|TOKEN|DATABASE|DB_|API_|AWS_|NODE_ENV|PATH)\s*[=:]|\.env|config\.\w+|process\.env)/i,
20
+ boilerplate: /(?:^import\s+|^from\s+|^require\s*\(|license|copyright|MIT|Apache|BSD|progress\s*[:.]|\d+%\s*[|█▓░]|spinning|⠋|⠙|⠹)/im,
21
+ whitespace: /(?:^\s{8,}$|^[\s│─┌┐└┘├┤┬┴┼╔╗╚╝║═]+$)/m,
22
+ };
23
+ export class ACONOptimizer {
24
+ guidelines = [];
25
+ trajectories = [];
26
+ constructor(defaultGuidelines) {
27
+ this.guidelines = defaultGuidelines ?? ACONOptimizer.getDefaultGuidelines();
28
+ }
29
+ /** Built-in compression guidelines based on common failure patterns */
30
+ static getDefaultGuidelines() {
31
+ const now = new Date();
32
+ return [
33
+ {
34
+ id: 'default-error-messages',
35
+ pattern: 'error-messages',
36
+ rule: 'Always preserve error messages, exception text, and assertion failures — these are the most information-dense content',
37
+ priority: 95,
38
+ source: 'default',
39
+ createdAt: now,
40
+ failureCount: 0,
41
+ successCount: 0,
42
+ },
43
+ {
44
+ id: 'default-file-paths',
45
+ pattern: 'file-paths',
46
+ rule: 'Always preserve file paths and line numbers — agents need these for navigation',
47
+ priority: 90,
48
+ source: 'default',
49
+ createdAt: now,
50
+ failureCount: 0,
51
+ successCount: 0,
52
+ },
53
+ {
54
+ id: 'default-decisions',
55
+ pattern: 'decisions',
56
+ rule: "Preserve any text indicating a decision, choice, or reasoning (look for: 'decided', 'chose', 'because', 'instead of', 'trade-off')",
57
+ priority: 85,
58
+ source: 'default',
59
+ createdAt: now,
60
+ failureCount: 0,
61
+ successCount: 0,
62
+ },
63
+ {
64
+ id: 'default-api-contracts',
65
+ pattern: 'api-contracts',
66
+ rule: 'Preserve function signatures, type definitions, and interface contracts',
67
+ priority: 80,
68
+ source: 'default',
69
+ createdAt: now,
70
+ failureCount: 0,
71
+ successCount: 0,
72
+ },
73
+ {
74
+ id: 'default-test-names',
75
+ pattern: 'test-names',
76
+ rule: 'Preserve test names and their pass/fail status, compress test output details',
77
+ priority: 75,
78
+ source: 'default',
79
+ createdAt: now,
80
+ failureCount: 0,
81
+ successCount: 0,
82
+ },
83
+ {
84
+ id: 'default-config-values',
85
+ pattern: 'config-values',
86
+ rule: 'Preserve configuration values and environment variable names',
87
+ priority: 70,
88
+ source: 'default',
89
+ createdAt: now,
90
+ failureCount: 0,
91
+ successCount: 0,
92
+ },
93
+ {
94
+ id: 'default-boilerplate',
95
+ pattern: 'boilerplate',
96
+ rule: 'Safely compress: import statements, license headers, verbose logging, progress bars, spinner output',
97
+ priority: 10,
98
+ source: 'default',
99
+ createdAt: now,
100
+ failureCount: 0,
101
+ successCount: 0,
102
+ },
103
+ {
104
+ id: 'default-whitespace',
105
+ pattern: 'whitespace',
106
+ rule: 'Safely compress: excessive blank lines, indentation-heavy formatting, ASCII art/box drawing',
107
+ priority: 5,
108
+ source: 'default',
109
+ createdAt: now,
110
+ failureCount: 0,
111
+ successCount: 0,
112
+ },
113
+ ];
114
+ }
115
+ /** Record a trajectory pair for analysis */
116
+ recordTrajectory(pair) {
117
+ this.trajectories.push(pair);
118
+ }
119
+ /** Analyze failures where compressed context performed worse */
120
+ analyzeFailures() {
121
+ const analyses = [];
122
+ for (const traj of this.trajectories) {
123
+ // Only analyze cases where full succeeded but compressed failed
124
+ if (!traj.fullContextSucceeded || traj.compressedContextSucceeded) {
125
+ continue;
126
+ }
127
+ const missingInfo = [];
128
+ const suggestedGuidelines = [];
129
+ // Analyze each piece of removed content to identify what was missing
130
+ for (const removed of traj.removedContent) {
131
+ // Check if the removed content matches known content categories
132
+ for (const [patternName, detector] of Object.entries(CONTENT_DETECTORS)) {
133
+ if (detector.test(removed)) {
134
+ missingInfo.push(`${patternName}: ${removed.slice(0, 200)}`);
135
+ // Check if there's already a guideline for this pattern
136
+ const existing = this.guidelines.find((g) => g.pattern === patternName);
137
+ if (!existing) {
138
+ // Suggest a new guideline based on the detected pattern
139
+ suggestedGuidelines.push({
140
+ id: `learned-${randomUUID()}`,
141
+ pattern: patternName,
142
+ rule: `Preserve ${patternName} content — compression caused failure when this was removed`,
143
+ priority: 60, // Moderate priority for learned guidelines
144
+ source: 'learned',
145
+ createdAt: new Date(),
146
+ failureCount: 1,
147
+ successCount: 0,
148
+ });
149
+ }
150
+ }
151
+ }
152
+ // If no known pattern matched, still record it as missing info
153
+ if (!missingInfo.some((m) => m.includes(removed.slice(0, 50)))) {
154
+ missingInfo.push(`unknown: ${removed.slice(0, 200)}`);
155
+ // Create a generic guideline for unrecognized content
156
+ suggestedGuidelines.push({
157
+ id: `learned-${randomUUID()}`,
158
+ pattern: 'unknown',
159
+ rule: `Preserve content similar to: "${removed.slice(0, 100)}" — compression caused failure`,
160
+ priority: 50,
161
+ source: 'learned',
162
+ createdAt: new Date(),
163
+ failureCount: 1,
164
+ successCount: 0,
165
+ });
166
+ }
167
+ }
168
+ if (missingInfo.length > 0) {
169
+ analyses.push({
170
+ trajectoryId: `${traj.orchestrationId}:${traj.phaseName}`,
171
+ missingInfo,
172
+ suggestedGuidelines,
173
+ });
174
+ }
175
+ }
176
+ return analyses;
177
+ }
178
+ /** Refine guidelines based on failure analysis */
179
+ refineGuidelines(analyses) {
180
+ const newGuidelines = [];
181
+ for (const analysis of analyses) {
182
+ for (const suggested of analysis.suggestedGuidelines) {
183
+ // Check if an existing guideline already covers this pattern
184
+ const existing = this.guidelines.find((g) => g.pattern === suggested.pattern);
185
+ if (existing) {
186
+ // Increment failure count on the existing guideline
187
+ existing.failureCount += 1;
188
+ // Boost priority if failures accumulate (cap at 100)
189
+ existing.priority = Math.min(100, existing.priority + 2);
190
+ }
191
+ else {
192
+ // Add the new guideline
193
+ this.guidelines.push(suggested);
194
+ newGuidelines.push(suggested);
195
+ }
196
+ }
197
+ }
198
+ return newGuidelines;
199
+ }
200
+ /** Apply guidelines to filter what should be preserved vs compressed */
201
+ applyGuidelines(content, _contentType) {
202
+ if (!content || content.trim().length === 0) {
203
+ return { preserve: [], compressible: [] };
204
+ }
205
+ // Split content into logical sections (double-newline separated blocks)
206
+ const sections = content
207
+ .split(/\n\n+/)
208
+ .map((s) => s.trim())
209
+ .filter((s) => s.length > 0);
210
+ const preserve = [];
211
+ const compressible = [];
212
+ // Sort guidelines by priority descending for matching
213
+ const sorted = [...this.guidelines].sort((a, b) => b.priority - a.priority);
214
+ // Threshold: guidelines with priority >= this are "preserve" signals
215
+ const PRESERVE_THRESHOLD = 50;
216
+ for (const section of sections) {
217
+ let shouldPreserve = false;
218
+ let highestMatchPriority = 0;
219
+ for (const guideline of sorted) {
220
+ const detector = CONTENT_DETECTORS[guideline.pattern];
221
+ if (detector && detector.test(section)) {
222
+ if (guideline.priority > highestMatchPriority) {
223
+ highestMatchPriority = guideline.priority;
224
+ }
225
+ // Once we find a high-priority match, mark for preservation
226
+ if (guideline.priority >= PRESERVE_THRESHOLD) {
227
+ shouldPreserve = true;
228
+ break;
229
+ }
230
+ }
231
+ }
232
+ if (shouldPreserve) {
233
+ preserve.push(section);
234
+ }
235
+ else {
236
+ compressible.push(section);
237
+ }
238
+ }
239
+ return { preserve, compressible };
240
+ }
241
+ /** Get current guidelines, sorted by priority (descending) */
242
+ getGuidelines() {
243
+ return [...this.guidelines].sort((a, b) => b.priority - a.priority);
244
+ }
245
+ /** Get guideline effectiveness stats */
246
+ getStats() {
247
+ const totalGuidelines = this.guidelines.length;
248
+ const defaultCount = this.guidelines.filter((g) => g.source === 'default').length;
249
+ const learnedCount = this.guidelines.filter((g) => g.source === 'learned').length;
250
+ const avgPriority = totalGuidelines > 0 ? Math.round(this.guidelines.reduce((sum, g) => sum + g.priority, 0) / totalGuidelines) : 0;
251
+ // Top failure patterns: guidelines sorted by failureCount, take top 5
252
+ const topFailurePatterns = [...this.guidelines]
253
+ .filter((g) => g.failureCount > 0)
254
+ .sort((a, b) => b.failureCount - a.failureCount)
255
+ .slice(0, 5)
256
+ .map((g) => g.pattern);
257
+ return {
258
+ totalGuidelines,
259
+ defaultCount,
260
+ learnedCount,
261
+ avgPriority,
262
+ topFailurePatterns,
263
+ };
264
+ }
265
+ }
266
+ //# sourceMappingURL=acon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acon.js","sourceRoot":"","sources":["../../src/runtime/acon.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { TraceStore } from './traces.js';
4
4
  export interface PlanAdaptation {
5
5
  skipPhases: string[];
6
6
  modelOverrides: Record<string, string>;
7
+ effortOverrides?: Record<string, 'low' | 'medium' | 'high' | 'max'>;
7
8
  reason: string;
8
9
  }
9
10
  export interface DropoutDecision {
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;IA4InG;;OAEG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAqB7E;;;;OAIG;IACH,eAAe,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI;IA+BxG,OAAO,CAAC,aAAa;CAwCtB"}
1
+ {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;IAkJnG;;OAEG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IA+B7E;;;;OAIG;IACH,eAAe,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI;IA+BxG,OAAO,CAAC,aAAa;CAwCtB"}
@@ -13,6 +13,7 @@ export class AdaptiveReplanner {
13
13
  const adaptations = {
14
14
  skipPhases: [],
15
15
  modelOverrides: {},
16
+ effortOverrides: {},
16
17
  reason: '',
17
18
  };
18
19
  let adapted = false;
@@ -21,7 +22,7 @@ export class AdaptiveReplanner {
21
22
  const totalOutput = completedPhase.agents.reduce((sum, a) => sum + (a.result?.output.length ?? 0), 0);
22
23
  const isSmallOutput = totalOutput < 2000; // ~500 tokens
23
24
  if (allHighConfidence && isSmallOutput && completedPhase.config.kind === 'research') {
24
- // Simple task — downgrade remaining models and skip devil's advocate
25
+ // Simple task — downgrade remaining models, reduce effort, and skip devil's advocate
25
26
  const remaining = orchestration.phases.filter((p) => p.status === 'pending');
26
27
  for (const phase of remaining) {
27
28
  for (const agent of phase.config.agents) {
@@ -29,6 +30,7 @@ export class AdaptiveReplanner {
29
30
  adaptations.modelOverrides[agent.name] = 'claude-sonnet-4-6';
30
31
  adapted = true;
31
32
  }
33
+ adaptations.effortOverrides[agent.name] = 'low';
32
34
  }
33
35
  // Skip challenge/devil's advocate phases
34
36
  if (phase.config.kind === 'challenge') {
@@ -38,7 +40,7 @@ export class AdaptiveReplanner {
38
40
  }
39
41
  if (adapted)
40
42
  adaptations.reason =
41
- 'Simple task detected (high confidence, small output) — downgrading models and skipping adversarial phases';
43
+ 'Simple task detected (high confidence, small output) — downgrading models, reducing effort, and skipping adversarial phases';
42
44
  }
43
45
  // Rule 2: Low confidence or blockers → task is complex, upgrade
44
46
  const anyLowConfidence = completedPhase.agents.some((a) => a.result?.confidence === 'low');
@@ -51,10 +53,11 @@ export class AdaptiveReplanner {
51
53
  adaptations.modelOverrides[agent.name] = 'claude-opus-4-6';
52
54
  adapted = true;
53
55
  }
56
+ adaptations.effortOverrides[agent.name] = 'high';
54
57
  }
55
58
  }
56
59
  if (adapted)
57
- adaptations.reason = `Complex task detected (${anyLowConfidence ? 'low confidence' : 'blockers found'}) — upgrading remaining agents to expensive tier`;
60
+ adaptations.reason = `Complex task detected (${anyLowConfidence ? 'low confidence' : 'blockers found'}) — upgrading remaining agents to expensive tier with high effort`;
58
61
  }
59
62
  // Rule 3: Budget overrun — downgrade remaining
60
63
  if (!adapted && orchestration.config.costBudget) {
@@ -120,10 +123,12 @@ export class AdaptiveReplanner {
120
123
  adaptations.modelOverrides[agent.name] = 'claude-opus-4-6';
121
124
  adapted = true;
122
125
  }
126
+ adaptations.effortOverrides[agent.name] = 'max';
123
127
  }
124
128
  }
125
129
  if (adapted)
126
- adaptations.reason = 'Confidence dropped sharply between phases — upgrading remaining agents';
130
+ adaptations.reason =
131
+ 'Confidence dropped sharply between phases — upgrading remaining agents with max effort';
127
132
  }
128
133
  }
129
134
  }
@@ -157,6 +162,15 @@ export class AdaptiveReplanner {
157
162
  }
158
163
  }
159
164
  }
165
+ // Override effort levels
166
+ if (adaptation.effortOverrides) {
167
+ for (const [agentName, effort] of Object.entries(adaptation.effortOverrides)) {
168
+ const agent = orchestration.phases.flatMap((p) => p.agents).find((a) => a.config.name === agentName);
169
+ if (agent) {
170
+ agent.config.effort = effort;
171
+ }
172
+ }
173
+ }
160
174
  }
161
175
  /**
162
176
  * Evaluate whether agents in a pending phase are still needed.
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import type { LivingSpec } from './living-spec.js';
9
9
  import type { GraphContextRouter } from './graph-context-router.js';
10
10
  import type { GraphAnalyzer } from './graph-analyzer.js';
11
11
  import type { GraphLearner } from './graph-learner.js';
12
+ import type { LSPClient } from './lsp.js';
12
13
  /**
13
14
  * Per-orchestration context passed to agent execution methods.
14
15
  */
@@ -18,6 +19,8 @@ export interface AgentRunContext {
18
19
  sharedContextFiles: string[];
19
20
  cwd?: string;
20
21
  intraPhaseOutputs?: Map<string, string[]>;
22
+ testResults?: string;
23
+ phaseKind?: string;
21
24
  }
22
25
  export interface AgentRunnerDeps {
23
26
  registry: AgentRegistry;
@@ -29,6 +32,8 @@ export interface AgentRunnerDeps {
29
32
  contextRouter?: GraphContextRouter;
30
33
  graphLearner?: GraphLearner | null;
31
34
  graphAnalyzer?: GraphAnalyzer | null;
35
+ projectDir?: string;
36
+ lsp?: LSPClient;
32
37
  }
33
38
  /**
34
39
  * Handles individual agent execution, retry logic, worktree management,
@@ -44,6 +49,9 @@ export declare class AgentRunner {
44
49
  private contextRouter;
45
50
  private graphLearner;
46
51
  private graphAnalyzer;
52
+ private projectDir;
53
+ private lsp;
54
+ private phaseContextCache;
47
55
  constructor(deps: AgentRunnerDeps);
48
56
  /**
49
57
  * Execute a single agent with retry logic.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../src/runtime/agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAuB;gBAEhC,IAAI,EAAE,eAAe;IAYjC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,MAAM,YAAI,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC;IAgCzB;;OAEG;YACW,YAAY;IAmK1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
1
+ {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../src/runtime/agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAgBD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,IAAI,EAAE,eAAe;IAcjC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,MAAM,YAAI,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC;IAwCzB;;OAEG;YACW,YAAY;IA2N1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -4,9 +4,23 @@ import { inferTier } from '../utils/tiers.js';
4
4
  import { formatLivingSpec } from './living-spec.js';
5
5
  import { redactSecrets } from '../utils/redact.js';
6
6
  import { extractFileReferences } from './graph-learner.js';
7
+ import { RepoMapGenerator } from './repo-map.js';
7
8
  import { join } from 'path';
8
9
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
9
10
  import { randomUUID } from 'crypto';
11
+ // Default maxTurns by agent type — balances thoroughness vs. cost
12
+ const DEFAULT_MAX_TURNS = {
13
+ researcher: 15,
14
+ implementer: 25,
15
+ reviewer: 10,
16
+ tester: 15,
17
+ debugger: 20,
18
+ documenter: 10,
19
+ planner: 10,
20
+ refactorer: 20,
21
+ integrator: 15,
22
+ 'devils-advocate': 10,
23
+ };
10
24
  /**
11
25
  * Handles individual agent execution, retry logic, worktree management,
12
26
  * and prompt construction with cache-friendly ordering.
@@ -21,6 +35,10 @@ export class AgentRunner {
21
35
  contextRouter;
22
36
  graphLearner;
23
37
  graphAnalyzer;
38
+ projectDir;
39
+ lsp;
40
+ // Store per-phase orchestration context to ensure reference equality for cache hits
41
+ phaseContextCache = new Map();
24
42
  constructor(deps) {
25
43
  this.registry = deps.registry;
26
44
  this.executor = deps.executor;
@@ -31,12 +49,15 @@ export class AgentRunner {
31
49
  this.contextRouter = deps.contextRouter;
32
50
  this.graphLearner = deps.graphLearner ?? null;
33
51
  this.graphAnalyzer = deps.graphAnalyzer ?? null;
52
+ this.projectDir = deps.projectDir;
53
+ this.lsp = deps.lsp;
34
54
  }
35
55
  /**
36
56
  * Execute a single agent with retry logic.
37
57
  */
38
58
  async executeAgentWithRetry(assignment, phase, orchestration, maxRetries = 2, context) {
39
59
  let lastError;
60
+ const originalPrompt = assignment.prompt;
40
61
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
41
62
  try {
42
63
  return await this.executeAgent(assignment, phase, orchestration, context);
@@ -53,6 +74,13 @@ export class AgentRunner {
53
74
  agent: assignment.name,
54
75
  error: lastError.message,
55
76
  });
77
+ // Error-informed retry: inject failure context so the agent tries a different approach
78
+ if (lastError) {
79
+ assignment = {
80
+ ...assignment,
81
+ prompt: `## Previous Attempt Failed\nError: ${lastError.message}\nAvoid the same approach. Try a different strategy.\n\n${originalPrompt || ''}`,
82
+ };
83
+ }
56
84
  await new Promise((resolve) => setTimeout(resolve, delayMs));
57
85
  }
58
86
  }
@@ -70,11 +98,34 @@ export class AgentRunner {
70
98
  backend: assignment.backend,
71
99
  backendModel: assignment.backendModel,
72
100
  });
101
+ // Apply default maxTurns by agent type if not explicitly configured
102
+ if (!instance.config.maxTurns) {
103
+ instance.config.maxTurns = DEFAULT_MAX_TURNS[assignment.type] || 20;
104
+ }
73
105
  phase.agents.push(instance);
74
106
  // Build task prompt with cache-friendly ordering:
75
107
  // Shared prefix (orchestration + phase context) comes first for API cache hits,
76
108
  // agent-specific content (definition + task) comes last.
77
- const orchestrationContext = `## Orchestration: ${orchestration.config.name}\nPattern: ${orchestration.config.pattern}`;
109
+ // Generate repo map for structural context (cache-stable prefix)
110
+ let repoMap = '';
111
+ if (this.projectDir) {
112
+ try {
113
+ repoMap = RepoMapGenerator.generateMap(this.projectDir, { maxTokens: 1500 });
114
+ }
115
+ catch {
116
+ /* silent — repo map generation is best-effort */
117
+ }
118
+ }
119
+ // Context dedup: reuse the exact same string object per phase so the SDK's
120
+ // prompt caching can detect the shared prefix across parallel agents
121
+ const orchContextRaw = (repoMap ? repoMap + '\n\n' : '') +
122
+ `## Orchestration: ${orchestration.config.name}\nPattern: ${orchestration.config.pattern}`;
123
+ const phaseKey = phase.config.name;
124
+ const cached = this.phaseContextCache.get(phaseKey);
125
+ const orchestrationContext = cached !== undefined && cached === orchContextRaw ? cached : orchContextRaw;
126
+ if (cached !== orchestrationContext) {
127
+ this.phaseContextCache.set(phaseKey, orchestrationContext);
128
+ }
78
129
  // Use graph-routed context — with intra-phase enhancement for sequential agents (Feature 1)
79
130
  let phaseContext;
80
131
  if (this.contextRouter && context.intraPhaseOutputs?.size) {
@@ -97,7 +148,9 @@ export class AgentRunner {
97
148
  riskWarning = `\n\n⚠️ RISK WARNING: This agent type (${assignment.type}) has a ${Math.round(agentRisk.riskScore * 100)}% historical failure risk. Common issues: ${agentRisk.reasons?.join(', ') || 'unknown'}. Take extra care with validation and error handling.\n`;
98
149
  }
99
150
  }
100
- catch { /* Graph prediction failed — continue without warning */ }
151
+ catch {
152
+ /* Graph prediction failed — continue without warning */
153
+ }
101
154
  }
102
155
  let baseTask = riskWarning + (assignment.prompt || `Execute task as ${assignment.type}`);
103
156
  // Co-modification hints (Feature 5): suggest related files often changed together
@@ -110,7 +163,27 @@ export class AgentRunner {
110
163
  baseTask += coModHint;
111
164
  }
112
165
  }
113
- catch { /* Graph co-mod hints failed — continue */ }
166
+ catch {
167
+ /* Graph co-mod hints failed — continue */
168
+ }
169
+ }
170
+ // Test feedback wiring: prepend current test status if available
171
+ if (context.testResults) {
172
+ baseTask = `## Current Test Status\n${context.testResults}\n\n${baseTask}`;
173
+ }
174
+ // LSP type info wiring for implementers and debuggers
175
+ let lspContext = '';
176
+ if (this.lsp && (assignment.type === 'implementer' || assignment.type === 'debugger')) {
177
+ try {
178
+ // TODO: Wire LSP when we can identify relevant symbol positions
179
+ // Currently hover(0,0) always returns info for the first character, which is not useful.
180
+ }
181
+ catch {
182
+ /* silent — LSP may not be running */
183
+ }
184
+ }
185
+ if (lspContext) {
186
+ baseTask += lspContext;
114
187
  }
115
188
  const optimized = optimizeForCache(orchestrationContext, phaseContext, agentPrompt, baseTask);
116
189
  // For parallel phases with large shared prefix, use shared context file
@@ -147,7 +220,9 @@ export class AgentRunner {
147
220
  }
148
221
  }
149
222
  }
150
- catch { /* Graph affinity routing failed — continue */ }
223
+ catch {
224
+ /* Graph affinity routing failed — continue */
225
+ }
151
226
  }
152
227
  // Inject living spec into task context
153
228
  const specPrefix = context.livingSpec ? formatLivingSpec(context.livingSpec) + '\n\n' : '';