@copilot-swarm/core 0.0.7 → 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.
- package/defaults/agents/engineer.md +2 -1
- package/defaults/agents/pm.md +1 -1
- package/defaults/swarm.config.yaml +2 -0
- package/dist/analysis-engine.d.ts +3 -1
- package/dist/analysis-engine.d.ts.map +1 -1
- package/dist/analysis-engine.js +14 -1
- package/dist/analysis-engine.js.map +1 -1
- package/dist/checkpoint.d.ts +11 -0
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js.map +1 -1
- package/dist/checkpoint.test.d.ts +2 -0
- package/dist/checkpoint.test.d.ts.map +1 -0
- package/dist/checkpoint.test.js +137 -0
- package/dist/checkpoint.test.js.map +1 -0
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/index.js +65 -4
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +11 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/messages.js +22 -0
- package/dist/messages.js.map +1 -1
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +17 -13
- package/dist/orchestrator.js.map +1 -1
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +4 -0
- package/dist/pipeline-config.js.map +1 -1
- package/dist/pipeline-config.test.js +37 -0
- package/dist/pipeline-config.test.js.map +1 -1
- package/dist/pipeline-engine.d.ts +3 -0
- package/dist/pipeline-engine.d.ts.map +1 -1
- package/dist/pipeline-engine.js +179 -68
- package/dist/pipeline-engine.js.map +1 -1
- package/dist/pipeline-types.d.ts +2 -0
- package/dist/pipeline-types.d.ts.map +1 -1
- package/dist/planning-engine.d.ts +5 -1
- package/dist/planning-engine.d.ts.map +1 -1
- package/dist/planning-engine.js +17 -2
- package/dist/planning-engine.js.map +1 -1
- package/dist/progress-tracker.d.ts.map +1 -1
- package/dist/progress-tracker.js +4 -0
- package/dist/progress-tracker.js.map +1 -1
- package/dist/tui-renderer.d.ts +4 -0
- package/dist/tui-renderer.d.ts.map +1 -1
- package/dist/tui-renderer.js +18 -0
- package/dist/tui-renderer.js.map +1 -1
- package/package.json +1 -1
package/dist/orchestrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,iBAAiB;IAOT;IACA;IAPX,MAAM,CAAiB;IACd,QAAQ,CAAC;IACT,OAAO,CAAyB;IAChC,QAAQ,CAAqB;IAE9C,YACmB,MAAmB,EACnB,MAAc;QADd,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAQ;QAE/B,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-config.d.ts","sourceRoot":"","sources":["../src/pipeline-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,cAAc,EAIf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-config.d.ts","sourceRoot":"","sources":["../src/pipeline-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAMV,cAAc,EAIf,MAAM,qBAAqB,CAAC;AAyL7B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAehE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAkCnE"}
|
package/dist/pipeline-config.js
CHANGED
|
@@ -96,6 +96,8 @@ function validatePhase(raw, index) {
|
|
|
96
96
|
phase: "implement",
|
|
97
97
|
parallel,
|
|
98
98
|
agent: requireString(obj, "agent", ctx),
|
|
99
|
+
clarificationAgent: optionalString(obj, "clarificationAgent"),
|
|
100
|
+
clarificationKeyword: optionalString(obj, "clarificationKeyword"),
|
|
99
101
|
reviews: validateReviews(obj.reviews, ctx),
|
|
100
102
|
qa: obj.qa !== undefined ? validateQa(obj.qa, ctx) : undefined,
|
|
101
103
|
};
|
|
@@ -164,6 +166,8 @@ function validateAgentReferences(config) {
|
|
|
164
166
|
break;
|
|
165
167
|
case "implement":
|
|
166
168
|
check(phase.agent, ctx);
|
|
169
|
+
if (phase.clarificationAgent)
|
|
170
|
+
check(phase.clarificationAgent, `${ctx} clarification`);
|
|
167
171
|
for (const r of phase.reviews)
|
|
168
172
|
check(r.agent, `${ctx} review`);
|
|
169
173
|
if (phase.qa)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-config.js","sourceRoot":"","sources":["../src/pipeline-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline-config.js","sourceRoot":"","sources":["../src/pipeline-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,43 @@ describe("parsePipelineConfig", () => {
|
|
|
124
124
|
expect(phase.condition).toBe("hasFrontendTasks");
|
|
125
125
|
}
|
|
126
126
|
});
|
|
127
|
+
it("parses implement phase with clarification agent", () => {
|
|
128
|
+
const config = parsePipelineConfig(makeConfig({
|
|
129
|
+
pipeline: [
|
|
130
|
+
{
|
|
131
|
+
phase: "implement",
|
|
132
|
+
parallel: true,
|
|
133
|
+
agent: "engineer",
|
|
134
|
+
clarificationAgent: "pm",
|
|
135
|
+
clarificationKeyword: "CLARIFICATION_NEEDED",
|
|
136
|
+
reviews: [{ agent: "code-reviewer", maxIterations: 3, approvalKeyword: "APPROVED" }],
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
}));
|
|
140
|
+
const phase = config.pipeline[0];
|
|
141
|
+
expect(phase.phase).toBe("implement");
|
|
142
|
+
if (phase.phase === "implement") {
|
|
143
|
+
expect(phase.clarificationAgent).toBe("pm");
|
|
144
|
+
expect(phase.clarificationKeyword).toBe("CLARIFICATION_NEEDED");
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
it("allows implement phase without clarification fields", () => {
|
|
148
|
+
const config = parsePipelineConfig(makeConfig({
|
|
149
|
+
pipeline: [
|
|
150
|
+
{
|
|
151
|
+
phase: "implement",
|
|
152
|
+
parallel: false,
|
|
153
|
+
agent: "engineer",
|
|
154
|
+
reviews: [],
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
}));
|
|
158
|
+
const phase = config.pipeline[0];
|
|
159
|
+
if (phase.phase === "implement") {
|
|
160
|
+
expect(phase.clarificationAgent).toBeUndefined();
|
|
161
|
+
expect(phase.clarificationKeyword).toBeUndefined();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
127
164
|
it("rejects non-object input", () => {
|
|
128
165
|
expect(() => parsePipelineConfig("not an object")).toThrow("YAML object");
|
|
129
166
|
expect(() => parsePipelineConfig(null)).toThrow("YAML object");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-config.test.js","sourceRoot":"","sources":["../src/pipeline-config.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline-config.test.js","sourceRoot":"","sources":["../src/pipeline-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,9 @@ export declare class PipelineEngine {
|
|
|
9
9
|
private readonly tracker?;
|
|
10
10
|
private readonly sessions;
|
|
11
11
|
private effectiveConfig;
|
|
12
|
+
private activePhaseKey;
|
|
13
|
+
private phaseDraft;
|
|
14
|
+
private iterationProgress;
|
|
12
15
|
constructor(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger, tracker?: ProgressTracker | undefined);
|
|
13
16
|
start(): Promise<void>;
|
|
14
17
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pipeline-engine.d.ts","sourceRoot":"","sources":["../src/pipeline-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAKV,cAAc,EAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa7D,qBAAa,cAAc;IAUvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAZ3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,eAAe,CAAc;IAGrC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,iBAAiB,CAAyC;gBAG/C,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,YAAA;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAsIhB,WAAW;YAoCX,gBAAgB;YAoBhB,aAAa;YA8Gb,gBAAgB;YAyKhB,uBAAuB;YAgEvB,aAAa;CAqC5B"}
|
package/dist/pipeline-engine.js
CHANGED
|
@@ -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,37 @@ 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
|
+
ctx.spec = await this.executeSpec(phase, ctx, saveProgress);
|
|
79
111
|
break;
|
|
80
112
|
case "decompose":
|
|
81
113
|
ctx.tasks = await this.executeDecompose(phase, ctx);
|
|
82
114
|
break;
|
|
83
115
|
case "design":
|
|
84
|
-
ctx.designSpec = await this.executeDesign(phase, ctx);
|
|
116
|
+
ctx.designSpec = await this.executeDesign(phase, ctx, saveProgress);
|
|
85
117
|
break;
|
|
86
118
|
case "implement":
|
|
87
|
-
ctx.streamResults = await this.executeImplement(phase, ctx);
|
|
119
|
+
ctx.streamResults = await this.executeImplement(phase, ctx, saveProgress);
|
|
88
120
|
break;
|
|
89
121
|
case "cross-model-review":
|
|
90
|
-
ctx.streamResults = await this.executeCrossModelReview(phase, ctx);
|
|
122
|
+
ctx.streamResults = await this.executeCrossModelReview(phase, ctx, saveProgress);
|
|
91
123
|
break;
|
|
92
124
|
}
|
|
125
|
+
// Phase complete — clear iteration state and save phase-level checkpoint
|
|
126
|
+
this.activePhaseKey = null;
|
|
127
|
+
this.phaseDraft = null;
|
|
128
|
+
this.iterationProgress = {};
|
|
93
129
|
completedPhases.add(phaseKey);
|
|
94
130
|
this.tracker?.completePhase(phaseKey);
|
|
95
|
-
await
|
|
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
|
-
});
|
|
131
|
+
await saveProgress();
|
|
104
132
|
this.logger.info(msg.checkpointSaved(phase.phase));
|
|
105
133
|
}
|
|
106
134
|
// Final summary
|
|
@@ -119,16 +147,26 @@ export class PipelineEngine {
|
|
|
119
147
|
await clearCheckpoint(this.effectiveConfig);
|
|
120
148
|
}
|
|
121
149
|
// --- SPEC PHASE ---
|
|
122
|
-
async executeSpec(phase, ctx) {
|
|
150
|
+
async executeSpec(phase, ctx, save) {
|
|
123
151
|
this.logger.info(msg.pmPhaseStart);
|
|
124
152
|
this.logger.info(msg.pmDrafting);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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];
|
|
130
168
|
this.logger.info(msg.reviewPhase(review.agent));
|
|
131
|
-
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);
|
|
132
170
|
}
|
|
133
171
|
await writeRoleSummary(this.effectiveConfig, phase.agent, `## Final Specification\n\n${spec}`);
|
|
134
172
|
return spec;
|
|
@@ -146,43 +184,68 @@ export class PipelineEngine {
|
|
|
146
184
|
return tasks;
|
|
147
185
|
}
|
|
148
186
|
// --- DESIGN PHASE ---
|
|
149
|
-
async executeDesign(phase, ctx) {
|
|
187
|
+
async executeDesign(phase, ctx, save) {
|
|
150
188
|
if (phase.condition === "hasFrontendTasks" && !hasFrontendWork(ctx.tasks)) {
|
|
151
189
|
return ctx.designSpec;
|
|
152
190
|
}
|
|
153
191
|
this.logger.info(msg.designPhaseStart);
|
|
154
192
|
const session = await this.sessions.createAgentSession(phase.agent);
|
|
193
|
+
let sessionPrimed = false;
|
|
155
194
|
try {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
195
|
+
let design;
|
|
196
|
+
if (this.phaseDraft !== null) {
|
|
197
|
+
design = this.phaseDraft;
|
|
198
|
+
this.logger.info(msg.draftResumed);
|
|
199
|
+
}
|
|
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();
|
|
163
212
|
}
|
|
164
|
-
for (
|
|
213
|
+
for (let ri = 0; ri < phase.reviews.length; ri++) {
|
|
214
|
+
const review = phase.reviews[ri];
|
|
165
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
|
+
}
|
|
166
224
|
const maxIter = review.maxIterations;
|
|
167
|
-
for (let i =
|
|
225
|
+
for (let i = startIter; i <= maxIter; i++) {
|
|
168
226
|
this.logger.info(msg.reviewIteration(i, maxIter));
|
|
169
227
|
const feedback = await this.sessions.callIsolated(review.agent, `Review this design specification:\n${design}`);
|
|
170
228
|
if (responseContains(feedback, review.approvalKeyword)) {
|
|
171
229
|
this.logger.info(msg.approved(review.agent));
|
|
172
230
|
break;
|
|
173
231
|
}
|
|
232
|
+
// Build fix prompt — include current design if session has no prior context
|
|
233
|
+
const contextPrefix = sessionPrimed ? "" : `Current design:\n${design}\n\n`;
|
|
174
234
|
if (review.clarificationKeyword && responseContains(feedback, review.clarificationKeyword)) {
|
|
175
235
|
const clarAgent = review.clarificationAgent ?? phase.clarificationAgent;
|
|
176
236
|
if (clarAgent) {
|
|
177
237
|
this.logger.info(msg.reviewerClarification);
|
|
178
238
|
const clar = await this.sessions.callIsolated(clarAgent, `The design reviewer needs clarification:\n${feedback}`);
|
|
179
|
-
design = await this.sessions.send(session,
|
|
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…`);
|
|
180
240
|
}
|
|
181
241
|
}
|
|
182
242
|
else {
|
|
183
243
|
this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
|
|
184
|
-
design = await this.sessions.send(session,
|
|
244
|
+
design = await this.sessions.send(session, `${contextPrefix}Review feedback:\n${feedback}\n\nRevise the design.`, `${phase.agent} is revising…`);
|
|
185
245
|
}
|
|
246
|
+
sessionPrimed = true;
|
|
247
|
+
this.iterationProgress[reviewKey] = { content: design, completedIterations: i };
|
|
248
|
+
await save();
|
|
186
249
|
}
|
|
187
250
|
}
|
|
188
251
|
await writeRoleSummary(this.effectiveConfig, phase.agent, design);
|
|
@@ -193,7 +256,7 @@ export class PipelineEngine {
|
|
|
193
256
|
}
|
|
194
257
|
}
|
|
195
258
|
// --- IMPLEMENT PHASE ---
|
|
196
|
-
async executeImplement(phase, ctx) {
|
|
259
|
+
async executeImplement(phase, ctx, save) {
|
|
197
260
|
this.logger.info(msg.launchingStreams(ctx.tasks.length));
|
|
198
261
|
this.tracker?.initStreams(ctx.tasks);
|
|
199
262
|
// Pre-fill with any existing partial results from a previous run
|
|
@@ -206,21 +269,51 @@ export class PipelineEngine {
|
|
|
206
269
|
return results[idx];
|
|
207
270
|
}
|
|
208
271
|
const label = msg.streamLabel(idx);
|
|
272
|
+
const streamKey = `stream-${idx}`;
|
|
209
273
|
this.logger.info(msg.streamStart(label, task));
|
|
210
274
|
const session = await this.sessions.createAgentSession(phase.agent);
|
|
275
|
+
let sessionPrimed = false;
|
|
211
276
|
try {
|
|
212
|
-
|
|
213
|
-
this.
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
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
|
+
}
|
|
218
302
|
// Reviews
|
|
219
|
-
for (
|
|
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
|
+
}
|
|
220
313
|
this.logger.info(msg.streamCodeReview(label, review.agent));
|
|
221
314
|
this.tracker?.updateStream(idx, "reviewing");
|
|
222
315
|
const maxIter = review.maxIterations;
|
|
223
|
-
for (let i =
|
|
316
|
+
for (let i = startIter; i <= maxIter; i++) {
|
|
224
317
|
this.logger.info(msg.reviewIteration(i, maxIter));
|
|
225
318
|
const feedback = await this.sessions.callIsolated(review.agent, `Review this implementation:\n${code}`);
|
|
226
319
|
if (responseContains(feedback, review.approvalKeyword)) {
|
|
@@ -228,15 +321,27 @@ export class PipelineEngine {
|
|
|
228
321
|
break;
|
|
229
322
|
}
|
|
230
323
|
this.logger.info(msg.codeFeedback(feedback.substring(0, 80)));
|
|
231
|
-
|
|
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();
|
|
232
329
|
}
|
|
233
330
|
}
|
|
234
331
|
// QA
|
|
235
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
|
+
}
|
|
236
341
|
this.logger.info(msg.streamQa(label));
|
|
237
342
|
this.tracker?.updateStream(idx, "testing");
|
|
238
343
|
const maxQa = phase.qa.maxIterations;
|
|
239
|
-
for (let i =
|
|
344
|
+
for (let i = startQa; i <= maxQa; i++) {
|
|
240
345
|
this.logger.info(msg.qaIteration(i, maxQa));
|
|
241
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.`);
|
|
242
347
|
if (responseContains(testReport, phase.qa.approvalKeyword)) {
|
|
@@ -244,22 +349,18 @@ export class PipelineEngine {
|
|
|
244
349
|
break;
|
|
245
350
|
}
|
|
246
351
|
this.logger.info(msg.defectsFound);
|
|
247
|
-
|
|
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();
|
|
248
357
|
}
|
|
249
358
|
}
|
|
250
359
|
await writeRoleSummary(this.effectiveConfig, `engineer-stream-${idx + 1}`, code);
|
|
251
360
|
this.tracker?.updateStream(idx, "done");
|
|
252
|
-
// Save
|
|
361
|
+
// Save completed stream result
|
|
253
362
|
results[idx] = code;
|
|
254
|
-
await
|
|
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
|
-
});
|
|
363
|
+
await save();
|
|
263
364
|
return code;
|
|
264
365
|
}
|
|
265
366
|
finally {
|
|
@@ -271,16 +372,7 @@ export class PipelineEngine {
|
|
|
271
372
|
const failures = settled.filter((r) => r.status === "rejected");
|
|
272
373
|
if (failures.length > 0) {
|
|
273
374
|
this.logger.warn(msg.partialStreamFailure(failures.length, settled.length));
|
|
274
|
-
|
|
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
|
-
});
|
|
375
|
+
await save();
|
|
284
376
|
throw new Error(`${failures.length}/${settled.length} streams failed. Use --resume to retry failed streams.`);
|
|
285
377
|
}
|
|
286
378
|
return results;
|
|
@@ -291,7 +383,7 @@ export class PipelineEngine {
|
|
|
291
383
|
return results;
|
|
292
384
|
}
|
|
293
385
|
// --- CROSS-MODEL REVIEW ---
|
|
294
|
-
async executeCrossModelReview(phase, ctx) {
|
|
386
|
+
async executeCrossModelReview(phase, ctx, save) {
|
|
295
387
|
if (phase.condition === "differentReviewModel" && this.pipeline.reviewModel === this.pipeline.primaryModel) {
|
|
296
388
|
this.logger.info(msg.crossModelSkipped);
|
|
297
389
|
return ctx.streamResults;
|
|
@@ -300,9 +392,17 @@ export class PipelineEngine {
|
|
|
300
392
|
const maxIter = phase.maxIterations;
|
|
301
393
|
const reviewed = await Promise.all(ctx.streamResults.map(async (code, idx) => {
|
|
302
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
|
+
}
|
|
303
403
|
this.logger.info(msg.crossModelStreamReview(label));
|
|
304
404
|
let current = code;
|
|
305
|
-
for (let i =
|
|
405
|
+
for (let i = startIter; i <= maxIter; i++) {
|
|
306
406
|
this.logger.info(msg.crossModelIteration(i, maxIter, this.pipeline.reviewModel));
|
|
307
407
|
const feedback = await this.sessions.callIsolated(phase.agent, `Spec:\n${ctx.spec}\n\nReview this implementation from scratch. ` +
|
|
308
408
|
`You are using a different model than the one that wrote this code — look for blind spots.\n\n` +
|
|
@@ -313,6 +413,8 @@ export class PipelineEngine {
|
|
|
313
413
|
}
|
|
314
414
|
this.logger.info(msg.crossModelIssues);
|
|
315
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();
|
|
316
418
|
}
|
|
317
419
|
return current;
|
|
318
420
|
}));
|
|
@@ -320,10 +422,17 @@ export class PipelineEngine {
|
|
|
320
422
|
return reviewed;
|
|
321
423
|
}
|
|
322
424
|
// --- GENERIC REVIEW LOOP ---
|
|
323
|
-
async runReviewLoop(review, content, authorAgent, buildPrompt) {
|
|
425
|
+
async runReviewLoop(review, content, authorAgent, buildPrompt, progressKey, save) {
|
|
324
426
|
const maxIter = review.maxIterations;
|
|
325
427
|
let current = content;
|
|
326
|
-
|
|
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++) {
|
|
327
436
|
this.logger.info(msg.reviewIteration(i, maxIter));
|
|
328
437
|
const feedback = await this.sessions.callIsolated(review.agent, buildPrompt(current));
|
|
329
438
|
if (responseContains(feedback, review.approvalKeyword)) {
|
|
@@ -332,6 +441,8 @@ export class PipelineEngine {
|
|
|
332
441
|
}
|
|
333
442
|
this.logger.info(msg.feedbackReceived(feedback.substring(0, 80)));
|
|
334
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();
|
|
335
446
|
}
|
|
336
447
|
return current;
|
|
337
448
|
}
|