@llm4ts/shell 2.50.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":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAA;AAI5C,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EAGb,MAAM,8BAA8B,CAAA;AAOrC,OAAO,EAAE,WAAW,EAAoB,MAAM,sBAAsB,CAAA;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EACL,eAAe,EAOhB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAA+B,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAYL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAA;AAG1B;;;;;;;GAOG;AAEH,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,6FAA6F;IAC7F,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,aAAa,CAAC,MAAM,CAAC,CAAA;IAChE,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;IAC7E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvD,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,CAAA;IAC3F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACnC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CACnE;AAED,2FAA2F;AAC3F,eAAO,MAAM,WAAW,GACtB,QAAQ,cAAc,EACtB,IAAI,MAAM,GAAG,SAAS,KACrB,MAAM,CAAC,MAAM,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,WAAW,CAczD,CAAA;AA4BD,eAAO,MAAM,SAAS;;;;;;;SAQc,CAAA;AAEpC,eAAO,MAAM,OAAO;;;;;EAKlB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;SAOa,CAAA;AAEpC,eAAO,MAAM,OAAO;;;;;;;;;;;;;EAQlB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;SAOa,CAAA;AAEpC,eAAO,MAAM,SAAS;;;;;;;;;SAYc,CAAA;AAEpC,eAAO,MAAM,UAAU;;;;;;;SAQa,CAAA;AAEpC,eAAO,MAAM,UAAU;;;;;;;;;;SAaa,CAAA;AAEpC,eAAO,MAAM,SAAS;;;EAGpB,CAAA;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;SAQgB,CAAA;AAEpC,eAAO,MAAM,YAAY;;;;;;;;;SAQW,CAAA;AAEpC,eAAO,MAAM,QAAQ;;;;;;;;;SAYe,CAAA;AAEpC,eAAO,MAAM,eAAe;;;;;;;;;;SAaQ,CAAA;AAEpC,eAAO,MAAM,KAAK;;;;;;;;SAQkB,CAAA;AAEpC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOgB,CAAA;AAEpC,eAAO,MAAM,QAAQ;;;;;EAKnB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;SAOa,CAAA;AAEpC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcvB,CAAA;AAwCD,eAAO,MAAM,YAAY,GACvB,MAAM,YAAY,KACjB,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAuPrD,CAAA"}
|
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,8 +58,10 @@ 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
|
-
"
|
|
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",
|
|
63
65
|
" --task-concurrency <n> coders one story may hold at once (default 1: every task in order).",
|
|
64
66
|
" Above 1, a task the plan says needs nothing still running, and whose",
|
|
65
67
|
" Owns: paths overlap no running task's, goes to a free coder in its own",
|
|
@@ -91,6 +93,7 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
91
93
|
let failFast = false;
|
|
92
94
|
let concurrency;
|
|
93
95
|
let judgeRounds;
|
|
96
|
+
let reviewAt;
|
|
94
97
|
let deferFindings = false;
|
|
95
98
|
let mergeRevisions;
|
|
96
99
|
let taskConcurrency;
|
|
@@ -183,17 +186,31 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
183
186
|
}
|
|
184
187
|
mergeRevisions = parsed;
|
|
185
188
|
}
|
|
186
|
-
else if (argument === "--
|
|
187
|
-
const raw = argument.includes("=")
|
|
188
|
-
|
|
189
|
-
|
|
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];
|
|
190
207
|
if (!argument.includes("=")) {
|
|
191
208
|
index += 1;
|
|
192
209
|
}
|
|
193
210
|
const parsed = Number.parseInt(raw ?? "", 10);
|
|
194
211
|
if (!Number.isInteger(parsed) || parsed < 1) {
|
|
195
212
|
return yield* ScriptUsage.make({
|
|
196
|
-
message:
|
|
213
|
+
message: `${name} requires a positive integer\n${epicUsage}`
|
|
197
214
|
});
|
|
198
215
|
}
|
|
199
216
|
judgeRounds = parsed;
|
|
@@ -207,6 +224,8 @@ export const parseEpicArgs = (argv) => Effect.gen(function* () {
|
|
|
207
224
|
failFast,
|
|
208
225
|
concurrency,
|
|
209
226
|
judgeRounds,
|
|
227
|
+
reviewAt,
|
|
228
|
+
reviewRounds: judgeRounds,
|
|
210
229
|
deferFindings,
|
|
211
230
|
mergeRevisions,
|
|
212
231
|
taskConcurrency,
|
|
@@ -270,6 +289,21 @@ export const judgeRoundsOption = (flag, environment) => {
|
|
|
270
289
|
const raw = Number.parseInt(environment.LLM4TS_JUDGE_ROUNDS ?? "", 10);
|
|
271
290
|
return Number.isInteger(raw) && raw > 0 ? { judgeRounds: raw } : {};
|
|
272
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
|
+
};
|
|
273
307
|
export const roundDir = (stateDir, round) => join(stateDir, "rounds", String(round));
|
|
274
308
|
const mergedStories = (files, stateDir, plan) => Effect.gen(function* () {
|
|
275
309
|
let merged = 0;
|
|
@@ -1857,7 +1891,7 @@ export const runEpicStories = (options) => Effect.gen(function* () {
|
|
|
1857
1891
|
...appDirNote,
|
|
1858
1892
|
...(orientation === undefined ? [] : ["", orientation])
|
|
1859
1893
|
].join("\n")),
|
|
1860
|
-
...
|
|
1894
|
+
...reviewOptions(flags.reviewAt, flags.reviewRounds, process.env),
|
|
1861
1895
|
...mergeRevisionsOption(flags.mergeRevisions, process.env),
|
|
1862
1896
|
...taskConcurrencyOption(flags.taskConcurrency, process.env),
|
|
1863
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/
|
|
66
|
-
"@llm4ts/
|
|
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"
|