attocode 0.2.1 → 0.2.3

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 (219) hide show
  1. package/CHANGELOG.md +191 -1
  2. package/README.md +7 -0
  3. package/dist/src/adapters.d.ts +6 -1
  4. package/dist/src/adapters.d.ts.map +1 -1
  5. package/dist/src/adapters.js +8 -1
  6. package/dist/src/adapters.js.map +1 -1
  7. package/dist/src/agent.d.ts +41 -4
  8. package/dist/src/agent.d.ts.map +1 -1
  9. package/dist/src/agent.js +846 -75
  10. package/dist/src/agent.js.map +1 -1
  11. package/dist/src/cli.d.ts.map +1 -1
  12. package/dist/src/cli.js +23 -2
  13. package/dist/src/cli.js.map +1 -1
  14. package/dist/src/core/protocol/types.d.ts +8 -8
  15. package/dist/src/defaults.d.ts +7 -2
  16. package/dist/src/defaults.d.ts.map +1 -1
  17. package/dist/src/defaults.js +38 -2
  18. package/dist/src/defaults.js.map +1 -1
  19. package/dist/src/integrations/agent-registry.d.ts +13 -0
  20. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  21. package/dist/src/integrations/agent-registry.js.map +1 -1
  22. package/dist/src/integrations/async-subagent.d.ts +135 -0
  23. package/dist/src/integrations/async-subagent.d.ts.map +1 -0
  24. package/dist/src/integrations/async-subagent.js +213 -0
  25. package/dist/src/integrations/async-subagent.js.map +1 -0
  26. package/dist/src/integrations/auto-checkpoint.d.ts +98 -0
  27. package/dist/src/integrations/auto-checkpoint.d.ts.map +1 -0
  28. package/dist/src/integrations/auto-checkpoint.js +252 -0
  29. package/dist/src/integrations/auto-checkpoint.js.map +1 -0
  30. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  31. package/dist/src/integrations/auto-compaction.js +5 -1
  32. package/dist/src/integrations/auto-compaction.js.map +1 -1
  33. package/dist/src/integrations/bash-policy.d.ts +33 -0
  34. package/dist/src/integrations/bash-policy.d.ts.map +1 -0
  35. package/dist/src/integrations/bash-policy.js +142 -0
  36. package/dist/src/integrations/bash-policy.js.map +1 -0
  37. package/dist/src/integrations/codebase-context.d.ts +5 -0
  38. package/dist/src/integrations/codebase-context.d.ts.map +1 -1
  39. package/dist/src/integrations/codebase-context.js +33 -0
  40. package/dist/src/integrations/codebase-context.js.map +1 -1
  41. package/dist/src/integrations/complexity-classifier.d.ts +86 -0
  42. package/dist/src/integrations/complexity-classifier.d.ts.map +1 -0
  43. package/dist/src/integrations/complexity-classifier.js +233 -0
  44. package/dist/src/integrations/complexity-classifier.js.map +1 -0
  45. package/dist/src/integrations/delegation-protocol.d.ts +86 -0
  46. package/dist/src/integrations/delegation-protocol.d.ts.map +1 -0
  47. package/dist/src/integrations/delegation-protocol.js +127 -0
  48. package/dist/src/integrations/delegation-protocol.js.map +1 -0
  49. package/dist/src/integrations/dynamic-budget.d.ts +81 -0
  50. package/dist/src/integrations/dynamic-budget.d.ts.map +1 -0
  51. package/dist/src/integrations/dynamic-budget.js +151 -0
  52. package/dist/src/integrations/dynamic-budget.js.map +1 -0
  53. package/dist/src/integrations/economics.d.ts +86 -1
  54. package/dist/src/integrations/economics.d.ts.map +1 -1
  55. package/dist/src/integrations/economics.js +306 -11
  56. package/dist/src/integrations/economics.js.map +1 -1
  57. package/dist/src/integrations/environment-facts.d.ts +52 -0
  58. package/dist/src/integrations/environment-facts.d.ts.map +1 -0
  59. package/dist/src/integrations/environment-facts.js +84 -0
  60. package/dist/src/integrations/environment-facts.js.map +1 -0
  61. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
  62. package/dist/src/integrations/hierarchical-config.js +17 -0
  63. package/dist/src/integrations/hierarchical-config.js.map +1 -1
  64. package/dist/src/integrations/index.d.ts +19 -2
  65. package/dist/src/integrations/index.d.ts.map +1 -1
  66. package/dist/src/integrations/index.js +34 -2
  67. package/dist/src/integrations/index.js.map +1 -1
  68. package/dist/src/integrations/injection-budget.d.ts +71 -0
  69. package/dist/src/integrations/injection-budget.d.ts.map +1 -0
  70. package/dist/src/integrations/injection-budget.js +136 -0
  71. package/dist/src/integrations/injection-budget.js.map +1 -0
  72. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  73. package/dist/src/integrations/mcp-client.js +14 -0
  74. package/dist/src/integrations/mcp-client.js.map +1 -1
  75. package/dist/src/integrations/mcp-custom-tools.d.ts +102 -0
  76. package/dist/src/integrations/mcp-custom-tools.d.ts.map +1 -0
  77. package/dist/src/integrations/mcp-custom-tools.js +232 -0
  78. package/dist/src/integrations/mcp-custom-tools.js.map +1 -0
  79. package/dist/src/integrations/mcp-tool-validator.d.ts +60 -0
  80. package/dist/src/integrations/mcp-tool-validator.d.ts.map +1 -0
  81. package/dist/src/integrations/mcp-tool-validator.js +141 -0
  82. package/dist/src/integrations/mcp-tool-validator.js.map +1 -0
  83. package/dist/src/integrations/policy-engine.d.ts +55 -0
  84. package/dist/src/integrations/policy-engine.d.ts.map +1 -0
  85. package/dist/src/integrations/policy-engine.js +247 -0
  86. package/dist/src/integrations/policy-engine.js.map +1 -0
  87. package/dist/src/integrations/safety.d.ts +5 -4
  88. package/dist/src/integrations/safety.d.ts.map +1 -1
  89. package/dist/src/integrations/safety.js +32 -7
  90. package/dist/src/integrations/safety.js.map +1 -1
  91. package/dist/src/integrations/sandbox/basic.d.ts +7 -0
  92. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -1
  93. package/dist/src/integrations/sandbox/basic.js +27 -2
  94. package/dist/src/integrations/sandbox/basic.js.map +1 -1
  95. package/dist/src/integrations/sandbox/index.d.ts +6 -0
  96. package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
  97. package/dist/src/integrations/sandbox/index.js +3 -0
  98. package/dist/src/integrations/sandbox/index.js.map +1 -1
  99. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -1
  100. package/dist/src/integrations/sandbox/landlock.js +3 -0
  101. package/dist/src/integrations/sandbox/landlock.js.map +1 -1
  102. package/dist/src/integrations/self-improvement.d.ts +90 -0
  103. package/dist/src/integrations/self-improvement.d.ts.map +1 -0
  104. package/dist/src/integrations/self-improvement.js +229 -0
  105. package/dist/src/integrations/self-improvement.js.map +1 -0
  106. package/dist/src/integrations/smart-decomposer.d.ts +22 -1
  107. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  108. package/dist/src/integrations/smart-decomposer.js +127 -28
  109. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  110. package/dist/src/integrations/subagent-output-store.d.ts +91 -0
  111. package/dist/src/integrations/subagent-output-store.d.ts.map +1 -0
  112. package/dist/src/integrations/subagent-output-store.js +257 -0
  113. package/dist/src/integrations/subagent-output-store.js.map +1 -0
  114. package/dist/src/integrations/swarm/index.d.ts +2 -2
  115. package/dist/src/integrations/swarm/index.d.ts.map +1 -1
  116. package/dist/src/integrations/swarm/index.js +1 -1
  117. package/dist/src/integrations/swarm/index.js.map +1 -1
  118. package/dist/src/integrations/swarm/model-selector.d.ts +16 -0
  119. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
  120. package/dist/src/integrations/swarm/model-selector.js +123 -10
  121. package/dist/src/integrations/swarm/model-selector.js.map +1 -1
  122. package/dist/src/integrations/swarm/swarm-budget.d.ts +4 -0
  123. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
  124. package/dist/src/integrations/swarm/swarm-budget.js +6 -0
  125. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
  126. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +10 -1
  127. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
  128. package/dist/src/integrations/swarm/swarm-config-loader.js +226 -13
  129. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
  130. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +12 -1
  131. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
  132. package/dist/src/integrations/swarm/swarm-event-bridge.js +178 -9
  133. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
  134. package/dist/src/integrations/swarm/swarm-events.d.ts +66 -1
  135. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
  136. package/dist/src/integrations/swarm/swarm-events.js +26 -5
  137. package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
  138. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +127 -0
  139. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
  140. package/dist/src/integrations/swarm/swarm-orchestrator.js +1842 -47
  141. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
  142. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +91 -3
  143. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
  144. package/dist/src/integrations/swarm/swarm-quality-gate.js +395 -19
  145. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
  146. package/dist/src/integrations/swarm/task-queue.d.ts +55 -1
  147. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
  148. package/dist/src/integrations/swarm/task-queue.js +389 -16
  149. package/dist/src/integrations/swarm/task-queue.js.map +1 -1
  150. package/dist/src/integrations/swarm/types.d.ts +247 -11
  151. package/dist/src/integrations/swarm/types.d.ts.map +1 -1
  152. package/dist/src/integrations/swarm/types.js +67 -9
  153. package/dist/src/integrations/swarm/types.js.map +1 -1
  154. package/dist/src/integrations/swarm/worker-pool.d.ts +18 -5
  155. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
  156. package/dist/src/integrations/swarm/worker-pool.js +236 -34
  157. package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
  158. package/dist/src/integrations/thinking-strategy.d.ts +52 -0
  159. package/dist/src/integrations/thinking-strategy.d.ts.map +1 -0
  160. package/dist/src/integrations/thinking-strategy.js +129 -0
  161. package/dist/src/integrations/thinking-strategy.js.map +1 -0
  162. package/dist/src/integrations/tool-recommendation.d.ts +61 -0
  163. package/dist/src/integrations/tool-recommendation.d.ts.map +1 -0
  164. package/dist/src/integrations/tool-recommendation.js +268 -0
  165. package/dist/src/integrations/tool-recommendation.js.map +1 -0
  166. package/dist/src/integrations/verification-gate.d.ts +80 -0
  167. package/dist/src/integrations/verification-gate.d.ts.map +1 -0
  168. package/dist/src/integrations/verification-gate.js +146 -0
  169. package/dist/src/integrations/verification-gate.js.map +1 -0
  170. package/dist/src/integrations/work-log.d.ts +87 -0
  171. package/dist/src/integrations/work-log.d.ts.map +1 -0
  172. package/dist/src/integrations/work-log.js +275 -0
  173. package/dist/src/integrations/work-log.js.map +1 -0
  174. package/dist/src/main.js +31 -5
  175. package/dist/src/main.js.map +1 -1
  176. package/dist/src/modes/repl.d.ts.map +1 -1
  177. package/dist/src/modes/repl.js +10 -4
  178. package/dist/src/modes/repl.js.map +1 -1
  179. package/dist/src/modes/tui.d.ts.map +1 -1
  180. package/dist/src/modes/tui.js +5 -0
  181. package/dist/src/modes/tui.js.map +1 -1
  182. package/dist/src/modes.d.ts +6 -0
  183. package/dist/src/modes.d.ts.map +1 -1
  184. package/dist/src/modes.js +69 -21
  185. package/dist/src/modes.js.map +1 -1
  186. package/dist/src/tools/agent.d.ts.map +1 -1
  187. package/dist/src/tools/agent.js +11 -2
  188. package/dist/src/tools/agent.js.map +1 -1
  189. package/dist/src/tools/bash.d.ts +9 -3
  190. package/dist/src/tools/bash.d.ts.map +1 -1
  191. package/dist/src/tools/bash.js +12 -0
  192. package/dist/src/tools/bash.js.map +1 -1
  193. package/dist/src/tools/coercion.d.ts +6 -0
  194. package/dist/src/tools/coercion.d.ts.map +1 -1
  195. package/dist/src/tools/coercion.js +13 -0
  196. package/dist/src/tools/coercion.js.map +1 -1
  197. package/dist/src/tools/file.d.ts +2 -2
  198. package/dist/src/tools/file.js +2 -2
  199. package/dist/src/tools/file.js.map +1 -1
  200. package/dist/src/tools/permission.d.ts.map +1 -1
  201. package/dist/src/tools/permission.js +4 -111
  202. package/dist/src/tools/permission.js.map +1 -1
  203. package/dist/src/tools/standard.d.ts +17 -1
  204. package/dist/src/tools/standard.d.ts.map +1 -1
  205. package/dist/src/tools/standard.js +64 -11
  206. package/dist/src/tools/standard.js.map +1 -1
  207. package/dist/src/tracing/trace-collector.d.ts +167 -0
  208. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  209. package/dist/src/tracing/trace-collector.js +137 -0
  210. package/dist/src/tracing/trace-collector.js.map +1 -1
  211. package/dist/src/tracing/types.d.ts +105 -1
  212. package/dist/src/tracing/types.d.ts.map +1 -1
  213. package/dist/src/tracing/types.js.map +1 -1
  214. package/dist/src/tui/app.d.ts.map +1 -1
  215. package/dist/src/tui/app.js +34 -5
  216. package/dist/src/tui/app.js.map +1 -1
  217. package/dist/src/types.d.ts +89 -0
  218. package/dist/src/types.d.ts.map +1 -1
  219. package/package.json +6 -2
