@copilot-swarm/core 0.0.6 → 0.0.8

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 (64) hide show
  1. package/defaults/agents/engineer.md +2 -1
  2. package/defaults/agents/pm.md +1 -1
  3. package/defaults/swarm.config.yaml +2 -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 +137 -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 +4 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/index.js +75 -5
  20. package/dist/index.js.map +1 -1
  21. package/dist/logger.d.ts +13 -2
  22. package/dist/logger.d.ts.map +1 -1
  23. package/dist/logger.js +74 -3
  24. package/dist/logger.js.map +1 -1
  25. package/dist/messages.d.ts +15 -1
  26. package/dist/messages.d.ts.map +1 -1
  27. package/dist/messages.js +27 -1
  28. package/dist/messages.js.map +1 -1
  29. package/dist/orchestrator.d.ts +5 -4
  30. package/dist/orchestrator.d.ts.map +1 -1
  31. package/dist/orchestrator.js +64 -2
  32. package/dist/orchestrator.js.map +1 -1
  33. package/dist/paths.d.ts +2 -0
  34. package/dist/paths.d.ts.map +1 -1
  35. package/dist/paths.js +4 -0
  36. package/dist/paths.js.map +1 -1
  37. package/dist/pipeline-config.d.ts.map +1 -1
  38. package/dist/pipeline-config.js +4 -0
  39. package/dist/pipeline-config.js.map +1 -1
  40. package/dist/pipeline-config.test.js +37 -0
  41. package/dist/pipeline-config.test.js.map +1 -1
  42. package/dist/pipeline-engine.d.ts +6 -1
  43. package/dist/pipeline-engine.d.ts.map +1 -1
  44. package/dist/pipeline-engine.js +206 -67
  45. package/dist/pipeline-engine.js.map +1 -1
  46. package/dist/pipeline-types.d.ts +2 -0
  47. package/dist/pipeline-types.d.ts.map +1 -1
  48. package/dist/planning-engine.d.ts +11 -1
  49. package/dist/planning-engine.d.ts.map +1 -1
  50. package/dist/planning-engine.js +42 -4
  51. package/dist/planning-engine.js.map +1 -1
  52. package/dist/progress-tracker.d.ts +40 -0
  53. package/dist/progress-tracker.d.ts.map +1 -0
  54. package/dist/progress-tracker.js +77 -0
  55. package/dist/progress-tracker.js.map +1 -0
  56. package/dist/progress-tracker.test.d.ts +2 -0
  57. package/dist/progress-tracker.test.d.ts.map +1 -0
  58. package/dist/progress-tracker.test.js +90 -0
  59. package/dist/progress-tracker.test.js.map +1 -0
  60. package/dist/tui-renderer.d.ts +26 -0
  61. package/dist/tui-renderer.d.ts.map +1 -0
  62. package/dist/tui-renderer.js +162 -0
  63. package/dist/tui-renderer.js.map +1 -0
  64. package/package.json +1 -1
@@ -2,19 +2,25 @@ import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
3
  import { clearCheckpoint, loadCheckpoint, saveCheckpoint } from "./checkpoint.js";
4
4
  import { msg } from "./messages.js";
5
- import { latestPointerPath, runDir, swarmRoot } from "./paths.js";
5
+ import { analysisFilePath, latestPointerPath, runDir, swarmRoot } from "./paths.js";
6
6
  import { SessionManager } from "./session.js";
7
7
  import { hasFrontendWork, isFrontendTask, parseJsonArray, responseContains, writeRoleSummary } from "./utils.js";
