@agentic-sdlc/dispatch 0.2.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/orchestrator.js +37 -2
- package/dist/src/orchestrator.js.map +1 -1
- package/package.json +1 -1
- package/src/orchestrator.ts +39 -2
package/dist/src/orchestrator.js
CHANGED
|
@@ -31,6 +31,7 @@ export function orchestrateStage(ctx) {
|
|
|
31
31
|
const artifactPath = join(artifactsDir, stage.produces);
|
|
32
32
|
if (!existsSync(artifactPath)) {
|
|
33
33
|
console.error(`[dispatch] Artifact not found: ${artifactPath}`);
|
|
34
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — Escalated\n\nThe agent did not produce the expected artifact \`${stage.produces}\`. This usually means the agent ran out of time or encountered an error.\n\nLabel: \`escalated\``);
|
|
34
35
|
applyLabel(repo, issueNumber, "escalated", label);
|
|
35
36
|
return { stage: stage.name, action: "no-artifact", nextLabel: "escalated" };
|
|
36
37
|
}
|
|
@@ -59,8 +60,11 @@ function handleGateNone(ctx, stage, stageIndex) {
|
|
|
59
60
|
catch (err) {
|
|
60
61
|
console.error(`[dispatch] Git commit/push failed for gate=none:`, err);
|
|
61
62
|
}
|
|
62
|
-
//
|
|
63
|
+
// Post stage completion comment with artifact summary
|
|
64
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
63
65
|
const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
66
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — Complete\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
|
|
67
|
+
// Advance to next stage label
|
|
64
68
|
if (nextLabel) {
|
|
65
69
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
66
70
|
}
|
|
@@ -124,6 +128,10 @@ function handleGatePrReview(ctx, stage, stageIndex) {
|
|
|
124
128
|
// Find the "ready" label for this stage (convention: stage's own ready label)
|
|
125
129
|
const readyLabel = findReadyLabel(workflowConfig.pipeline, stage.name);
|
|
126
130
|
const nextLabel = readyLabel ?? findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
131
|
+
// Post comment about PR
|
|
132
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
133
|
+
const prMsg = prCreated ? `PR opened on branch \`${branchName}\`. Please review and merge to advance.` : `Branch \`${branchName}\` updated.`;
|
|
134
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — PR Ready\n\n${prMsg}\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${nextLabel ?? "done"}\``);
|
|
127
135
|
if (nextLabel) {
|
|
128
136
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
129
137
|
}
|
|
@@ -138,9 +146,10 @@ function handleGateRetry(ctx, stage, stageIndex) {
|
|
|
138
146
|
// Read verdict from artifact frontmatter
|
|
139
147
|
const verdict = readVerdictFromArtifact(artifactsDir, stage.produces ?? "");
|
|
140
148
|
const maxRetries = stage.max_retries ?? 3;
|
|
149
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
141
150
|
if (verdict === "pass") {
|
|
142
|
-
// Advance to next stage
|
|
143
151
|
const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
152
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — PASS\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
|
|
144
153
|
if (nextLabel) {
|
|
145
154
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
146
155
|
}
|
|
@@ -149,11 +158,13 @@ function handleGateRetry(ctx, stage, stageIndex) {
|
|
|
149
158
|
// verdict is "fail" or unknown — check retry count
|
|
150
159
|
const attemptCount = getAttemptCount(artifactsDir, stage.name);
|
|
151
160
|
if (attemptCount >= maxRetries) {
|
|
161
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — ESCALATED\n\nQA failed after ${attemptCount} attempts (max: ${maxRetries}). Human intervention required.\n\n<details>\n<summary>Last QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`escalated\``);
|
|
152
162
|
applyLabel(repo, issueNumber, "escalated", label);
|
|
153
163
|
return { stage: stage.name, action: "escalated", nextLabel: "escalated" };
|
|
154
164
|
}
|
|
155
165
|
// Apply retry label (needs-fix)
|
|
156
166
|
const retryLabel = findRetryLabel(workflowConfig.pipeline, stage.name);
|
|
167
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — FAIL (attempt ${attemptCount}/${maxRetries})\n\nRetrying. The builder will read the QA report and fix the issues.\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${retryLabel ?? "needs-fix"}\``);
|
|
157
168
|
if (retryLabel) {
|
|
158
169
|
applyLabel(repo, issueNumber, retryLabel, label);
|
|
159
170
|
}
|
|
@@ -176,6 +187,30 @@ function applyLabel(repo, issueNumber, addLabel, removeLabel) {
|
|
|
176
187
|
console.error(`[dispatch] Label transition failed (add=${addLabel}, remove=${removeLabel}):`, err);
|
|
177
188
|
}
|
|
178
189
|
}
|
|
190
|
+
function postComment(repo, issueNumber, body) {
|
|
191
|
+
try {
|
|
192
|
+
execFileSync("gh", [
|
|
193
|
+
"issue", "comment", String(issueNumber),
|
|
194
|
+
"--repo", repo,
|
|
195
|
+
"--body", body,
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
console.error(`[dispatch] Failed to post comment:`, err);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function readArtifactContent(artifactsDir, artifactName) {
|
|
203
|
+
if (!artifactName)
|
|
204
|
+
return "";
|
|
205
|
+
try {
|
|
206
|
+
const content = readFileSync(join(artifactsDir, artifactName), "utf-8");
|
|
207
|
+
const maxLen = 2000;
|
|
208
|
+
return content.length > maxLen ? content.slice(0, maxLen) + "\n\n_(truncated)_" : content;
|
|
209
|
+
}
|
|
210
|
+
catch {
|
|
211
|
+
return "";
|
|
212
|
+
}
|
|
213
|
+
}
|
|
179
214
|
function findNextStageLabel(pipeline, currentStageIndex) {
|
|
180
215
|
const nextStage = pipeline.stages[currentStageIndex + 1];
|
|
181
216
|
if (!nextStage)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/orchestrator.ts
CHANGED
|
@@ -37,6 +37,7 @@ export function orchestrateStage(ctx: OrchestrationContext): OrchestrationResult
|
|
|
37
37
|
const artifactPath = join(artifactsDir, stage.produces);
|
|
38
38
|
if (!existsSync(artifactPath)) {
|
|
39
39
|
console.error(`[dispatch] Artifact not found: ${artifactPath}`);
|
|
40
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — Escalated\n\nThe agent did not produce the expected artifact \`${stage.produces}\`. This usually means the agent ran out of time or encountered an error.\n\nLabel: \`escalated\``);
|
|
40
41
|
applyLabel(repo, issueNumber, "escalated", label);
|
|
41
42
|
return { stage: stage.name, action: "no-artifact", nextLabel: "escalated" };
|
|
42
43
|
}
|
|
@@ -72,8 +73,12 @@ function handleGateNone(
|
|
|
72
73
|
console.error(`[dispatch] Git commit/push failed for gate=none:`, err);
|
|
73
74
|
}
|
|
74
75
|
|
|
75
|
-
//
|
|
76
|
+
// Post stage completion comment with artifact summary
|
|
77
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
76
78
|
const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
79
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — Complete\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
|
|
80
|
+
|
|
81
|
+
// Advance to next stage label
|
|
77
82
|
if (nextLabel) {
|
|
78
83
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
79
84
|
}
|
|
@@ -146,6 +151,11 @@ function handleGatePrReview(
|
|
|
146
151
|
const readyLabel = findReadyLabel(workflowConfig.pipeline, stage.name);
|
|
147
152
|
const nextLabel = readyLabel ?? findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
148
153
|
|
|
154
|
+
// Post comment about PR
|
|
155
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
156
|
+
const prMsg = prCreated ? `PR opened on branch \`${branchName}\`. Please review and merge to advance.` : `Branch \`${branchName}\` updated.`;
|
|
157
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — PR Ready\n\n${prMsg}\n\n<details>\n<summary>Artifact: ${stage.produces}</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${nextLabel ?? "done"}\``);
|
|
158
|
+
|
|
149
159
|
if (nextLabel) {
|
|
150
160
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
151
161
|
}
|
|
@@ -168,9 +178,11 @@ function handleGateRetry(
|
|
|
168
178
|
const verdict = readVerdictFromArtifact(artifactsDir, stage.produces ?? "");
|
|
169
179
|
const maxRetries = stage.max_retries ?? 3;
|
|
170
180
|
|
|
181
|
+
const artifactContent = readArtifactContent(artifactsDir, stage.produces);
|
|
182
|
+
|
|
171
183
|
if (verdict === "pass") {
|
|
172
|
-
// Advance to next stage
|
|
173
184
|
const nextLabel = findNextStageLabel(workflowConfig.pipeline, stageIndex);
|
|
185
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — PASS\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nAdvancing to: \`${nextLabel ?? "done"}\``);
|
|
174
186
|
if (nextLabel) {
|
|
175
187
|
applyLabel(repo, issueNumber, nextLabel, label);
|
|
176
188
|
}
|
|
@@ -181,12 +193,14 @@ function handleGateRetry(
|
|
|
181
193
|
const attemptCount = getAttemptCount(artifactsDir, stage.name);
|
|
182
194
|
|
|
183
195
|
if (attemptCount >= maxRetries) {
|
|
196
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — ESCALATED\n\nQA failed after ${attemptCount} attempts (max: ${maxRetries}). Human intervention required.\n\n<details>\n<summary>Last QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`escalated\``);
|
|
184
197
|
applyLabel(repo, issueNumber, "escalated", label);
|
|
185
198
|
return { stage: stage.name, action: "escalated", nextLabel: "escalated" };
|
|
186
199
|
}
|
|
187
200
|
|
|
188
201
|
// Apply retry label (needs-fix)
|
|
189
202
|
const retryLabel = findRetryLabel(workflowConfig.pipeline, stage.name);
|
|
203
|
+
postComment(repo, issueNumber, `## Stage: ${stage.name} — FAIL (attempt ${attemptCount}/${maxRetries})\n\nRetrying. The builder will read the QA report and fix the issues.\n\n<details>\n<summary>QA Report</summary>\n\n${artifactContent}\n</details>\n\nLabel: \`${retryLabel ?? "needs-fix"}\``);
|
|
190
204
|
if (retryLabel) {
|
|
191
205
|
applyLabel(repo, issueNumber, retryLabel, label);
|
|
192
206
|
}
|
|
@@ -213,6 +227,29 @@ function applyLabel(repo: string, issueNumber: number, addLabel: string, removeL
|
|
|
213
227
|
}
|
|
214
228
|
}
|
|
215
229
|
|
|
230
|
+
function postComment(repo: string, issueNumber: number, body: string): void {
|
|
231
|
+
try {
|
|
232
|
+
execFileSync("gh", [
|
|
233
|
+
"issue", "comment", String(issueNumber),
|
|
234
|
+
"--repo", repo,
|
|
235
|
+
"--body", body,
|
|
236
|
+
]);
|
|
237
|
+
} catch (err) {
|
|
238
|
+
console.error(`[dispatch] Failed to post comment:`, err);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function readArtifactContent(artifactsDir: string, artifactName: string | undefined): string {
|
|
243
|
+
if (!artifactName) return "";
|
|
244
|
+
try {
|
|
245
|
+
const content = readFileSync(join(artifactsDir, artifactName), "utf-8");
|
|
246
|
+
const maxLen = 2000;
|
|
247
|
+
return content.length > maxLen ? content.slice(0, maxLen) + "\n\n_(truncated)_" : content;
|
|
248
|
+
} catch {
|
|
249
|
+
return "";
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
216
253
|
function findNextStageLabel(
|
|
217
254
|
pipeline: OrchestrationContext["workflowConfig"]["pipeline"],
|
|
218
255
|
currentStageIndex: number
|