@copilot-swarm/core 0.0.7 → 0.0.9

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 (50) hide show
  1. package/defaults/agents/engineer.md +2 -1
  2. package/defaults/agents/pm.md +1 -1
  3. package/defaults/swarm.config.yaml +3 -0
  4. package/dist/analysis-engine.d.ts +3 -1
  5. package/dist/analysis-engine.d.ts.map +1 -1
  6. package/dist/analysis-engine.js +14 -1
  7. package/dist/analysis-engine.js.map +1 -1
  8. package/dist/checkpoint.d.ts +11 -0
  9. package/dist/checkpoint.d.ts.map +1 -1
  10. package/dist/checkpoint.js.map +1 -1
  11. package/dist/checkpoint.test.d.ts +2 -0
  12. package/dist/checkpoint.test.d.ts.map +1 -0
  13. package/dist/checkpoint.test.js +138 -0
  14. package/dist/checkpoint.test.js.map +1 -0
  15. package/dist/config.d.ts +1 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +19 -5
  18. package/dist/config.js.map +1 -1
  19. package/dist/index.js +65 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/messages.d.ts +20 -0
  22. package/dist/messages.d.ts.map +1 -1
  23. package/dist/messages.js +31 -0
  24. package/dist/messages.js.map +1 -1
  25. package/dist/orchestrator.d.ts.map +1 -1
  26. package/dist/orchestrator.js +17 -13
  27. package/dist/orchestrator.js.map +1 -1
  28. package/dist/pipeline-config.d.ts.map +1 -1
  29. package/dist/pipeline-config.js +5 -0
  30. package/dist/pipeline-config.js.map +1 -1
  31. package/dist/pipeline-config.test.js +54 -0
  32. package/dist/pipeline-config.test.js.map +1 -1
  33. package/dist/pipeline-engine.d.ts +3 -0
  34. package/dist/pipeline-engine.d.ts.map +1 -1
  35. package/dist/pipeline-engine.js +187 -68
  36. package/dist/pipeline-engine.js.map +1 -1
  37. package/dist/pipeline-types.d.ts +3 -0
  38. package/dist/pipeline-types.d.ts.map +1 -1
  39. package/dist/planning-engine.d.ts +20 -1
  40. package/dist/planning-engine.d.ts.map +1 -1
  41. package/dist/planning-engine.js +218 -10
  42. package/dist/planning-engine.js.map +1 -1
  43. package/dist/progress-tracker.d.ts.map +1 -1
  44. package/dist/progress-tracker.js +8 -0
  45. package/dist/progress-tracker.js.map +1 -1
  46. package/dist/tui-renderer.d.ts +4 -0
  47. package/dist/tui-renderer.d.ts.map +1 -1
  48. package/dist/tui-renderer.js +18 -0
  49. package/dist/tui-renderer.js.map +1 -1
  50. package/package.json +1 -1