8
8
  export class PipelineEngine {
9
9
  config;
10
10
  pipeline;
11
11
  logger;
12
+ tracker;
12
13
  sessions;
13
14
  effectiveConfig;
14
- constructor(config, pipeline, logger) {
15
+ // Iteration-level checkpoint state
16
+ activePhaseKey = null;
17
+ phaseDraft = null;
18
+ iterationProgress = {};
19
+ constructor(config, pipeline, logger, tracker) {
15
20
  this.config = config;
16
21
  this.pipeline = pipeline;
17
22
  this.logger = logger;
23
+ this.tracker = tracker;
18
24
  this.effectiveConfig = config;
19
25
  this.sessions = new SessionManager(config, pipeline, logger);
20
26
  }
@@ -26,8 +32,17 @@ export class PipelineEngine {
26
32
  }
27
33
  async execute() {
28
34
  this.logger.info(msg.configLoaded(this.pipeline.primaryModel, this.pipeline.reviewModel, this.config.verbose));
29
- let ctx = { spec: "", tasks: [], designSpec: "", streamResults: [] };
35
+ let ctx = { repoAnalysis: "", spec: "", tasks: [], designSpec: "", streamResults: [] };
30
36
  let completedPhases = new Set();
37
+ let resumedPhaseKey = null;
38
+ // Load repo analysis if available — provides context for all phases
39
+ try {
40
+ ctx.repoAnalysis = await fs.readFile(analysisFilePath(this.config), "utf-8");
41
+ this.logger.info(msg.repoAnalysisLoaded);
42
+ }
43
+ catch {
44
+ // No analysis file — agents will explore the repo themselves
45
+ }
31
46
  // Resume from checkpoint if requested
32
47
  if (this.config.resume) {
33
48
  const checkpoint = await loadCheckpoint(this.config);
@@ -37,6 +52,7 @@ export class PipelineEngine {
37
52
  this.effectiveConfig = { ...this.config, runId: checkpoint.runId };
38
53
  }
39
54
  ctx = {
55
+ repoAnalysis: ctx.repoAnalysis,
40
56
  spec: checkpoint.spec,
41
57
  tasks: checkpoint.tasks,
42
58
  designSpec: checkpoint.designSpec,
@@ -44,44 +60,75 @@ export class PipelineEngine {
44
60
  };
45
61
  completedPhases = new Set(checkpoint.completedPhases);
46
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
+ }
47
69
  }
48
70
  else {
49
71
  this.logger.warn(msg.noCheckpoint);
50
72
  }
51
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
+ };
89
+ // Initialize progress tracker with pipeline phases
90
+ this.tracker?.initPhases(this.pipeline.pipeline);
91
+ for (const key of completedPhases) {
92
+ this.tracker?.skipPhase(key);
93
+ }
52
94
  for (const phase of this.pipeline.pipeline) {
53
95
  const phaseKey = `${phase.phase}-${this.pipeline.pipeline.indexOf(phase)}`;
54
96
  if (completedPhases.has(phaseKey)) {
55
97
  this.logger.info(msg.phaseSkipped(phase.phase));
98
+ this.tracker?.skipPhase(phaseKey);
56
99
  continue;
57
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
+ }
107
+ this.tracker?.activatePhase(phaseKey);
58
108
  switch (phase.phase) {
59
109
  case "spec":
60
- ctx.spec = await this.executeSpec(phase);
110
+ ctx.spec = await this.executeSpec(phase, ctx, saveProgress);
61
111
  break;
62
112
  case "decompose":
63
113
  ctx.tasks = await this.executeDecompose(phase, ctx);
64
114
  break;
65
115
  case "design":
66
- ctx.designSpec = await this.executeDesign(phase, ctx);
116
+ ctx.designSpec = await this.executeDesign(phase, ctx, saveProgress);
67
117
  break;
68
118
  case "implement":
69
- ctx.streamResults = await this.executeImplement(phase, ctx);
119
+ ctx.streamResults = await this.executeImplement(phase, ctx, saveProgress);
70
120
  break;
71
121
  case "cross-model-review":
72
- ctx.streamResults = await this.executeCrossModelReview(phase, ctx);
122
+ ctx.streamResults = await this.executeCrossModelReview(phase, ctx, saveProgress);
73
123
  break;
74
124
  }
125
+ // Phase complete — clear iteration state and save phase-level checkpoint
126
+ this.activePhaseKey = null;
127
+ this.phaseDraft = null;
128
+ this.iterationProgress = {};
75
129
  completedPhases.add(phaseKey);
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
- });
130
+ this.tracker?.completePhase(phaseKey);
131
+ await saveProgress();
85
132
  this.logger.info(msg.checkpointSaved(phase.phase));
86
133
  }
87
134
  // Final summary
@@ -100,13 +147,26 @@ export class PipelineEngine {
100
147
  await clearCheckpoint(this.effectiveConfig);
101
148
  }
102
149
  // --- SPEC PHASE ---