@@ -5,13 +5,44 @@
5
5
  * Uses SmartDecomposer's parallelGroups to organize tasks into waves,
6
6
  * manages status transitions, and builds dependency context for workers.
7
7
  */
8
+ import * as fs from 'node:fs';
9
+ import * as path from 'node:path';
8
10
  import { subtaskToSwarmTask } from './types.js';
11
+ /** P6: Failure-mode-specific thresholds — more lenient for external failures, stricter for quality. */
12
+ const FAILURE_MODE_THRESHOLDS = {
13
+ 'timeout': 0.3,
14
+ 'rate-limit': 0.3,
15
+ 'error': 0.5,
16
+ 'quality': 0.7,
17
+ 'hollow': 0.7,
18
+ 'cascade': 0.8,
19
+ };
20
+ /** P6: Get the effective threshold for a task based on its failed dependencies' failure modes.
21
+ * Uses the most lenient (lowest) threshold among failed deps, since that indicates
22
+ * the least fault in the workers. Falls back to the configured threshold. */
23
+ function getEffectiveThreshold(failedDeps, configuredThreshold) {
24
+ if (failedDeps.length === 0)
25
+ return configuredThreshold;
26
+ let minThreshold = configuredThreshold;
27
+ for (const dep of failedDeps) {
28
+ if (dep.failureMode) {
29
+ const modeThreshold = FAILURE_MODE_THRESHOLDS[dep.failureMode];
30
+ if (modeThreshold < minThreshold)
31
+ minThreshold = modeThreshold;
32
+ }
33
+ }
34
+ return minThreshold;
35
+ }
9
36
  // ─── Task Queue ────────────────────────────────────────────────────────────