@@ -12,6 +12,10 @@ export class PipelineEngine {
12
12
  tracker;
13
13
  sessions;
14
14
  effectiveConfig;
15
+ // Iteration-level checkpoint state
16
+ activePhaseKey = null;
17
+ phaseDraft = null;
18
+ iterationProgress = {};
15
19
  constructor(config, pipeline, logger, tracker) {
16
20
  this.config = config;
17
21
  this.pipeline = pipeline;
@@ -30,6 +34,7 @@ export class PipelineEngine {
30
34
  this.logger.info(msg.configLoaded(this.pipeline.primaryModel, this.pipeline.reviewModel, this.config.verbose));
31
35
  let ctx = { repoAnalysis: "", spec: "", tasks: [], designSpec: "", streamResults: [] };
32
36
  let completedPhases = new Set();
37
+ let resumedPhaseKey = null;
33
38
  // Load repo analysis if available — provides context for all phases
34
39
  try {
35
40
  ctx.repoAnalysis = await fs.readFile(analysisFilePath(this.config), "utf-8");
@@ -55,11 +60,32 @@ export class PipelineEngine {
55
60
  };
56
61
  completedPhases = new Set(checkpoint.completedPhases);
57
62
  this.logger.info(msg.resuming(completedPhases.size));
63
+ // Restore iteration-level progress for the phase that was active
64
+ if (checkpoint.activePhase) {
65
+ resumedPhaseKey = checkpoint.activePhase;
66
+ this.phaseDraft = checkpoint.phaseDraft ?? null;
67
+ this.iterationProgress = checkpoint.iterationProgress ?? {};
68
+ }
58
69
  }
59
70
  else {
60
71
  this.logger.warn(msg.noCheckpoint);
61
72
  }
62
73
  }
74
+ // Closure that saves the full checkpoint including iteration state
75
+ const saveProgress = async () => {
76
+ await saveCheckpoint(this.effectiveConfig, {
77
+ completedPhases: [...completedPhases],
78
+ spec: ctx.spec,
79
+ tasks: ctx.tasks,
80
+ designSpec: ctx.designSpec,
81
+ streamResults: ctx.streamResults,
82
+ issueBody: this.effectiveConfig.issueBody,
83
+ runId: this.effectiveConfig.runId,
84
+ activePhase: this.activePhaseKey ?? undefined,
85
+ phaseDraft: this.phaseDraft ?? undefined,
86
+ iterationProgress: Object.keys(this.iterationProgress).length > 0 ? this.iterationProgress : undefined,
87
+ });
88
+ };
63
89
  // Initialize progress tracker with pipeline phases
64
90
  this.tracker?.initPhases(this.pipeline.pipeline);
65
91
  for (const key of completedPhases) {
@@ -72,35 +98,45 @@ export class PipelineEngine {
72
98
  this.tracker?.skipPhase(phaseKey);
73
99
  continue;
74
100
  }
101
+ this.activePhaseKey = phaseKey;
102
+ // Only use saved iteration state for the phase that was active when checkpoint was saved
103
+ if (phaseKey !== resumedPhaseKey) {
104
+ this.phaseDraft = null;
105
+ this.iterationProgress = {};
106
+ }
75
107
  this.tracker?.activatePhase(phaseKey);
76
108
  switch (phase.phase) {
77
109
  case "spec":
78
- ctx.spec = await this.executeSpec(phase, ctx);
110
+ if (phase.condition === "noPlanProvided" && this.config.planProvided) {
111
+ this.logger.info(msg.specSkippedPlan);
112
+ ctx.spec = this.config.issueBody;
113
+ this.tracker?.skipPhase(phaseKey);
114
+ completedPhases.add(phaseKey);
115
+ await saveProgress();
116
+ continue;
117
+ }
118
+ ctx.spec = await this.executeSpec(phase, ctx, saveProgress);
79
119
  break;
80
120
  case "decompose":
81
121
  ctx.tasks = await this.executeDecompose(phase, ctx);
82
122
  break;
83
123
  case "design":
84
- ctx.designSpec = await this.executeDesign(phase, ctx);
124
+ ctx.designSpec = await this.executeDesign(phase, ctx, saveProgress);
85
125
  break;
86
126
  case "implement":
87
- ctx.streamResults = await this.executeImplement(phase, ctx);
127
+ ctx.streamResults = await this.executeImplement(phase, ctx, saveProgress);
88
128
  break;
89
129
  case "cross-model-review":
90
- ctx.streamResults = await this.executeCrossModelReview(phase, ctx);
130
+ ctx.streamResults = await this.executeCrossModelReview(phase, ctx, saveProgress);
91
131
  break;
92
132
  }
133
+ // Phase complete — clear iteration state and save phase-level checkpoint
134
+ this.activePhaseKey = null;
135
+ this.phaseDraft = null;
136
+ this.iterationProgress = {};
93
137
  completedPhases.add(phaseKey);
94
138
  this.tracker?.completePhase(phaseKey);
95
- await saveCheckpoint(this.effectiveConfig, {
96
- completedPhases: [...completedPhases],
97
- spec: ctx.spec,
98
- tasks: ctx.tasks,
99
- designSpec: ctx.designSpec,
100
- streamResults: ctx.streamResults,
101
- issueBody: this.effectiveConfig.issueBody,
102
- runId: this.effectiveConfig.runId,
103
- });
139
+ await saveProgress();
104
140
  this.logger.info(msg.checkpointSaved(phase.phase));
105
141
  }
106
142
  // Final summary
@@ -119,16 +155,26 @@ export class PipelineEngine {
119
155
  await clearCheckpoint(this.effectiveConfig);
120
156
  }
121
157
  // --- SPEC PHASE ---
122
- async executeSpec(phase, ctx) {
158
+ async executeSpec(phase, ctx, save) {
123
159
  this.logger.info(msg.pmPhaseStart);
124
160
  this.logger.info(msg.pmDrafting);
125
- const prompt = ctx.repoAnalysis
126
- ? `## Repository Context\n\n${ctx.repoAnalysis}\n\n## Task\n\n${this.config.issueBody}`
127
- : this.config.issueBody;
128
- let spec = await this.sessions.callIsolated(phase.agent, prompt);
129
- for (const review of phase.reviews) {
161
+ let spec;
162
+ if (this.phaseDraft !== null) {
163
+ spec = this.phaseDraft;
164
+ this.logger.info(msg.draftResumed);
165
+ }
166
+ else {
167
+ const prompt = ctx.repoAnalysis
168
+ ? `## Repository Context\n\n${ctx.repoAnalysis}\n\n## Task\n\n${this.config.issueBody}`
169
+ : this.config.issueBody;
170
+ spec = await this.sessions.callIsolated(phase.agent, prompt);
171
+ this.phaseDraft = spec;
172
+ await save();
173
+ }
174
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
175
+ const review = phase.reviews[ri];
130
176
  this.logger.info(msg.reviewPhase(review.agent));
131
- spec = await this.runReviewLoop(review, spec, phase.agent, (content) => `Review this specification:\n${content}`);
177
+ spec = await this.runReviewLoop(review, spec, phase.agent, (content) => `Review this specification:\n${content}`, `review-${ri}`, save);
132
178
  }
133
179
  await writeRoleSummary(this.effectiveConfig, phase.agent, `## Final Specification\n\n${spec}`);
134
180
  return spec;
@@ -146,43 +192,68 @@ export class PipelineEngine {
146
192
  return tasks;
147
193
  }
148
194
  // --- DESIGN PHASE ---
149
- async executeDesign(phase, ctx) {
195
+ async executeDesign(phase, ctx, save) {
150
196
  if (phase.condition === "hasFrontendTasks" && !hasFrontendWork(ctx.tasks)) {
151
197
  return ctx.designSpec;
152
198
  }
153
199
  this.logger.info(msg.designPhaseStart);
154
200
  const session = await this.sessions.createAgentSession(phase.agent);
201
+ let sessionPrimed = false;
155
202
  try {
156
- this.logger.info(msg.designPhase);
157
- let design = await this.sessions.send(session, `Create a detailed UI/UX design specification based on this spec:\n${ctx.spec}\n\n` +
158
- `Include: component hierarchy, layout, interactions, states, and accessibility considerations.`, `${phase.agent} is designing…`);
159
- if (phase.clarificationAgent && responseContains(design, "CLARIFICATION_NEEDED")) {
160
- this.logger.info(msg.designerClarification);
161
- const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `The designer needs clarification:\n${design}`);
162
- design = await this.sessions.send(session, `PM Clarification:\n${clarification}\n\nRevise the design.`, `${phase.agent} is revising…`);
203
+ let design;
204
+ if (this.phaseDraft !== null) {
205
+ design = this.phaseDraft;
206
+ this.logger.info(msg.draftResumed);
207
+ }
208
+ else {
209
+ this.logger.info(msg.designPhase);
210
+ design = await this.sessions.send(session, `Create a detailed UI/UX design specification based on this spec:\n${ctx.spec}\n\n` +
211
+ `Include: component hierarchy, layout, interactions, states, and accessibility considerations.`, `${phase.agent} is designing…`);
212
+ sessionPrimed = true;
213
+ if (phase.clarificationAgent && responseContains(design, "CLARIFICATION_NEEDED")) {
214
+ this.logger.info(msg.designerClarification);
215
+ const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `The designer needs clarification:\n${design}`);
216
+ design = await this.sessions.send(session, `PM Clarification:\n${clarification}\n\nRevise the design.`, `${phase.agent} is revising…`);
217
+ }
218
+ this.phaseDraft = design;
219
+ await save();
163
220
  }
164
- for (const review of phase.reviews) {
221
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
222
+ const review = phase.reviews[ri];
165
223
  this.logger.info(msg.reviewPhase(review.agent));
224
+ const reviewKey = `review-${ri}`;
225
+ const savedReview = this.iterationProgress[reviewKey];
226
+ let startIter = 1;
227
+ if (savedReview) {
228
+ design = savedReview.content;
229
+ startIter = savedReview.completedIterations + 1;
230
+ this.logger.info(msg.iterationResumed(savedReview.completedIterations, review.maxIterations));
231
+ }
166
232
  const maxIter = review.maxIterations;
167
- for (let i = 1; i <= maxIter; i++) {
233
+ for (let i = startIter; i <= maxIter; i++) {
168
234
  this.logger.info(msg.reviewIteration(i, maxIter));
169
235
  const feedback = await this.sessions.callIsolated(review.agent, `Review this design specification:\n${design}`);
170
236
  if (responseContains(feedback, review.approvalKeyword)) {
171
237
  this.logger.info(msg.approved(review.agent));
172
238
  break;
173
239
  }
240
+ // Build fix prompt — include current design if session has no prior context
241
+ const contextPrefix = sessionPrimed ? "" : `Current design:\n${design}\n\n`;
174
242
  if (review.clarificationKeyword && responseContains(feedback, review.clarificationKeyword)) {
175
243
  const clarAgent = review.clarificationAgent ?? phase.clarificationAgent;
176
244
  if (clarAgent) {
177
245
  this.logger.info(msg.reviewerClarification);
178
246
  const clar = await this.sessions.callIsolated(clarAgent, `The design reviewer needs clarification:\n${feedback}`);
179
- design = await this.sessions.send(session, `Review feedback:\n${feedback}\n\nPM Clarification:\n${clar}\n\nRevise the design.`, `${phase.agent} is revising…`);
247
+ design = await this.sessions.send(session, `${contextPrefix}Review feedback:\n${feedback}\n\nPM Clarification:\n${clar}\n\nRevise the design.`, `${phase.agent} is revising…`);
180
248
  }
181
249
  }
182
250
  else {
183
251
  this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
184
- design = await this.sessions.send(session, `Review feedback:\n${feedback}\n\nRevise the design.`, `${phase.agent} is revising…`);
252
+ design = await this.sessions.send(session, `${contextPrefix}Review feedback:\n${feedback}\n\nRevise the design.`, `${phase.agent} is revising…`);
185
253
  }
254
+ sessionPrimed = true;
255
+ this.iterationProgress[reviewKey] = { content: design, completedIterations: i };
256
+ await save();
186
257
  }
187
258
  }
188
259
  await writeRoleSummary(this.effectiveConfig, phase.agent, design);
@@ -193,7 +264,7 @@ export class PipelineEngine {
193
264
  }
194
265
  }
195
266
  // --- IMPLEMENT PHASE ---
196
- async executeImplement(phase, ctx) {
267
+ async executeImplement(phase, ctx, save) {
197
268
  this.logger.info(msg.launchingStreams(ctx.tasks.length));
198
269
  this.tracker?.initStreams(ctx.tasks);
199
270
  // Pre-fill with any existing partial results from a previous run
@@ -206,21 +277,51 @@ export class PipelineEngine {
206
277
  return results[idx];
207
278
  }
208
279
  const label = msg.streamLabel(idx);
280
+ const streamKey = `stream-${idx}`;
209
281
  this.logger.info(msg.streamStart(label, task));
210
282
  const session = await this.sessions.createAgentSession(phase.agent);
283
+ let sessionPrimed = false;
211
284
  try {
212
- this.logger.info(msg.streamEngineering(label));
213
- this.tracker?.updateStream(idx, "engineering");
214
- const engineeringPrompt = isFrontendTask(task)
215
- ? `Spec:\n${ctx.spec}\n\nDesign:\n${ctx.designSpec}\n\nTask:\n${task}\n\nImplement this task.`
216
- : `Spec:\n${ctx.spec}\n\nTask:\n${task}\n\nImplement this task.`;
217
- let code = await this.sessions.send(session, engineeringPrompt, `${phase.agent} (${label}) is implementing…`);
285
+ let code;
286
+ const savedCode = this.iterationProgress[`${streamKey}-code`];
287
+ if (savedCode) {
288
+ code = savedCode.content;
289
+ this.logger.info(msg.draftResumed);
290
+ }
291
+ else {
292
+ this.logger.info(msg.streamEngineering(label));
293
+ this.tracker?.updateStream(idx, "engineering");
294
+ const engineeringPrompt = isFrontendTask(task)
295
+ ? `Spec:\n${ctx.spec}\n\nDesign:\n${ctx.designSpec}\n\nTask:\n${task}\n\nImplement this task.`
296
+ : `Spec:\n${ctx.spec}\n\nTask:\n${task}\n\nImplement this task.`;
297
+ code = await this.sessions.send(session, engineeringPrompt, `${phase.agent} (${label}) is implementing…`);
298
+ sessionPrimed = true;
299
+ // Engineer-to-PM clarification: if the engineer signals ambiguity, consult the PM
300
+ if (phase.clarificationAgent &&
301
+ phase.clarificationKeyword &&
302
+ responseContains(code, phase.clarificationKeyword)) {
303
+ this.logger.info(msg.streamClarification(label));
304
+ const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `Spec:\n${ctx.spec}\n\nThe engineer working on task "${task}" needs clarification:\n\n${code}`);
305
+ code = await this.sessions.send(session, `PM Clarification:\n${clarification}\n\nProceed with the implementation using this clarification.`, `${phase.agent} (${label}) is implementing with clarification…`);
306
+ }
307
+ this.iterationProgress[`${streamKey}-code`] = { content: code, completedIterations: 0 };
308
+ await save();
309
+ }
218
310
  // Reviews
219
- for (const review of phase.reviews) {
311
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
312
+ const review = phase.reviews[ri];
313
+ const reviewKey = `${streamKey}-review-${ri}`;
314
+ const savedReview = this.iterationProgress[reviewKey];
315
+ let startIter = 1;
316
+ if (savedReview) {
317
+ code = savedReview.content;
318
+ startIter = savedReview.completedIterations + 1;
319
+ this.logger.info(msg.iterationResumed(savedReview.completedIterations, review.maxIterations));
320
+ }
220
321
  this.logger.info(msg.streamCodeReview(label, review.agent));
221
322
  this.tracker?.updateStream(idx, "reviewing");
222
323
  const maxIter = review.maxIterations;
223
- for (let i = 1; i <= maxIter; i++) {
324
+ for (let i = startIter; i <= maxIter; i++) {
224
325
  this.logger.info(msg.reviewIteration(i, maxIter));
225
326
  const feedback = await this.sessions.callIsolated(review.agent, `Review this implementation:\n${code}`);
226
327
  if (responseContains(feedback, review.approvalKeyword)) {
@@ -228,15 +329,27 @@ export class PipelineEngine {
228
329
  break;
229
330
  }
230
331
  this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
231
- code = await this.sessions.send(session, `Code review feedback:\n${feedback}\n\nFix all issues.`, `${phase.agent} (${label}) is fixing…`);
332
+ const contextPrefix = sessionPrimed ? "" : `Current implementation:\n${code}\n\n`;
333
+ code = await this.sessions.send(session, `${contextPrefix}Code review feedback:\n${feedback}\n\nFix all issues.`, `${phase.agent} (${label}) is fixing…`);
334
+ sessionPrimed = true;
335
+ this.iterationProgress[reviewKey] = { content: code, completedIterations: i };
336
+ await save();
232
337
  }
233
338
  }
234
339
  // QA
235
340
  if (phase.qa) {
341
+ const qaKey = `${streamKey}-qa`;
342
+ const savedQa = this.iterationProgress[qaKey];
343
+ let startQa = 1;
344
+ if (savedQa) {
345
+ code = savedQa.content;
346
+ startQa = savedQa.completedIterations + 1;
347
+ this.logger.info(msg.iterationResumed(savedQa.completedIterations, phase.qa.maxIterations));
348
+ }
236
349
  this.logger.info(msg.streamQa(label));
237
350
  this.tracker?.updateStream(idx, "testing");
238
351
  const maxQa = phase.qa.maxIterations;
239
- for (let i = 1; i <= maxQa; i++) {
352
+ for (let i = startQa; i <= maxQa; i++) {
240
353
  this.logger.info(msg.qaIteration(i, maxQa));
241
354
  const testReport = await this.sessions.callIsolated(phase.qa.agent, `Spec:\n${ctx.spec}\n\nImplementation:\n${code}\n\nValidate the implementation against the spec.`);
242
355
  if (responseContains(testReport, phase.qa.approvalKeyword)) {
@@ -244,22 +357,18 @@ export class PipelineEngine {
244
357
  break;
245
358
  }
246
359
  this.logger.info(msg.defectsFound);
247
- code = await this.sessions.send(session, `QA Report:\n${testReport}\n\nFix all reported issues.`, `${phase.agent} (${label}) is fixing defects…`);
360
+ const contextPrefix = sessionPrimed ? "" : `Current implementation:\n${code}\n\n`;
361
+ code = await this.sessions.send(session, `${contextPrefix}QA Report:\n${testReport}\n\nFix all reported issues.`, `${phase.agent} (${label}) is fixing defects…`);
362
+ sessionPrimed = true;
363
+ this.iterationProgress[qaKey] = { content: code, completedIterations: i };
364
+ await save();
248
365
  }
249
366
  }
250
367
  await writeRoleSummary(this.effectiveConfig, `engineer-stream-${idx + 1}`, code);
251
368
  this.tracker?.updateStream(idx, "done");
252
- // Save intermediate progress so completed streams survive a crash
369
+ // Save completed stream result
253
370
  results[idx] = code;
254
- await saveCheckpoint(this.effectiveConfig, {
255
- completedPhases: [],
256
- spec: ctx.spec,
257
- tasks: ctx.tasks,
258
- designSpec: ctx.designSpec,
259
- streamResults: results,
260
- issueBody: this.effectiveConfig.issueBody,
261
- runId: this.effectiveConfig.runId,
262
- });
371
+ await save();
263
372
  return code;
264
373
  }
265
374
  finally {
@@ -271,16 +380,7 @@ export class PipelineEngine {
271
380
  const failures = settled.filter((r) => r.status === "rejected");
272
381
  if (failures.length > 0) {
273
382
  this.logger.warn(msg.partialStreamFailure(failures.length, settled.length));
274
- // Save partial results before re-throwing so --resume can pick up completed streams
275
- await saveCheckpoint(this.effectiveConfig, {
276
- completedPhases: [],
277
- spec: ctx.spec,
278
- tasks: ctx.tasks,
279
- designSpec: ctx.designSpec,
280
- streamResults: results,
281
- issueBody: this.effectiveConfig.issueBody,
282
- runId: this.effectiveConfig.runId,
283
- });
383
+ await save();
284
384
  throw new Error(`${failures.length}/${settled.length} streams failed. Use --resume to retry failed streams.`);
285
385
  }
286
386
  return results;
@@ -291,7 +391,7 @@ export class PipelineEngine {
291
391
  return results;
292
392
  }
293
393
  // --- CROSS-MODEL REVIEW ---
294
- async executeCrossModelReview(phase, ctx) {
394
+ async executeCrossModelReview(phase, ctx, save) {
295
395
  if (phase.condition === "differentReviewModel" && this.pipeline.reviewModel === this.pipeline.primaryModel) {
296
396
  this.logger.info(msg.crossModelSkipped);
297
397
  return ctx.streamResults;
@@ -300,9 +400,17 @@ export class PipelineEngine {
300
400
  const maxIter = phase.maxIterations;
301
401
  const reviewed = await Promise.all(ctx.streamResults.map(async (code, idx) => {
302
402
  const label = msg.streamLabel(idx);
403
+ const cmKey = `cross-model-${idx}`;
404
+ const savedCm = this.iterationProgress[cmKey];
405
+ let startIter = 1;
406
+ if (savedCm) {
407
+ code = savedCm.content;
408
+ startIter = savedCm.completedIterations + 1;
409
+ this.logger.info(msg.iterationResumed(savedCm.completedIterations, maxIter));
410
+ }
303
411
  this.logger.info(msg.crossModelStreamReview(label));
304
412
  let current = code;
305
- for (let i = 1; i <= maxIter; i++) {
413
+ for (let i = startIter; i <= maxIter; i++) {
306
414
  this.logger.info(msg.crossModelIteration(i, maxIter, this.pipeline.reviewModel));
307
415
  const feedback = await this.sessions.callIsolated(phase.agent, `Spec:\n${ctx.spec}\n\nReview this implementation from scratch. ` +
308
416
  `You are using a different model than the one that wrote this code — look for blind spots.\n\n` +
@@ -313,6 +421,8 @@ export class PipelineEngine {
313
421
  }
314
422
  this.logger.info(msg.crossModelIssues);
315
423
  current = await this.sessions.callIsolated(phase.fixAgent, `Cross-model review feedback:\n${feedback}\n\nOriginal implementation:\n${current}\n\nFix all reported issues.`);
424
+ this.iterationProgress[cmKey] = { content: current, completedIterations: i };
425
+ await save();
316
426
  }
317
427
  return current;
318
428
  }));
@@ -320,10 +430,17 @@ export class PipelineEngine {
320
430
  return reviewed;
321
431
  }
322
432
  // --- GENERIC REVIEW LOOP ---
323
- async runReviewLoop(review, content, authorAgent, buildPrompt) {
433
+ async runReviewLoop(review, content, authorAgent, buildPrompt, progressKey, save) {
324
434
  const maxIter = review.maxIterations;
325
435
  let current = content;
326
- for (let i = 1; i <= maxIter; i++) {
436
+ const saved = this.iterationProgress[progressKey];
437
+ let startIter = 1;
438
+ if (saved) {
439
+ current = saved.content;
440
+ startIter = saved.completedIterations + 1;
441
+ this.logger.info(msg.iterationResumed(saved.completedIterations, maxIter));
442
+ }
443
+ for (let i = startIter; i <= maxIter; i++) {
327
444
  this.logger.info(msg.reviewIteration(i, maxIter));
328
445
  const feedback = await this.sessions.callIsolated(review.agent, buildPrompt(current));
329
446
  if (responseContains(feedback, review.approvalKeyword)) {
@@ -332,6 +449,8 @@ export class PipelineEngine {
332
449
  }
333
450
  this.logger.info(msg.feedbackReceived(feedback.substring(0, 80)));
334
451
  current = await this.sessions.callIsolated(authorAgent, `Previous content:\n${current}\n\nReview feedback:\n${feedback}\n\nRevise accordingly.`);
452
+ this.iterationProgress[progressKey] = { content: current, completedIterations: i };
453
+ await save();
335
454
  }
336
455
  return current;
337
456
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-engine.js","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-engine.js","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export interface QaStepConfig {
22
22
  /** Phase: specification drafting with reviews. */
23
23
  export interface SpecPhaseConfig {
24
24
  readonly phase: "spec";
25
+ readonly condition?: string;
25
26
  readonly agent: string;
26
27
  readonly reviews: readonly ReviewStepConfig[];
27
28
  }
@@ -44,6 +45,8 @@ export interface ImplementPhaseConfig {
44
45
  readonly phase: "implement";
45
46
  readonly parallel: boolean;
46
47
  readonly agent: string;
48
+ readonly clarificationAgent?: string;
49
+ readonly clarificationKeyword?: string;
47
50
  readonly reviews: readonly ReviewStepConfig[];
48
51
  readonly qa?: QaStepConfig;
49
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-types.d.ts","sourceRoot":"","sources":["../src/pipeline-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,2BAA2B,CAAC;AAEhC,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C"}
1
+ {"version":3,"file":"pipeline-types.d.ts","sourceRoot":"","sources":["../src/pipeline-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,sEAAsE;AACtE,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,iCAAiC;AACjC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED,iCAAiC;AACjC,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,oBAAoB,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,2BAA2B,CAAC;AAEhC,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C"}
@@ -1,15 +1,34 @@
1
1
  import type { SwarmConfig } from "./config.js";
2
2
  import type { Logger } from "./logger.js";
3
3
  import type { PipelineConfig } from "./pipeline-types.js";
4
+ import type { ProgressTracker } from "./progress-tracker.js";
5
+ import type { TuiRenderer } from "./tui-renderer.js";
4
6
  export declare class PlanningEngine {
5
7
  private readonly config;
8
+ private readonly pipeline;
6
9
  private readonly logger;
10
+ private readonly tracker?;
11
+ private readonly renderer?;
7
12
  private readonly sessions;
8
- constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger);
13
+ constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger, tracker?: ProgressTracker | undefined, renderer?: TuiRenderer | undefined);
9
14
  start(): Promise<void>;
10
15
  stop(): Promise<void>;
11
16
  execute(): Promise<void>;
17
+ /**
18
+ * Review a plan section with a reviewer agent. If issues found, send feedback
19
+ * back to the original agent (via isolated session) for revision.
20
+ */
21
+ private reviewStep;
22
+ /**
23
+ * Cross-model review of the full assembled plan using the review model.
24
+ */
25
+ private crossModelReview;
12
26
  private clarifyRequirements;
27
+ /**
28
+ * Generic interactive clarification round for any role.
29
+ * The agent asks questions, user answers, until the agent signals the keyword.
30
+ */
31
+ private clarifyWithRole;
13
32
  /**
14
33
  * Reads multi-line input from the user. Lines are collected until the user
15
34
  * submits an empty line (presses Enter twice). Literal `\n` sequences typed
@@ -1 +1 @@
1
- {"version":3,"file":"planning-engine.d.ts","sourceRoot":"","sources":["../src/planning-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAuC1D,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAGvB,MAAM,EAAE,WAAW,EACpC,QAAQ,EAAE,cAAc,EACP,MAAM,EAAE,MAAM;IAK3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAgChB,mBAAmB;IAuDjC;;;;OAIG;YACW,kBAAkB;YAqBlB,eAAe;CAmB9B"}
1
+ {"version":3,"file":"planning-engine.d.ts","sourceRoot":"","sources":["../src/planning-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuGrD,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAP5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;gBAGvB,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,YAAA,EACzB,QAAQ,CAAC,EAAE,WAAW,YAAA;IAKnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4G9B;;;OAGG;YACW,UAAU;IAiCxB;;OAEG;YACW,gBAAgB;YAiChB,mBAAmB;IA2DjC;;;OAGG;YACW,eAAe;IAyD7B;;;;OAIG;YACW,kBAAkB;YAqBlB,eAAe;CAqB9B"}