@llm4ts/shell 2.49.0 → 2.51.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/OperatorTools.d.ts
CHANGED
|
@@ -235,6 +235,7 @@ export declare const profile: Tool.Tool<"profile", {
|
|
|
235
235
|
readonly exploreBeforeEdit: Schema.Int;
|
|
236
236
|
readonly unverifiedClaims: Schema.Int;
|
|
237
237
|
readonly lowConfidenceTasks: Schema.Int;
|
|
238
|
+
readonly reviewDiffLines: Schema.optionalKey<Schema.Int>;
|
|
238
239
|
}>>;
|
|
239
240
|
readonly skipped: Schema.$Array<Schema.String>;
|
|
240
241
|
readonly totals: Schema.Struct<{
|
|
@@ -484,6 +485,7 @@ export declare const readToolkit: Toolkit.Toolkit<{
|
|
|
484
485
|
readonly exploreBeforeEdit: Schema.Int;
|
|
485
486
|
readonly unverifiedClaims: Schema.Int;
|
|
486
487
|
readonly lowConfidenceTasks: Schema.Int;
|
|
488
|
+
readonly reviewDiffLines: Schema.optionalKey<Schema.Int>;
|
|
487
489
|
}>>;
|
|
488
490
|
readonly skipped: Schema.$Array<Schema.String>;
|
|
489
491
|
readonly totals: Schema.Struct<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorTools.d.ts","sourceRoot":"","sources":["../src/OperatorTools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OperatorTools.d.ts","sourceRoot":"","sources":["../src/OperatorTools.ts"],"names":[],"mappings":"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"}
|
package/flows/lib/epic-draft.js
CHANGED
|
@@ -163,7 +163,9 @@ export const epicDraftOptions = (flags) => flags.harden
|
|
|
163
163
|
generatePlan: generateDraftPlan,
|
|
164
164
|
stories: () => ({
|
|
165
165
|
reviewers: [correctnessReviewer],
|
|
166
|
+
// One round, whether the lens reviews each task or the story (ADR 0044).
|
|
166
167
|
maxRounds: 1,
|
|
168
|
+
reviewRounds: 1,
|
|
167
169
|
deferNonBlocking: true
|
|
168
170
|
}),
|
|
169
171
|
...(flags.withTests ? {} : { selectGates: withoutTestGate }),
|
|
@@ -58,11 +58,14 @@ 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
|
-
" --
|
|
62
|
-
"
|
|
63
|
-
" --
|
|
64
|
-
"
|
|
65
|
-
"
|
|
61
|
+
" --review-at <task|story> where the review lenses run (default story: once per story,",
|
|
62
|
+
" beside the judge; task: every task, as before 2.51)",
|
|
63
|
+
" --review-rounds <n> rounds of the story review (default 3); in task mode, judge attempts",
|
|
64
|
+
" (default 2). --judge-rounds and LLM4TS_JUDGE_ROUNDS set it too",
|
|
65
|
+
" --task-concurrency <n> coders one story may hold at once (default 1: every task in order).",
|
|
66
|
+
" Above 1, a task the plan says needs nothing still running, and whose",
|
|
67
|
+
" Owns: paths overlap no running task's, goes to a free coder in its own",
|
|
68
|
+
" worktree. LLM4TS_TASK_CONCURRENCY sets it too",
|
|
66
69
|
" --merge-revisions <n> times a story whose merge turns the epic gates red goes back to",
|
|
67
70
|
" catch up and fix it before failing (default 1; 0 fails at once).",
|
|
68
71
|
" LLM4TS_MERGE_REVISIONS sets it too",
|
|
@@ -90,6 +93,7 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
90
93
|
let failFast = false;
|
|
91
94
|
let concurrency;
|
|
92
95
|
let judgeRounds;
|
|
96
|
+
let reviewAt;
|
|
93
97
|
let deferFindings = false;
|
|
94
98
|
let mergeRevisions;
|
|
95
99
|
let taskConcurrency;
|
|
@@ -182,17 +186,31 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
182
186
|
}
|
|
183
187
|
mergeRevisions = parsed;
|
|
184
188
|
}
|
|
185
|
-
else if (argument === "--
|
|
186
|
-
const raw = argument.includes("=")
|
|
187
|
-
|
|
188
|
-
|
|
189
|
+
else if (argument === "--review-at" || argument.startsWith("--review-at=")) {
|
|
190
|
+
const raw = argument.includes("=") ? argument.slice("--review-at=".length) : argv[index + 1];
|
|
191
|
+
if (!argument.includes("=")) {
|
|
192
|
+
index += 1;
|
|
193
|
+
}
|
|
194
|
+
if (raw !== "task" && raw !== "story") {
|
|
195
|
+
return yield* ScriptUsage.make({
|
|
196
|
+
message: `--review-at takes task or story\n${epicUsage}`
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
reviewAt = raw;
|
|
200
|
+
}
|
|
201
|
+
else if (argument === "--judge-rounds" ||
|
|
202
|
+
argument.startsWith("--judge-rounds=") ||
|
|
203
|
+
argument === "--review-rounds" ||
|
|
204
|
+
argument.startsWith("--review-rounds=")) {
|
|
205
|
+
const name = argument.split("=")[0] ?? argument;
|
|
206
|
+
const raw = argument.includes("=") ? argument.slice(name.length + 1) : argv[index + 1];
|
|
189
207
|
if (!argument.includes("=")) {
|
|
190
208
|
index += 1;
|
|
191
209
|
}
|
|
192
210
|
const parsed = Number.parseInt(raw ?? "", 10);
|
|
193
211
|
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
194
212
|
return yield* ScriptUsage.make({
|
|
195
|
-
message:
|
|
213
|
+
message: `${name} requires a positive integer\n${epicUsage}`
|
|
196
214
|
});
|
|
197
215
|
}
|
|
198
216
|
judgeRounds = parsed;
|
|
@@ -206,6 +224,8 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
206
224
|
failFast,
|
|
207
225
|
concurrency,
|
|
208
226
|
judgeRounds,
|
|
227
|
+
reviewAt,
|
|
228
|
+
reviewRounds: judgeRounds,
|
|
209
229
|
deferFindings,
|
|
210
230
|
mergeRevisions,
|
|
211
231
|
taskConcurrency,
|
|
@@ -269,6 +289,21 @@ export const judgeRoundsOption = (flag, environment) => {
|
|
|
269
289
|
const raw = Number.parseInt(environment.LLM4TS_JUDGE_ROUNDS ?? "", 10);
|
|
270
290
|
return Number.isInteger(raw) && raw > 0 ? { judgeRounds: raw } : {};
|
|
271
291
|
};
|
|
292
|
+
/**
|
|
293
|
+
* Where the lenses run and for how many rounds (ADR 0044): per story unless
|
|
294
|
+
* `--review-at task`. The rounds (`--review-rounds`, `--judge-rounds`, or
|
|
295
|
+
* `LLM4TS_JUDGE_ROUNDS`) bound the story review, or in task mode count judge
|
|
296
|
+
* attempts as before.
|
|
297
|
+
*/
|
|
298
|
+
export const reviewOptions = (reviewAt, rounds, environment) => {
|
|
299
|
+
const at = reviewAt ?? "story";
|
|
300
|
+
const { judgeRounds } = judgeRoundsOption(rounds, environment);
|
|
301
|
+
return judgeRounds === undefined
|
|
302
|
+
? { reviewAt: at }
|
|
303
|
+
: at === "story"
|
|
304
|
+
? { reviewAt: at, reviewRounds: judgeRounds }
|
|
305
|
+
: { reviewAt: at, judgeRounds };
|
|
306
|
+
};
|
|
272
307
|
export const roundDir = (stateDir, round) => join(stateDir, "rounds", String(round));
|
|
273
308
|
const mergedStories = (files, stateDir, plan) => Effect.gen(function* () {
|
|
274
309
|
let merged = 0;
|
|
@@ -1856,7 +1891,7 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1856
1891
|
...appDirNote,
|
|
1857
1892
|
...(orientation === undefined ? [] : ["", orientation])
|
|
1858
1893
|
].join("\n")),
|
|
1859
|
-
...
|
|
1894
|
+
...reviewOptions(flags.reviewAt, flags.reviewRounds, process.env),
|
|
1860
1895
|
...mergeRevisionsOption(flags.mergeRevisions, process.env),
|
|
1861
1896
|
...taskConcurrencyOption(flags.taskConcurrency, process.env),
|
|
1862
1897
|
concurrency,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llm4ts/shell",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.51.0",
|
|
4
4
|
"description": "Interactive shell and CLI for llm4ts: flow discovery, run-a-flow, and view",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@effect/platform-node": "4.0.0",
|
|
63
63
|
"@effect/platform-node-shared": "4.0.0",
|
|
64
|
-
"@llm4ts/flow": "2.
|
|
65
|
-
"@llm4ts/core": "2.
|
|
66
|
-
"@llm4ts/runner": "2.
|
|
64
|
+
"@llm4ts/flow": "2.51.0",
|
|
65
|
+
"@llm4ts/core": "2.51.0",
|
|
66
|
+
"@llm4ts/runner": "2.51.0"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"effect": "4.0.0"
|