@flumecode/runner 0.12.0 → 0.13.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/cli.js
CHANGED
|
@@ -604,14 +604,7 @@ function parseManifest(raw) {
|
|
|
604
604
|
if (typeof r.key !== "string" || !r.key) return null;
|
|
605
605
|
if (r.socket !== "pre-commit") return null;
|
|
606
606
|
if (typeof r.run !== "string" || !r.run) return null;
|
|
607
|
-
|
|
608
|
-
if (typeof r.heartbeat === "object" && r.heartbeat !== null) {
|
|
609
|
-
const hb = r.heartbeat;
|
|
610
|
-
if (typeof hb.url === "string" && typeof hb.token === "string") {
|
|
611
|
-
manifest.heartbeat = { url: hb.url, token: hb.token };
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
return manifest;
|
|
607
|
+
return { key: r.key, socket: r.socket, run: r.run };
|
|
615
608
|
}
|
|
616
609
|
|
|
617
610
|
// src/plugins/socket.ts
|
|
@@ -863,8 +856,14 @@ var acVerdictSchema = z3.object({
|
|
|
863
856
|
});
|
|
864
857
|
var reportInputSchema = {
|
|
865
858
|
summary: z3.string().min(1).describe("One or two sentences on what was implemented."),
|
|
866
|
-
|
|
867
|
-
"Markdown
|
|
859
|
+
filesChanged: z3.string().min(1).describe(
|
|
860
|
+
"Markdown: the list of files changed (from the diff). Rendered under '## Files changed'."
|
|
861
|
+
),
|
|
862
|
+
codeQuality: z3.string().min(1).describe(
|
|
863
|
+
"Markdown: the code-quality review outcome and anything left as nice-to-have. Rendered under '## Code quality'."
|
|
864
|
+
),
|
|
865
|
+
caveats: z3.string().min(1).describe(
|
|
866
|
+
"Markdown: anything deferred, unmet, or worth a human's eyes, incl. diff hunks that map to no plan AC. Write 'None.' if nothing. Rendered under '## Caveats / follow-ups'."
|
|
868
867
|
),
|
|
869
868
|
acceptanceCriteria: z3.array(acVerdictSchema).min(1).describe(
|
|
870
869
|
"One entry per acceptance criterion from the plan, in plan order, each with a verdict and the diff evidence behind it."
|
|
@@ -874,10 +873,8 @@ var reportSchema = z3.object(reportInputSchema);
|
|
|
874
873
|
function renderReport(report) {
|
|
875
874
|
const lines2 = [];
|
|
876
875
|
lines2.push(report.summary.trim());
|
|
877
|
-
lines2.push("");
|
|
878
|
-
lines2.push(
|
|
879
|
-
lines2.push("");
|
|
880
|
-
lines2.push("## Acceptance criteria");
|
|
876
|
+
lines2.push("", "## Files changed", "", report.filesChanged.trim());
|
|
877
|
+
lines2.push("", "## Acceptance criteria");
|
|
881
878
|
for (const ac of report.acceptanceCriteria) {
|
|
882
879
|
lines2.push("");
|
|
883
880
|
lines2.push(`### ${STATUS_ICON[ac.status]} ${ac.criterion}`);
|
|
@@ -892,13 +889,15 @@ function renderReport(report) {
|
|
|
892
889
|
lines2.push("```");
|
|
893
890
|
}
|
|
894
891
|
}
|
|
892
|
+
lines2.push("", "## Code quality", "", report.codeQuality.trim());
|
|
893
|
+
lines2.push("", "## Caveats / follow-ups", "", report.caveats.trim());
|
|
895
894
|
return lines2.join("\n");
|
|
896
895
|
}
|
|
897
896
|
function createReportTooling() {
|
|
898
897
|
let submittedReport = null;
|
|
899
898
|
const submitReport = tool3(
|
|
900
899
|
SUBMIT_REPORT,
|
|
901
|
-
"Submit the final implementation report as structured data. Call this exactly once, at the end of the run. `acceptanceCriteria` must contain one entry per plan criterion, each with a met / not_met / unclear verdict and the diff hunk(s) that prove it. `summary`
|
|
900
|
+
"Submit the final implementation report as structured data. Call this exactly once, at the end of the run. `acceptanceCriteria` must contain one entry per plan criterion, each with a met / not_met / unclear verdict and the diff hunk(s) that prove it. `summary`, `filesChanged`, `codeQuality`, and `caveats` are the four named markdown sections. Do NOT include a PR link \u2014 the runner appends it.",
|
|
902
901
|
reportInputSchema,
|
|
903
902
|
async (args) => {
|
|
904
903
|
submittedReport = reportSchema.parse(args);
|
package/package.json
CHANGED
|
@@ -149,14 +149,9 @@ the next step.
|
|
|
149
149
|
The report subagent calls `submit_report` with these fields:
|
|
150
150
|
|
|
151
151
|
- **`summary`** — one or two sentences on what was implemented.
|
|
152
|
-
- **`
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
each verification command and its final pass/fail result, or explains that no
|
|
156
|
-
build/test setup was found), and **Caveats / follow-ups** (anything deferred,
|
|
157
|
-
unmet, or worth a human's eyes — including any diff hunks that map to no plan AC,
|
|
158
|
-
listed explicitly as unattributed changes). Do **not** put the acceptance-criteria
|
|
159
|
-
section in `prose`, and do **not** include a PR link — the runner adds it.
|
|
152
|
+
- **`filesChanged`** — markdown list of files changed (from the diff). Rendered under `## Files changed`.
|
|
153
|
+
- **`codeQuality`** — the code-quality review outcome and anything left as nice-to-have. Rendered under `## Code quality`.
|
|
154
|
+
- **`caveats`** — anything deferred, unmet, or worth a human's eyes, including diff hunks that map to no plan AC. Write 'None.' if nothing. Rendered under `## Caveats / follow-ups`.
|
|
160
155
|
- **`acceptanceCriteria`** — one entry per AC from the plan, in plan order, each:
|
|
161
156
|
- `criterion` — the AC text verbatim.
|
|
162
157
|
- `status` — `"met"` / `"not_met"` / `"unclear"`, mirroring the AC review.
|