10
37
  export class SwarmTaskQueue {
11
38
  tasks = new Map();
12
39
  waves = [];
13
40
  conflicts = [];
14
41
  currentWave = 0;
42
+ onCascadeSkipCallback;
43
+ partialDependencyThreshold = 0.5;
44
+ artifactAwareSkip = true;
45
+ workingDirectory = process.cwd();
15
46
  /**
16
47
  * Load tasks from a SmartDecompositionResult.
17
48
  * Converts subtasks to SwarmTasks and organizes them into waves
@@ -21,6 +52,10 @@ export class SwarmTaskQueue {
21
52
  this.tasks.clear();
22
53
  this.waves = [];
23
54
  this.conflicts = result.conflicts;
55
+ this.partialDependencyThreshold = config.partialDependencyThreshold ?? 0.5;
56
+ this.artifactAwareSkip = config.artifactAwareSkip ?? true;
57
+ if (config.facts?.workingDirectory)
58
+ this.workingDirectory = config.facts.workingDirectory;
24
59
  const { subtasks, dependencyGraph } = result;
25
60
  const parallelGroups = dependencyGraph.parallelGroups;
26
61
  // Map subtask IDs to wave numbers
@@ -79,34 +114,87 @@ export class SwarmTaskQueue {
79
114
  }
80
115
  /**
81
116
  * Update task ready status based on dependency completion.
117
+ * Supports partial dependency tolerance: if enough deps succeeded (>= threshold),
118
+ * the task runs with partial context instead of being cascade-skipped.
82
119
  */
83
120
  updateReadyStatus() {
84
121
  for (const [, task] of this.tasks) {
85
122
  if (task.status !== 'pending')
86
123
  continue;
87
- const allDepsComplete = task.dependencies.every(depId => {
88
- const dep = this.tasks.get(depId);
89
- return dep && (dep.status === 'completed' || dep.status === 'skipped');
90
- });
91
- const anyDepFailed = task.dependencies.some(depId => {
124
+ if (task.dependencies.length === 0) {
125
+ task.status = 'ready';
126
+ continue;
127
+ }
128
+ let completedCount = 0;
129
+ let failedCount = 0;
130
+ let resolvedCount = 0;
131
+ const succeededDeps = [];
132
+ const failedDeps = [];
133
+ for (const depId of task.dependencies) {
92
134
  const dep = this.tasks.get(depId);
93
- return dep && dep.status === 'failed';
94
- });
95
- if (anyDepFailed) {
96
- task.status = 'skipped';
135
+ if (!dep)
136
+ continue;
137
+ if (dep.status === 'completed' || dep.status === 'decomposed') {
138
+ completedCount++;
139
+ resolvedCount++;
140
+ succeededDeps.push(dep.description);
141
+ }
142
+ else if (dep.status === 'failed') {
143
+ failedCount++;
144
+ resolvedCount++;
145
+ failedDeps.push(dep.description);
146
+ }
147
+ else if (dep.status === 'skipped') {
148
+ resolvedCount++;
149
+ failedDeps.push(dep.description);
150
+ }
97
151
  }
98
- else if (allDepsComplete) {
152
+ const allResolved = resolvedCount === task.dependencies.length;
153
+ if (!allResolved)
154
+ continue;
155
+ const noFailures = failedCount === 0 && failedDeps.length === 0;
156
+ if (noFailures) {
157
+ // All deps succeeded — standard path
99
158
  task.status = 'ready';
100
- // Build dependency context from completed deps
101
159
  task.dependencyContext = this.buildDependencyContext(task);
102
160
  }
161
+ else {
162
+ // P6: Some deps failed — check failure-mode-aware threshold
163
+ const failedDepTasks = task.dependencies
164
+ .map(id => this.tasks.get(id))
165
+ .filter((d) => !!d && (d.status === 'failed' || d.status === 'skipped'));
166
+ const effectiveThreshold = getEffectiveThreshold(failedDepTasks, this.partialDependencyThreshold);
167
+ const ratio = completedCount / task.dependencies.length;
168
+ if (ratio >= effectiveThreshold) {
169
+ // Enough succeeded — dispatch with partial context
170
+ task.status = 'ready';
171
+ task.partialContext = { succeeded: succeededDeps, failed: failedDeps, ratio };
172
+ task.dependencyContext = this.buildDependencyContext(task);
173
+ }
174
+ else {
175
+ // Too many failures — skip
176
+ task.status = 'skipped';
177
+ this.onCascadeSkipCallback?.(task.id, `${failedDeps.length}/${task.dependencies.length} dependencies failed (ratio ${ratio.toFixed(2)} < threshold ${effectiveThreshold.toFixed(2)})`);
178
+ }
179
+ }
103
180
  }
104
181
  }
105
182
  /**
106
183
  * Build context string from completed dependency outputs.
184
+ * Includes partial dependency warnings when some deps failed.
107
185
  */
108
186
  buildDependencyContext(task) {
109
187
  const parts = [];
188
+ const emptyDeps = [];
189
+ // Add rescue context warning if this task was un-skipped
190
+ if (task.rescueContext) {
191
+ parts.push(`⚠ RESCUED TASK: ${task.rescueContext}`, 'Some dependencies may be missing or degraded. Check file artifacts on disk before assuming output exists.', '');
192
+ }
193
+ // Add partial dependency warning if applicable
194
+ if (task.partialContext) {
195
+ const { succeeded, failed, ratio } = task.partialContext;
196
+ parts.push(`WARNING: ${succeeded.length}/${succeeded.length + failed.length} dependency tasks completed (${(ratio * 100).toFixed(0)}%).`, `Missing data from: ${failed.join(', ')}.`, 'Synthesize from available results only — do not attempt to fill gaps with speculation.', '');
197
+ }
110
198
  for (const depId of task.dependencies) {
111
199
  const dep = this.tasks.get(depId);
112
200
  if (!dep || !dep.result || !dep.result.success)
@@ -114,7 +202,27 @@ export class SwarmTaskQueue {
114
202
  const summary = dep.result.closureReport
115
203
  ? dep.result.closureReport.findings.join('\n') + '\n' + dep.result.closureReport.actionsTaken.join('\n')
116
204
  : dep.result.output.slice(0, 500);
117
- parts.push(`[Dependency: ${dep.description}]\n${summary}`);
205
+ // F24b: Append files created/modified by this dependency
206
+ const fileList = dep.result.filesModified?.length
207
+ ? `\nFiles created/modified: ${dep.result.filesModified.join(', ')}`
208
+ : '';
209
+ // Degraded dependency warning — task completed but quality was low
210
+ const degradedWarning = dep.degraded
211
+ ? '\n⚠ DEGRADED: This dependency was accepted with partial/low-quality output. Verify its artifacts before relying on them.'
212
+ : '';
213
+ // V6: Detect hollow dependency output — both conditions must be true:
214
+ // short output AND budget/unable failures (so legitimate short completions pass through)
215
+ const isHollow = summary.trim().length < 100 &&
216
+ (dep.result.closureReport?.failures?.some(f => /budget|unable|not completed/i.test(f)) ?? false);
217
+ if (isHollow) {
218
+ emptyDeps.push(dep.description);
219
+ }
220
+ else {
221
+ parts.push(`[Dependency: ${dep.description}]${degradedWarning}\n${summary}${fileList}`);
222
+ }
223
+ }
224
+ if (emptyDeps.length > 0) {
225
+ parts.unshift(`WARNING: ${emptyDeps.length} dependencies completed without meaningful output: ${emptyDeps.join(', ')}. You may need to do additional research to compensate.`);
118
226
  }
119
227
  return parts.length > 0 ? parts.join('\n\n') : '';
120
228
  }
@@ -159,6 +267,12 @@ export class SwarmTaskQueue {
159
267
  task.retryAfter = Date.now() + delayMs;
160
268
  }
161
269
  }
270
+ /**
271
+ * Register a callback invoked for each task cascade-skipped due to a dependency failure.
272
+ */
273
+ setOnCascadeSkip(callback) {
274
+ this.onCascadeSkipCallback = callback;
275
+ }
162
276
  /**
163
277
  * Mark a task as dispatched.
164
278
  */
@@ -177,8 +291,13 @@ export class SwarmTaskQueue {
177
291
  const task = this.tasks.get(taskId);
178
292
  if (!task)
179
293
  return;
294
+ // Don't overwrite terminal states (unless pendingCascadeSkip — see F4)
295
+ if (task.status === 'skipped' || task.status === 'failed')
296
+ return;
180
297
  task.status = 'completed';
181
298
  task.result = result;
299
+ // F4: Clear pendingCascadeSkip since we accepted the result
300
+ task.pendingCascadeSkip = undefined;
182
301
  // Update dependent tasks' ready status
183
302
  this.updateReadyStatus();
184
303
  }
@@ -201,15 +320,182 @@ export class SwarmTaskQueue {
201
320
  return false;
202
321
  }
203
322
  /**
204
- * Skip all tasks that depend (transitively) on a failed task.
323
+ * Mark a task as failed WITHOUT triggering cascade skip.
324
+ * Returns true if the task can be retried (attempts < maxAttempts).
325
+ * Caller is responsible for calling triggerCascadeSkip() if recovery fails.
326
+ */
327
+ markFailedWithoutCascade(taskId, maxRetries) {
328
+ const task = this.tasks.get(taskId);
329
+ if (!task)
330
+ return false;
331
+ if (task.attempts <= maxRetries) {
332
+ task.status = 'ready';
333
+ return true;
334
+ }
335
+ task.status = 'failed';
336
+ // Do NOT call cascadeSkip — caller will trigger it manually after recovery attempt
337
+ return false;
338
+ }
339
+ /**
340
+ * Manually trigger cascade skip for a failed task's dependents.
341
+ * Call this after resilience recovery has been attempted and failed.
342
+ */
343
+ triggerCascadeSkip(taskId) {
344
+ this.cascadeSkip(taskId);
345
+ }
346
+ /**
347
+ * Un-skip dependents of a task that was recovered (e.g., via resilience recovery).
348
+ * Checks if all dependencies are now satisfied and restores skipped tasks to ready.
349
+ */
350
+ unSkipDependents(taskId) {
351
+ for (const [, task] of this.tasks) {
352
+ if (task.status === 'skipped' && task.dependencies.includes(taskId)) {
353
+ const allDepsSatisfied = task.dependencies.every(depId => {
354
+ const dep = this.tasks.get(depId);
355
+ return dep && (dep.status === 'completed' || dep.status === 'decomposed');
356
+ });
357
+ if (allDepsSatisfied) {
358
+ task.status = 'ready';
359
+ task.dependencyContext = this.buildDependencyContext(task);
360
+ }
361
+ }
362
+ }
363
+ }
364
+ /**
365
+ * Cascade failure to dependent tasks, respecting partial dependency threshold.
366
+ * Tasks with enough successful deps are kept ready/pending rather than skipped.
205
367
  */
206
368
  cascadeSkip(failedTaskId) {
207
369
  for (const [, task] of this.tasks) {
208
- // H5: Also skip dispatched tasks whose dependency failed
370
+ // H5: Also handle dispatched tasks whose dependency failed
209
371
  if (task.status !== 'pending' && task.status !== 'ready' && task.status !== 'dispatched')
210
372
  continue;
211
- if (this.dependsOn(task.id, failedTaskId)) {
373
+ // Only consider direct dependents — transitive deps are handled recursively
374
+ // when a direct dependent gets skipped (it will trigger another cascadeSkip)
375
+ if (!this.dependsOn(task.id, failedTaskId))
376
+ continue;
377
+ // Artifact-aware skip: before cascade-skipping, check if the failed dependency's
378
+ // target files already exist on disk with content. If they do, the worker DID produce
379
+ // the files even though the task "failed" (timeout, quality gate, etc.).
380
+ if (this.artifactAwareSkip) {
381
+ const failedTask = this.tasks.get(failedTaskId);
382
+ const targetFiles = failedTask?.targetFiles ?? [];
383
+ if (targetFiles.length > 0) {
384
+ const existingCount = targetFiles.filter(f => {
385
+ try {
386
+ const resolved = path.resolve(this.workingDirectory, f);
387
+ return fs.statSync(resolved).size > 0;
388
+ }
389
+ catch {
390
+ return false;
391
+ }
392
+ }).length;
393
+ if (existingCount >= targetFiles.length * 0.5) {
394
+ // Most target files exist — treat failure as less severe, keep dependent ready
395
+ const succeededDeps = [];
396
+ const failedDeps = [];
397
+ for (const depId of task.dependencies) {
398
+ const dep = this.tasks.get(depId);
399
+ if (!dep)
400
+ continue;
401
+ if (dep.status === 'completed')
402
+ succeededDeps.push(dep.description);
403
+ else
404
+ failedDeps.push(`${dep.description} (failed but ${existingCount}/${targetFiles.length} files exist)`);
405
+ }
406
+ task.status = 'ready';
407
+ task.partialContext = {
408
+ succeeded: succeededDeps,
409
+ failed: failedDeps,
410
+ ratio: succeededDeps.length / task.dependencies.length,
411
+ };
412
+ task.dependencyContext = this.buildDependencyContext(task);
413
+ continue;
414
+ }
415
+ }
416
+ }
417
+ // Check partial dependency threshold
418
+ if (task.dependencies.length > 1) {
419
+ let completedCount = 0;
420
+ let failedOrSkippedCount = 0;
421
+ for (const depId of task.dependencies) {
422
+ const dep = this.tasks.get(depId);
423
+ if (!dep)
424
+ continue;
425
+ if (dep.status === 'completed')
426
+ completedCount++;
427
+ if (dep.status === 'failed' || dep.status === 'skipped')
428
+ failedOrSkippedCount++;
429
+ }
430
+ // Not all deps resolved yet — don't skip prematurely, updateReadyStatus will handle it
431
+ const resolvedCount = completedCount + failedOrSkippedCount;
432
+ if (resolvedCount < task.dependencies.length)
433
+ continue;
434
+ const failedDepTasks = task.dependencies
435
+ .map(id => this.tasks.get(id))
436
+ .filter((d) => !!d && (d.status === 'failed' || d.status === 'skipped'));
437
+ const effectiveThreshold = getEffectiveThreshold(failedDepTasks, this.partialDependencyThreshold);
438
+ const ratio = completedCount / task.dependencies.length;
439
+ if (ratio >= effectiveThreshold) {
440
+ // Enough deps succeeded — mark ready with partial context instead of skipping
441
+ const succeededDeps = [];
442
+ const failedDeps = [];
443
+ for (const depId of task.dependencies) {
444
+ const dep = this.tasks.get(depId);
445
+ if (!dep)
446
+ continue;
447
+ if (dep.status === 'completed')
448
+ succeededDeps.push(dep.description);
449
+ else
450
+ failedDeps.push(dep.description);
451
+ }
452
+ task.status = 'ready';
453
+ task.partialContext = { succeeded: succeededDeps, failed: failedDeps, ratio };
454
+ task.dependencyContext = this.buildDependencyContext(task);
455
+ continue;
456
+ }
457
+ }
458
+ // F25c: Timeout-lenient cascade — when a dependency failed due to timeout,
459
+ // don't cascade-skip dependents. Instead mark them ready with partial context.
460
+ // Timeouts mean the worker was working but ran out of time — the dependent
461
+ // worker can discover what files actually exist and compensate.
462
+ const failedTask = this.tasks.get(failedTaskId);
463
+ if (failedTask?.failureMode === 'timeout') {
464
+ if (task.status === 'dispatched') {
465
+ // Already running — don't interfere
466
+ this.onCascadeSkipCallback?.(task.id, `dependency ${failedTaskId} timed out — dispatched task allowed to complete`);
467
+ continue;
468
+ }
469
+ const succeededDeps = [];
470
+ const failedDeps = [];
471
+ for (const depId of task.dependencies) {
472
+ const dep = this.tasks.get(depId);
473
+ if (!dep)
474
+ continue;
475
+ if (dep.status === 'completed')
476
+ succeededDeps.push(dep.description);
477
+ else
478
+ failedDeps.push(`${dep.description} (timed out — output may be incomplete)`);
479
+ }
480
+ task.status = 'ready';
481
+ task.partialContext = {
482
+ succeeded: succeededDeps,
483
+ failed: failedDeps,
484
+ ratio: succeededDeps.length / task.dependencies.length,
485
+ };
486
+ task.dependencyContext = this.buildDependencyContext(task);
487
+ this.onCascadeSkipCallback?.(task.id, `dependency ${failedTaskId} timed out — proceeding with partial context`);
488
+ continue;
489
+ }
490
+ // F4: For dispatched tasks (worker still running), set pendingCascadeSkip
491
+ // instead of immediately skipping. The result will be evaluated when it arrives.
492
+ if (task.status === 'dispatched') {
493
+ task.pendingCascadeSkip = true;
494
+ this.onCascadeSkipCallback?.(task.id, `dependency ${failedTaskId} failed (pending — worker still running)`);
495
+ }
496
+ else {
212
497
  task.status = 'skipped';
498
+ this.onCascadeSkipCallback?.(task.id, `dependency ${failedTaskId} failed`);
213
499
  }
214
500
  }
215
501
  }
@@ -236,7 +522,7 @@ export class SwarmTaskQueue {
236
522
  const waveTaskIds = this.waves[this.currentWave];
237
523
  return waveTaskIds.every(id => {
238
524
  const task = this.tasks.get(id);
239
- return task && (task.status === 'completed' || task.status === 'failed' || task.status === 'skipped');
525
+ return task && (task.status === 'completed' || task.status === 'failed' || task.status === 'skipped' || task.status === 'decomposed');
240
526
  });
241
527
  }
242
528
  /**
@@ -261,6 +547,61 @@ export class SwarmTaskQueue {
261
547
  }
262
548
  return true;
263
549
  }
550
+ /**
551
+ * Replace a task with subtasks from micro-decomposition.
552
+ * Marks original task as 'decomposed', inserts subtasks into its wave,
553
+ * and updates dependency graph so anything depending on the original
554
+ * now depends on ALL subtasks.
555
+ */
556
+ replaceWithSubtasks(originalTaskId, subtasks) {
557
+ const original = this.tasks.get(originalTaskId);
558
+ if (!original)
559
+ return;
560
+ original.status = 'decomposed';
561
+ original.subtaskIds = subtasks.map(s => s.id);
562
+ // Insert subtasks
563
+ for (const sub of subtasks) {
564
+ sub.parentTaskId = originalTaskId;
565
+ // Subtasks inherit the original's dependencies
566
+ sub.dependencies = [...original.dependencies];
567
+ sub.wave = original.wave;
568
+ this.tasks.set(sub.id, sub);
569
+ }
570
+ // Update dependency graph: anything that depended on original now depends on ALL subtasks
571
+ for (const [, task] of this.tasks) {
572
+ if (task.id === originalTaskId)
573
+ continue;
574
+ if (task.subtaskIds?.length)
575
+ continue; // Skip the original itself
576
+ const depIndex = task.dependencies.indexOf(originalTaskId);
577
+ if (depIndex !== -1) {
578
+ task.dependencies.splice(depIndex, 1, ...subtasks.map(s => s.id));
579
+ }
580
+ }
581
+ // Add subtask IDs to the wave
582
+ const waveIdx = original.wave;
583
+ if (waveIdx < this.waves.length) {
584
+ this.waves[waveIdx].push(...subtasks.map(s => s.id));
585
+ }
586
+ this.updateReadyStatus();
587
+ }
588
+ /**
589
+ * Get all tasks that were cascade-skipped.
590
+ */
591
+ getSkippedTasks() {
592
+ return [...this.tasks.values()].filter(t => t.status === 'skipped');
593
+ }
594
+ /**
595
+ * Un-skip a task, setting it to 'ready' with rescue context.
596
+ */
597
+ rescueTask(taskId, rescueContext) {
598
+ const task = this.tasks.get(taskId);
599
+ if (!task || task.status !== 'skipped')
600
+ return;
601
+ task.status = 'ready';
602
+ task.rescueContext = rescueContext;
603
+ task.dependencyContext = this.buildDependencyContext(task);
604
+ }
264
605
  /**
265
606
  * Get a task by ID.
266
607
  */
@@ -307,6 +648,9 @@ export class SwarmTaskQueue {
307
648
  case 'skipped':
308
649
  skipped++;
309
650
  break;
651
+ case 'decomposed':
652
+ completed++;
653
+ break; // Decomposed tasks count as completed (replaced by subtasks)
310
654
  }
311
655
  }
312
656
  return { ready, running, completed, failed, skipped, total: this.tasks.size };
@@ -353,6 +697,35 @@ export class SwarmTaskQueue {
353
697
  }
354
698
  }
355
699
  }
700
+ /**
701
+ * Add re-planned tasks from mid-swarm re-planning.
702
+ * Inserts new tasks into the specified wave and marks them ready.
703
+ */
704
+ addReplanTasks(subtasks, wave) {
705
+ const newTasks = [];
706
+ for (const st of subtasks) {
707
+ const id = `replan-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
708
+ const task = {
709
+ id,
710
+ description: st.description,
711
+ type: st.type,
712
+ dependencies: st.dependencies,
713
+ status: 'ready',
714
+ complexity: Math.max(3, st.complexity),
715
+ wave,
716
+ targetFiles: st.relevantFiles,
717
+ attempts: 1,
718
+ rescueContext: 'Re-planned from stalled swarm',
719
+ };
720
+ this.tasks.set(id, task);
721
+ newTasks.push(task);
722
+ }
723
+ // Add to wave
724
+ if (!this.waves[wave])
725
+ this.waves[wave] = [];
726
+ this.waves[wave].push(...newTasks.map(t => t.id));
727
+ return newTasks;
728
+ }
356
729
  /**
357
730
  * Add fix-up tasks from wave review. Inserted into the current wave.
358
731
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/task-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/task-queue.ts"],"names":[],"mappings":"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"}