@llm4ts/shell 2.37.0 → 2.39.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.d.ts +18 -1
- package/dist/Cli.d.ts.map +1 -1
- package/dist/Cli.js +89 -0
- package/dist/Cli.js.map +1 -1
- package/flows/lib/epic-stories.js +156 -11
- package/flows/lib/modernize-extract.js +9 -0
- package/flows/modernize-extract.js +17 -8
- package/flows/modernize-pack-check.js +65 -5
- package/flows/modernize-refine.js +4 -5
- package/flows/modernize-survey.js +80 -87
- package/kits/j2ee-nextjs/flows/lib/convert.js +4 -3
- package/kits/j2ee-nextjs/packs/j2ee-nextjs-spa/pack.md +38 -5
- package/kits/mainframe-java/packs/cobol-kafka/pack.md +24 -0
- package/kits/mainframe-java/packs/cobol-springboot/pack.md +24 -0
- package/package.json +4 -4
- package/src/Cli.ts +183 -0
package/dist/Cli.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { Command } from "effect/cli";
|
|
|
6
6
|
import { type CostsOptions } from "@llm4ts/runner/Costs";
|
|
7
7
|
import { type WatchOptions } from "@llm4ts/runner/Watch";
|
|
8
8
|
import { type ProfileOptions } from "@llm4ts/runner/Profile";
|
|
9
|
+
import { type GraphCommand } from "@llm4ts/runner/Graph";
|
|
9
10
|
import { type DiscoveredKit } from "@llm4ts/runner/Kits";
|
|
10
11
|
import { type DiscoveredFlow, type FlowTierPaths } from "./FlowCatalog.ts";
|
|
11
12
|
declare const ShellUsageError_base: Schema.Class<ShellUsageError, Schema.TaggedStruct<"ShellUsage", {
|
|
@@ -74,7 +75,23 @@ export interface ProfileFlags {
|
|
|
74
75
|
}
|
|
75
76
|
/** Turns the `profile` flags into program options; every rejection is a usage error. */
|
|
76
77
|
export declare const profileOptionsFrom: (flags: ProfileFlags, cwd?: string) => Effect.Effect<ProfileOptions, ShellUsageError>;
|
|
77
|
-
|
|
78
|
+
type GraphSubcommand = "build" | "query" | "path" | "closure" | "stats" | "probe";
|
|
79
|
+
interface GraphFlags {
|
|
80
|
+
readonly repo: Option.Option<string>;
|
|
81
|
+
readonly pack: Option.Option<string>;
|
|
82
|
+
readonly format: string;
|
|
83
|
+
readonly kind: Option.Option<string>;
|
|
84
|
+
readonly hops: string;
|
|
85
|
+
readonly max: string;
|
|
86
|
+
readonly all: boolean;
|
|
87
|
+
readonly force: boolean;
|
|
88
|
+
readonly text?: string;
|
|
89
|
+
readonly from?: string;
|
|
90
|
+
readonly to?: string;
|
|
91
|
+
readonly program?: string;
|
|
92
|
+
}
|
|
93
|
+
export declare const graphCommandFrom: (sub: GraphSubcommand, flags: GraphFlags, cwd?: string) => Effect.Effect<GraphCommand, ShellUsageError>;
|
|
94
|
+
export declare const shellCommand: Command.Command<"llm4ts", {} | {}, {}, import("./FlowLaunch.ts").FlowLaunchError | ShellUsageError | ShellActionError | import("@llm4ts/runner/Watch").WatchTargetMissing | import("@llm4ts/runner/Graph").GraphProgramError, import("effect/cli/Prompt").Environment>;
|
|
78
95
|
export declare const runShellCommand: (argv: ReadonlyArray<string>) => Effect.Effect<void, unknown, Command.Environment>;
|
|
79
96
|
export {};
|
|
80
97
|
//# sourceMappingURL=Cli.d.ts.map
|
package/dist/Cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAY,OAAO,EAAQ,MAAM,YAAY,CAAA;AAEpD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAS7B,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
package/dist/Cli.js
CHANGED
|
@@ -15,6 +15,7 @@ import { pauseExecutor, renderRosterReport, resumeExecutor, rosterReport } from
|
|
|
15
15
|
import { nodePlainFileStore } from "@llm4ts/runner/NodePlainFileStore";
|
|
16
16
|
import { makeWatchProgram, nodeTraceSources, nodeWatchDependencies } from "@llm4ts/runner/Watch";
|
|
17
17
|
import { makeProfileProgram } from "@llm4ts/runner/Profile";
|
|
18
|
+
import { makeGraphProgram, nodeGraphDependencies } from "@llm4ts/runner/Graph";
|
|
18
19
|
import { idleAfterFrom } from "@llm4ts/runner/AgentTree";
|
|
19
20
|
import { describeExclusion } from "@llm4ts/flow/Roster";
|
|
20
21
|
import { builtinKitsDir, discoverKits, kitTierPaths } from "@llm4ts/runner/Kits";
|
|
@@ -364,6 +365,93 @@ const rosterCommand = Command.make("roster", { repo: rosterRepo }, (config) => E
|
|
|
364
365
|
const report = yield* rosterReport(rosterSource(config.repo));
|
|
365
366
|
yield* Console.log(renderRosterReport(report));
|
|
366
367
|
})).pipe(Command.withDescription("The executor roster (ADR 0019): executors, their roles and slots, and who is out of the round"), Command.withSubcommands([rosterPauseCommand, rosterResumeCommand]));
|
|
368
|
+
// ---- graph (ADR 0030) -------------------------------------------------------
|
|
369
|
+
const graphFormats = ["text", "json", "mermaid", "dot"];
|
|
370
|
+
const positiveInt = (name, raw) => {
|
|
371
|
+
const value = Number.parseInt(raw, 10);
|
|
372
|
+
return Number.isInteger(value) && value > 0
|
|
373
|
+
? Effect.succeed(value)
|
|
374
|
+
: Effect.fail(new ShellUsageError({ message: `${name} must be a positive integer, got '${raw}'` }));
|
|
375
|
+
};
|
|
376
|
+
export const graphCommandFrom = (sub, flags, cwd = process.cwd()) => Effect.gen(function* () {
|
|
377
|
+
const repo = resolve(cwd, Option.getOrElse(flags.repo, () => "."));
|
|
378
|
+
const pack = Option.isSome(flags.pack) ? { pack: flags.pack.value } : {};
|
|
379
|
+
const format = graphFormats.find((candidate) => candidate === flags.format);
|
|
380
|
+
if (format === undefined) {
|
|
381
|
+
return yield* new ShellUsageError({
|
|
382
|
+
message: `format must be one of ${graphFormats.join(", ")}, got '${flags.format}'`
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
switch (sub) {
|
|
386
|
+
case "build":
|
|
387
|
+
return { _tag: "build", repo, ...pack };
|
|
388
|
+
case "stats":
|
|
389
|
+
return { _tag: "stats", repo, ...pack, format };
|
|
390
|
+
case "probe":
|
|
391
|
+
return { _tag: "probe", repo, ...pack, format };
|
|
392
|
+
case "query":
|
|
393
|
+
return {
|
|
394
|
+
_tag: "query",
|
|
395
|
+
repo,
|
|
396
|
+
...pack,
|
|
397
|
+
text: flags.text ?? "",
|
|
398
|
+
...(Option.isSome(flags.kind) ? { kind: flags.kind.value } : {}),
|
|
399
|
+
hops: yield* positiveInt("hops", flags.hops),
|
|
400
|
+
format,
|
|
401
|
+
all: flags.all,
|
|
402
|
+
force: flags.force
|
|
403
|
+
};
|
|
404
|
+
case "path":
|
|
405
|
+
return {
|
|
406
|
+
_tag: "path",
|
|
407
|
+
repo,
|
|
408
|
+
...pack,
|
|
409
|
+
from: flags.from ?? "",
|
|
410
|
+
to: flags.to ?? "",
|
|
411
|
+
max: yield* positiveInt("max", flags.max),
|
|
412
|
+
format,
|
|
413
|
+
force: flags.force
|
|
414
|
+
};
|
|
415
|
+
case "closure":
|
|
416
|
+
return {
|
|
417
|
+
_tag: "closure",
|
|
418
|
+
repo,
|
|
419
|
+
...pack,
|
|
420
|
+
program: flags.program ?? "",
|
|
421
|
+
max: yield* positiveInt("max", flags.max),
|
|
422
|
+
format,
|
|
423
|
+
force: flags.force
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
const graphFlags = {
|
|
428
|
+
repo: Flag.String("repo").pipe(Flag.optional, Flag.withDescription("The legacy repository (defaults to the current directory)")),
|
|
429
|
+
pack: Flag.String("pack").pipe(Flag.optional, Flag.withDescription("Pack name or directory (defaults to LLM4TS_PACK, then cobol-springboot)")),
|
|
430
|
+
format: Flag.String("format").pipe(Flag.withDefault("text"), Flag.withDescription("text | json | mermaid | dot")),
|
|
431
|
+
kind: Flag.String("kind").pipe(Flag.optional, Flag.withDescription("Only nodes of this kind (query)")),
|
|
432
|
+
hops: Flag.String("hops").pipe(Flag.withDefault("1"), Flag.withDescription("Neighbourhood radius (query)")),
|
|
433
|
+
max: Flag.String("max").pipe(Flag.withDefault("12"), Flag.withDescription("Max hops (path) or files (closure)")),
|
|
434
|
+
all: Flag.Boolean("all").pipe(Flag.withDefault(false), Flag.withDescription("Render the whole estate instead of the neighbourhood")),
|
|
435
|
+
force: Flag.Boolean("force").pipe(Flag.withDefault(false), Flag.withDescription("Render mermaid above the 150-node cap"))
|
|
436
|
+
};
|
|
437
|
+
const runGraph = (sub, flags) => Effect.gen(function* () {
|
|
438
|
+
const command = yield* graphCommandFrom(sub, flags);
|
|
439
|
+
yield* Console.log(yield* makeGraphProgram(command, nodeGraphDependencies(process.env, shellTierPaths())));
|
|
440
|
+
});
|
|
441
|
+
const graphBuildCommand = Command.make("build", graphFlags, (flags) => runGraph("build", flags)).pipe(Command.withDescription("Scan the estate with the pack's rules and write .llm4ts/graph/<pack>.json"));
|
|
442
|
+
const graphQueryCommand = Command.make("query", { text: Argument.String("text"), ...graphFlags }, (flags) => runGraph("query", flags)).pipe(Command.withDescription("Nodes matching a text and their neighbourhood"));
|
|
443
|
+
const graphPathCommand = Command.make("path", { from: Argument.String("from"), to: Argument.String("to"), ...graphFlags }, (flags) => runGraph("path", flags)).pipe(Command.withDescription("Shortest path between two node references, either direction"));
|
|
444
|
+
const graphClosureCommand = Command.make("closure", { program: Argument.String("program"), ...graphFlags }, (flags) => runGraph("closure", flags)).pipe(Command.withDescription("A program's dependency closure as the analyst sees it"));
|
|
445
|
+
const graphStatsCommand = Command.make("stats", graphFlags, (flags) => runGraph("stats", flags)).pipe(Command.withDescription("Nodes, edges, mechanisms, origins and unresolved items by kind"));
|
|
446
|
+
const graphProbeCommand = Command.make("probe", graphFlags, (flags) => runGraph("probe", flags)).pipe(Command.withDescription("Evaluate the pack's '## Probe:' flows"));
|
|
447
|
+
const graphCommand = Command.make("graph", {}, () => Console.log("llm4ts graph <build|query|path|closure|stats|probe> --repo <legacy> [--pack <name>]")).pipe(Command.withDescription("The legacy estate's code graph (ADR 0030): build it, query it, draw it"), Command.withSubcommands([
|
|
448
|
+
graphBuildCommand,
|
|
449
|
+
graphQueryCommand,
|
|
450
|
+
graphPathCommand,
|
|
451
|
+
graphClosureCommand,
|
|
452
|
+
graphStatsCommand,
|
|
453
|
+
graphProbeCommand
|
|
454
|
+
]));
|
|
367
455
|
const doctorCommand = Command.make("doctor", {}, () => Effect.gen(function* () {
|
|
368
456
|
const report = yield* makeDoctorProgram();
|
|
369
457
|
yield* Console.log(report.trimEnd());
|
|
@@ -385,6 +473,7 @@ export const shellCommand = Command.make("llm4ts", {}, () => Effect.gen(function
|
|
|
385
473
|
costsCommand,
|
|
386
474
|
watchCommand,
|
|
387
475
|
profileCommand,
|
|
476
|
+
graphCommand,
|
|
388
477
|
rosterCommand,
|
|
389
478
|
doctorCommand
|
|
390
479
|
]));
|
package/dist/Cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ import { budget } from "@llm4ts/flow/Context";
|
|
|
38
38
|
import { makeLocalBoardSync } from "@llm4ts/flow/BoardSync";
|
|
39
39
|
import { estimatedUsageOptionsFromEnv, makeEstimatedUsageMeter } from "@llm4ts/flow/EstimatedUsage";
|
|
40
40
|
import { landEpic } from "@llm4ts/flow/Landing";
|
|
41
|
-
import { implementStoriesFlow } from "@llm4ts/flow/Stories";
|
|
41
|
+
import { deferredPath, implementStoriesFlow } from "@llm4ts/flow/Stories";
|
|
42
42
|
import { validateStoryPlan } from "@llm4ts/flow/StoryPlan";
|
|
43
43
|
import { asReadOnly, nodePlainFileStore, nodeProcessExecutor, resolveFlowInput, runNode, stage, withModel } from "@llm4ts/runner";
|
|
44
44
|
import { claude, coderIds, judgmentConnectorFromEnvironment, pi } from "@llm4ts/runner/Connectors";
|
|
@@ -58,6 +58,12 @@ export const epicUsage = [
|
|
|
58
58
|
" A plain rerun finishes an open round; --plan-only stops after planning",
|
|
59
59
|
" --concurrency <n> stories implemented at once (default 3)",
|
|
60
60
|
" --fail-fast stop the epic at the first failed story",
|
|
61
|
+
" --judge-rounds <n> judge attempts per story (default 2 = one revision); a story the judge",
|
|
62
|
+
" has not cleared after n attempts fails. LLM4TS_JUDGE_ROUNDS sets it too",
|
|
63
|
+
" --defer-findings lighter review: only Critical findings are fixed in place (reviews",
|
|
64
|
+
" settle, the judge clears without them); the rest are deferred and, once",
|
|
65
|
+
" every story is merged, planned and run as one refine round.",
|
|
66
|
+
" LLM4TS_DEFER_FINDINGS=1 sets it too",
|
|
61
67
|
"Seats: LLM4TS_REASONER (claude|gemini|…, default claude) splits, reviews, judges;",
|
|
62
68
|
" LLM4TS_CODER (default pi) implements; LLM4TS_REASONING_MODEL / LLM4TS_CODER_MODEL",
|
|
63
69
|
" pick their models (pi: provider/model); LLM4TS_CODER_FLAGS / LLM4TS_REASONING_FLAGS",
|
|
@@ -75,6 +81,8 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
75
81
|
let planOnly = false;
|
|
76
82
|
let failFast = false;
|
|
77
83
|
let concurrency;
|
|
84
|
+
let judgeRounds;
|
|
85
|
+
let deferFindings = false;
|
|
78
86
|
let land;
|
|
79
87
|
let keepWorktrees = false;
|
|
80
88
|
let list = false;
|
|
@@ -89,6 +97,9 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
89
97
|
else if (argument === "--fail-fast") {
|
|
90
98
|
failFast = true;
|
|
91
99
|
}
|
|
100
|
+
else if (argument === "--defer-findings") {
|
|
101
|
+
deferFindings = true;
|
|
102
|
+
}
|
|
92
103
|
else if (argument === "--keep-worktrees") {
|
|
93
104
|
keepWorktrees = true;
|
|
94
105
|
}
|
|
@@ -131,12 +142,68 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
131
142
|
}
|
|
132
143
|
concurrency = parsed;
|
|
133
144
|
}
|
|
145
|
+
else if (argument === "--judge-rounds" || argument.startsWith("--judge-rounds=")) {
|
|
146
|
+
const raw = argument.includes("=")
|
|
147
|
+
? argument.slice("--judge-rounds=".length)
|
|
148
|
+
: argv[index + 1];
|
|
149
|
+
if (!argument.includes("=")) {
|
|
150
|
+
index += 1;
|
|
151
|
+
}
|
|
152
|
+
const parsed = Number.parseInt(raw ?? "", 10);
|
|
153
|
+
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
154
|
+
return yield* ScriptUsage.make({
|
|
155
|
+
message: `--judge-rounds requires a positive integer\n${epicUsage}`
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
judgeRounds = parsed;
|
|
159
|
+
}
|
|
134
160
|
else {
|
|
135
161
|
rest.push(argument);
|
|
136
162
|
}
|
|
137
163
|
}
|
|
138
|
-
return {
|
|
164
|
+
return {
|
|
165
|
+
planOnly,
|
|
166
|
+
failFast,
|
|
167
|
+
concurrency,
|
|
168
|
+
judgeRounds,
|
|
169
|
+
deferFindings,
|
|
170
|
+
land,
|
|
171
|
+
keepWorktrees,
|
|
172
|
+
list,
|
|
173
|
+
epic,
|
|
174
|
+
refine,
|
|
175
|
+
rest
|
|
176
|
+
};
|
|
139
177
|
});
|
|
178
|
+
/** `--defer-findings`, or `LLM4TS_DEFER_FINDINGS` set to 1/true/on/yes (ADR 0031). */
|
|
179
|
+
export const deferFindingsEnabled = (flag, environment) => flag || /^(1|true|on|yes)$/i.test(environment.LLM4TS_DEFER_FINDINGS?.trim() ?? "");
|
|
180
|
+
/**
|
|
181
|
+
* The feedback a follow-up round is planned from (ADR 0031): every story's
|
|
182
|
+
* deferred findings, in plan order. `undefined` when nothing was deferred.
|
|
183
|
+
*/
|
|
184
|
+
export const deferredFeedback = (files, stateDir, plan) => Effect.map(Effect.forEach(plan.stories, (story) => files.read(deferredPath(stateDir, story.id))), (texts) => {
|
|
185
|
+
const kept = texts.flatMap((text) => text === undefined || text.trim().length === 0 ? [] : [text.trim()]);
|
|
186
|
+
return kept.length === 0
|
|
187
|
+
? undefined
|
|
188
|
+
: [
|
|
189
|
+
"Findings the review and the judge deferred while the epic's stories ran (non-blocking:",
|
|
190
|
+
"each story was merged with them open). Close the ones that still apply; a finding the",
|
|
191
|
+
"code already answers, or that would undo a deliberate choice, goes to not-planned.",
|
|
192
|
+
"",
|
|
193
|
+
...kept.flatMap((text) => [text, ""])
|
|
194
|
+
].join("\n");
|
|
195
|
+
});
|
|
196
|
+
/**
|
|
197
|
+
* Judge attempts per story: `--judge-rounds`, else `LLM4TS_JUDGE_ROUNDS`, else
|
|
198
|
+
* the flow's default. An unusable environment value falls back, never fails.
|
|
199
|
+
*/
|
|
200
|
+
export const judgeRoundsOption = (flag, environment) => {
|
|
201
|
+
if (flag !== undefined) {
|
|
202
|
+
return { judgeRounds: flag };
|
|
203
|
+
}
|
|
204
|
+
const raw = Number.parseInt(environment.LLM4TS_JUDGE_ROUNDS ?? "", 10);
|
|
205
|
+
return Number.isInteger(raw) && raw > 0 ? { judgeRounds: raw } : {};
|
|
206
|
+
};
|
|
140
207
|
export const roundDir = (stateDir, round) => join(stateDir, "rounds", String(round));
|
|
141
208
|
const mergedStories = (files, stateDir, plan) => Effect.gen(function* () {
|
|
142
209
|
let merged = 0;
|
|
@@ -861,12 +928,18 @@ export const storyDimensions = [
|
|
|
861
928
|
rubric: "The story ships deterministic tests in the house style covering its screens or contract. 2 = yes; 1 = thin; 0 = none."
|
|
862
929
|
})
|
|
863
930
|
];
|
|
931
|
+
/**
|
|
932
|
+
* How much a dimension below the bar blocks (ADR 0031): `provides` short of
|
|
933
|
+
* full always does, since dependents build on it; any dimension at 0 does;
|
|
934
|
+
* a partial score elsewhere is a Warning a follow-up round can close.
|
|
935
|
+
*/
|
|
936
|
+
export const judgeSeverity = (name, score) => name === "provides" || score <= 0 ? "Critical" : "Warning";
|
|
864
937
|
const subBar = (scored, story) => ReviewResult.make({
|
|
865
938
|
issues: scored.scores
|
|
866
939
|
.filter((score) => score.score <
|
|
867
940
|
(storyDimensions.find((dimension) => dimension.name === score.name)?.maxScore ?? 2))
|
|
868
941
|
.map((score) => ReviewIssue.make({
|
|
869
|
-
severity:
|
|
942
|
+
severity: judgeSeverity(score.name, score.score),
|
|
870
943
|
title: `judge[${story.id}]: ${score.name} scored ${score.score}`,
|
|
871
944
|
description: score.reasoning
|
|
872
945
|
})),
|
|
@@ -1484,6 +1557,7 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1484
1557
|
}));
|
|
1485
1558
|
return;
|
|
1486
1559
|
}
|
|
1560
|
+
const deferring = deferFindingsEnabled(flags.deferFindings, process.env);
|
|
1487
1561
|
// With a roster, the default is every coder slot it has; the flag caps it.
|
|
1488
1562
|
const concurrency = flags.concurrency ?? context.roster?.slots("coder") ?? 3;
|
|
1489
1563
|
if (context.roster === undefined && localServer !== undefined && concurrency > 1) {
|
|
@@ -1509,13 +1583,14 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1509
1583
|
const testCommand = testGateCommand(commands);
|
|
1510
1584
|
const setupCommand = worktreeSetupCommand(process.env);
|
|
1511
1585
|
const healthUrl = serverHealthUrl(localServer, process.env);
|
|
1512
|
-
|
|
1513
|
-
|
|
1586
|
+
// The executor over one unit: the epic's plan or one refine round.
|
|
1587
|
+
const runUnit = (work) => implementStoriesFlow({ ...context, reasoning: reasoningMeter.service }, {
|
|
1588
|
+
plan: work.plan,
|
|
1514
1589
|
files,
|
|
1515
|
-
stateDir:
|
|
1590
|
+
stateDir: work.stateDir,
|
|
1516
1591
|
epicBranch,
|
|
1517
1592
|
worktreeRoot: worktreeRootFor(input.workDir, plan.epicId, process.env),
|
|
1518
|
-
board: makeLocalBoardSync(files,
|
|
1593
|
+
board: makeLocalBoardSync(files, work.stateDir, work.label),
|
|
1519
1594
|
contextFor: (workDir, contextOptions) => Effect.gen(function* () {
|
|
1520
1595
|
const rebound = yield* contextFor(workDir, contextOptions);
|
|
1521
1596
|
const coderMeter = yield* makeEstimatedUsageMeter(rebound.coder, estimateOptions);
|
|
@@ -1561,14 +1636,14 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1561
1636
|
// away from the executor coding it (ADR 0019).
|
|
1562
1637
|
...storyContextChars(process.env),
|
|
1563
1638
|
judge: options.storyJudge({
|
|
1564
|
-
plan:
|
|
1639
|
+
plan: work.plan,
|
|
1565
1640
|
budget: contextBudget,
|
|
1566
1641
|
reasoning: reasoningMeter.service,
|
|
1567
1642
|
events,
|
|
1568
1643
|
files,
|
|
1569
1644
|
houseRules: guidance
|
|
1570
1645
|
}),
|
|
1571
|
-
verifyBlocked: (story, need, workDir, seats) => verifyBlockedOn(seats.context.roster?.forRole("verifier") ?? seats.context.reasoning, events, files,
|
|
1646
|
+
verifyBlocked: (story, need, workDir, seats) => verifyBlockedOn(seats.context.roster?.forRole("verifier") ?? seats.context.reasoning, events, files, work.plan)(story, need, workDir),
|
|
1572
1647
|
// A roster waits for its own executors (the story's next lease
|
|
1573
1648
|
// does); without one, poll the single coder's engine.
|
|
1574
1649
|
awaitRecovery: context.roster === undefined
|
|
@@ -1582,16 +1657,86 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1582
1657
|
...appDirNote,
|
|
1583
1658
|
...(orientation === undefined ? [] : ["", orientation])
|
|
1584
1659
|
].join("\n")),
|
|
1660
|
+
...judgeRoundsOption(flags.judgeRounds, process.env),
|
|
1585
1661
|
concurrency,
|
|
1662
|
+
...(deferring ? { deferNonBlocking: true } : {}),
|
|
1586
1663
|
failFast: flags.failFast
|
|
1587
1664
|
});
|
|
1588
|
-
|
|
1589
|
-
message: `${
|
|
1665
|
+
const summarize = (work, report) => events.publish(Info.make({
|
|
1666
|
+
message: `${work.label.replace("Epic: ", "epic ")}: ${report.count("done")} done, ${report.count("failed")} failed, ${report.count("waiting")} waiting — report at ${join(work.stateDir, "report.md")} (usage figures estimated)`
|
|
1590
1667
|
}));
|
|
1668
|
+
const report = yield* runUnit(unit);
|
|
1669
|
+
yield* summarize(unit, report);
|
|
1591
1670
|
const hint = retroHint(report, input.workDir, epicId);
|
|
1592
1671
|
if (hint !== undefined) {
|
|
1593
1672
|
yield* events.publish(Info.make({ message: hint }));
|
|
1594
1673
|
}
|
|
1674
|
+
if (!deferring) {
|
|
1675
|
+
return;
|
|
1676
|
+
}
|
|
1677
|
+
// Deferred findings (ADR 0031) become one refine round once the
|
|
1678
|
+
// epic's own stories are all merged. A round's own deferrals are
|
|
1679
|
+
// listed, never planned again, so the follow-up cannot loop.
|
|
1680
|
+
const feedbackText = yield* deferredFeedback(files, unit.stateDir, unit.plan);
|
|
1681
|
+
if (feedbackText === undefined) {
|
|
1682
|
+
return;
|
|
1683
|
+
}
|
|
1684
|
+
const settledPlan = report.count("failed") === 0 && report.count("waiting") === 0;
|
|
1685
|
+
if (unit.stateDir !== stateDir || !settledPlan) {
|
|
1686
|
+
yield* events.publish(Info.make({
|
|
1687
|
+
message: `${unit.label.replace("Epic: ", "epic ")}: findings deferred in ${join(unit.stateDir, "stories")}/*.deferred.md${unit.stateDir === stateDir
|
|
1688
|
+
? "; they become a refine round once every story is merged"
|
|
1689
|
+
: "; pass them to --refine if they still matter"}`
|
|
1690
|
+
}));
|
|
1691
|
+
return;
|
|
1692
|
+
}
|
|
1693
|
+
const stray = statusPaths(yield* context.git.status);
|
|
1694
|
+
if (stray.length > 0) {
|
|
1695
|
+
yield* events.publish(Info.make({
|
|
1696
|
+
message: `deferred findings not planned: the epic checkout has uncommitted changes (${stray.join(", ")}); commit or discard them, then pass ${join(stateDir, "stories")}/*.deferred.md to --refine`
|
|
1697
|
+
}));
|
|
1698
|
+
return;
|
|
1699
|
+
}
|
|
1700
|
+
yield* stage(events, "epic branch", context.git.checkoutOrCreate(epicBranch));
|
|
1701
|
+
const followUp = rounds.length + 1;
|
|
1702
|
+
const roundBrief = yield* files.read(join(stateDir, "brief.md"));
|
|
1703
|
+
const planned = yield* stage(events, `refine round ${followUp} plan (deferred findings)`, planRound({
|
|
1704
|
+
files,
|
|
1705
|
+
reasoning: reasoningMeter.service,
|
|
1706
|
+
events,
|
|
1707
|
+
stateDir,
|
|
1708
|
+
epicId: plan.epicId,
|
|
1709
|
+
round: followUp,
|
|
1710
|
+
feedback: feedbackText,
|
|
1711
|
+
guidance,
|
|
1712
|
+
plans: [unit.plan],
|
|
1713
|
+
...(roundBrief === undefined ? {} : { brief: roundBrief }),
|
|
1714
|
+
...(orientation === undefined ? {} : { orientation }),
|
|
1715
|
+
git: context.git
|
|
1716
|
+
}));
|
|
1717
|
+
for (const left of planned.notPlanned) {
|
|
1718
|
+
yield* events.publish(Info.make({ message: `not planned: ${left.item} — ${left.reason}` }));
|
|
1719
|
+
}
|
|
1720
|
+
if (planned.plan === undefined) {
|
|
1721
|
+
yield* events.publish(Info.make({
|
|
1722
|
+
message: `refine round ${followUp}: no deferred finding needed a story; nothing to run`
|
|
1723
|
+
}));
|
|
1724
|
+
return;
|
|
1725
|
+
}
|
|
1726
|
+
const roundUnit = {
|
|
1727
|
+
plan: planned.plan,
|
|
1728
|
+
stateDir: roundDir(stateDir, followUp),
|
|
1729
|
+
label: `Epic: ${plan.epicId} · round ${followUp}`
|
|
1730
|
+
};
|
|
1731
|
+
yield* events.publish(Info.make({
|
|
1732
|
+
message: `refine round ${followUp}: ${planned.plan.stories.length} follow-up stories from deferred findings at ${join(roundUnit.stateDir, "plan.md")}`
|
|
1733
|
+
}));
|
|
1734
|
+
const roundReport = yield* runUnit(roundUnit);
|
|
1735
|
+
yield* summarize(roundUnit, roundReport);
|
|
1736
|
+
const roundHint = retroHint(roundReport, input.workDir, epicId);
|
|
1737
|
+
if (roundHint !== undefined) {
|
|
1738
|
+
yield* events.publish(Info.make({ message: roundHint }));
|
|
1739
|
+
}
|
|
1595
1740
|
}));
|
|
1596
1741
|
});
|
|
1597
1742
|
/**
|
|
@@ -8,6 +8,8 @@ import { Sample } from "@llm4ts/core/eval/Eval";
|
|
|
8
8
|
import { judge } from "@llm4ts/core/eval/Judge";
|
|
9
9
|
import { capped, withShrink } from "@llm4ts/flow/Context";
|
|
10
10
|
import { FlowEvents } from "@llm4ts/flow/FlowEvents";
|
|
11
|
+
import { closureView } from "@llm4ts/flow/GraphQuery";
|
|
12
|
+
import { renderGraphMermaid } from "@llm4ts/flow/GraphRender";
|
|
11
13
|
import { ReviewIssue } from "@llm4ts/flow/Review";
|
|
12
14
|
import { cachedReview } from "@llm4ts/flow/ReviewCache";
|
|
13
15
|
import { FlowLlmError, Info, ReviewResult, makeChat, reviewFingerprint } from "@llm4ts/runner";
|
|
@@ -24,6 +26,13 @@ export const analystTurns = () => positiveEnvInt("LLM4TS_ANALYST_TURNS", 48);
|
|
|
24
26
|
* than this gets a bounded, visible subset rather than an unbounded read.
|
|
25
27
|
*/
|
|
26
28
|
export const maxClosureFiles = () => positiveEnvInt("LLM4TS_MAX_CLOSURE_FILES", 40);
|
|
29
|
+
/** The program's bounded closure as a diagram, placed above the analyst's spec (ADR 0030). */
|
|
30
|
+
export const closureSection = (graph, program) => {
|
|
31
|
+
const view = closureView(graph, program, maxClosureFiles());
|
|
32
|
+
return view.edges.length === 0
|
|
33
|
+
? "## Dependency closure\n\n(no resolved dependencies)"
|
|
34
|
+
: `## Dependency closure\n\n\`\`\`mermaid\n${renderGraphMermaid(view, graph)}\n\`\`\``;
|
|
35
|
+
};
|
|
27
36
|
/** `cobol/ACCTXFR.cbl` → `ACCTXFR`: the program name keying every per-program artifact. */
|
|
28
37
|
export const programName = (relativePath) => {
|
|
29
38
|
const base = relativePath.slice(relativePath.lastIndexOf("/") + 1);
|