103
- async executeSpec(phase) {
150
+ async executeSpec(phase, ctx, save) {
104
151
  this.logger.info(msg.pmPhaseStart);
105
152
  this.logger.info(msg.pmDrafting);
106
- let spec = await this.sessions.callIsolated(phase.agent, this.config.issueBody);
107
- for (const review of phase.reviews) {
153
+ let spec;
154
+ if (this.phaseDraft !== null) {
155
+ spec = this.phaseDraft;
156
+ this.logger.info(msg.draftResumed);
157
+ }
158
+ else {
159
+ const prompt = ctx.repoAnalysis
160
+ ? `## Repository Context\n\n${ctx.repoAnalysis}\n\n## Task\n\n${this.config.issueBody}`
161
+ : this.config.issueBody;
162
+ spec = await this.sessions.callIsolated(phase.agent, prompt);
163
+ this.phaseDraft = spec;
164
+ await save();
165
+ }
166
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
167
+ const review = phase.reviews[ri];
108
168
  this.logger.info(msg.reviewPhase(review.agent));
109
- spec = await this.runReviewLoop(review, spec, phase.agent, (content) => `Review this specification:\n${content}`);
169
+ spec = await this.runReviewLoop(review, spec, phase.agent, (content) => `Review this specification:\n${content}`, `review-${ri}`, save);
110
170
  }
111
171
  await writeRoleSummary(this.effectiveConfig, phase.agent, `## Final Specification\n\n${spec}`);
112
172
  return spec;
@@ -124,43 +184,68 @@ export class PipelineEngine {
124
184
  return tasks;
125
185
  }
126
186
  // --- DESIGN PHASE ---
127
- async executeDesign(phase, ctx) {
187
+ async executeDesign(phase, ctx, save) {
128
188
  if (phase.condition === "hasFrontendTasks" && !hasFrontendWork(ctx.tasks)) {
129
189
  return ctx.designSpec;
130
190
  }
131
191
  this.logger.info(msg.designPhaseStart);
132
192
  const session = await this.sessions.createAgentSession(phase.agent);
193
+ let sessionPrimed = false;
133
194
  try {
134
- this.logger.info(msg.designPhase);
135
- let design = await this.sessions.send(session, `Create a detailed UI/UX design specification based on this spec:\n${ctx.spec}\n\n` +
136
- `Include: component hierarchy, layout, interactions, states, and accessibility considerations.`, `${phase.agent} is designing…`);
137
- if (phase.clarificationAgent && responseContains(design, "CLARIFICATION_NEEDED")) {
138
- this.logger.info(msg.designerClarification);
139
- const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `The designer needs clarification:\n${design}`);
140
- design = await this.sessions.send(session, `PM Clarification:\n${clarification}\n\nRevise the design.`, `${phase.agent} is revising…`);
195
+ let design;
196
+ if (this.phaseDraft !== null) {
197
+ design = this.phaseDraft;
198
+ this.logger.info(msg.draftResumed);
141
199
  }
142
- for (const review of phase.reviews) {
200
+ else {
201
+ this.logger.info(msg.designPhase);
202
+ design = await this.sessions.send(session, `Create a detailed UI/UX design specification based on this spec:\n${ctx.spec}\n\n` +
203
+ `Include: component hierarchy, layout, interactions, states, and accessibility considerations.`, `${phase.agent} is designing…`);
204
+ sessionPrimed = true;
205
+ if (phase.clarificationAgent && responseContains(design, "CLARIFICATION_NEEDED")) {
206
+ this.logger.info(msg.designerClarification);
207
+ const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `The designer needs clarification:\n${design}`);
208
+ design = await this.sessions.send(session, `PM Clarification:\n${clarification}\n\nRevise the design.`, `${phase.agent} is revising…`);
209
+ }
210
+ this.phaseDraft = design;
211
+ await save();
212
+ }
213
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
214
+ const review = phase.reviews[ri];
143
215
  this.logger.info(msg.reviewPhase(review.agent));
216
+ const reviewKey = `review-${ri}`;
217
+ const savedReview = this.iterationProgress[reviewKey];
218
+ let startIter = 1;
219
+ if (savedReview) {
220
+ design = savedReview.content;
221
+ startIter = savedReview.completedIterations + 1;
222
+ this.logger.info(msg.iterationResumed(savedReview.completedIterations, review.maxIterations));
223
+ }
144
224
  const maxIter = review.maxIterations;
145
- for (let i = 1; i <= maxIter; i++) {
225
+ for (let i = startIter; i <= maxIter; i++) {
146
226
  this.logger.info(msg.reviewIteration(i, maxIter));
147
227
  const feedback = await this.sessions.callIsolated(review.agent, `Review this design specification:\n${design}`);
148
228
  if (responseContains(feedback, review.approvalKeyword)) {
149
229
  this.logger.info(msg.approved(review.agent));
150
230
  break;
151
231
  }
232
+ // Build fix prompt — include current design if session has no prior context
233
+ const contextPrefix = sessionPrimed ? "" : `Current design:\n${design}\n\n`;
152
234
  if (review.clarificationKeyword && responseContains(feedback, review.clarificationKeyword)) {
153
235
  const clarAgent = review.clarificationAgent ?? phase.clarificationAgent;
154
236
  if (clarAgent) {
155
237
  this.logger.info(msg.reviewerClarification);
156
238
  const clar = await this.sessions.callIsolated(clarAgent, `The design reviewer needs clarification:\n${feedback}`);
157
- design = await this.sessions.send(session, `Review feedback:\n${feedback}\n\nPM Clarification:\n${clar}\n\nRevise the design.`, `${phase.agent} is revising…`);
239
+ design = await this.sessions.send(session, `${contextPrefix}Review feedback:\n${feedback}\n\nPM Clarification:\n${clar}\n\nRevise the design.`, `${phase.agent} is revising…`);
158
240
  }
159
241
  }
160
242
  else {
161
243
  this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
162
- design = await this.sessions.send(session, `Review feedback:\n${feedback}\n\nRevise the design.`, `${phase.agent} is revising…`);
244
+ design = await this.sessions.send(session, `${contextPrefix}Review feedback:\n${feedback}\n\nRevise the design.`, `${phase.agent} is revising…`);
163
245
  }
246
+ sessionPrimed = true;
247
+ this.iterationProgress[reviewKey] = { content: design, completedIterations: i };
248
+ await save();
164
249
  }
165
250
  }
166
251
  await writeRoleSummary(this.effectiveConfig, phase.agent, design);
@@ -171,30 +256,64 @@ export class PipelineEngine {
171
256
  }
172
257
  }
173
258
  // --- IMPLEMENT PHASE ---
174
- async executeImplement(phase, ctx) {
259
+ async executeImplement(phase, ctx, save) {
175
260
  this.logger.info(msg.launchingStreams(ctx.tasks.length));
261
+ this.tracker?.initStreams(ctx.tasks);
176
262
  // Pre-fill with any existing partial results from a previous run
177
263
  const results = ctx.streamResults.length === ctx.tasks.length ? [...ctx.streamResults] : new Array(ctx.tasks.length).fill("");
178
264
  const runStream = async (task, idx) => {
179
265
  // Skip streams that already have results (from a resumed checkpoint)
180
266
  if (results[idx]) {
181
267
  this.logger.info(msg.streamSkipped(msg.streamLabel(idx)));
268
+ this.tracker?.updateStream(idx, "skipped");
182
269
  return results[idx];
183
270
  }
184
271
  const label = msg.streamLabel(idx);
272
+ const streamKey = `stream-${idx}`;
185
273
  this.logger.info(msg.streamStart(label, task));
186
274
  const session = await this.sessions.createAgentSession(phase.agent);
275
+ let sessionPrimed = false;
187
276
  try {
188
- this.logger.info(msg.streamEngineering(label));
189
- const engineeringPrompt = isFrontendTask(task)
190
- ? `Spec:\n${ctx.spec}\n\nDesign:\n${ctx.designSpec}\n\nTask:\n${task}\n\nImplement this task.`
191
- : `Spec:\n${ctx.spec}\n\nTask:\n${task}\n\nImplement this task.`;
192
- let code = await this.sessions.send(session, engineeringPrompt, `${phase.agent} (${label}) is implementing…`);
277
+ let code;
278
+ const savedCode = this.iterationProgress[`${streamKey}-code`];
279
+ if (savedCode) {
280
+ code = savedCode.content;
281
+ this.logger.info(msg.draftResumed);
282
+ }
283
+ else {
284
+ this.logger.info(msg.streamEngineering(label));
285
+ this.tracker?.updateStream(idx, "engineering");
286
+ const engineeringPrompt = isFrontendTask(task)
287
+ ? `Spec:\n${ctx.spec}\n\nDesign:\n${ctx.designSpec}\n\nTask:\n${task}\n\nImplement this task.`
288
+ : `Spec:\n${ctx.spec}\n\nTask:\n${task}\n\nImplement this task.`;
289
+ code = await this.sessions.send(session, engineeringPrompt, `${phase.agent} (${label}) is implementing…`);
290
+ sessionPrimed = true;
291
+ // Engineer-to-PM clarification: if the engineer signals ambiguity, consult the PM
292
+ if (phase.clarificationAgent &&
293
+ phase.clarificationKeyword &&
294
+ responseContains(code, phase.clarificationKeyword)) {
295
+ this.logger.info(msg.streamClarification(label));
296
+ const clarification = await this.sessions.callIsolated(phase.clarificationAgent, `Spec:\n${ctx.spec}\n\nThe engineer working on task "${task}" needs clarification:\n\n${code}`);
297
+ 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…`);
298
+ }
299
+ this.iterationProgress[`${streamKey}-code`] = { content: code, completedIterations: 0 };
300
+ await save();
301
+ }
193
302
  // Reviews
194
- for (const review of phase.reviews) {
303
+ for (let ri = 0; ri < phase.reviews.length; ri++) {
304
+ const review = phase.reviews[ri];
305
+ const reviewKey = `${streamKey}-review-${ri}`;
306
+ const savedReview = this.iterationProgress[reviewKey];
307
+ let startIter = 1;
308
+ if (savedReview) {
309
+ code = savedReview.content;
310
+ startIter = savedReview.completedIterations + 1;
311
+ this.logger.info(msg.iterationResumed(savedReview.completedIterations, review.maxIterations));
312
+ }
195
313
  this.logger.info(msg.streamCodeReview(label, review.agent));
314
+ this.tracker?.updateStream(idx, "reviewing");
196
315
  const maxIter = review.maxIterations;
197
- for (let i = 1; i <= maxIter; i++) {
316
+ for (let i = startIter; i <= maxIter; i++) {
198
317
  this.logger.info(msg.reviewIteration(i, maxIter));
199
318
  const feedback = await this.sessions.callIsolated(review.agent, `Review this implementation:\n${code}`);
200
319
  if (responseContains(feedback, review.approvalKeyword)) {
@@ -202,14 +321,27 @@ export class PipelineEngine {
202
321
  break;
203
322
  }
204
323
  this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
205
- code = await this.sessions.send(session, `Code review feedback:\n${feedback}\n\nFix all issues.`, `${phase.agent} (${label}) is fixing…`);
324
+ const contextPrefix = sessionPrimed ? "" : `Current implementation:\n${code}\n\n`;
325
+ code = await this.sessions.send(session, `${contextPrefix}Code review feedback:\n${feedback}\n\nFix all issues.`, `${phase.agent} (${label}) is fixing…`);
326
+ sessionPrimed = true;
327
+ this.iterationProgress[reviewKey] = { content: code, completedIterations: i };
328
+ await save();
206
329
  }
207
330
  }
208
331
  // QA
209
332
  if (phase.qa) {
333
+ const qaKey = `${streamKey}-qa`;
334
+ const savedQa = this.iterationProgress[qaKey];
335
+ let startQa = 1;
336
+ if (savedQa) {
337
+ code = savedQa.content;
338
+ startQa = savedQa.completedIterations + 1;
339
+ this.logger.info(msg.iterationResumed(savedQa.completedIterations, phase.qa.maxIterations));
340
+ }
210
341
  this.logger.info(msg.streamQa(label));
342
+ this.tracker?.updateStream(idx, "testing");
211
343
  const maxQa = phase.qa.maxIterations;
212
- for (let i = 1; i <= maxQa; i++) {
344
+ for (let i = startQa; i <= maxQa; i++) {
213
345
  this.logger.info(msg.qaIteration(i, maxQa));
214
346
  const testReport = await this.sessions.callIsolated(phase.qa.agent, `Spec:\n${ctx.spec}\n\nImplementation:\n${code}\n\nValidate the implementation against the spec.`);
215
347
  if (responseContains(testReport, phase.qa.approvalKeyword)) {
@@ -217,21 +349,18 @@ export class PipelineEngine {
217
349
  break;
218
350
  }
219
351
  this.logger.info(msg.defectsFound);
220
- code = await this.sessions.send(session, `QA Report:\n${testReport}\n\nFix all reported issues.`, `${phase.agent} (${label}) is fixing defects…`);
352
+ const contextPrefix = sessionPrimed ? "" : `Current implementation:\n${code}\n\n`;
353
+ code = await this.sessions.send(session, `${contextPrefix}QA Report:\n${testReport}\n\nFix all reported issues.`, `${phase.agent} (${label}) is fixing defects…`);
354
+ sessionPrimed = true;
355
+ this.iterationProgress[qaKey] = { content: code, completedIterations: i };
356
+ await save();
221
357
  }
222
358
  }
223
359
  await writeRoleSummary(this.effectiveConfig, `engineer-stream-${idx + 1}`, code);
224
- // Save intermediate progress so completed streams survive a crash
360
+ this.tracker?.updateStream(idx, "done");
361
+ // Save completed stream result
225
362
  results[idx] = code;
226
- await saveCheckpoint(this.effectiveConfig, {
227
- completedPhases: [],
228
- spec: ctx.spec,
229
- tasks: ctx.tasks,
230
- designSpec: ctx.designSpec,
231
- streamResults: results,
232
- issueBody: this.effectiveConfig.issueBody,
233
- runId: this.effectiveConfig.runId,
234
- });
363
+ await save();
235
364
  return code;
236
365
  }
237
366
  finally {
@@ -243,16 +372,7 @@ export class PipelineEngine {
243
372
  const failures = settled.filter((r) => r.status === "rejected");
244
373
  if (failures.length > 0) {
245
374
  this.logger.warn(msg.partialStreamFailure(failures.length, settled.length));
246
- // Save partial results before re-throwing so --resume can pick up completed streams
247
- await saveCheckpoint(this.effectiveConfig, {
248
- completedPhases: [],
249
- spec: ctx.spec,
250
- tasks: ctx.tasks,
251
- designSpec: ctx.designSpec,
252
- streamResults: results,
253
- issueBody: this.effectiveConfig.issueBody,
254
- runId: this.effectiveConfig.runId,
255
- });
375
+ await save();
256
376
  throw new Error(`${failures.length}/${settled.length} streams failed. Use --resume to retry failed streams.`);
257
377
  }
258
378
  return results;
@@ -263,7 +383,7 @@ export class PipelineEngine {
263
383
  return results;
264
384
  }
265
385
  // --- CROSS-MODEL REVIEW ---
266
- async executeCrossModelReview(phase, ctx) {
386
+ async executeCrossModelReview(phase, ctx, save) {
267
387
  if (phase.condition === "differentReviewModel" && this.pipeline.reviewModel === this.pipeline.primaryModel) {
268
388
  this.logger.info(msg.crossModelSkipped);
269
389
  return ctx.streamResults;
@@ -272,9 +392,17 @@ export class PipelineEngine {
272
392
  const maxIter = phase.maxIterations;
273
393
  const reviewed = await Promise.all(ctx.streamResults.map(async (code, idx) => {
274
394
  const label = msg.streamLabel(idx);
395
+ const cmKey = `cross-model-${idx}`;
396
+ const savedCm = this.iterationProgress[cmKey];
397
+ let startIter = 1;
398
+ if (savedCm) {
399
+ code = savedCm.content;
400
+ startIter = savedCm.completedIterations + 1;
401
+ this.logger.info(msg.iterationResumed(savedCm.completedIterations, maxIter));
402
+ }
275
403
  this.logger.info(msg.crossModelStreamReview(label));
276
404
  let current = code;
277
- for (let i = 1; i <= maxIter; i++) {
405
+ for (let i = startIter; i <= maxIter; i++) {
278
406
  this.logger.info(msg.crossModelIteration(i, maxIter, this.pipeline.reviewModel));
279
407
  const feedback = await this.sessions.callIsolated(phase.agent, `Spec:\n${ctx.spec}\n\nReview this implementation from scratch. ` +
280
408
  `You are using a different model than the one that wrote this code — look for blind spots.\n\n` +
@@ -285,6 +413,8 @@ export class PipelineEngine {
285
413
  }
286
414
  this.logger.info(msg.crossModelIssues);
287
415
  current = await this.sessions.callIsolated(phase.fixAgent, `Cross-model review feedback:\n${feedback}\n\nOriginal implementation:\n${current}\n\nFix all reported issues.`);
416
+ this.iterationProgress[cmKey] = { content: current, completedIterations: i };
417
+ await save();
288
418
  }
289
419
  return current;
290
420
  }));
@@ -292,10 +422,17 @@ export class PipelineEngine {
292
422
  return reviewed;
293
423
  }
294
424
  // --- GENERIC REVIEW LOOP ---
295
- async runReviewLoop(review, content, authorAgent, buildPrompt) {
425
+ async runReviewLoop(review, content, authorAgent, buildPrompt, progressKey, save) {
296
426
  const maxIter = review.maxIterations;
297
427
  let current = content;
298
- for (let i = 1; i <= maxIter; i++) {
428
+ const saved = this.iterationProgress[progressKey];
429
+ let startIter = 1;
430
+ if (saved) {
431
+ current = saved.content;
432
+ startIter = saved.completedIterations + 1;
433
+ this.logger.info(msg.iterationResumed(saved.completedIterations, maxIter));
434
+ }
435
+ for (let i = startIter; i <= maxIter; i++) {
299
436
  this.logger.info(msg.reviewIteration(i, maxIter));
300
437
  const feedback = await this.sessions.callIsolated(review.agent, buildPrompt(current));
301
438
  if (responseContains(feedback, review.approvalKeyword)) {
@@ -304,6 +441,8 @@ export class PipelineEngine {
304
441
  }
305
442
  this.logger.info(msg.feedbackReceived(feedback.substring(0, 80)));
306
443
  current = await this.sessions.callIsolated(authorAgent, `Previous content:\n${current}\n\nReview feedback:\n${feedback}\n\nRevise accordingly.`);
444
+ this.iterationProgress[progressKey] = { content: current, completedIterations: i };
445
+ await save();
307
446
  }
308
447
  return current;
309
448
  }
@@ -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":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAWpF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAWjH,MAAM,OAAO,cAAc;IAUN;IACA;IACA;IACA;IAZF,QAAQ,CAAiB;IAClC,eAAe,CAAc;IAErC,mCAAmC;IAC3B,cAAc,GAAkB,IAAI,CAAC;IACrC,UAAU,GAAkB,IAAI,CAAC;IACjC,iBAAiB,GAAsC,EAAE,CAAC;IAElE,YACmB,MAAmB,EACnB,QAAwB,EACxB,MAAc,EACd,OAAyB;QAHzB,WAAM,GAAN,MAAM,CAAa;QACnB,aAAQ,GAAR,QAAQ,CAAgB;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAkB;QAE1C,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAE/G,IAAI,GAAG,GAAoB,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;QACxG,IAAI,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC7C,IAAI,eAAe,GAAkB,IAAI,CAAC;QAE1C,oEAAoE;QACpE,IAAI,CAAC;YACH,GAAG,CAAC,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,UAAU,EAAE,CAAC;gBACf,2DAA2D;gBAC3D,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;oBACrB,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;gBACrE,CAAC;gBACD,GAAG,GAAG;oBACJ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,aAAa,EAAE,UAAU,CAAC,aAAa;iBACxC,CAAC;gBACF,eAAe,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;gBAErD,iEAAiE;gBACjE,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC3B,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC;oBACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC;oBAChD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,IAAI,EAAE,CAAC;gBAC9D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;YAC9B,MAAM,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzC,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS;gBACzC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;gBACjC,WAAW,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS;gBAC7C,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;gBACxC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;aACvG,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,mDAAmD;QACnD,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAE3E,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAE/B,yFAAyF;YACzF,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEtC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,MAAM;oBACT,GAAG,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBAC5D,MAAM;gBACR,KAAK,WAAW;oBACd,GAAG,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACpD,MAAM;gBACR,KAAK,QAAQ;oBACX,GAAG,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,WAAW;oBACd,GAAG,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBAC1E,MAAM;gBACR,KAAK,oBAAoB;oBACvB,GAAG,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;oBACjF,MAAM;YACV,CAAC;YAED,yEAAyE;YACzE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,YAAY,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GACX,yCAAyC,SAAS,gBAAgB,GAAG,CAAC,KAAK,CAAC,MAAM,MAAM;YACxF,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAC3F,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QAE1D,wBAAwB;QACxB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAExF,+CAA+C;QAC/C,MAAM,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAED,qBAAqB;IAEb,KAAK,CAAC,WAAW,CAAC,KAAsB,EAAE,GAAoB,EAAE,IAAyB;QAC/F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,IAAY,CAAC;QACjB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY;gBAC7B,CAAC,CAAC,4BAA4B,GAAG,CAAC,YAAY,kBAAkB,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACvF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1B,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChD,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAC7B,MAAM,EACN,IAAI,EACJ,KAAK,CAAC,KAAK,EACX,CAAC,OAAO,EAAE,EAAE,CAAC,+BAA+B,OAAO,EAAE,EACrD,UAAU,EAAE,EAAE,EACd,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAElB,KAAK,CAAC,gBAAgB,CAAC,KAA2B,EAAE,GAAoB;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACpC,MAAM,MAAM,GACV,6EAA6E,MAAM,IAAI;YACvF,4DAA4D,MAAM,+BAA+B,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9G,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAEzC,MAAM,gBAAgB,CACpB,IAAI,CAAC,eAAe,EACpB,GAAG,KAAK,CAAC,KAAK,QAAQ,EACtB,0BAA0B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;IAEf,KAAK,CAAC,aAAa,CACzB,KAAwB,EACxB,GAAoB,EACpB,IAAyB;QAEzB,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO,GAAG,CAAC,UAAU,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,aAAa,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC;YACH,IAAI,MAAc,CAAC;YACnB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAClC,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/B,OAAO,EACP,qEAAqE,GAAG,CAAC,IAAI,MAAM;oBACjF,+FAA+F,EACjG,GAAG,KAAK,CAAC,KAAK,gBAAgB,CAC/B,CAAC;gBACF,aAAa,GAAG,IAAI,CAAC;gBAErB,IAAI,KAAK,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC;oBACjF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAC5C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CACpD,KAAK,CAAC,kBAAkB,EACxB,sCAAsC,MAAM,EAAE,CAC/C,CAAC;oBACF,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/B,OAAO,EACP,sBAAsB,aAAa,wBAAwB,EAC3D,GAAG,KAAK,CAAC,KAAK,eAAe,CAC9B,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;gBACzB,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAED,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChD,MAAM,SAAS,GAAG,UAAU,EAAE,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC;oBAC7B,SAAS,GAAG,WAAW,CAAC,mBAAmB,GAAG,CAAC,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;gBAChG,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;gBACrC,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC/C,MAAM,CAAC,KAAK,EACZ,sCAAsC,MAAM,EAAE,CAC/C,CAAC;oBACF,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;wBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7C,MAAM;oBACR,CAAC;oBAED,4EAA4E;oBAC5E,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,MAAM,MAAM,CAAC;oBAE5E,IAAI,MAAM,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;wBAC3F,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC;wBACxE,IAAI,SAAS,EAAE,CAAC;4BACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;4BAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC3C,SAAS,EACT,6CAA6C,QAAQ,EAAE,CACxD,CAAC;4BACF,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/B,OAAO,EACP,GAAG,aAAa,qBAAqB,QAAQ,0BAA0B,IAAI,wBAAwB,EACnG,GAAG,KAAK,CAAC,KAAK,eAAe,CAC9B,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC9D,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC/B,OAAO,EACP,GAAG,aAAa,qBAAqB,QAAQ,wBAAwB,EACrE,GAAG,KAAK,CAAC,KAAK,eAAe,CAC9B,CAAC;oBACJ,CAAC;oBACD,aAAa,GAAG,IAAI,CAAC;oBAErB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;oBAChF,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClE,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,0BAA0B;IAElB,KAAK,CAAC,gBAAgB,CAC5B,KAA2B,EAC3B,GAAoB,EACpB,IAAyB;QAEzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAErC,iEAAiE;QACjE,MAAM,OAAO,GACX,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhH,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;YACrE,qEAAqE;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,UAAU,GAAG,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YAE/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,IAAI,CAAC;gBACH,IAAI,IAAY,CAAC;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC;gBAC9D,IAAI,SAAS,EAAE,CAAC;oBACd,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;oBAC/C,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC;wBAC5C,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,gBAAgB,GAAG,CAAC,UAAU,cAAc,IAAI,0BAA0B;wBAC9F,CAAC,CAAC,UAAU,GAAG,CAAC,IAAI,cAAc,IAAI,0BAA0B,CAAC;oBACnE,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,oBAAoB,CAAC,CAAC;oBAC1G,aAAa,GAAG,IAAI,CAAC;oBAErB,kFAAkF;oBAClF,IACE,KAAK,CAAC,kBAAkB;wBACxB,KAAK,CAAC,oBAAoB;wBAC1B,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,oBAAoB,CAAC,EAClD,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;wBACjD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CACpD,KAAK,CAAC,kBAAkB,EACxB,UAAU,GAAG,CAAC,IAAI,qCAAqC,IAAI,6BAA6B,IAAI,EAAE,CAC/F,CAAC;wBACF,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7B,OAAO,EACP,sBAAsB,aAAa,+DAA+D,EAClG,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,uCAAuC,CAChE,CAAC;oBACJ,CAAC;oBAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;oBACxF,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;gBAED,UAAU;gBACV,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;oBACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACjC,MAAM,SAAS,GAAG,GAAG,SAAS,WAAW,EAAE,EAAE,CAAC;oBAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;oBACtD,IAAI,SAAS,GAAG,CAAC,CAAC;oBAClB,IAAI,WAAW,EAAE,CAAC;wBAChB,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC;wBAC3B,SAAS,GAAG,WAAW,CAAC,mBAAmB,GAAG,CAAC,CAAC;wBAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;oBAChG,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5D,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;oBAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;wBAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,gCAAgC,IAAI,EAAE,CAAC,CAAC;wBACxG,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;4BACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BACnC,MAAM;wBACR,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC9D,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,IAAI,MAAM,CAAC;wBAClF,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7B,OAAO,EACP,GAAG,aAAa,0BAA0B,QAAQ,qBAAqB,EACvE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,cAAc,CACvC,CAAC;wBACF,aAAa,GAAG,IAAI,CAAC;wBAErB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;wBAC9E,MAAM,IAAI,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,KAAK;gBACL,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,GAAG,SAAS,KAAK,CAAC;oBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;oBAC9C,IAAI,OAAO,GAAG,CAAC,CAAC;oBAChB,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;wBACvB,OAAO,GAAG,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;wBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC9F,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACtC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC;oBACrC,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC5C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CACjD,KAAK,CAAC,EAAE,CAAC,KAAK,EACd,UAAU,GAAG,CAAC,IAAI,wBAAwB,IAAI,mDAAmD,CAClG,CAAC;wBACF,IAAI,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;4BAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;4BACrC,MAAM;wBACR,CAAC;wBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;wBACnC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B,IAAI,MAAM,CAAC;wBAClF,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7B,OAAO,EACP,GAAG,aAAa,eAAe,UAAU,8BAA8B,EACvE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,sBAAsB,CAC/C,CAAC;wBACF,aAAa,GAAG,IAAI,CAAC;wBAErB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;wBAC1E,MAAM,IAAI,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,mBAAmB,GAAG,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBACjF,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAExC,+BAA+B;gBAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACpB,MAAM,IAAI,EAAE,CAAC;gBAEb,OAAO,IAAI,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAC7F,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;YAC5F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5E,MAAM,IAAI,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,wDAAwD,CAAC,CAAC;YAChH,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6BAA6B;IAErB,KAAK,CAAC,uBAAuB,CACnC,KAAkC,EAClC,GAAoB,EACpB,IAAyB;QAEzB,IAAI,KAAK,CAAC,SAAS,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3G,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,GAAG,CAAC,aAAa,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,KAAK,GAAG,eAAe,GAAG,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;gBACvB,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpD,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;gBACjF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC/C,KAAK,CAAC,KAAK,EACX,UAAU,GAAG,CAAC,IAAI,+CAA+C;oBAC/D,+FAA+F;oBAC/F,oBAAoB,OAAO,EAAE,EAC/B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAC1B,CAAC;gBACF,IAAI,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;oBACtD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACvC,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxC,KAAK,CAAC,QAAQ,EACd,iCAAiC,QAAQ,iCAAiC,OAAO,8BAA8B,CAChH,CAAC;gBAEF,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;gBAC7E,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,gBAAgB,CACpB,IAAI,CAAC,eAAe,EACpB,oBAAoB,EACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CACzE,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAA8B;IAEtB,KAAK,CAAC,aAAa,CACzB,MAAwB,EACxB,OAAe,EACf,WAAmB,EACnB,WAAwC,EACxC,WAAmB,EACnB,IAAyB;QAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;QACrC,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACxB,SAAS,GAAG,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YACtF,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxC,WAAW,EACX,sBAAsB,OAAO,yBAAyB,QAAQ,yBAAyB,CACxF,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -44,6 +44,8 @@ export interface ImplementPhaseConfig {
44
44
  readonly phase: "implement";
45
45
  readonly parallel: boolean;
46
46
  readonly agent: string;
47
+ readonly clarificationAgent?: string;
48
+ readonly clarificationKeyword?: string;
47
49
  readonly reviews: readonly ReviewStepConfig[];
48
50
  readonly qa?: QaStepConfig;
49
51
  }
@@ -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,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,25 @@
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;
6
8
  private readonly logger;
9
+ private readonly tracker?;
10
+ private readonly renderer?;
7
11
  private readonly sessions;
8
- constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger);
12
+ constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger, tracker?: ProgressTracker | undefined, renderer?: TuiRenderer | undefined);
9
13
  start(): Promise<void>;
10
14
  stop(): Promise<void>;
11
15
  execute(): Promise<void>;
12
16
  private clarifyRequirements;
17
+ /**
18
+ * Reads multi-line input from the user. Lines are collected until the user
19
+ * submits an empty line (presses Enter twice). Literal `\n` sequences typed
20
+ * by the user are converted to real newlines.
21
+ */
22
+ private readMultiLineInput;
13
23
  private analyzeCodebase;
14
24
  }
15
25
  //# sourceMappingURL=planning-engine.d.ts.map
@@ -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;YAuDnB,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;AAsCrD,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,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,EACpC,QAAQ,EAAE,cAAc,EACP,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;YAqChB,mBAAmB;IA2DjC;;;;OAIG;YACW,kBAAkB;YAqBlB,eAAe;CAqB9B"}